第二章 数控加工程序的编制
确定
加工
方案








编写
程序
清单
制备
控制
介质




第一节 数控编程的基本知识
一, 编程的内容与步骤
数控编程的过程可以用流程图 2-1表示 。 各环节简要
说明如下:
图 2-1 数控编程过程
返回课件首页
1,确定加工方案
选择能够实现该方案的适当的机床, 刀具, 夹具和
装夹方法 。
2,工艺处理
工艺处理包括选择对刀点, 确定加工路线和切
削用量 。
3,数学处理
数学处理的主要任务就是根据图纸数据求出编
程所需的数据 。
4,编写程序清单
5,制备介质和程序检验
一,编程方法
编程方法有手工编程、数控语言编程和图形编程三种
1,手工编程
2,数控语言编程
3,图形编程
二,数控加工工艺基础
1,数控机床的坐标系
在数控机床中,为了实现零件的加工,往往需要控制几
个方向的运动,这就需要建立坐标系,以便区别不同运
动方向。为了使编出的程序在不同厂家生产的同类机床
上有互换性,必须统一规定数控机床的坐标方向。我国
的 JB3051-82标准为, 数字控制机床坐标轴和运动方向
的命名,,其中的规定与国际标准 ISO841中的规定是
相同的。
图 2-2 数控机床坐标系的定义
编程坐标
系 G54
编程坐标
系 G59
G54中的
局部 坐标系
G59中的
局部坐标系
机床坐标系
2,机床坐标系, 编程坐标系和局部坐标系
图 2-3 机床坐标系、编程坐标系和局部坐标系的关系
2,对刀点的确定
对刀点也称起刀点是数控加工中刀具相对工件运
动的起点 。
a)对称零件的对刀点选择 b)钻孔加工时的对刀点选择
图 2-4 对刀点的选择
4,编程中的误差控制
( 1) 逼近误差
( 2) 插补误差
( 3) 圆整化误差
第二节 手工编程
一, G代码
常用的 G指令有:
1,快速点定位指令 G00
格式为,G00 X— Y—;
三种可能的路径:
A A A
B B
B
X X X
Y Y Y
a) 方案 1 b) 方案 2 c) 方
案 3
图 2-5 G00指令的运动轨迹
1,直线插补指令 G01
格式,G01 X— Y— F—;
2 圆弧插补指令 G02,G03
格式,G02( G03) X— Y— I— J— F—;
a)逆圆指令 G03 b)顺圆指令 G02
图 2-6 圆弧插补指令
4,暂停指令 G04
格式,G04 P—;
其中 P后面为暂停时间,单位是毫秒。
5,圆弧插补平面选择指令 G17,G18,G19
6,刀具半径补偿指令 G40,G41,G42
刀补指令的定义如图 2-7所示。
y y
工件轮廓
G41 工件轮廓 G40
G40
G42
o x o x
a)左刀补 G41 b)右刀补 G42
图 2-7 刀补功能的定义
7,设定当前编程坐标系指令 G54~G59
8,绝对尺寸及相对尺寸编程指令 G90,G91
y
40 B
30
20
10 A
O 20 40 60 x
图 2-8 绝对坐标和相对坐标的定义
假设刀具的当前位置在 A点, 以下两段代码的功能是一样的:
G00 G90 X60.0 Y40.0;
G00 G91 X40.0 Y30.0;
9,设置坐标值指令 G92
10,钻镗类固定循环指令
固定循环的一般格式如下:
G—G— X—Y— Z—R— Q—P—F—L—;
动作 ①
Z=0 R
动作 ② 动作 ⑥
R点 Z R点 R点
动作 ③ 动作 ⑤ Z
Z点 Z点
动作 ④ a) G90 b) G91
图 2-9 固定循环动作 图 2-10 固定循环的数据形式
( 1)高速深孔加工循环指令 G73
( 2)反攻丝循环指令 G74
初始点
初始点
G98
q d G98 R点
q d G99 G99
G98
q 主轴反转 主轴正

Z点 Z点
图 2-11 深孔加工循环 G73 图 2-12 反攻丝循环
G74
( 4) 精镗循环指令 G76
( 5) 钻孔和镗孔循环 G81
初始点
q G98
G98
R点 R点
G99 G99
q
Z点
图 2-13 精镗循环 G76 图 2-14 钻, 镗孔循环
G81
5) 钻, 扩, 镗阶梯孔循环 G82
( 6) 深孔加工循环 G83
( 7) 攻丝循环 G84
初始点 G98 初始点
G98
R点
q d G99 R点 G99
q d 主轴正转 主轴反转
q
Z点 Z点
图 2-15 深孔加工循环 G83 图 2-16 攻丝循环 G84
( 8) 镗孔循环 G85 该指令与 G84指令相同, 只是返回时主轴不反转 。
( 9) 镗孔循环 G86 该指令与 G81相同, 但到孔底后主轴停止, 然后快速退回 。
G98
主轴正转
主轴定向停 R点
G99
Z点
暂停后
主轴起动 R点 Z点 主轴停止
暂停
图 2-17 反镗循环 G87 图 2-18 镗孔循环 G88
( 10) 反镗循环 G87
( 11) 镗孔循环 G88
( 12) 镗孔循环 G89 该指令与 G86指令相同, 但在孔底有
暂停 。
( 13) 取消固定循环指令 G80
11,车削固定循环指令
( 1) 直线和锥度切削固定循环 G77 该循环的动作顺序见
图 2-19,指令格式为:
G77 X( U) —Z( W) —I—F—;
在增量编程中,地址 U,W值的符号取决于轨迹 1,2的
方向。图 2-19 中的 W符号为负,U的符号也为负。 X为直径
值,U为直径方向的增量。图中的循环动作中,虚线表示
快速进给,实线表示工作进给。 I值为零或不写时,为加
工直线的情况。加工锥度时,锥度切削符号与刀具轨迹的
关系如图 2-20所示。
o z o z
2 X/2 2 X/2
3 1 U/2 I
4 3 4 1 U/2
x Z W x Z W
a) G77指令用于加工柱面 b) G77指令用于加工锥

图 2-19 直线和锥度切削切削固定循环 G77
I I
U/2
U/2
W W
(a) I>0 (b) I<0
图 2-20 锥度切削 G77符号与刀具轨迹的关系
(2) 螺纹切削固定循环 G78 该指令用于在柱面或锥
面上切削螺纹 。 图 2-21为螺纹切削时的动作图, 使
用 G78指令的格式为:
G78 X( U) —Z( W) —F—;
式中 F表示螺纹导程地址。图中虚线表示快速进
给、实线表示工作进给。 r是结束螺纹切削的退刀参
数,其值与螺距有关,要大于或等于螺距值。用增
量编程时,根据轨迹 1和 2的方向设定 U和 W后面数值
的符号。
2
r I
r 2 r
3 1 U/2 3 r 1
U/2
4 4
W W
a) 车直螺纹 b) 车锥螺纹
图 2-21 螺纹切削 G78时的动作图
( 3) 端面切削固定循环 G79 G79指令的动作图见图 2-22,
其指令格式为:
G79 X( U) — Z( W) — K— F— ;
其中符号的意义同直线切削固定循环 。
用增量编程时,若轨迹 1的方向在 Z坐标是负方向,则 W
是负值,同理可确定 U值的正负。 K是与端面锥度有关的地
址,F为进给速度。 U,W和 K后面数值的符号与刀具轨迹
间的关系见图 2-23。
Z
Z W K W
o z z
3 X/2 X/2
3
2 4 U/2 2 4 U/2
x 1 1
x
a) 端面切削 b) 端面锥度切削
图 2-22 端面切削 G79时的动作图
K W W
3 3
2 4 U/2 U/2 2 4
1 1
K
a) K〈 0 b) K 〉 0
图 2-23 端面锥度切削符号与刀具轨迹关系图
车削固定循环中,X( U),Z( W)和 K是模态的,如
果这些值不变,在下一个程序段中可不指定。当某一个值
需要改变时,才在下一个程序段中指定。若指定非模态 G
代码(除 G04以外)或 G00~G03代码,则数值被取消。以上
是常用的 G指令,其余 G指令代码见表 2-1。
12.宏指令简介
某些高档数控系统为用户配备了类似于高级语言的复
合指令(宏程序)功能,用户可以使用变量进行算术运算、
逻辑运算和混合运算,此外复合指令功能还提供了循环语
句、分支语句和子程序调用语句。对于经常用到的加工过
程,如铣键槽、加工圆周分布的孔等,利用复合指令,可
以大大简化编程过程。
复合指令的应用过程如图 2-24所示,分为编辑、登录和
调用三个阶段。编辑阶段是将复合指令所要实现的功能编成
一段 NC程序,程序中可以使用系统提供的基本指令系统中的
任何代码,以系统指定的形式将这段代码保存起来。第二个
阶段把刚才编辑的登录为一个复合指令,例如 G71。数控系统
应提供登录用的服务程序。经过登录的复合指令就可以和普
通指令一样使用了。图 2-24中的加工圆周分布的六个孔的加
工过程可以用下面一条指令实现:
G71 X—Y—Z—I—D—R—;
其中 X,Y地址中存放六个孔中心所在圆的圆心,Z地址存
放钻孔深度,I地址存放均布孔的个数,D地址存放钻孔的直
径,R地址存放六个孔中心所在圆的半径。用一条指令,实现
了同类型加工过程,大大减少了程序量。
N1000;
G90G00G54X0Y;
G43H01Z50M03;
G00Z5;
G90G00X150Y35;
X100Y70;
G67;
...
...
M99;


编辑 调用
登录
图 2-24 复合指令的编辑、登录和调用过程
二,M代码
1,程序停止指令 M00,M01和 M02
2,主轴转动控制指令 M03,M04和 M05
3,换刀指令 M06
4,冷却液控制指令 M07,M08和 M09
5,夹紧和松开指令 M10和 M11
6,改变运动方向指令 M15和 M16
7,主轴定向停止指令 M19
8,纸带结束指令 M30
9,互锁旁路指令 M31
10,改变进给范围指令 M36和 M37
11,改变主轴转速范围指令 M38和 M39
12,刀具直线位移指令 M55和 M56
13,工件直线位移指令 M61和 M62
14,工件角度位移指令 M71和 M72
15,子程序调用指令 M98和 M99
三、其他代码
1,主轴功能
2,刀具功能
3,进给功能
4,主轴速度和进给速度的其它表示方法
( 1)等比级数法或两位代码法
这是用两位十进制数字来表示速度的方法,它所表示
的速度值构成公比为 1.122的等比级数。如 F60表示速度为
1000 mm/min,F61代码则表示速度为 1120 mm/min。
( 2) 幻 3代码法
这是用 3位,4位或 5位代码来表示进给速度和主轴回转
速度的方法。代码的第一位数字为实际速度值小数点
前的位数加上 3,其它位数字用实际速度的高位数字
表示,其中最低位数字是用四舍五入方法得到的。例
如,实际速度为 47.826 mm/min,用五位幻 3码表示为
54783。其他例子见表 2-3。
速 度 三位代码 四位代码 五位代码
1728
150.3
15.25
7.826
0.1537
0.01268
0.008759
0.000462
717
615
515
478
315
213
188
046
7173
6150
5153
4783
3154
2127
1876
0462
71728
61503
51525
47826
31537
21268
18759
04624
表 2-3 三、四和五位幻 3代码法的例子
( 3) 符号法或一位代码法
该代码用一位数字符号表示, 它可以表示一种速度,
其值在机床使用说明书中详细规定 。
( 4) 进给速率数法 ( FRN — - feed rate number)
这种方法只用来表示进给速度 。 直线插补时
FRN=V/L
圆弧插补时
FRN=V/R
式中 V(mm/min)----进给速度;
L(mm)----直线位移;
R(mm)----圆弧半径;
FRN(1/min)----进给速率数代码 。
FRN代码用 0001~9999四位数字表示。
四, 数控加工程序实例
( 一 ) 钻孔加工程序
1,孔加工程序的特点
( 1) 编程中坐标性质 ( 指绝对坐标或相对坐标 ) 的选
择应与图纸尺寸的标注方法
一致, 这样可以减少尺寸换算和保证加工精度;
( 2) 注意提高对刀精度, 如程序中需要换刀, 在空间
允许的情况下, 换刀点应尽
量安排在加工点上;
( 3) 注意使用刀具补偿功能, 可以在刀具长度变化时
保证钻孔深度 。
( 4) 在钻孔量很大时, 为了简化编程, 应使用固定循
环指令和对称功能;
程序的最后应有返回原点检查,以保证程序的正确性。
A
20 C
30
Φ25钻头
B 30
120
30 50
补偿值 b= - 4mm
35 3
18 22
30
5
图 2-25 孔加工零件编程实例
2.编程实例
[例 2-1] 使用刀具长度补偿和一般指令加工图 2-25所示
的零件中 A,B,C三个孔。
程序清单:
N01G92 X0 Y0 Z0; 设定坐标系
N02 G91 G00 X120.0 Y80.0; 定位到 A点
N03 G43 Z-32.0 T1 H01; 刀具快速移动到工
进起点,刀具长度补偿
N04 S600 M03; 主轴启动
N05 G01 Z-21.0 F1000; 加工 A孔
N06 G04 P2000; 孔底停留 2秒
N07 G00 Z21.0; 快速返回到
工进起点
N08 X30.0 Y-50.0; 定位到 B点
N09 G01 Z-38.0; 加工 B孔
N10 G00 Z38.0; 快速返回到工进起点
N11 X50.0 Y30.0; 定位到 C孔
N12 G01 Z-25.0; 加工 C孔
N13 G04 P2000; 孔底停留 2秒钟
N14 G00 Z57.0 H00; Z坐标返回到程序起点,
取消刀补
N15 X-200.0 Y-60.0; X,Y坐标返回到程序起点
N16 M05; 主轴停止
N17 M02; 程序结束
[例 2-2] 使用固定循环指令加工例 1中的三个孔。
分析图纸和数据处理的过程同例 1,使用固定循环指令编
出的程序清单如下:
N01 G91 T1 M06; 换刀
N02 M03 S600; 主轴启动
N02 G43 H01; 设置刀具补偿
N03 G99 G82 X120.0 Y80.0 Z-21.0 R-32.0
P2000F1000; 钻孔 A
N04 G99 G81 X30.0 Y-50.0 Z-38.0 R-32.0; 钻孔 B
N05 G98 G82 X50.0 Y30.0 Z-25.0 R-32.0 P2000;
钻孔 C
N06 G00 X-200.0 Y-60.0; 返回起刀点
N07 M05;
N08 M02; 程序结束
( 二 ) 车削程序
1,车削加工程序的特点
( 1) 坐标的取法及坐标指令 。 数控车床径向为 x轴, 纵
向为 z轴 。 x和 z坐标指令,
在按绝对坐标编程时使用代码 X和 Z,按增量编程时使用
代码 U和 W 。 切削圆弧时, 使用 I和 K表示圆心相对圆弧
起点的坐标增量值或者使用半径 R值代替 I和 K值 。 在一
个零件的程序中或一个程序段中, 可以按绝对坐标编
程, 或增量坐标编程, 也可以用绝对坐标与增量坐标
值混合编程 。
X或 U坐标值,在数控车床的程序编制中是, 直径
值,,即按绝对坐标编程时,X为直径值,按增量坐标
编程时,U为径向实际位移值的两倍,并附上方向符号。
( 1) 刀具补偿 。 由于在实际加工中, 刀具会产生磨损,
精加工时车刀刀尖需要磨
出半径不大的圆弧;换刀时刀尖位置有差异以及安装刀
具时产生误差等, 都需要利用刀具补偿功能加以调整 。
现代数控机床中都有刀具补偿功能, 以减少复杂的计
算 。
( 2) 车削固定循环功能 。 车削加工一般为大余量多次切
除过程, 常常需要多次重复几种固定的动作 。 因此,
在数控车床系统中具备各种不同形式的固定切削循环
功能 。 如内, 外圆柱面固定循环, 内, 外锥面固定循
环, 端面固定循环, 内, 外螺纹固定循环及组合面切
削循环等, 使用固定循环指令可以简化编程 。
2,车削加工程序实例
[例 2-3]手工编写图 2-26所示零件的车削加工程序 。 该零
件需要精加工, 图中 φ 85表面不加工 。 选用具有直线,
圆弧插补功能的数控车床加工该零件 。
R70 M48x1.5
φ85
φ78
o φ45 z
φ80 φ62 φ50 φ41.8
1x45o φ200
3xφ45
65 10 60 20 60 60 2
290
350
x A
图 2-26 车削零件图
Ⅰ 35 5

5 35
5
35
10 Ⅲ
图 2-27 刀具布置图
N01 G92 X200.0 Z350.0; 起点坐标设定
N02 G00 X41.8 Z292.0 S31 M03 T11 M08; 移到刀路起点
N03 G01 X47.8 Z289.0 F15; 倒角
N04 U0 W-59.0; 切 φ47.8 圆
N05 X50.0 W0; 切圆锥小头
N06 X62.0 W-60.0; 切锥度
N07 U0 Z155.0; 切 φ62.0 圆
N08 X78.0 W0;
N09 X80.0 W-1.0; 倒角
N10 U0 W-19.0; 切 φ80.0 圆
N11 G02 U0 W-60.0 I63.25 K-30.0 切圆弧
N12 G01 U0 Z65.0; 切 φ 80.0圆
N13 X90.0 W0; 退刀
N14 G00 X200.0 Z350.0 M05 T10 M09; 退回换刀点, 主轴停
N15 X51.0 Z230.0 S23 M03 T22 M08;换刀,开主轴
N16 G01 X45.0 W0 F10; 切退刀槽
N17 G04 U0.5; 延迟
N18 G01 X51.0 W0; 退刀
N19 G00 X200.0 Z350.0 M05 T20 M09; 到换刀位置, 关主轴, 换刀
N20 X52.0 Z296.0 S22 M03 T33 M08; 换刀, 开主轴
N21 G78 X47.2 Z231.5 F330.0; 切螺纹, 粗切
N22 X46.6 W-64.5; 切螺纹, 半精切 1
N23 X46.1 W-64.5; 切螺纹, 半精切 2
N24 X45.8 W-64.5; 切螺纹, 精切
N25 G00 X200.0 Z350.0 T30 M02; 退至起刀点
上面这段程序是精车程序, 没有考虑到全部余量的去除过程 。 本例中毛坯
直径为 85mm,单边最大余量约为 15mm 。 这么大的余量是不可能一次切
除的 。 下面是一个考虑了余量切除过程的车削加工程序 。
[例 2-4] 图 2-28所示零件的车削程序 。
N01 T0100 M41; 设定刀具号, 主轴高速挡
N02 G97 G40 S200 M08; 定主轴转速表示方法, 开冷却
N03 G00 G41 X150.0 Z110.0T0101 M03;取 1号刀具 1号刀补, 开主轴
N04 G96 S120; 恒切削速度控制
N05 G73 U9.0 W 3.0D3; 闭环切削循环, 粗切
N06 G73 P7 Q13 U0.2 W0.2 F0.3; 闭环切削循环, 精切
N07 G00 X20.0 Z110; 移动到起刀点
N08 G01 X20.0Z80.0 F0.15 S150; 切 φ 20圆
N09 X40.0 Z70.0; 切小锥面
N10 Z50.0; 切 φ 40圆
N11 G02 X80.0 Z30.0 R40.0; 切圆弧
N12 G01 X120.0 Z10.0; 切大锥面
N13 X150.0Z110.0; 退刀
100
10 20 20 10 20
φ100
o φ80 φ40 φ20 z
φ150 φ200
9
110 3
x 120
图 2-28 车削程序例 2
这段程序中的 G73是闭环切削指令 。 其功能是按照一定的
切削形状, 逐渐去除余量, 达到最终尺寸 。 巧妙地使
用 G73指令可以简化车削程序 。 这是车削加工中的一个
特殊指令, 格式如下:
G73 P(ns) Q(nf) I± (Δi) K± (Δk) U± (Δu)
W± (Δw) D(d) F(f) S(s);
N(ns);
......
N(nf);
其中 P —— 表示最终形状的程序段首段程序号 (ns);
Q —— 表示最终形状的程序段末段程序号 (nf);
I —— X轴方向的让刀距离及方向 (Δi, 直径指
定 );
K —— Z轴方向的让刀距离及方向 (Δk) ;
U —— X方向精加工余量及方向 (Δu,直径指定 );
W —— Z方向的精加工余量 (Δw) ;
D —— 切削次数 (d);
F —— 进给量;
S —— 主轴功能。
(三)轮廓铣削程序
1,轮廓铣削编程特点
( 1)数控铣床功能各异,品种繁多。选择机床时要考虑如何
最大限度地发挥数控
铣床的特点。一般两坐标联动数控铣床用于加工平面零件
轮廓,三坐标以上的数控铣床用于三维复杂曲面加工,铣削加
工中心具有多种功能,可以用于多工位、多工件和多种工艺方
法的加工。
( 1) 数控铣床的数控装置具有多种插补方法 。 一般机床
都具有直线插补和圆弧插
补, 有些铣床还具有极坐标插补, 抛物线插补和螺旋线
插补等多种插补功能 。 编程时要合理地选择这些功能,
以提高加工精度和效率 。
( 2) 数控铣床一般都具有刀具位置补偿, 刀具长度补偿,
刀具半径补偿和各种固
定循环等功能, 合理地使用这些功能可以简化编程 。
( 3) 铣削和由直线, 圆弧组成的平面轮廓铣削数学处理
比较简单, 可以手工计算 。
非圆曲线和曲面轮廓的铣削加工, 数学处理比较复杂,
一般要采用计算机辅助计算和自动编程 。
2,铣削加工程序实例
[例 2-5] 编写在具有刀具补偿功能的铣床上铣削零件外
轮廓的零件加工程序 。
Y
R 150
120 R
R
90
B E
A C D F
60 J H G
R 30 I R
O 30 60 90 120 150 180 X
图 2-29 轮廓铣削加工实例
N01 G92 X0 Y0 Z0; 建立工件坐标系
N02 G30 Y0 M06 T06; 返回第二参考点换刀
N03 G00 G90 X0 Y90.0; 快速移至起刀点
N04 G43 Z0 H03 S440 M03; 长度补偿, 主轴正转
N05 G41 G17 X30.0 D30 F100; 半径补偿, 移至 A点
N06 G01 X60.0 Y120.0; 加工 AB段
N07 G02 X90.0 Y90.0I0 J-30.0; 加工 BC段
N08 G01 X120.0; 加工 CD段
N09 G02 X150.0 Y120.0 I30.0 J0; 加工 DE段
N10 G01 X135.0 Y90.0; 加工 EF段
N11 X150.0 Y60.0; 加工 FG段
N12 X120.0; 加工 GH段
N13 X90.0 Y30.0; 加工 HI段
N14 X45.0 Y60.0;
N15 X30.0 Y90.0; 加工 JA段
N16 G40 G00 X0 Y90.0; 取消刀补, 回到 A点
N17 X0 Y0 Z20; 返回原点
N18 M30; 程序结束
在立式加工中心上利用上述程序加工图示零件的过程如
下:
( 1) 程序原点设定 将工件装夹在平口钳上后, 测出工
件中心距机械原点的偏置量,
输入内存后就可以设定加工程序原点 ( 图 2-32) 。
( 2) 试运行与试切 加工中心是很精密也很昂贵的机床,
所以当准备工作完成后, 应
进行试运行, 以检查程序的正确性和是否发生干涉现象 。
试运行就是将刀具离开工件表面一定距离, 如 100mm
运行程序 。 试运行应采用单
步运行方式, 逐条执行程序 。
试运行结束后, 一般还应进行试切削, 检验切削用
量是否合适, 加工精度是否达到要求 。 试切削可以采
用循环运行方式, 但操作者应始终注意控制进给速率
旋钮, 发现异常情况立即使其返回 0%处, 停止进给 。
当机床或人身产生危险时, 应立即按下紧急停止按钮,
停止机床动作 。
( 3) 对试切工件进行检测合格后, 就可以进行正
式的全自动加工了 。
图 2-32 工件的加工过程
第三节 数控语言编程
一, 什么是数控语言编程?
数控编程语言 是专门为自动编制数控加工程序设计的
一种计算机语言 。
数控语言编程 就是借助于数控编程语言实现数控自动
编程的方法 。
用数控语言编写数控加工程序的过程如图 2-33所示 。












APT
程序
NC
程序
数控语言编程过程主要分为三个阶段。
第一阶段,编写零件源程序 —— 用指定的数控语言描
述工件的形状尺寸、加工中刀具与工件的相对运动、切削
用量,冷却条件以及其它工艺参数。
第二阶段,包括译码和数学处理两个过程 —— 第二阶
段的作用是对零件源程序进行分析处理生成刀位数据。
第三阶段,后处理 —— 生成能被具体的数控机床接
受的数控代码。
表 2 - 5 国外主要数控自动编程语言系统
名 称 研制者 使用计算机 使用范围 特 点
APT Ⅰ
APT Ⅱ
APT Ⅳ
M IT
美国
H T R I
IB M 7 0 4
IB M 7 0 9 0
通用 3 ~ 6 坐

功能很强的数控语言系统
APT
AC
IB M 3 7 0 4 ~ 5 坐标 用于连续切削
ADAPT IB M S / 3 6 0 F 2 坐标 计算机语句类似 F O R T R A N,平面轮廓
A U T O S P O T B IM S / 3 6 0 E 3 坐标 用于 点位、直线、铣平面、铣槽、孔加工
A U T O M A P - 1 IB M 1 6 2 0 2 坐标 平面轮廓连续控制
S P L IT IBM 2 ~ 3 坐标 点位控制、钻孔、镗孔、只需一次处理
C O M P A C T Ⅱ C O M S H 2 ~ 3 坐标 用于车削,专供分时用户
A C T IO N Ⅱ IB M 3 6 0 2 ~ 3 坐标 用于一般工业:铣、镗、钻、车
U N IA P T
美国
微型机 2 ~ 3 坐标 功能与 APT 类似,但规模较小
E X A P T 1 2~ 3 坐标 点位 能处理工艺问题
E X A P T 2 2~ 3 坐标 车床、连续
E X A P T 3
E X A P T
协会
( 德国)
多种
2.5 坐标 铣床、连续
2C 车床两坐标轮廓加工
2CL 2, 5 坐标铣削
2P C
N E L
( 英国 )
多种 2~ 3 坐标
点位加工
IF A P T - P 点位
IF A P T - C 连续 2.5 坐标
IF A P T - CP
A D E P A
( 法国 )
多种 2~ 3 坐标
点位、连续
F A P T 富士通
( 日本 )
F A 00 M 270 - 1
0
2.5~ 3 坐标 连续 符号语言、会话型
HAPT 日立
( 日本)
H IT - A C502 0 2~ 3 坐标 连续 符号语言、会话型
P ICN IC P E R A
( 英国 )
IBM 2 坐标 点位,适应 30 多种机床,40 个 APT 语汇
M IN F A P T 法国 IBM 2 坐标 点位、各种机床
M IT U IN 荷兰 分时计算机 2 坐标 点位、车床、成组工艺、工艺参数
P A G E T
M O D A P T
意大利 IBM 360 / 40 2~ 3 坐标 连续
С А П
С П С
俄罗斯 М П Н С К
- 22
2~ 3 坐标 车削、铣削平面和三维零件
二,APT自动编程系统
1、控制面的概念
刀具 导动面 停止面
进给方向
零件面
刀尖
图 2-34 控制面的定义
导动面 DS( Drive Surface) 是指在切削加工过程中引导刀
具,保证刀具在指定的公差范围内运动的面。
零件面 PS( Part Surface) 是指在刀具沿导动面运动过程
中控制刀具高度的面。在 APT程序中,用 APT词汇定义过的
面都可以作为零件面使用。
检查面 CS( Check Surface)是指在轮廓加工中,刀具在保
持给定的导动面和零件面关系的情况下运动时,控制刀具
停止位置的面。
2,刀尖
3,静止工件原则
4 。直线逼近原则
(二)零件源程序的构成
零件源程序包括下面一些内容
1,加工坐标系的选定;
2,初始语句;
3,定义语句;
4,刀具形状描述;
5,容许误差指定;
6,刀具起始位置的指定;
7,初始运动语句;
8,运动语句;
9,与机床有关的指令语句;
10,其它语句;
11,结束语句。
(三) APT语言的基本要素
1,字符,[ = /,, ( ) + - * ** $ $$ ]。
2,数字,在零件源程序中使用的数字为浮动小数点数。
3,标识符,标识符是给图形、标量或宏指令等起的名
称。
4,语句,执行运算和控制功能的基本单位。
5,特殊字符,12个特殊字符分别说明如下:
/ — 语句中主语和谓语的分隔符。主语是决定语句形式
的要素,谓语给出的是为了说明主语部分所需要的信息;
,— 用于分隔 APT用字和各种数据的;
= — 用于图形和标量的定义中,它把标识符和标识符的
要素分隔开
+,-,*,/,** — 分别代表加, 减, 乘, 除和乘方运算;
( ) — 在运算语句中用于改变运算优先级, 在假定语句
中表示判断值;
$ — 如写在语句行的末尾, 表示该语句接续到下一行;
$$ — 该符号后的内容不需计算机处理,只是要打印在
程序清单上。
(四) APT语句
1,初始语句,PARTNO
表示后面的内容为程序名。 PARTNO这个词只能出现
在第一至第六列之间,且只能打印,对程序执行无影响。
例如:
PARTNO SADDLE SURFFACE TEST
2,注释语句,REMARK
注释语句用来在零件源程序中插入一行与程序执行
无关的注释性内容,同样只能出现在第一至第六列之间,
注释的内容可以打印。要在程序中间加注释可以用 $$开
头。
3,打印刀位数据语句,CLPRINT
Cutter Location Print 的缩写,意思是打印全部
刀位数据或刀具端点的坐标值。
4,图形定义语句
用于定义和加工路径有关的几何元素并赋名 。 定义语
句的一般形式为:
标识符 =几何要素种类 /几何要素的信息
y
L1 C1
P1 20
P3
L2 x
10 P0 10
P2 C2
图 2-35 APT的图形元素定义
P0=POINT/0,0 $$ P0表示坐标为( 0,0)的点
P1=POINT/-3,18 $$ P1为坐标为( -3,18)的点
P2=POINT/10,-8 $$ P2为坐标值为( 10,-8)的点
C1=CIRCLE/CENTER,P1,RADIUS,12
$$ C1为圆心在 P1,半径为 12的圆
C2=CIRCLE/CENTER,P2,P0
$$ C2为圆心在 P2,过 P0点的圆
L1=LINE/P1,P2 $$ L1为过 P1,P2点的直线
P3=POINT/YSMALL,INTOF,L1,C1
$$ P3为 L1和 C1的交点中 Y坐标较小的点
L2=LINE/P3,LEFT,TANTO,C2
$$ L2为过 P3点左切于圆 C2的直线
表 2 - 6 A P T 能够定义的几何元素
图形种类 APT 专用字 图形种类 APT 专用字 图形种类 APT 专用字
点 P O IN T 椭圆 E L L IP S 矢量 V E C T O R
直线 L IN E 双曲线 H Y P E R B 球 S P H E R E
平面 P L A N E 圆锥 C O N E 二次曲面 Q A D R IC
圆 C IR C L E G 二次曲线 G C O N IC 列表柱面 T A B C Y L
圆柱 C Y L N D R L 二次曲线 L C O N IC 直纹面 R L D S R F
5,运算语句
APT系统可以进行四则运算、乘方和九种函数运算。 APT
系统能够进行的函数运算如下:
ABSF() $$ 取绝对值
COSF(),SINF() $$ 正弦和余弦函数
SQRTF() $$ 取平方根
ATANF() $$ 反正切
LOGF() $$ 自然对数
DOTF() $$ 矢量的点积
EXPF() $$ e指数
LNTHF() $$ 矢量的长度
运算语句可以出现在定义语句中,如:
CIR1=CIRCLE/5,4,[R =(3+7)/2+4**3-5*6]
6,刀具形状指定语句
不同形状的刀具刀补算法不同, 因此 APT程序中必须
定义刀具的形状 。 刀具形状的一般定义方法如下:
β E
h
R
α F
D
图 2-36 刀具定义的一般形式
R R
R
D D D
CUTTER/D CUTTER/D,R CUTTER/D,
R
图 2-37 实际加工中常用的三种刀具
CUTTER/D,R,E,F,α,β,h
7,容差指定语句
APT系统中刀具的运动是用直线段去逼近任意曲线的,
容差是指用来逼近曲线的直线段与给定曲线间的最大
距离 。 APT用指定容差的办法控制逼近的精度, 指定
容差的方法有三种 。
刀具 刀具 刀具
t t
t2
t1
a) OUTTOL/t b) INTOL/t c) OUTTOL/t2
INTOL/t1
图 2-38 容差的指定
( 1) 外差 语句格式 OUTTOL/t
( 2) 内差语句格式 INTOL/t
( 3) 容差 语句格式 TOLER/t
相当于以下两条语句,INTOL/0
OUTTOL/t
系统中缺省的容差定义为 TOLER/0.0127mm 。
8,刀具起始位置指定语句
已定义过的点的符号
FROM/ 嵌套定义的点
点的 X,Y,Z坐标
例如,FROM/SETPT
FROM/( POINT/1,6,8)
FROM/1,2,6
9,连续切削用初始运动语句(启动语句)
一般形式为:
TO TO TO
GO/ ON, DS,ON, PS,ON, CS
PAST PAST PAST
启动语句中规定了运动的控制面 DS,PS,CS,其中
的 DS,PS也是下一个运动的控制面。这三个面的指定
必须按照规定的顺序。
例如 FROM/SETPT
GO/TO,S1,TO,S2,PAST,S3
语句中的修饰词 TO,ON,PAST的意义见图 2-39:
PAST
ON
TO
CS
起始
位置 DS
图 2-39 刀具和控制面的位置关系
10.连续切削的运动语句
连续运动语句描述刀具沿工件轮廓的运动,其一
般形式如下:
GORGT
GOLFT TO
GOFWD ON
GOBACK /DS,PAST, CS
GOUP TANTO
GODOWN PSTAN
DS前面的修饰语表示进给运动的方向,是指沿着前一运动
方向看去的方位。 CS的修饰语中 TO,ON,PAST的意义同
前,进给运动方向的意义如图 2-40所示。
GOUP GOFWD
GOLFT
GORGT
GOBACK
GODOWN
图 2-40 进给运动方向的定义
11.使用 GOTO/,GODELTA/的刀具运动语句(点位运动
语句)
一般形式为:
GOTO/X,Y,Z 或 GOTO/PNT1
或,GODLTA/ΔX,ΔY,ΔZ
12.重复命令语句
IF( K) ID1,ID2,ID3
13.宏指令
宏指令是指可以被 CALL语句调用的由 MACRO/语句开头
和 TERMAC语句结尾的一段指令,相当于宏定义的形式为:
标识符 =MACRO/A,B,C,...
......
TERMAC
其中 A,B,C为宏程序中用到的变量,调用宏指令时要对其赋
值。调用宏指令的形式为:
CALL/宏指令标识符,A =...,B =...,C =...,.,
14.机床有关的指令语句(后置处理程序语句)
( 1) 机床语句 MACHIN/UNIV
( 2) 主轴速度语句 SPINDL/n,CLW或 CCLW
( 3) 进给速度语句 FEDRAT/f
( 4) 冷却语句 COOLNT
ON
COOLNT/ FLOOD
MIST
OFF
( 5) 坐标系变换语句 TRANS/X,Y,Z
图 2-40中 Oxyz为编程时设定的工件坐标系,程序中的所
有坐标值都是在工件坐标系中的坐标。 O’x’y’z’是机床坐标
系,数控装置是在机床坐标系中控制刀具移动的。坐标系
变换语句使后置处理程序执行坐标变换。语句中的 X,Y、
Z是机床坐标系原点在工件坐标系中的坐标。在图 2-41的情
况下,应写为:
TRANS/-20,-10,0
( 6) 机床容差语句 MCHTOL/ε
该语句用来指定加工中机床工作台超程的最大允许值。
容差值用于机床加减速控制时确定加减速值。
( 7) 停止语句 STOP
( 8) 加工结束语句 END
y
加工坐标系
y’
18
12
10 o x
机床坐标系
O’ x’
图 2-41 坐标变换
三,APT程序的例子
[例 2-7] 编写图 2-42所示零件的钻孔加工程序。
以下这段程序中选用了 φ12和 φ6的钻头,快速进给速度选
2400mm/min,工进速度为 10mm/min。加工起刀点在
SETPT,先钻 φ12孔,然后钻 φ6孔。零件源程序如下:
PARTNO EXAMPLE,N01 标题
REMARK TYPE.KS— 002 注释语句
REMARK HUYANG.10— 8— 2000
$$ 空一行
MACHIN/BOWE3 指定后处理程序
CLPRNT 打印刀位数据
TRANS/200,100,0 坐标变换
SPINDL/900,CLW 设定主轴转速
FEDRAT/2400 设定快进速度
SETPT=POINT/60,-15,5 起刀点定义
CUTTER/12 指定刀具
FROM/SETPT 指定起刀点
GOTO/0,25,5 主轴移动到第一个孔的中心
FEDRAT/10 设定工进速度
COOLNT/FLOOD 开冷却液
GODLTA/0,0,-26 钻第一个孔
FEDRAT/2400 快进速度
GODLTA/0,0,26 快速退刀
GOTO/0,-25,5 移至第二孔中心
FEDRAT/10 工进速度
GODLTA/0,0,-26 钻第二孔
FEDRAT/2400 快进速度
GODLTA/0,0,26 快速退刀
GOTO/SETPT 回起刀点
CUTTER/6 换钻头
FEDRAT/2400 快进速度
GOTO/-35,0,5 移至第三孔中心位置
FEDRAT/10 工进速度
GODLTA/0,0,-15 钻第三孔
FEDRAT/2400 快进速度
GODLTA/0,0,15 快速退刀
GOTO/35,0,5 移至第四孔中心位置
FEDRAT/10 工进速度
GODLTA/0,0,-15 钻第四孔
FEDRAT/2400 快进速度
GODLTA/0,0,15 快速退刀
GOTO/SETPT 回起刀点
END 机床停止
FINI 程序结束
图 2-42 钻孔加工零件图
y
Ⅰ φ12
Ⅱ φ70 φ6
Ⅳ x
φ50 o
Ⅲ SETPT( 60,-15,5)
z
16 10 5
5
[例 2-8] 编制图 2-43所示零件的轮廓加工程序。
选择刀具为 φ10mm的立铣刀,快速进给速度为 400mm/min,工进速
度为 100mm/min。工件坐标系选择如图所示,机床原点为 O’( 200,-60,
0)。铣削起点为 SETPT,顺时针切削。零件源程序如下:
PARTNO EXAMPLE NO2 初始语句
REMARK,KS—02 注释语句
REMARK,HUYANG 10-8-2000
$$ 注释语句
MACHIN/FANUC.6M 调用指定的后处理程序
CLPRNT 打印刀位数据
OUTTOL/0.002 指定外差
INTOL/0.002 指定内差
TRANS/200,-60,0 坐标变换
CUTTER/10 φ10mm的平头立铣刀
LN1=LINE/20,20,20,70 几何元素定义语句
LN2=LINE/( POINT/20,70),ATANGL,75,LN1
LN3=LINE/( POINT/40,20),ANGLE,45
LN4=LINE/20,20,40,20
CIR=CIRCLE/YSMALL,LN2,YLARGE,LN3,RADIUS,10
XYPL=PLANE/0,0,1,0
SETPT=POINT/-20,-20,10
FROM/SETPT 指定起刀点
FEDRAT/2400 快进速度
GODLTA/30,30,-5 接近工件
SPIDL/ON 开主轴
COOLNT/ON 开冷却
FEDRAT/100 工进速度
GO/TO,LN1,TO,XYPL,TO,LN4 初始运动语句
TLLFT,GOLFT/LN1,PAST,LN2 连续运动语句,DS左
GORGT/LN2,TANTO,CIR
GOFWD/CIR,TANTO,LN3
GOFWD/LN3,PAST,LN4
GORGT/LN4,PAST,LN1
FEDRAT/400 快进速度
GODLTA/0,0,10 抬刀
SPINDL/OFF 关主轴
COOLNT/OFF 关冷却
FEDRAT2400 设定快速
GOTO/SETPT 回起刀点
END 机床停止
PRINT/3,ALL 打印图形数据
FINI 结束语句
y
60 LN2
LN1 CIR
40 LN3
LN4
20
o
SETPT 20 40 60 x
10 12
图 2-43 轮廓铣削零件图
第四节 图形编程
一、图形编程的基本概念
数控技术可以说包含两方面的问题,一方面是数控系统
的开发与研制,另一方面是 数控机械的应用。数控系统
的开发研制主要由数控机械生产厂家来完成,对绝大部分应
用数控机械的工业部门来说,主要问题是怎样使用好数控机
械。而要用好数控机械,最主要的问题就是怎样正确,高效
地编制数控加工程序。
数控指令系统是一种语言,是人和数控系统都能够理解
的语言。人将自己对被加工工件的理解和加工过程的设计用
数控指令系统编成加工程序,数控系统是通过编译程序将数
控加工程序翻译成机器最终能够理解和执行的二进制代码。
现在的指令系统起源于数控技术发展的初期,它过多地照顾
了机器的翻译能力,而增加了人在编写程序过程中的工作量。
以 APT为代表的数控语言编程比起直接用数控代码编程
序进了一步,它把编程中大量的繁琐、重复的数值计算转
给计算机去做,减少了人的工作量。用 APT编数控程序比以
前轻松多了。但是从根本上说,数控语言仍然是一种符号
语言,人们要用好 APT编写数控加工程序仍然要记忆很多符
号和规则,仍然要写长长的程序清单。对于中国的数控机
械用户来说,要得心应手地使用这些起源于英文的符号和
指令,并不是一件很简单的事情。正是由于这些原因,APT
的应用实际上并不普遍。要使数控技术从高技术的楼阁中
解放出来,变为普通操作者都容易掌握的工具,必须从根
本上解决编程难的问题。
现代计算机技术的发展突飞猛进,计算机不仅能处理数
字、符号,还能处理图形,甚至能处理一些只有人类才
能进行的判断和决策问题。在这样的背景下,从二十世
纪九十年代初以来,人们开始探索一种新的编程方法,
直接用图形方式输入零件的几何要素、编辑加工路径、
设定工艺参数并且自动生成数控代码的编程方法,这就
是图形编程技术。图形编程技术把更多的工作转给计算
机去做,编程者只要正确地设计零件的加工过程,选定
合理的工艺参数就够了。由于图形编程技术完全用图形
交互的方式输入零件几何要素和编辑加工路径,在交互
过程中计算机会给出详细的操作提示,需要编程者记忆
的内容很少。
本节以作者开发的一个小型轮廓加工编程
系统为例,介绍图形编程系统的使用方法、基本原理和
系统结构。
二,平面轮廓加工图形编程软件举例
这是一个用 Borland C++开发的一套基于 DOS操作系统
的,集图形输入、刀位数据生成和后处理于一体的图形编
程软件。由于目前大多数数控系统都是基于 DOS操作系统
的,所以该软件可以作为切割类数控系统的编程模块实现
在线的图形编程,也可以用做独立的轮廓加工类机床的编
程工具。现将系统的功能按使用顺序介绍如下:
(一)图形元素的输入
图形元素的输入功能用于定义工件轮廓中包含的几
何元素,可以输入直线、圆、圆弧,每一种图形元素设计
了不同的输入方式,用鼠标和数值输入相结合的方法进行。
输入过程中每一步,在提示栏中会提示用户下一步应该进
行的操作。如有操作错误,则会给出错误提示,用户可按
ESC键或鼠标右键,返回上一步,重新输入。
1,直线的输入方法
( 1) 指定直线的起点和终点;
( 2) 指定直线上一点,输入直线的斜率;
( 3) 指定直线上一点和与之平行的直线;
指定直线上一点和于之垂直的直线。
2,圆的输入
( 1)指定圆心,输入半径值;
( 2)选定圆周上的三个点。
3,圆弧的输入
( 1)选定圆弧起点、终点和圆弧上的一点;
( 2)指定圆心、圆弧起点和终点。
输入图形元素时的界面如图 2-45所示。
直 线
x 12.000 y12.000 step,10 ratio,5.0 file,NCTEST.GWG
圆 弧

宏 功 能
图形编辑
加工路线
三点画弧
圆心端点
返 回
回主菜单
请指定圆弧终点
图 2-45 图形元素的输入
(二)生成加工路线
用户输入几何元素的时候可以不考虑加工顺序,只需
考虑定义几何元素的方便,按任意顺序输入。然后按下列
步骤形成加工路线。
1,加工路线的编辑
利用图形编辑功能将无序的,长短不齐的几何元素编
辑成首尾衔接的工件轮廓,系统提供了如下编辑功能:
( 1)图形元素的延长和缩短;
( 2)两个图形元素间的裁剪;
( 3)图形元素的平移。
2,选择起刀点和切入元素
如果工件轮廓是内轮廓,应将起刀点选在轮廓之内,
反之应选在轮廓之外。起刀点的选择原则见手工编程一
节。切入元素是指工件轮廓上最先加工的几何元素。选
择了起刀点和切入元素后,系统按最短路径原则生成起
刀点到切入元素间的直线段并将该直线段加入到图形元
素数据中去。
3,选定加工方向
同样的轮廓有顺时针和逆时针两种不同的切削方式,
不同的加工方向会影响工件的加工精度和表面质量。选
定了加工方向以后,系统自动将图形元素按加工路径排
序,并将排序后的图形元素存入数据库。
编辑完成的加工路线如图 2-46所示。
x 12.000 y12.000 step,10 ratio,5.0 file,NCTEST.GWG
直 线
圆 弧

宏 功 能
图形编辑
加工路线
回主菜单
加工起点
顺时针切
逆时针切
返 回请指定加工方向
图 2-46 编辑完成的加工路线
(三)宏指令功能
系统设计了宏指令功能,主要有以下两方面的
用途:
1,用户可以将自己编程中经常用到的几何元素
作为一个几何元素组存储起来,整体地使用,可
以使编程更加灵活,加快编程速度。
2,加工路线相当于刀位数据,加工路线编辑完
成后也将作为宏存储,因为加工路线是通用的,
这样便于在后处理过程中用同一加工路线生成不
同机器的数控程序。
(四)后处理
对于某一特定的机床,数控装置的指令形式不
同,机床的辅助功能也不一样。为了使所开发的程序具有
通用性,设计了后置处理模块。用户只要按规定的格式写
出具体机床的后处理文件,并以 PST为扩展名保存在系统
的 POST子目录下,就可以通过后置处理模块,生成指定机
床的数控指令程序。由于后处理模块和后处理文件是分离
的,系统具有开放的后处理功能,允许用户在任何文本编
辑器上编辑自己的后处理文件并添加到系统中去。
(五)参数设定功能
生成数控代码之前,需要设定机床和工艺参数。
本系统将经常用到的参数保存在数据库中,用户通过浏览
数据库可以很方便地用填表的方式设定自己需要的参数。
参数设定界面见图 2-47。
x 12.000 y12.000 step,10 ratio,5.0 file,NCTEST.GWG
文件功能
图形编程
工艺参数
加工仿真
通 讯
退 出
选项, 空格改变设定值, 回车确认
切丝直径 0.17
坐标性质 绝对坐标
机床型号 Sodick
粗 糙 度 2.50
切 削 液 乳 化 液
进给速度 20.0
锥度方向 正 锥 度
返 回
刀补方向 左 刀 补
锥 度 值 1.5
图 2-47 工艺参数的设定
(六 ) 其它功能
1.文件功能
文件功能为用户提供以文件为单位的服务功能,包括
创建新文件、读入文件、保存文件和删除文件等。
2.操作提示
屏幕下方设计了状态栏,用户操作过程中每一步都会在
状态栏中给出下一步的操作提示,将需要用户记忆的内容
减到最少。
3.加工仿真
系统提供加工过程仿真功能,使用户能预先检验程序编
得是否正确,以减少由于编程错误引起的材料损失和工时
浪费。
三,图形编程系统的主要技术问题
1,零件坐标系到绘图区域的变换
图形编程系统的最大特征是用图形交互的方式输入几何
元素,几何元素的坐标值是由光标在绘图窗口内的位置决
定的,在存储图形数据前,必须把光标位置换算成零件空
间的坐标值,这就是零件坐标系到绘图区域的变换。
如 2-48所示,设绘图窗口左上角的屏幕坐标为( Xsmin,
Ysmin),右下角屏幕坐标( Xsmax,Ysmax),映射到零
件空间的左上角坐标为( Xpmin,Ypmin),右下角坐标为
( Xpmax,Ypmax),Ps是零件轮廓上任意一点在屏幕上
的坐标,Pp为 Ps映射到零件空间的坐标。它们之间的换算
关系为:
( Xsmax,Ysmax)
Pp( Xp,Yp)
窗口
Ps( Xs,Ys)
( Xpmin,Ypmin) 用户空间
( 0,0)
( Xsmin,窗口
Ysmin)
( Xpmax,Ypmax)
视口
( Xsmax,Ysmax)
( 639,479)
图 2-48 零件坐标系到绘图区域的变换
如 2-48所示,设绘图窗口左上角的屏幕坐标为( Xsmin,Ysmin),右
下角屏幕坐标( Xsmax,Ysmax),映射到零件空间的左上角坐标为
( Xpmin,Ypmin),右下角坐标为( Xpmax,Ypmax),Ps是零件轮
廓上任意一点在屏幕上的坐标,Pp为 Ps映射到零件空间的坐标。它们
之间的换算关系为:
Xp=Xpmin+Kx(Xs-Xsmin)
Yp=Ypmin+Ky(Ys-Ysmin)
其中 Kx和 Ky分别为 X和 Y方向的比例系数。一般取
K=Kx=Ky=( Xpmax-Xpmin) /( Xsmax-Xsmin)
=( Ypmax-Ypmin) /( Ysmax-Xsmin)
改变 K值,可以改变绘图窗口内几何元素的大小;改变( Xpmin,
Ypmin)可以改变几何元素在绘图窗口的位置。
2,加工环的自动生成算法
从轮廓的起点到终点间的路径称为加工环。这里
“环”的概念是广义的,加工环可以是封闭的,也可以是
不封闭的。
在图形元素的输入过程中,并不要求用户按加工路
径的顺序输入,同时用户还可能输入与加工路径无关的图
形信息,如各种辅助线、轮廓编辑残余的线段等。本系统
可以从中提取有效图形元素,并组成具有确定拓扑关系的
加工环。生成加工环后,无关图形元素被自动删除,该算
法可以将刀位数据量减到最小。
为了实现上述目的,在所有图形元素的基类中定义包含
起点和终点信息的数据成员。图形元素的基类定义如下:
class GraphElement
{
public:
char LineType;
float StartPointX;
float StartPointY;
float EndPointX;
float EndPointY;
//method:
};
当用户选定了加工路径后,系统按下述流程自动生成加工环:
( 1)取得加工环起点;
( 2)搜索起点所在的图形元素,并给该图形元素基类中
起点和终点数据元素赋值;
( 3)搜索包含( 2)中得到的图形元素终点的其它图形元
素,记录其起点和终点位置;
( 4)加工环终点判别。若到达终点,转( 6);
( 5)转( 2);
( 6)记录加工环的几何和拓扑信息,生成刀位数据文件。
3,后处理过程的实现
特定机床的后处理信息作为数据文件存放在系统中,和
系统的后处理功能是分开的。这样做好处是,用户只要按
照指定的格式编写机床的后处理信息文件,就能生成任意
机床的数控程序。下面是 Sodik线切割机后处理文件的例
子:
Customization file for Sodick Wire-cut
0,File header
"N0000 (MAIN,PROGRAM);"
1,Main segment of NC program
"G54","G90";
"G00",xr,yr,"U0,V0,Z0";
abs;
"G29";
"T84";
t_b_srf;
off_dir,off_val;
ang_dir,angle;
"M98,P0001";
"T85";
"G74";
"M00";
"M02";
"N0001" "(SUB_PROGRAM);"
2,Caned line block
G_code,x_coord,y_coord;
3,Caned circle block
G_code,x_coord,y_coord,i_coord,j_coord;
4,Tool change
"G50"
"M99"
"(*** AMZY)"
"N000",t1," (SUB PROG)"
5,End of file for tool zero or misc #2 drilling cycle
"G40 G01",xr,yr
"M99“
6,End segment of NC program
"G40","G90";
"G01",xr,yr;
abs;
"M99";
7,Canned text 1
"M00"
8,Canned text 2
"M01"
9,Cancel cutter compensation
"G40“
10,Cutter compensation left
"G41"
11,Cutter compensation right
"G42"
用该后处理文件生成的数控加工程序具有主程序和
子程序的结构。内容 1表示主程序的结构,子程序的标号
从 N0001开始,其中包含了一些 Sodick线切割机的特殊指
令。第 2~3项内容规定了直线运动指令和圆弧插补指令的
格式。第 4~5项内容是用于具有更换工具功能的电火花加
工机床上的生成更换工具指令。第 6项内容生成子程序的
结尾部分。第 7~8项内容产生不同的停止方式。第 9~11项
内容用于生成不同的刀具补偿指令。由此生成的数控加工
程序如下,和后处理文件相比较,可以帮助理解其中的内
容。
N0000(MAIN PROGRAM); 标题
G54 G90; 绝对坐标
G00 X-0.04 Y0,U0,V0,Z0.; 移动到起刀点
G90;
G29;
T84;
G40 H0; 不刀补
G50 A0.;
M98 P0001; 调用子程序
T85;
M00;
M02;;
N0001(SUB_PROGRAM); 子程序
G01 X0.09 Y12.270; 直线插补指令
G01 X-5.610 Y12.330;
G01 X-10.990 Y5.490;
G03 X4.240 Y-8.460 I15.950 J2.110; 圆弧插补指令
G03 X13.700 Y12.120 I-13.280 J18.570;
G01 X0.09 Y12.270;;
G40 G90;
G01 X-0.040 Y0; 回起刀点
G90;
M99; 子程序返回
四,图形编程系统软件的实现
系统的总体结构如图 2-49所示。用户通过界面系统
输入几何元素,控制加工环的生成及后处理过程。每个模
块具有独立的功能,图形元素输入模块接受用户输入的几
何元素和对几何元素的编辑修改,接受输入的同时对用户
输入的几何元素进行校验,如有错误,给出提示。生成加
工环模块对用户输入的图形元素按照加工方向排序,并将
排序结果保存为中间文件,中间文件给出的是刀位数据。
后置处理模块将刀位数据转换成特定机床的数控指令。加
工仿真模块对生成的数控代码进行运动仿真,供用户检验
代码的正确性。
图形元素
输入
生成
加工环
后置处理
加工仿真后处理
文件
工艺
数据库
数控代码 文件
系 统 界 面
图 2-49 系统结构简图
第五节 数控加工过程仿真
一、为什么要进行加工仿真?
不管是手工编程还是自动编程,编程产生的数控代
码在实际加工前,一般要进行试切,即用木材、石蜡等易
切削材料,以较高的进给速度进行加工。如果发现错误,
要修改数控代码,然后再进行试切,直到满意为止。试切
可能要重复多次,既浪费材料和工时,也无法保证安全性,
因为试切过程中仍然可能发生刀具碰到工作台或夹具的情
况。数控加工仿真就是利用计算机图形学的方法,采用动
态的真实感图形,模拟数控加工全过程。通过运行数控加
工仿真软件,能够判别加工路径是否合理,检测刀具的碰
撞和干涉,达到优化加工参数、降低材料消耗和生产成本、
最大限度地发挥数控设备的利用率的目的。一个完整的数
控加工仿真软件应包括以下功能:
1.数控代码的翻译和检查;
2.毛坯和零件图形的输入和显示;
3.刀具的定义和图形显示;
4.刀具运动及余量去除过程的动态图形显示;
5.刀具碰撞及干涉检查;
6.仿真结果报告。
数控加工过程仿真的难点是动态图形的生成和刀具干涉检查。
常用的方法有两种:
一是用毛坯与刀具运动形成的包络体进行“差”运算。这种方
法与零件的几何模型与实际加工过程一致,但对实体建模技术要求很高,
计算量大,仿真过程和检测的实时性不容易保证。
另一种算法是用象空间的消隐算法来完成实体布尔运算。该方
法能实现动画显示,但由于原始数据都已转化为象素值,所以不能进行
精确检测。
二,车削仿真
卡盘 毛坯 尾架
干涉区域 刀

图 2-50 车削干涉检验示意图
车削属于二维加工,所以车削仿真也可以在二维环境
下进行。车削加工的工艺系统可以分为运动部件和静
止部件两部分,运动部件包括刀具、刀架、溜板等,
静止部件包括卡盘、尾架、托架等。车削加工仿真的
内容包括加工轨迹仿真和干涉检验,加工轨迹仿真就
是计算并显示出刀尖的运动轨迹,用来检查工件形状
是否正确。干涉检验用于检查加工过程中是否会发生
碰撞,具体方法是,计算出车床移动部件沿运动轨迹
所扫过的区域,将该面积与工件图形及机床静止部件
进行“交”运算,从而判断是否发生干涉。图 2-50为
车削加工过程仿真示意图。由于全部运算都在二维环
境进行,所以不仅能以动画形式模拟加工过程,而且
能准确计算出毛坯材料的切除量和机床运动部件与工
件和机床附件发生干涉碰撞的具体数据。
三、铣削仿真
铣削加工的图形仿真和刀具干涉检查在技术难度
上远远超过车削加工。由于三维实体布尔运算对几何造
型技术要求很高,而且也难以满足实时动画显示的要求,
所以目前铣削仿真大多采用离散检测算法。该算法的基
本思想是,将曲面按一定的精度离散,然后在每个离散
点处计算该点沿法线方向到刀具包络体的距离。通过判
断距离的正负和大小来检测刀具的过切和漏切。
如图 2-51表示了刀具与被加工曲面间的几种关系。
其中 n为曲面检测点处的法矢量,s为检测点到刀体的法
向距离。如果 sg ≤s≤sm 则在误差范围内,s<sg则过切,
s>sm则漏切,其中 sg和 sm分别为曲面加工精度中的内偏
差和外偏差。
通过计算,得出曲面上各检测点沿法线方向到刀
具包络体的距离后,可判断此时刀具的切削深度
和金属切除量,从而选取合适的进给速度和主轴
转速。采用这种切削用量优化方法,可以比传统
的在整个加工过程中维持一个恒定的进给速度节
省大量的加工时间。同时,对于进给速度变化频
繁或变化幅度过大的刀具运动,可建议用户改变
刀具轨迹,重新规划走刀方式,使加工路径沿曲
率变化较小的方向。这样可以使加工过程中金属
切除率比较均匀。
过切
sm n 漏切
n n
sg 正常切削
曲面到刀具包络体的法向距离
加工过程的动画显示是为了对加工过程有一个
直观、全面的了解。切削过程的图形仿真技术与一
般的真实感图形生成算法完全相同,具体可以采用
Z缓存方法,先计算刀具包络体所对应的屏幕象素
的深度值和颜色灰度值,然后与毛坯体在该处的象
素进行比较,得出最后的显示图象。
返回课件首页返回本章首页