数控机床课程设计 插补计算

发布 2022-10-05 03:49:28 阅读 4798

《机床数控技术》课程设计。

说明书。班级:

学号:姓名:

指导教师:时间。

说明书。课设任务:

dl2 ,dda法插补第二象限直线 pa34,逐点比较法插补第3-4象限逆圆弧。

课设要求:具有数据输入界面,如起点、终点、圆心、半径及插补步长等。

具有插补过程的动态显示功能,如单步插补、连续插补。

插补的步长可调。

编程语言:visual basic

程序设计流程图:

dda法插补第二象限直线:

逐点比较法插补第3-4象限逆圆弧:

变量说明、源程序。

dim a!, b!, c!

, d!, e!, f!

, g!, h!, i!

, j!, k!, l!

, m!, n!, p!

, q!

dim x1!, x2!, x3!

, f1!, xp!, yp!

, y1!, y2!, y3!

, x0!, y0!, r!

, s!, t!, u!

, v!, w!, x!

, y!, z!,o1!

private sub command1_click直线dda连续插补。

a = b = 直线起点坐标(a,b)

c = d = 直线终点坐标(c,d)

e = 直线插补步长。

f = a - c)

g = d - b)

(a, b)-(c, d)

if f > g then h = f else: h = g

i = 1do while (2 ^ i)

i = i + 1

loopj = 0

k = 0l = a

m = bfor n = 0 to (2 ^ i) step 1

j = j + f

p = lif (j / 2 ^ i)) e then j = j - e * 2 ^ i): l = l - e

k = k + g

q = mif (k / 2 ^ i)) e then k = k - e * 2 ^ i): m = m + e

(p, q)-(l, m), vbred

next n

end sub

private sub command2_click圆弧单步逐点插补。

x1 = y1 =

x2 = y2 =

r = u =

dim xe, ye as single

xe = x1 + x2) /2

ye = y1 + y2) /2

s = sqr(((x2 - x1) ^2 + y2 - y1) ^2)) 2

t = y2 - y1) /x2 - x1)

if y1 = y2 then

x0 = x1 + x2) /2

y0 = y1 + sqr(r ^ 2 - s ^ 2)

elseif y1 < y2 then

x0 = xe - sqr((r ^ 2 - s ^ 2) *t ^ 2 / 1 + t ^ 2))

y0 = xe - x0) /t + ye

elseif y1 > y2 then

x0 = xe + sqr((r ^ 2 - s ^ 2) *t ^ 2 / 1 + t ^ 2))

y0 = xe - x0) /t + ye

end if

if (x0 < x1 and y0 >=y2) then x = 2 * 3.14 + atn((y1 - y0) /x1 - x0)):y = 2 * 3.

14 + atn((y2 - y0) /x2 - x0))

if (x0 = x1 and y0 >=y2) then x = 3 * 3.14 / 2): y = 2 * 3.14 + atn((y2 - y0) /x2 - x0))

if (x0 > x1 and x0 < x2 and y0 >=y1 and y0 >=y2) then x = 3.14 + atn((y1 - y0) /x1 - x0)):y = 2 * 3.

14 + atn((y2 - y0) /x2 - x0))

if (x0 > x2 and y0 >=y1) then x = 3.14 + atn((y1 - y0) /x1 - x0)):y = 3.

14 + atn((y2 - y0) /x2 - x0))

if (x0 = x2 and y0 >=y1) then x = 3.14 + atn((y1 - y0) /x1 - x0)):y = 3 * 3.14) /2

(x0, y0), r, ,x, y

select case (o1 = 0)

case 1

f1 = 0

xp = x1

yp = y1

o1 = 1

end select

if (xp >=x1 and xp < x0 and xp < x2) then

if f1 >=0 then

f1 = f1 + 2 * xp - x0)) u ^ 2: v = xp: xp = xp + u

(v, yp)-(xp, yp), vbblue

elsef1 = f1 - 2 * yp - y0)) u ^ 2: w = yp: yp = yp - u

(xp, w)-(xp, yp), vbblue

end if

elseif (xp >=x0 and (xp < x2 or yp < y2)) then

select case (xp > x2)

case 0

if f1 >=0 then

f1 = f1 + 2 * yp - y0)) u ^ 2: w = yp: yp = yp + u

(xp, w)-(xp, yp), vbblue

elsef1 = f1 + 2 * xp - x0)) u ^ 2: v = xp: xp = xp + u

(v, yp)-(xp, yp), vbblue

end if

end select

end if

end sub

private sub command4_click圆弧连续逐点插补。

x1 = y1 = 圆弧起点坐标(x1,y1)

x2 = y2 = 圆弧终点坐标(x2,y2)

r = 圆弧半径。

u = 圆弧插补步长。

dim xe, ye as single

xe = x1 + x2) /2

ye = y1 + y2) /2

s = sqr(((x2 - x1) ^2 + y2 - y1) ^2)) 2

t = y2 - y1) /x2 - x1)

if y1 = y2 then

x0 = x1 + x2) /2

y0 = y1 + sqr(r ^ 2 - s ^ 2)

elseif y1 < y2 then

x0 = xe - sqr((r ^ 2 - s ^ 2) *t ^ 2 / 1 + t ^ 2))

y0 = xe - x0) /t + ye

elseif y1 > y2 then

x0 = xe + sqr((r ^ 2 - s ^ 2) *t ^ 2 / 1 + t ^ 2))

y0 = xe - x0) /t + ye圆弧圆心(x0,y0)

end if

if (x0 < x1 and y0 >=y2) then x = 2 * 3.14 + atn((y1 - y0) /x1 - x0)):y = 2 * 3.

14 + atn((y2 - y0) /x2 - x0))

if (x0 = x1 and y0 >=y2) then x = 3 * 3.14 / 2): y = 2 * 3.14 + atn((y2 - y0) /x2 - x0))

if (x0 > x1 and x0 < x2 and y0 >=y1 and y0 >=y2) then x = 3.14 + atn((y1 - y0) /x1 - x0)):y = 2 * 3.

14 + atn((y2 - y0) /x2 - x0))

if (x0 > x2 and y0 >=y1) then x = 3.14 + atn((y1 - y0) /x1 - x0)):y = 3.

14 + atn((y2 - y0) /x2 - x0))

if (x0 = x2 and y0 >=y1) then x = 3.14 + atn((y1 - y0) /x1 - x0)):y = 3 * 3.14) /2

(x0, y0), r, ,x, y

数控机床课程设计

目录。1 课程设计任务2 2 课程设计要求2 3 编程语言2 4 详细程序设计流程图2 5 程序变量及说明,源程序5 6 参考资料6 源程序附件7 一 课程设计任务 设计及编制软件,实现,1 对位于第三象限的直线用dda法插补 2 对位于第四和第三象限的顺圆弧用逐点比较法插补。二 课程设计要求 1 ...

数控机床课程设计

设计课题 编制如图所示零件的加工程序,材料为45号钢,棒料直径为 40mm。轴零件图。轴的加工效果图。1.零件的工艺分析。该零件表面由圆柱 圆锥 圆弧 槽及螺纹组成。零件图上给定的几处精度要求较高的尺寸,公差值较小,编程时按基本尺寸编写。根据零件图样尺寸分布情况,确定工件坐标系原点o取在工件右端面中...

数控机床课程设计

姓名李牧奇。专业班级 机械设计制造及自动化0706 学号0700010643 指导老师胡明哲。成绩。日期2009.12.14 12.25 一 设计零件。二 图样分析。1.该零件由圆弧 凹槽和孔组成,中心孔的轴线为编程基准,其余四个孔均匀分布,有较严格的尺寸精度 位置精度和表面粗造度的要求,零件材料为...