南京工程学院数控原理与系统课程设计_直线-直线刀具补偿刀补程序源代码

合集下载

手动CNC编程G代码和 M代码

手动CNC编程G代码和 M代码
主轴顺时针转切削液开
M14
主轴逆时针转切削液开
M30※
法式结束
法式结束后,自动返回到法式开头的位置
M98
子法式调用
M98 P L P:法式地址L:调用次数
M99※
子法式返回
创作时间:二零二一年六月三十日
G83※
钻削循环(间隙进给)
G83 X Y ZR F L P Q I J K
Q:每次下降高度L:第一次切削深度
J:每一次切削后切削量的减速少值
K:最少切削量
G84
攻丝循环
G84 X Y Z R F L P
G85
精钻削循环
G85 X Y Z R F L P
G86
镗孔循环
G86X Y Z R F LP
G87
表1.1 G功能代码表(数控铣加工)之南宫帮珍创作
创作时间:二零二一年六月三十日
G代码
组别
功能
备注
G00※
01
快速点定位
G01※
直线插补
G02※
顺时针圆弧插补
G02 XYIJ,或G02 XYR
XY:终点坐标,I、J:圆心相对起点在X, Y方向的距离, R:圆半径
G03※
逆时针圆弧插补
G04
00
暂停(延时)
组别
功能
备注
G50
11
G51
G51 XYZIJK
I,J,K:X,Y,Z轴向缩放系数
取消坐标系镜像
镜像
G51.1 X以平行于X轴的直线为对称轴
G51.1 Y以平行于Y轴的直线为对称轴
G51.1 Z以(X,Y )为对称点
G53
00
设置为机床坐标系模式

18_数控车床编程实训—直线插补指令编程

18_数控车床编程实训—直线插补指令编程

直线插补指令G01数控编程零件图样%3305N1 G92 X100 Z10(设立加工工件坐标系,定义对刀点的位置)N2 G00 X16 Z2 M03 (移到倒角延长线,Z轴2mm处)N3 G01 U10 W-5 F300 (倒3×45°角)N4 Z-48 (加工Φ26外圆)N5 U34 W-10(切第一段锥)N6 U20 Z-73 (切第二段锥)N7 X90 (退刀)N8 G00 X100 Z10 (回对刀点)N9 M05 (主轴停)3×45°58487310N10 M30(主程序结束并复位)文- 汉语汉字编辑词条文,wen,从玄从爻。

天地万物的信息产生出来的现象、纹路、轨迹,描绘出了阴阳二气在事物中的运行轨迹和原理。

故文即为符。

上古之时,符文一体。

古者伏羲氏之王天下也,始画八卦,造书契,以代结绳(爻)之政,由是文籍生焉。

--《尚书序》依类象形,故谓之文。

其后形声相益,即谓之字。

--《说文》序》仓颉造书,形立谓之文,声具谓之字。

--《古今通论》(1) 象形。

甲骨文此字象纹理纵横交错形。

"文"是汉字的一个部首。

本义:花纹;纹理。

(2) 同本义[figure;veins]文,英语念为:text、article等,从字面意思上就可以理解为文章、文字,与古今中外的各个文学著作中出现的各种文字字形密不可分。

古有甲骨文、金文、小篆等,今有宋体、楷体等,都在这一方面突出了"文"的重要性。

古今中外,人们对于"文"都有自己不同的认知,从大的方面来讲,它可以用于表示一个民族的文化历史,从小的方面来说它可用于用于表示单独的一个"文"字,可用于表示一段话,也可用于人物的姓氏。

折叠编辑本段基本字义1.事物错综所造成的纹理或形象:灿若~锦。

2.刺画花纹:~身。

3.记录语言的符号:~字。

~盲。

以~害辞。

4.用文字记下来以及与之有关的:~凭。

机床数控系统加工代码

机床数控系统加工代码

史上最全G代码解释!2015-09-28FANUC车床G代码G代码解释G00 定位 (快速移动)G01 直线切削G02 顺时针切圆弧(CW,顺时钟)G03 逆时针切圆定位(快速移动)弧(CCW,逆时钟) G04 暂停(Dwell)G09 停于精确的位置G20 英制输入G21 公制输入G22 内部行程限位有效G23 内部行程限位无效G27 检查参考点返回G28 参考点返回G29 从参考点返回G30 回到第二参考点G32 切螺纹G40 取消刀尖半径偏置G41 刀尖半径偏置(左侧)G42 刀尖半径偏置(右侧)G50 修改工件坐标;设置主轴最大的RPMG52 设置局部坐标系G53 选择机床坐标系G70 精加工循环G71 内外径粗切循环G72 台阶粗切循环G73 成形重复循环G74 Z 向步进钻削G75 X 向切槽G76 切螺纹循环G80 取消固定循环G83 钻孔循环G84 攻丝循环G85 正面镗孔循环G87 侧面钻孔循环G88 侧面攻丝循环G89 侧面镗孔循环G90 (内外直径)切削循环G92 切螺纹循环G94 (台阶) 切削循环G96 恒线速度控制G97 恒线速度控制取消G98 每分钟进给率G99 每转进给率支持宏程序编程FANUC铣床G代码G代码解释G00 顶位(快速移动)定位(快速移动) G01直线切削G02顺时针切圆弧G03逆时针切圆弧G04暂停G15/G16极坐标指令G17XY 面赋值G18XZ 面赋值G19YZ 面赋值G28机床返回原点G30机床返回第2和第3原点*G40取消刀具直径偏移G41刀具直径左偏移G42刀具直径右偏移*G43刀具长度+ 方向偏移*G44刀具长度- 方向偏移G49取消刀具长度偏移*G53机床坐标系选择G54工件坐标系1选择G55工件坐标系2选择G56工件坐标系3选择G57工件坐标系4选择G58工件坐标系5选择G59工件坐标系6选择G73高速深孔钻削循环G74左螺旋切削循环G76精镗孔循环*G80取消固定循环G81中心钻循环G82反镗孔循环G83深孔钻削循环G84右螺旋切削循环G85镗孔循环G86镗孔循环G87反向镗孔循环G88镗孔循环G89镗孔循环*G90使用绝对值命令G91使用增量值命令G92设置工件坐标系*G98固定循环返回起始点*G99返回固定循环R点G50比例缩放G51G68坐标系旋转G69支持宏程序编程FANUC M指令代码M代码说明M00程序停M01选择停止M02程序结束(复位)M03主轴正转(CW)M04主轴反转(CCW)M05主轴停M06换刀M08切削液开M09切削液关M30程序结束(复位) 并回到开头M48主轴过载取消不起作用M49主轴过载取消起作用M94镜象取消M95 X坐标镜象M96Y坐标镜象M98子程序调用M99子程序结束SIEMENS铣床G代码地址含义D刀具刀补号F进给率(与G4 一起可以编程停留时间) G G功能(准备功能字)G0快速移动G1直线插补G2顺时针圆弧插补G3逆时针圆弧插补CIP中间点圆弧插补G33恒螺距的螺纹切削G331不带补偿夹具切削内螺纹G332不带补偿夹具切削内螺纹. 退刀CT带切线的过渡圆弧插补G4快速移动G63快速移动G74回参考点G75回固定点G25主轴转速下限G26主轴转速上限G110极点尺寸,相对于上次编程的设定位置G110极点尺寸,相对于当前工件坐标系的零点G120极点尺寸,相对于上次有效的极点G17*X/Y平面G18Z/X平面G19Y/Z平面G40刀尖半径补偿方式的取消G41调用刀尖半径补偿, 刀具在轮廓左侧移动G42调用刀尖半径补偿, 刀具在轮廓右侧移动G500取消可设定零点偏置G54第一可设定零点偏置G55第二可设定零点偏置G56第三可设定零点偏置G57第四可设定零点偏置G58第五可设定零点偏置G59第六可设定零点偏置G53按程序段方式取消可设定零点偏置G60*准确定位G70英制尺寸G71*公制尺寸G700英制尺寸,也用于进给率FG710公制尺寸,也用于进给率FG90*绝对尺寸G91增量尺寸G94*进给率F,单位毫米/分G95主轴进给率F,单位毫米/转G901在圆弧段进给补偿"开"G900进给补偿"关"G450圆弧过渡G451等距线的交点I插补参数J插补参数K插补参数I1圆弧插补的中间点J1圆弧插补的中间点K1圆弧插补的中间点L子程序名及子程序调用M辅助功能M0程序停止M1程序有条件停止M2程序结束M3主轴顺时针旋转M4主轴逆时针旋转M5主轴停M6更换刀具N副程序段:主程序段P子程序调用次数RET子程序结束S主轴转速,在G4 中表示暂停时间T刀具号X坐标轴Y坐标轴Z坐标轴CALL循环调用CHF倒角,一般使用CHR倒角轮廓连线CR圆弧插补半径GOTOB向后跳转指令GOTOF向前跳转指令RND圆角支持参数编程SIEMENS802S/CM 固定循环循环说明LCYC82 钻削,沉孔加工LCYC83 深孔钻削LCYC840 带补偿夹具的螺纹切削LCYC84 不带补偿夹具的螺纹切削LCYC85 镗孔LCYC60 线性孔排列LCYC61 圆弧孔排列LCYC75 矩形槽,键槽,圆形凹槽铣削SIEMENS802DM/810/840DM 固定循环循环说明CYCLE82 中心钻孔CYCLE83 深孔钻削CYCLE84 性攻丝CYCLE85 铰孔CYCLE86 镗孔CYCLE88 带停止镗孔CYCLE71 端面铣削LONGHOLE 一个圆弧上的长方形孔POCKET4 环形凹槽铣削POCKET3 矩形凹槽铣削SLOT1 一个圆弧上的键槽SLOT2 环行槽SIEMENS车床G 代码地址含义D刀具刀补号FF进给率(与G4 一起可以编程停留时间) G G功能(准备功能字)G0快速移动G1直线插补G2顺时针圆弧插补G3逆时针园弧插补G33恒螺距的螺纹切削G4快速移动G63快速移动G74回参考点G75回固定点G17(在加工中心孔时要求)G18*Z/X平面G40刀尖半径补偿方式的取消G41调用刀尖半径补偿, 刀具在轮廓左侧移动G42调用刀尖半径补偿, 刀具在轮廓右侧移动G500取消可设定零点偏置G54第一可设定零点偏置G55第二可设定零点偏置G56第三可设定零点偏置G57第四可设定零点偏置G58第五可设定零点偏置G59第六可设定零点偏置G53按程序段方式取消可设定零点偏置G70英制尺寸G71*公制尺寸G90*绝对尺寸G91增量尺寸G94*进给率F,单位毫米/分G95主轴进给率F,单位毫米/转I插补参数I1圆弧插补的中间点K1圆弧插补的中间点L子程序名及子程序调用M辅助功能M0程序停止M1程序有条件停止M2程序结束M30M17M3主轴顺时针旋转M4主轴逆时针旋转M5主轴停M6更换刀具N副程序段:主程序段P子程序调用次数RET子程序结束S主轴转速,在G4 中表示暂停时间T刀具号X坐标轴Y坐标轴Z坐标轴AR圆弧插补张角CALL循环调用CHF倒角,一般使用CHR倒角轮廓连线CR圆弧插补半径GOTOB向后跳转指令GOTOF向前跳转指令RND圆角支持参数编程SIEMENS 801、802S/CT、802SeT 固定循环循环说明LCYC82 钻削,沉孔加工LCYC83 深孔钻削LCYC840 带补偿夹具的螺纹切削LCYC84 不带补偿夹具的螺纹切削LCYC85 镗孔LCYC93 切槽循环LCYC95 毛坯切削循环LCYC97 螺纹切削SIEMENS 802D、810D/840D 固定循环循环说明CYCLE71 平面铣削CYCLE82 中心钻孔YCLE83 深孔钻削CYCLE84 刚性攻丝CYCLE85 铰孔CYCLE86 镗孔CYCLE88 带停止镗孔CYCLE93 切槽CYCLE94 退刀槽形状E..FCYCLE95 毛坯切削CYCLE97 螺纹切削HNC车床G代码G代码解释G00定位(快速移动)G01直线切削G02顺时针切圆弧(CW,顺时钟)G03逆时针切圆弧(CCW,逆时钟)G04暂停(Dwell)G09停于精确的位置G20英制输入G21公制输入G22内部行程限位有效G23内部行程限位无效G27检查参考点返回G28参考点返回G29从参考点返回G30回到第二参考点G32切螺纹G36直径编程G37半径编程G40取消刀尖半径偏置G41>刀尖半径偏置(左侧)G42刀尖半径偏置(右侧)G53直接机床坐标系编程G54—G59坐标系选择G71内外径粗切循环G72台阶粗切循环G73闭环车削复合循环G76切螺纹循环G80内外径切削循环G81端面车削固定循环G82螺纹切削固定循环G90绝对值编程G91增量值编程G92工件坐标系设定G96恒线速度控制G97恒线速度控制取消G94每分钟进给率G95每转进给率支持参数与宏编程HNC铣床G代码G代码组别解释*G0001 定位(快速移动)G01直线切削G02顺时针切圆弧G03逆时针切圆弧G0400 暂停G0716 虚轴指定G0900 准停校验*G1702 XY 面赋值G18XZ 面赋值G19YZ 面赋值G2008 英寸输入*G21毫米输入G22脉冲当量G2403 镜像开*G25镜像关G2800 返回到参考点G29由参考点返回*G4007 取消刀具直径偏移G41刀具直径左偏移G42刀具直径右偏移G4308 刀具长度+ 方向偏移G44刀具长度- 方向偏移*G49取消刀具长度偏移*G5004 缩放关G51缩放开G5200 局部坐标系设定G53直接机床坐标系编程*G5414 工件坐标系1选择G55工件坐标系2选择G56工件坐标系3选择G57工件坐标系4选择G58工件坐标系5选择G59工件坐标系6选择G6000 单方向定位*G6112 精确停止校验方式G64连续方式G6805 旋转变换*G69旋转取消G7309 高速深孔钻削循环G74左螺旋切削循环G76精镗孔循环*G80取消固定循环G81中心钻循环G82反镗孔循环G83深孔钻削循环G84右螺旋切削循环G85镗孔循环G86镗孔循环G87反向镗孔循环G88镗孔循环G89镗孔循环*G9003 使用绝对值命令G91使用增量值命令G9200 设置工件坐标系*G9414 每分钟进给G95每转进给*G9810 固定循环返回起始点G99返回固定循环R点支持参数与宏编程HNC M指令M代码说明M00 程序停M01 选择停止M02 程序结束(复位)M03 主轴正转(CW)M04 主轴反转(CCW)M05 主轴停M06 换刀M07 切削液开M09 切削液关M98 子程序调用M99 子程序结束KND100铣床G代码G代码组别解释G0001 定位(快速移动)G01 直线切削G02 顺时针切圆弧G03 逆时针切圆弧G04 00 暂停G1702 XY 面赋值G18 XZ 面赋值G19 YZ 面赋值G2800 机床返回原点G29 从参考点返回*G4007 取消刀具直径偏移G41 刀具直径左偏移G42 刀具直径右偏移*G4308 刀具长度+ 方向偏移*G44 刀具长度- 方向偏移G49 取消刀具长度偏移*G5314 机床坐标系选择G54 工件坐标系1选择G55 工件坐标系2选择G56 工件坐标系3选择G57 工件坐标系4选择G58 工件坐标系5选择G59 工件坐标系6选择G7309 高速深孔钻削循环G74 左螺旋切削循环G76 精镗孔循环*G80 取消固定循环G81 钻孔循环(点钻)G82 钻孔循环(镗阶梯孔)G83 深孔钻削循环G84 攻丝循环G85 镗孔循环G86 钻孔循环G87 反向镗孔循环G88 镗孔循环G89 镗孔循环*G9003 使用绝对值命令G91 使用增量值命令G92 00 设置工件坐标系*G9810 固定循环返回起始点*G99 返回固定循环R点KND100车床G代码G代码组别解释G0001 定位(快速移动)G01 直线切削G02 顺时针切圆弧(CW,顺时钟) G03 逆时针切圆弧(CCW,逆时钟) G04 00 暂停(Dwell)G10 偏移值设定G2006 英制输入G21 公制输入G2700 检查参考点返回G28 参考点返回G29 从参考点返回G31 跳跃机能G32 01 切螺纹G36 X轴自动刀偏设定G37 Z轴自动刀偏设定G4007 取消刀尖半径偏置G41 刀尖半径偏置(左侧) G42 刀尖半径偏置(右侧)G5000 坐标系设定G54 工件坐标系G55---G59 工件坐标系G7000 精加工循环G71 内外径粗切循环G72 台阶粗切循环G73 成形重复循环G74 端面深孔加工循环G75 外圆、内圆切削循环G76 切螺纹循环G9001 (内外直径)切削循环G92 切螺纹循环G94 (台阶) 切削循环G9612 恒线速度控制G97 恒线速度控制取消G9805 每分钟进给率G99 每转进给率KND100 M指令M代码说明M00 程序停M01 选择停止M02 程序结束(复位)M03 主轴正转(CW)M04 主轴反转(CCW)M05 主轴停M06 换刀M08 切削液开M09 切削液关M10 卡紧M11 松开M32 润滑开M33 润滑关M98 子程序调用M99 子程序结束GSK980车床G代码G代码组别功能G0001 定位(快速移动)*G01 直线插补(切削进给)G02 圆弧插补CW(顺时针)G03 圆弧插补CCW(逆时针)G0400 暂停,准停G28 返回参考点G32 01 螺纹切削G50 00 坐标系设定G65 宏程序命令G7000 精加工循环G71 外圆粗车循环G72 端面粗车循环G73 封闭切削循环G74 端面深孔加工循环G75 外圆,内圆切槽循环01 外圆,内圆车削循环G92 螺纹切削循环端面切削循环G9602 恒线速开G97 恒线速关*G9803 每分进给G99 每转进给支持参数与宏编程GSK980T M指令M代码说明M03 主轴正转M04 主轴反转M05 主轴停止M08 冷却液开M09 冷却液关(不输出信号)M32 润滑开M33 润滑关(不输出信号)M10 备用M11 备用尖(不输出信号)M00 程序暂停,按'循环起动'程序继续执行M30 程序结束,程序返回开始GSK928 TC/TE G代码G代码功能G00 定位(快速移动)*G01 直线插补(切削进给)G02 圆弧插补CW(顺时针)G03 圆弧插补CCW(逆时针)G32 攻牙循环G33 螺纹切削G71 外圆粗车循环G72 端面粗车循环G74 端面深孔加工循环G75 外圆,内圆切槽循环G90 外圆,内圆车削循环G92 螺纹切削循环G94 外圆内圆锥面循环G22 局部循环开始G80 局部循环结束*G98 每分进给G99 每转进给G50 设置工件绝对坐标系G26 X、Z轴回参考G27 X轴回参考点G29 Z轴回参考点支持参数与宏编程GSK928 TC/TE M指令M代码说明M03 主轴正转M04 主轴反转M05 主轴停止M08 冷却液开M09 冷却液关(不输出信号)M32 润滑开M33 润滑关(不输出信号)M10 备用M11 备用尖(不输出信号)M00 程序暂停,按'循环起动'程序继续执行M30 程序结束,程序返回开始GSK990M G代码G代码组别解释G0001 定位(快速移动)G01 直线切削G02 顺时针切圆弧G03 逆时针切圆弧G04 00 暂停G1702 XY 面赋值G18 XZ 面赋值G19 YZ 面赋值G2800 机床返回原点G29 从参考点返回*G4007 取消刀具直径偏移G41 刀具直径左偏移G42 刀具直径右偏移*G4308 刀具长度+ 方向偏移*G44 刀具长度- 方向偏移G49 取消刀具长度偏移*G5314 机床坐标系选择G54 工件坐标系1选择G55 工件坐标系2选择G56 工件坐标系3选择G57 工件坐标系4选择G58 工件坐标系5选择G59 工件坐标系6选择G7309 高速深孔钻削循环G74 左螺旋切削循环G76 精镗孔循环*G80 取消固定循环G81 钻孔循环(点钻)G82 钻孔循环(镗阶梯孔)G83 深孔钻削循环G84 攻丝循环G85 镗孔循环G86 钻孔循环G87 反向镗孔循环G88 镗孔循环G89 镗孔循环*G9003 使用绝对值命令G91 使用增量值命令G92 00 设置工件坐标系*G9810 固定循环返回起始点*G99 返回固定循环R点GSK990M M指令M代码说明M00 程序停M01 选择停止M02 程序结束(复位)M03 主轴正转(CW)M04 主轴反转(CCW)M05 主轴停M06 换刀M08 切削液开M09 切削液关M10 卡紧M11 松开M32 润滑开M33 润滑关M98 子程序调用M99 子程序结束GSK928MA G代码G代码解释G00 定位(快速移动)G1 直线切削G02 顺时针切圆弧G03 逆时针切圆弧G04 延时等待G17 XY 面赋值G18 XZ 面赋值G19 YZ 面赋值G28 机床返回原点G29 从参考点返回*G40 取消刀具直径偏移G41 刀具直径左偏移G42 刀具直径右偏移*G43 刀具长度+ 方向偏移*G44 刀具长度- 方向偏移G49 取消刀具长度偏移*G53 机床坐标系选择G54 工件坐标系1选择G55 工件坐标系2选择G56 工件坐标系3选择G57 工件坐标系4选择G58 工件坐标系5选择G59 工件坐标系6选择G73 高速深孔钻削循环G74 左螺旋切削循环G80 取消固定循环G81 钻孔循环(点钻)G82 钻孔循环(镗阶梯孔)G83 深孔钻削循环G84 右旋攻牙循环G85 镗孔循环G86 钻孔循环G89 镗孔循环*G90 使用绝对值命令G91 使用增量值命令G92 设置浮动坐标系*G98 固定循环返回起始点*G99 返回固定循环R点G10 G11 圆凹槽内粗铣G12 G13 全圆内精铣G14 G15 外圆精铣G22 系统参数运算(模态)G23 判参数值跳转G27 机械零点检测G28 经中间点快速定位到程序G31 快速返回R基准面G34 G35 矩形凹槽内精铣G38 G39 矩形外精铣GSK928MA M指令M指令解释M0 程序停止。

南京工程学院数控技术期末考试题库

南京工程学院数控技术期末考试题库

一、单项选择题120题(每题1分)1. 用逐点比较法对第一象限的圆弧进行顺圆插补时,若偏差值是+2,那么刀具的下一步的进给方向为(D)A. +xB. +yC. -xD. -y2. 程序停止,程序复位到起始位置的指令( D)A. M00B. M01C. M02D. M303. 目前常用的数控加工程序段格式为(A)A. 字地址程序段格式B. 固定顺序程序段格式C. 带分隔符的固定顺序程序段格式D. 表格顺序程序段格式4. 下面各项功能中,不属于CNC装置的基本功能( D)A.插补功能 B. 进给功能C. 主轴功能D. 通信功能5. 柔性制造系统的英文简称为(C)A.CIMS B. AC C. FMS D. DNC6. CNC存储器中的数据丢失,出现的原因是(B)A.CNC系统断电 B. CNC系统电池无电C. 机床断电D. 数据保存不当7. 以下提法错误的是( A)A.G92是模态指令B. G04 X3.0表示暂停3SC. G33 Z F 中的F表示螺纹导程D. G41是刀具左补偿8.数控机床主轴以800转/分转速正转时,其指令应是(A)A.M03 S800 B.M04 S800C. M05 S800D. M06 S8009. 数控车削螺纹时,为保证车出合格的螺纹,应(A)A.需要增加刀具引入距离/引出距离B.不需要刀具引入/引出距离C.增加螺纹长度D.只增加刀具引入距离10. 混合编程的程序段是( D )A.G01 X100 Z200 F300 B. G01 X-10 Z-20 F30C. G02 U-10 W-5 R30D. G03 X5 W-10 R3011. 半闭环控制系统的传感器装在( A )A. 电机轴或丝杠轴端B. 机床工作台上C. 刀具主轴上D. 工件主轴上12. 数控车床控制系统中,可以联动的两个轴是( B)A.Y Z B. X Z C. X Y D. X C13. 数控编程时,应首先设定( D )A.机床原点 B. 固定参考点C. 机床坐标系D. 工件坐标系14. 在数控加工程序中,用于描述工艺过程中的各种操作和运动特性的指令是( B)A. F、SB. G、MC. T、PD. T、L15.能用于镜像加工的指令是( A)A.G11 B. G22 C. G10 D. G1416. G91状态下,程序段中的尺寸数字为( D )A. 半径值B. 绝对坐标值C. 直径值D. 增量坐标值17. 使刀具以点控制方式,从刀具所在点快速移动到目标点,而移动速度与程序段中的进给速度无关是( A)A. G00B. G01C. G03D. G0218. 数控机床的控制核心是( A )A. 数控系统B. 专用软件C. CPUD. PLC19. FMS是指( C )A. 直接数控系统B. 自动化工厂C. 柔性制造系统D. 计算机集成制造系统20. 编排数控加工工序时,为了提高精度,可采用( B )A. 精密专用夹具B. 一次装夹多工序集中C. 流水线作业法D. 工序分散加法21. 加工中心与普通数控机床区别在于(A)A. 有刀库和自动换刀装置B. 转速C. 机床的刚性好D. 给速度高22. 闭环伺服系统使用的执行元件是( B )A. 异步电动机B. 交流伺服电机C. 步进电机D. 电液脉冲马达23. 与步进电机的角位移成正比的是( D )A. 步距角B. 通电频率C. 脉冲当量D. 脉冲数量24. 数控机床CNC系统是( C )A. 轮廓控制系统B. 动作顺序控制系统C. 位置控制系统D. 速度控制系统25. 采用逐点比较法加工第一象限的斜线,若偏差函数值大于零,规定刀具的移动方向为( A)A. +XB. -XC. +YD. -Y26. 数控机床有不同的运动形式,需要考虑关键与刀具相对运动关系和坐标系方向,编写程序时,采用的原则为( D)A. 刀具固定不动,工件移动B. 铣削加工刀具固定不动,工件移动;车削加工刀具移动,工件固定C. 分析机床运动关系后再根据实际情况两者的固定和移动关系D. 工件固定不动,刀具移动。

数控编程代码大全(DOC)

数控编程代码大全(DOC)

数控编程代码大全FANUC车床G代码FANUC铣床G代码FANUC M指令代码SIEMENS铣床G代码SIEMENS802S/CM 固定循环SIEMENS802DM/810/840DM 固定循环SIEMENS车床G 代码SIEMENS 801、802S/CT、802SeT 固定循环SIEMENS 802D、810D/840D 固定循环HNC车床G代码HNC铣床G代码HNC M指令KND100铣床G代码KND100车床G代码KND100 M指令GSK980车床G代码GSK980T M指令GSK928 TC/TE G代码GSK928 TC/TE M指令GSK990M G代码GSK990M M指令GSK928MA G代码GSK928MA M指令三菱E60 铣床G代码DASEN 3I铣床G代码DASEN 3I车床G代码华兴车床G代码华兴M指令华兴铣床G代码华兴M指令仁和32T G代码仁和32T M指令SKY 2003N M G代码SKY 2003N M M指令1.FANUC车床G代码G代码解释G00定位(快速移动)G01直线切削G02顺时针切圆弧(CW,顺时钟)G03逆时针切圆弧(CCW,逆时钟)G04暂停(Dwell)G09停于精确的位置G20英制输入G21公制输入G22内部行程限位有效G23内部行程限位无效G27检查参考点返回G28参考点返回G29从参考点返回G30回到第二参考点G32切螺纹G40取消刀尖半径偏置G41刀尖半径偏置(左侧)G42刀尖半径偏置(右侧)G50修改工件坐标;设置主轴最大的RPMG52设置局部坐标系G53选择机床坐标系G70精加工循环G71内外径粗切循环G72台阶粗切循环G73成形重复循环G74Z 向步进钻削G75X 向切槽G76切螺纹循环G80取消固定循环G83钻孔循环G84攻丝循环G85正面镗孔循环G87侧面钻孔循环G88侧面攻丝循环G89侧面镗孔循环G90(内外直径)切削循环G92切螺纹循环G94(台阶) 切削循环G96恒线速度控制G97恒线速度控制取消G98每分钟进给率G99每转进给率2.FANUC铣床G代码G代码解释G00顶位(快速移动)定位(快速移动)G01直线切削G02顺时针切圆弧G03逆时针切圆弧G04暂停G15/G16极坐标指令G17XY 面赋值G18XZ 面赋值G19YZ 面赋值G28机床返回原点G30机床返回第2和第3原点*G40取消刀具直径偏移G41刀具直径左偏移G42刀具直径右偏移*G43刀具长度+ 方向偏移*G44刀具长度- 方向偏移G49取消刀具长度偏移*G53机床坐标系选择G54工件坐标系1选择G55工件坐标系2选择G56工件坐标系3选择G57工件坐标系4选择G58工件坐标系5选择G59工件坐标系6选择G73高速深孔钻削循环G74左螺旋切削循环G76精镗孔循环*G80取消固定循环G81中心钻循环G82反镗孔循环G83深孔钻削循环G84右螺旋切削循环G85镗孔循环G86镗孔循环G87反向镗孔循环G88镗孔循环G89镗孔循环*G90使用绝对值命令G91使用增量值命令G92设置工件坐标系*G98固定循环返回起始点*G99返回固定循环R点G50比例缩放G51G68坐标系旋转G693.FANUC M指令代码M代码说明M00程序停M01选择停止M02程序结束(复位)M03主轴正转(CW)M04主轴反转(CCW)M05主轴停M06换刀M08切削液开M09切削液关M30程序结束(复位) 并回到开头M48主轴过载取消不起作用M49主轴过载取消起作用M94镜象取消M95X坐标镜象M96Y坐标镜象M98子程序调用M99子程序结束4.SIEMENS铣床G代码地址含义D刀具刀补号F进给率(与G4 一起可以编程停留时间)GG功能(准备功能字)G0快速移动G1直线插补G2顺时针圆弧插补G3逆时针圆弧插补CIP中间点圆弧插补G33恒螺距的螺纹切削G331不带补偿夹具切削内螺纹G332不带补偿夹具切削内螺纹. 退刀CT带切线的过渡圆弧插补G4快速移动G63快速移动G74回参考点G75回固定点G25主轴转速下限G26主轴转速上限G110极点尺寸,相对于上次编程的设定位置G110极点尺寸,相对于当前工件坐标系的零点G120极点尺寸,相对于上次有效的极点G17*X/Y平面G18Z/X平面G19Y/Z平面G40刀尖半径补偿方式的取消G41调用刀尖半径补偿, 刀具在轮廓左侧移动G42调用刀尖半径补偿, 刀具在轮廓右侧移动G500取消可设定零点偏置G54第一可设定零点偏置G55第二可设定零点偏置G56第三可设定零点偏置G57第四可设定零点偏置G58第五可设定零点偏置G59第六可设定零点偏置G53按程序段方式取消可设定零点偏置G60*准确定位G70英制尺寸G71*公制尺寸G700英制尺寸,也用于进给率FG710公制尺寸,也用于进给率FG90*绝对尺寸G91增量尺寸G94*进给率F,单位毫米/分G95主轴进给率F,单位毫米/转G901在圆弧段进给补偿“开”G900进给补偿“关”G450圆弧过渡G451等距线的交点I插补参数J插补参数K插补参数I1圆弧插补的中间点J1圆弧插补的中间点K1圆弧插补的中间点L子程序名及子程序调用M辅助功能M0程序停止M1程序有条件停止M2程序结束M3主轴顺时针旋转M4主轴逆时针旋转M5主轴停M6更换刀具N副程序段:主程序段P子程序调用次数RET子程序结束S主轴转速,在G4 中表示暂停时间T刀具号X坐标轴Y坐标轴Z坐标轴CALL循环调用CHF倒角,一般使用CHR倒角轮廓连线CR圆弧插补半径GOTOB向后跳转指令GOTOF向前跳转指令RND圆角支持参数编程5.SIEMENS802S/CM 固定循环循环说明LCYC82钻削,沉孔加工LCYC83深孔钻削LCYC840带补偿夹具的螺纹切削LCYC84不带补偿夹具的螺纹切削LCYC85镗孔LCYC60线性孔排列LCYC61圆弧孔排列LCYC75矩形槽,键槽,圆形凹槽铣削SIEMENS802DM/810/840DM 固定循环循环说明CYCLE82中心钻孔CYCLE83深孔钻削CYCLE84性攻丝CYCLE85铰孔CYCLE86镗孔CYCLE88带停止镗孔CYCLE71端面铣削LONGHOLE一个圆弧上的长方形孔POCKET4环形凹槽铣削POCKET3矩形凹槽铣削SLOT1一个圆弧上的键槽SLOT2环行槽6.SIEMENS车床G 代码地址含义D刀具刀补号FF进给率(与G4 一起可以编程停留时间) GG功能(准备功能字)G0快速移动G1直线插补G2顺时针圆弧插补G3逆时针园弧插补G33恒螺距的螺纹切削G4快速移动G63快速移动G74回参考点G75回固定点G17(在加工中心孔时要求)G18*Z/X平面G40刀尖半径补偿方式的取消G41调用刀尖半径补偿, 刀具在轮廓左侧移动G42调用刀尖半径补偿, 刀具在轮廓右侧移动G500取消可设定零点偏置G54第一可设定零点偏置G55第二可设定零点偏置G56第三可设定零点偏置G57第四可设定零点偏置G58第五可设定零点偏置G59第六可设定零点偏置G53按程序段方式取消可设定零点偏置G70英制尺寸G71*公制尺寸G90*绝对尺寸G91增量尺寸G94*进给率F,单位毫米/分G95主轴进给率F,单位毫米/转I插补参数I1圆弧插补的中间点K1圆弧插补的中间点L子程序名及子程序调用M辅助功能M0程序停止M1程序有条件停止M2程序结束M30M17M3主轴顺时针旋转M4主轴逆时针旋转M5主轴停M6更换刀具N副程序段:主程序段P子程序调用次数RET子程序结束S主轴转速,在G4 中表示暂停时间T刀具号X坐标轴Y坐标轴Z坐标轴AR圆弧插补张角CALL循环调用CHF倒角,一般使用CHR倒角轮廓连线CR圆弧插补半径GOTOB向后跳转指令GOTOF向前跳转指令RND圆角支持参数编程7.SIEMENS 801、802S/CT、802SeT 固定循环循环说明LCYC82钻削,沉孔加工LCYC83深孔钻削LCYC840带补偿夹具的螺纹切削LCYC84不带补偿夹具的螺纹切削LCYC85镗孔LCYC93切槽循环LCYC95毛坯切削循环LCYC97螺纹切削SIEMENS 802D、810D/840D 固定循环循环说明CYCLE71平面铣削CYCLE82中心钻孔YCLE83深孔钻削CYCLE84刚性攻丝CYCLE85铰孔CYCLE86镗孔CYCLE88带停止镗孔CYCLE93切槽CYCLE94退刀槽形状E..FCYCLE95毛坯切削CYCLE97螺纹切削8.HNC车床G代码G代码解释G00定位(快速移动)G01直线切削G02顺时针切圆弧(CW,顺时钟)G03逆时针切圆弧(CCW,逆时钟)G04暂停(Dwell)G09停于精确的位置G20英制输入G21公制输入G22内部行程限位有效G23内部行程限位无效G27检查参考点返回G28参考点返回G29从参考点返回G30回到第二参考点G32切螺纹G36直径编程G37半径编程G40取消刀尖半径偏置G41刀尖半径偏置(左侧) G42刀尖半径偏置(右侧) G53直接机床坐标系编程G54—G59坐标系选择G71内外径粗切循环G72台阶粗切循环G73闭环车削复合循环G76切螺纹循环G80内外径切削循环G81端面车削固定循环G82螺纹切削固定循环G90绝对值编程G91增量值编程G92工件坐标系设定G96恒线速度控制G97恒线速度控制取消G94每分钟进给率G95每转进给率9.HNC铣床G代码G代码组别解释*G001定位(快速移动)G01直线切削G02顺时针切圆弧G03逆时针切圆弧G040暂停G0716虚轴指定G090准停校验*G172XY 面赋值G18XZ 面赋值G19YZ 面赋值G208英寸输入*G21毫米输入G22脉冲当量G243镜像开*G25镜像关G280返回到参考点G29由参考点返回*G407取消刀具直径偏移G41刀具直径左偏移G42刀具直径右偏移G438刀具长度+ 方向偏移G44刀具长度- 方向偏移*G49取消刀具长度偏移*G504缩放关G51缩放开G520局部坐标系设定G53直接机床坐标系编程*G5414工件坐标系1选择G55工件坐标系2选择G56工件坐标系3选择G57工件坐标系4选择G58工件坐标系5选择G59工件坐标系6选择G600单方向定位*G6112精确停止校验方式G64连续方式G685旋转变换*G69旋转取消G739高速深孔钻削循环G74左螺旋切削循环G76精镗孔循环*G80取消固定循环G81中心钻循环G82反镗孔循环G83深孔钻削循环G84右螺旋切削循环G85镗孔循环G86镗孔循环G87反向镗孔循环G88镗孔循环G89镗孔循环*G903使用绝对值命令G91使用增量值命令G920设置工件坐标系*G9414每分钟进给G95每转进给*G9810固定循环返回起始点G99返回固定循环R点10.HNC M指令M代码说明M00程序停M01选择停止M02程序结束(复位)M03主轴正转(CW)M04主轴反转(CCW)M05主轴停M06换刀M07切削液开M09切削液关M98子程序调用M99子程序结束11.KND100铣床G代码G代码组别解释G001定位(快速移动)G01直线切削G02顺时针切圆弧G03逆时针切圆弧G040暂停G172XY 面赋值G18XZ 面赋值G19YZ 面赋值G280机床返回原点G29从参考点返回*G407取消刀具直径偏移G41刀具直径左偏移G42刀具直径右偏移*G438刀具长度+ 方向偏移*G44刀具长度- 方向偏移G49取消刀具长度偏移*G5314机床坐标系选择G54工件坐标系1选择G55工件坐标系2选择G56工件坐标系3选择G57工件坐标系4选择G58工件坐标系5选择G59工件坐标系6选择G739高速深孔钻削循环G74左螺旋切削循环G76精镗孔循环*G80取消固定循环G81钻孔循环(点钻)G82钻孔循环(镗阶梯孔)G83深孔钻削循环G84攻丝循环G85镗孔循环G86钻孔循环G87反向镗孔循环G88镗孔循环G89镗孔循环*G903使用绝对值命令G91使用增量值命令G920设置工件坐标系*G9810固定循环返回起始点*G99返回固定循环R点12.KND100车床G代码G代码组别解释G001定位(快速移动)G01直线切削G02顺时针切圆弧(CW,顺时钟) G03逆时针切圆弧(CCW,逆时钟)G040暂停(Dwell)G10偏移值设定G206英制输入G21公制输入G270检查参考点返回G28参考点返回G29从参考点返回G31跳跃机能G321切螺纹G36X轴自动刀偏设定G37Z轴自动刀偏设定G407取消刀尖半径偏置G41刀尖半径偏置(左侧)G42刀尖半径偏置(右侧)G500坐标系设定G54工件坐标系G55---G59工件坐标系G700精加工循环G71内外径粗切循环G72台阶粗切循环G73成形重复循环G74端面深孔加工循环G75外圆、内圆切削循环G76切螺纹循环G901(内外直径)切削循环G92切螺纹循环G94(台阶) 切削循环G9612恒线速度控制G97恒线速度控制取消G985每分钟进给率G99每转进给率13.KND100 M指令M代码说明M00程序停M01选择停止M02程序结束(复位)M03主轴正转(CW)M04主轴反转(CCW)M05主轴停M06换刀M08切削液开M09切削液关M10卡紧M11松开M32润滑开M33润滑关M98子程序调用M99子程序结束14.GSK980车床G代码G代码组别功能G001定位(快速移动)*G01直线插补(切削进给)G02圆弧插补CW(顺时针)G03圆弧插补CCW(逆时针)G28 返回参考点G32 1螺纹切削G50 0坐标系设定G65 00 宏程序命令G71外圆粗车循环G72端面粗车循环G73封闭切削循环G74端面深孔加工循环G75外圆,内圆切槽循环G92螺纹切削循环G94 端面切削循环G97恒线速关G99每转进给15.GSK980T M指令M代码说明M03主轴正转M04主轴反转M05主轴停止M08冷却液开M09冷却液关(不输出信号)M32润滑开M33润滑关(不输出信号)M10备用M11备用尖(不输出信号)M00程序暂停,按‘循环起动’程序继续执行M30程序结束,程序返回开始16.GSK928 TC/TE G代码G代码功能G00定位(快速移动)*G01直线插补(切削进给)G02圆弧插补CW(顺时针)G03圆弧插补CCW(逆时针)G32攻牙循环G33 螺纹切削G71外圆粗车循环G72端面粗车循环G74端面深孔加工循环G75外圆,内圆切槽循环G90 外圆,内圆车削循环G92螺纹切削循环G94 外圆内圆锥面循环G22局部循环开始G80局部循环结束*G98 每分进给G99每转进给G50设置工件绝对坐标系G26X、Z轴回参考G27X轴回参考点G29Z轴回参考点17.GSK928 TC/TE M指令M代码说明M03主轴正转M04主轴反转M05主轴停止M08冷却液开M09冷却液关(不输出信号)M32润滑开M33润滑关(不输出信号)M10备用M11备用尖(不输出信号)M00程序暂停,按‘循环起动’程序继续执行M30程序结束,程序返回开始18.GSK990M G代码G代码组别解释G001定位(快速移动)G01直线切削G02顺时针切圆弧G03逆时针切圆弧G040暂停G172XY 面赋值G18XZ 面赋值G19YZ 面赋值G280机床返回原点G29从参考点返回*G407取消刀具直径偏移G41刀具直径左偏移G42刀具直径右偏移*G438刀具长度+ 方向偏移*G44刀具长度- 方向偏移G49取消刀具长度偏移*G5314机床坐标系选择G54工件坐标系1选择G55工件坐标系2选择G56工件坐标系3选择G57工件坐标系4选择G58工件坐标系5选择G59工件坐标系6选择G73高速深孔钻削循环G74左螺旋切削循环G76精镗孔循环*G80取消固定循环G81钻孔循环(点钻)G829钻孔循环(镗阶梯孔)G83深孔钻削循环G84攻丝循环G85镗孔循环G86钻孔循环G87反向镗孔循环G88镗孔循环G89镗孔循环*G903使用绝对值命令G91使用增量值命令G920设置工件坐标系*G9810固定循环返回起始点*G99返回固定循环R点19.GSK990M M指令M代码说明M00程序停M01选择停止M02程序结束(复位)M03主轴正转(CW)M04主轴反转(CCW)M05主轴停M06换刀M08切削液开M09切削液关M10卡紧M11松开M32润滑开M33润滑关M98子程序调用M99子程序结束20.GSK928MA G代码G代码解释G00定位(快速移动)G1直线切削G02顺时针切圆弧G03逆时针切圆弧G04延时等待G17XY 面赋值G18XZ 面赋值G19YZ 面赋值G28机床返回原点G29从参考点返回*G40取消刀具直径偏移G41刀具直径左偏移G42刀具直径右偏移*G43刀具长度+ 方向偏移*G44刀具长度- 方向偏移G49取消刀具长度偏移*G53机床坐标系选择G54工件坐标系1选择G55工件坐标系2选择G56工件坐标系3选择G57工件坐标系4选择G58工件坐标系5选择G59工件坐标系6选择G73高速深孔钻削循环G74左螺旋切削循环G80取消固定循环G81钻孔循环(点钻)G82钻孔循环(镗阶梯孔)G83深孔钻削循环G84右旋攻牙循环G85镗孔循环G86钻孔循环G89镗孔循环*G90使用绝对值命令G91使用增量值命令G92设置浮动坐标系*G98固定循环返回起始点*G99返回固定循环R点G10 G11圆凹槽内粗铣G12 G13全圆内精铣G14 G15外圆精铣G22系统参数运算(模态)G23判参数值跳转G27机械零点检测G28经中间点快速定位到程序G31快速返回R基准面G34 G35矩形凹槽内精铣G38 G39矩形外精铣21.GSK928MA M指令M指令解释M0程序停止。

数控编程G、M、T、S代码大全之欧阳科创编

数控编程G、M、T、S代码大全之欧阳科创编

数控机床标准G、M 代码一.准备功能字G准备功能字是使数控机床建立起某种加工方式的指令,如插补、刀具补偿、固定循环等。

G功能字由地址符G 和其后的两位数字组成,从G00—G99共100种功能。

JB3208-83标准中规定如下表:代码功能作用范围功能代码功能作用范围功能 G00 点定位 G50 * 刀具偏置0/- G01 直线插补G51* 刀具偏置+/0 G02 顺时针圆弧插补 G52 *刀具偏置-/0G03 逆时针圆弧插补 G53 直线偏移注销 G04 * 暂停 G54 直线偏移X G05 * 不指定 G55 直线偏移Y G06 抛物线插补 G56 直线偏移Z G07 * 不指定 G57 直线偏移XY G08 * 加速 G58 直线偏移XZ G09* 减速G59 直线偏移YZ G10-G16 * 不指定 G60 准确定位(精) G17 XY平面选择 G61 准确定位(中) G18 ZX平面选择 G62 准确定位(粗) G19 YZ平面选择G63 * 该丝 G20-G32 * 不指定 G64-G67* 不指定 G33 螺纹切削,等螺距 G68 * 刀具偏置,内角 G34 螺纹切削,增螺距 G69 * 刀具偏置,外角 G35螺纹切削,减螺距G70-G79 *不指定G36-G39 * 不指定 G80 固定循环注销 G40刀具补偿/刀具偏置注销G81-G89 固定循环 G41 刀具补偿--左 G90 绝对尺寸 G42 刀具补偿--右 G91 增量尺寸 G43 * 刀具偏置--正 G92 *预置寄存G44 * 刀具偏置--右 G93 进给率,时间倒数 G45 * 刀具偏置+/+G94每分钟进给G46 * 刀具偏置+/- G95 主轴每转进给 G47 * 刀具偏置-/- G96 恒线速度 G48 * 刀具偏置-/+ G97 每分钟转数(主轴) G49* 刀具偏置0/+G98-G99*不指定注:*表示如作特殊用途,必须在程序格式中说明二.辅助功能字M辅助功能字是用于指定主轴的旋转方向、启动、停止、冷却液的开关,工件或刀具的夹紧和松开,刀具的更换等功能。

数控铣床G代码

数控铣床G代码

数控铣床G代码加工中心系统的G代码列表代码组号含义G00 定位(快速定位)G01 直线插补(切削进给)G02 圆弧插补/螺旋插补 CWG03 01 圆弧插补/螺旋插补 CCWG02.3,G03.2 渐开线插补 CW/CCWG02.3,G03.2 指数函数插补 CW/CCWG02.4,G03.4 三维圆弧插补 CW/CCWGO4 暂停G05 AL轮廓控制(高精度轮廓控制兼容指令)G05.1 00 AL轮廓控制/那米平滑/平滑插补G05.2 HRV3,4接通/断开G06.2 01 NURBS插补G07 假想轴插补G07.1(G07) 圆柱插补G08 AL轮廓控制(前瞻控制兼容指令)G09 00 准确停止G10 可编程数据输入G010.6 刀具回退和返回G010.9 直径/半径编程可编程切换G11 可编程数据输入取消G12.1 21 极坐标插补方式G13.1 极坐标插补方式取消G15 17 极坐标指令取消G16 极坐标指令G17 XpYp平面其中,Xp:X 轴或者其平行轴G18 02 ZpXp平面 Yp:Y 轴或者其平行轴G19 YpZp平面 Zp:Z 轴或者其平行轴G20(G70) 06 英制G21(G71) 米制G22 04 存储行程检查功能ONG23 存储行程检查功能OFFG25 主轴速度变动检测OFFG26 19 主轴速度变动检测ONG27 参考点返回检查G28 自动返回至参考点G29 从参考点移动G30 第2、第3、第4参考点返回G30.1 00 可变参考点返回G31 跳转功能G31.8 EGB轴跳动G33 螺纹切削G34 01 可变导程螺纹切削G35 圆弧螺纹切削CWG36 圆弧螺纹切削CCWG37 刀具长度自动测定G38 00 工具半径补偿或刀尖半径补偿:保持矢量G39 工具半径补偿或刀尖半径补偿:拐角圆弧插补G40 工具半径补偿或刀尖半径补偿:取消/三维刀具补偿:取消G41 工具半径补偿或刀尖半径补偿/三维刀具补偿:左G41.2 5轴加工刀具半径补偿:左(类型1)G41.3 5轴加工刀具半径补偿:(前缘偏置)G41.4 5轴加工刀具半径补偿:左(类型1)(FS16i兼容指令)G41.5 07 5轴加工刀具半径补偿:左(类型1)(FS16i兼容指令)G41.6 5轴加工刀具半径补偿:左(类型2)G42 工具半径补偿或刀尖半径补偿/三维刀具补偿:右G42.2 5轴加工刀具半径补偿:右(类型1)G42.4 5轴加工刀具半径补偿:右(类型1)(FS16i兼容指令)G42.5 5轴加工刀具半径补偿:右(类型1)(FS16i兼容指令)G42.6 5轴加工刀具半径补偿:右(类型2)G40.1 法线方向控制取消方式G41.1 19 法线方向控制左侧ONG42.1 法线方向控制右侧ONG43 刀具长度补偿+G43.1 08 刀具轴向刀具长度补偿G43.4 刀具中心点控制(类型1)G43.5 刀具中心点控制(类型2)G44 刀具长度补偿-G45 刀具位置偏置伸长G46 00 刀具位置偏置缩小G47 刀具位置偏置伸长2陪G48 刀具位置偏置缩小2陪G49.(G49.1) 08 刀具长度补偿取消G50 11 比例缩放取消G51 比例缩放G50.1 22 可编程镜像取消G51.1 可编程镜像G50.2 31 多边形加工取消G51.2 多变形加工G52 00 局部坐标系设定G53 机床坐标系选择G53.1 刀具轴向控制G54(G54.1) 工件坐标系1选择G55 工件坐标系2选择G56 14 工件坐标系3选择G57 工件坐标系4选择G58 工件坐标系5选择G59 工件坐标系6选择G60 00 单向定位G61 准确停止方式G62 15 自动拐角倍率G63 攻丝方式G64 切削方式G65 00 宏程序调用G66 宏模态调用AG66.1 12 宏模态调用BG67 宏模态调用A/B取消G68 坐标旋转或三维坐标变换方式ON G68.2 16 特性坐标系选择G69 坐标旋转或三维坐标变换方式OFF G72.1 00 图形复制(旋转复制)G72.2 图形复制(平行复制)G73 钻深孔循环G74 09 反向攻丝循环G76 精细钻孔循环G80 09 固定循环取消G80.5 24 电子齿轮箱2组同步取消G80.8 34 电子齿轮箱同步取消G81 09 钻孔循环、点镗孔循环G81.1 00 切削G81.5 24 电子齿轮箱2组同步开始G81.8 34 电子齿轮箱同步开始G82 钻循环孔、镗阶梯孔循环G83 钻深孔循环G84 攻螺纹循环G84.2 刚性攻丝循环(FS15)G84.3 09 反向刚性攻丝循环(FS15)G85 镗孔循环G86 镗孔循环G87 反镗孔循环G88 镗孔循环G89 镗孔循环G90 03 绝对值输入G91 增量值输入(相对值输入)G91.1 最大增量指令值检测G92 00 设定工件坐标系的设定/主轴最高转速钳制G92.1 工件坐标系预设G93 反比时间进给G94 05 每分钟进给G95 每转进给G96 13 圆周速度恒定控制G97 固定速度恒量控制取消G98 10 固定循环初始平面返回G99 固定循环R点平面返回G107 00 圆柱插补G112 21 极坐标插补方式G113 极坐标插补方式取消。

数控程序代码

数控程序代码

数控加工中心常用的G代码和M指令G代码----功能--------------格式1.G00--------快速移动格式:G00X-----Y-----Z----2.G01--------直线插补格式:G01X-----Y-----Z----F-----3.G02--------顺圆插补格式:G02X-----Y-----Z----R-----G02X-----Y-----Z----I-----J-----K----- 4· G03--------逆圆插补格式:G03X-----Y-----Z-----R------G03X-----Y-----Z----- I-----J-----K----- 5.G04--------停刀,准确停止6.G15--------极坐标系指令取消7.G16--------极坐标系指令8.G17--------选择XY平面9.G18--------选择XZ平面10.G19--------选择YZ 平面11.G20--------英寸输入12.G21--------毫米输入13.G28--------返回参考点14.G29--------从参考点返回15.G40--------刀具半径补偿取消16.G41--------刀具半径左补偿17.G42--------刀具半径右补偿18.G43--------正向刀具长度补偿19.G44--------负向刀具长度补偿20.G49--------刀具长度补偿取消21.G50--------比例缩放取消22.G51--------比例缩放有效23.G54~G59选择工件坐标系1~~~624.G68--------坐标旋转25.G69--------坐标旋转取消26.G73--------高速深孔钻循环格式:G73X---Y---Z---R---Q---F---K---27.G74--------左旋攻丝循环格式:G74X---Y---Z---R---Q---F---K---28.G76--------精镗循环格式:G76X---Y---Z---R---Q---P---F---K---29.G80--------取消固定循环30.G81--------钻孔循环格式:G81X---Y---Z---R---F---31.G83--------排屑钻孔循环格式:G83X---Y---Z---R---Q---F---K---32.G84--------刚性攻丝循环格式:G84X---Y---Z---R---P---F---K---33.G90--------绝对值编程34.G91--------增量值编程35.G94--------每分钟进给36.G95--------每转进给37.G98--------固定循环返回到参考点38.G99--------固定循环返回到R点数控加工中心常用的G代码和M指令M代码----功能1.M00--------程序停止2.M01--------选择停止3.M02--------程序结束4.M03--------主轴正转5.M04--------主轴反转6.M05--------主轴停止转动7.M06--------换刀指令8.M08--------切削液开9.M09--------切削液关10.M19-------主轴定位11.M30-------程序结束,并返回程序起始12.M98-------子程序调用13.M99-------子程序结束,并返回主程序地址码中英文字母的含义地址------功能---------含义1.D------------补偿号--------刀具半径补偿指令2.F------------进给速度------给速度的指令3.G------------准备功能-----指令动作方式4.H------------补偿号--------补偿号的指定5.I-------------坐标字--------圆弧中心X轴向坐标6.J-------------坐标字--------圆弧中心Y轴向坐标7.K------------坐标字--------圆弧中心Z轴向坐标8.L------------重复次数-----固定循环及子程序的重复次数9.M-----------辅助功能-----机床开/关指令10.N----------顺序号--------程序段顺序号11.O----------程序号--------程序号,子程序号的指定12.P----------------------------暂停或程序中某功能开始使用的顺序号13.Q----------------------------固定循环终止段号或固定循环中定距14.R----------坐标字---------固定循环中定距离或圆弧半径的指令15.S----------主轴功能------主轴转速的指令16.T----------刀具功能------刀具编号的指令17.X---------坐标字----------X轴的绝对坐标值或暂停时间18.Y---------坐标字----------Y轴的绝对坐标19.Z---------坐标字----------Z轴的绝对坐标。

数控NC代码及解释

数控NC代码及解释

常用数控编程代码以及解释1、编程主代码功能G代码功能通过编程并运行这些程序而使数控机床能够实 G00 定位(快速移动) G01 直线插补(进给速度)G02 顺时针圆弧插补各进给轴的运动,如直线圆弧插补、进给控制 G03 逆时针圆弧插补 G04 暂停,精确停止G09 精确停止现的功能我们称之为可编程功能。

一般可编程 G17 选择X Y平面 G18 选择Z X平面G19 选择Y Z平面各进给轴的运动,如直线圆弧插补、进给控制 G27 返回并检查参考点 G28 返回参考点G29 从参考点返回现的功能我们称之为可编程功能。

一般可编程 G30 返回第二参考点 G40 取消刀具半径补偿G41 左侧刀具半径补偿功能分为两类:一类用来实现刀具轨迹控制即 G42 右侧刀具半径补偿 G43 刀具长度补偿+G44 刀具长度补偿-现的功能我们称之为可编程功能。

一般可编程 G49 取消刀具长度补偿 G52 设置局部坐标系G53 选择机床坐标系通过编程并运行这些程序而使数控机床能够实 G54 选用1号工件坐标系 G55 选用2号工件坐标系G56 选用3号工件坐标系各进给轴的运动,如直线圆弧插补、进给控制 G57 选用4号工件坐标系 G58 选用5号工件坐标系G59 选用6号工件坐标系现的功能我们称之为可编程功能。

一般可编程 G60 单一方向定位 G61 精确停止方式G64 切削方式通过编程并运行这些程序而使数控机床能够实 G65 宏程序调用 G66 模态宏程序调用G67 模态宏程序调用取消各进给轴的运动,如直线圆弧插补、进给控制 G73 深孔钻削固定循环 G74 反螺纹攻丝固定循环G76 精镗固定循环现的功能我们称之为可编程功能。

一般可编程 G80 取消固定循环 G81 钻削固定循环G82 钻削固定循环各进给轴的运动,如直线圆弧插补、进给控制 G83 深孔钻削固定循环 G84 攻丝固定循环G85 镗削固定循环1 可编程功能 G86 镗削固定循环 G87 反镗固定循环G88 镗削固定循环功能分为两类:一类用来实现刀具轨迹控制即 G89 镗削固定循环 G90 绝对值指令方式G91 增量值指令方式现的功能我们称之为可编程功能。

加工中心常用代码gm

加工中心常用代码gm
G05.1 预读控制超前读多个程序段
G07.1(G107) 圆柱插补
G08 预读控制
G09 准确停止
G10 可编程数据输入(g10的意思是用程序输入补偿指令格式有:
H的几何补偿值变成格式 g10 L10 P R(
H的磨损补偿值变成格式 g10 L11 P R
D的几何补偿值变成格式 g10 L12 P R
M12 * 不指定 M56 * 刀具直线位移,位置2
M13 主轴顺时针,冷却液开 M57-M59 * 不指定
M14 主轴逆时针,冷却液开 M60 更换工作
M15 * 正运动 M61 工件直线位移,位置1
M16 * 负运动 M62 * 工件直线位移,位置2
M17-M18 * 不指定 M63-M70 * 不指定
G17/G18/G19:平面选择,在其上包含旋转的形状
a_ b_:与指令坐标平面相应的X,Y,Z中的两个轴的绝对指令,在G68后面指定旋转中心
R_:角度位移,正值表示逆时针旋转。根据指令的G代码(G90或G91)确定绝对值或增量值
最小输入增量单位:0.001deg
有效数据范围:-360.000到360.000
作。

在参数输入方式,不能指定其它的NC 语句。
– 301 –
16. 可编程参数输入(G10) 编程 B-63834C/01
– 302 –
例 1. 设定位型参数No.3404 的位2(SBP)
G10L50;参数输入方式
N3404 R 00000100;SBP 设定
G11;取消参数输入方式
2. 修改轴型参数No.1322(设定存储行程极限2 各轴正向的坐标值)中
N-P-R;轴型参数

G11;取消参数输入方式

数铣编程指令和刀具半径补偿

数铣编程指令和刀具半径补偿

数控铣床编程编程指令和刀具半径补偿1.G指令:准备功能指令(1)G90 绝对方式编程(2)G91 增量方式编程(3)G54~ G59 选择工件坐标系(4)G00 快速点定位 X Y Z(5)G01 直线插补 X Y Z F(6)G02 顺圆插补 X Y R(或I J K) F (7)G03 逆圆插补 X Y R (或I J K) F(8)G41 X Y D 刀具半径左补偿(9)G42 X Y D 刀具半径右补偿(10)G40 X Y 取消刀具半径补偿(11)G17、G18、G19 选择加工平面G17—XOY 平面(缺省值) G18—XOZ平面 G19—YOZ平面G90 G80 G40 G17 G49 G21(安全语句)功能:初始化状态设定。

式中: G90 ——绝对值方式;G80 ——取消固定循环;G 代码指令2.M 指令:辅助功能 (1)M00 程序暂停 (2)M03 主轴正转 (3)M05 主轴停 (4)M08 切削液开 (5)M09 切削液停(6)M30 完成程序段指令后 返回“程序开始”(7)M98 调用子程序 (8)M99 子程序结束一、基本常用指令3.指令——fz(mm/min)进给速度vf =fz ×z × n (铣床、加工中心)4.S 指令——r/min5.程序的组成和格式和数车一样,数铣的一个完整的零件程序包括程序号、程序内容和程序结束三个部分。

%(或O )1234G90 G80 G40 G17 G49 G21(安全语句) M03S1000 G54G00Z100 X0Y0G01Z-6F200G41D01X ▁Y ▁ …… G40X ▁Y ▁ G00Z100 M05 M30程序号程序内容程序结束6.绝对值编程G90与相对值编程G91格式: G90 G X Y ZG91 G X Y ZG90为绝对值编程,每个轴上的编程值是相对于程序原点的。

G91为相对(增量)值编程,每个轴上的编程值是相对于前一位置而言的,该值等于沿轴移动的距离。

数控机床刀补指令

数控机床刀补指令

数控机床刀补指令数控机床是一种高精度、高效率、自动化程度较高的现代化加工设备,广泛应用于各种金属、非金属零部件的加工制造过程中。

数控机床的核心部分是数控系统,而数控系统中的刀具补偿功能对加工的精度和质量起着至关重要的作用。

本文将介绍数控机床刀补指令的定义、作用及在加工中的应用。

一、概述数控机床刀补指令是数控编程中的一种重要指令,它用于对加工刀具的轨迹进行微调,以达到更高的加工精度和质量。

通过刀补指令,可以对刀具进行不同方向的补偿,使刀具的实际运动轨迹与设定的轨迹一致。

刀补指令通常由数控系统解释执行,可以在程序中灵活调用,实现对不同形状、大小的刀具进行精确加工。

二、刀补指令的分类根据不同的刀具补偿方式,刀补指令可以分为长度补偿、半径补偿和刀尖补偿等几种类型。

长度补偿主要用于修正刀具长度偏差,使加工深度更加准确;半径补偿主要用于修正刀具半径偏差,以确保加工轮廓的精度;而刀尖补偿则是用于修正刀具切削刃与轨迹的偏移,保证切削路径的正确性。

三、刀补指令的应用在数控加工中,刀补指令的应用非常普遍,它可以实现对各类形状、大小的工件进行高精度加工。

在程序编制过程中,操作人员可以根据加工要求和实际情况,通过刀补指令对刀具路径进行调整,以确保加工精度和质量。

此外,在复杂曲面加工中,刀补指令更显得尤为重要,通过对刀具的微调,可以实现对曲面的精细加工,提高加工效率和质量。

四、结语数控机床刀补指令作为数控加工中的重要一环,对于提高加工精度、减少误差至关重要。

通过合理灵活地运用刀补指令,可以实现对各类工件的高精度加工,提高生产效率和质量水平。

因此,在数控机床的操作和编程过程中,专业人士应该充分理解刀补指令的原理和应用,合理运用刀补功能,提高加工效率,满足市场对精密零部件加工的需求。

UGNX编程直线、圆弧插补,刀具半径补偿,刀补等数控加工代码

UGNX编程直线、圆弧插补,刀具半径补偿,刀补等数控加工代码

UGNX编程直线、圆弧插补,刀具半径补偿,刀补等数控加工代码一:基本移动指令1、快速定位G00/G0格式: G00 X___ Y___ Z___;功能:只能快速定位,不能切削加工,可以同时指令一轴、两轴或三轴。

2、直线插补(G01/G1)格式: G01 X___ Y___ Z___ F ;功能:可以同时指令一轴、两轴或三轴。

【例】在立式数控铣床上按图所示的走刀路线铣削工件上表面,已知主轴转速300r/min,进给量为200mm/min,试编制加工程序。

3、圆弧插补(G02/G2、G03/G3)式中:I、J、K——圆心分别在x、y、z轴相对圆弧起点的增量( IJK编程)二:IJK编程与R编程三:刀具参数补偿指令刀具半径补偿:1、刀具半径补偿的方法G41——刀具半径左补偿G42——刀具半径右补偿G40——取消刀具半径补偿注意:正确选择G41和G42,以保证顺铣和逆铣的加工要求!2、建立、取消刀具半径补偿指令格式3、刀补功能在模具加工中的应用4、刀具半径补偿过程中的刀心轨迹注意:铣刀的直线移动量及铣削内侧圆弧的半径值要大于或等于刀具半径,否则补偿时会产生干涉,系统会报警,停止执行。

5、刀具半径补偿的建立有三种方式1)先下刀后,再在x、y轴移动中建立半径补偿;2)先建立半径补偿后,再下刀到加工深度位置;3)x、y、z三轴同时移动建立半径补偿后再下刀;【例1】按图示走刀路径铣削工件外轮廓,已知立铣刀为Φ16mm,半径补偿号为D01。

(毛坯:130mm×90mm×100mm)【不能出现连续两个程序段无选择补偿坐标平面的移动命令】6、刀具半径补偿的应用1)编程时直接按工件轮廓尺寸编程。

刀具在因磨损、重磨或更换新刀后直径会发生改变,但不必修改程序,只需改变半径补偿参数。

2)刀具半径补偿值不一定等于刀具半径值,同一加工程序,采用同一刀具可通过修改刀补的办法实现对工件轮廓的粗、精加工;同时也可通过修改半径补偿值获得所需要的尺寸精度。

三菱数控系统G代码M代码大全

三菱数控系统G代码M代码大全

1.G00 快速定位G01 直线补间切削G02 圆弧补间切削CW(顺时针)G03 圆弧补间切削CCW(逆时针)G02.3 指数函数补间正转G03.3 指数函数补间逆转G04 暂停G05 高速高精度制御1G05.1 高速高精度制御2G06~G08没有G07.1/107 圆筒补间G09 正确停止检查G10 程式参数输入/补正输入G11 程式参数输入取消G12 整圆切削CWG13 整圆切削CCWG12.1/112 极坐标补间有效G13.1/113 极坐标补间取消G14没有G15 极坐标指令取消G16 极坐标指令有效G17 平面选择X-YG18 平面选择Y-ZG19 平面选择X-ZG20 英制指令G21 公制指令G22-G26没有G27 参考原点检查G28 参考原点复归G29 开始点复归G30 第2~4参考点复归G30.1 复归刀具位置1G30.2 复归刀具位置2G30.3 复归刀具位置3G30.4 复归刀具位置4G30.5 复归刀具位置5G30.6 复归刀具位置6G31 跳跃机能G31.1 跳跃机能1G31.2 跳跃机能2G31.3 跳跃机能3G32没有G33 螺纹切削G34 特别固定循环(圆周孔循环)G35 特别固定循环(角度直线孔循环)G36 特别固定循环(圆弧)G37 自动刀具长测定G37.1 特别固定循环(棋盘孔循环)G38 刀具径补正向量指定G39 刀具径补正转角圆弧补正G40 刀具径补正取消G41 刀具径补正左G42 刀具径补正右G40.1 法线制御取消G41.1 法线制御左有效G42.1 法线制御右有效G43 刀具长设定(+)G44 刀具长设定(—)G43.1 第1主轴制御有效G44.1 第2主轴制御有效G45 刀具位置设定(扩张)G46 刀具位置设定(缩小)G47 刀具位置设定(二倍)G48 刀具位置设定(减半)G47.1 2主轴同时制御有效G49 刀具长设定取消G50 比例缩放取消G51 比例缩放有效G50.1 G指令镜象取消G51.1 G指令镜象有效G52 局部坐标系设定G53 机械坐标系选择G54 工件坐标系选择1G55 工件坐标系选择2G56 工件坐标系选择3G57 工件坐标系选择4G58 工件坐标系选择5G59 工件坐标系选择6G54.1 工件坐标系选择扩张48组G60 单方向定位G61 正确停止检查模式G61.1 高精度制御G62 自动转角进给率调整G63 攻牙模式G63.1 同期攻牙模式(正攻牙)G63.2 同期攻牙模式(逆攻牙)G64 切削模式G65 使用者巨集单一呼叫G66 使用者巨集状态呼叫AG66.1 使用者巨集状态呼叫BG67 使用者巨集状态呼叫取消G68 坐标回转有效G69 坐标回转取消G70 使用者固定循环G71 使用者固定循环G72 使用者固定循环G73 固定循环(步进循环)G74 固定循环(反向攻牙)G75 使用者固定循环G76 固定循环(精搪孔)G77 使用者固定循环G78 使用者固定循环G79 使用者固定循环G80 固定循环取消G81 固定循环(钻孔/铅孔)G82 固定循环(钻孔/计数式搪孔)G83 固定循环(深钻孔)G84 固定循环(攻牙)G85 固定循环(搪孔)G86 固定循环(搪孔)G87 固定循环(反搪孔)G88 固定循环(搪孔)G89 固定循环(搪孔)G90 绝对值指令G91 增量值指令G92 机械坐标系设定G93 逆时间进给G94 非同期进给(每分进给)G95 同期进给(每回转进给)G96 周速一定制御有效G97周速一定至于取消G98 固定循环起始点复归G99 固定循环R点复归G114.1 主轴同期制御G100~225 使用者巨集(G码呼叫)最大10个M00 程序停止(无条件停止)M01选择性停止M02程序结束M03主轴顺时针转M04主轴逆时针转M05主轴停止M06换刀M08冷却液开M09冷却液关M10夹紧 (卧式加工中心第四轴)M11松开(卧室加工中心第四轴)M15正方向快速移动M16反方向快速移动M19主轴定位M30程式停止M98 调用子程序M99 子程序结束下面为赠送的述职报告不需要的可以编辑删除述职报告尊敬的各位领导,各位同仁:大家好!本人被组织任聘为。

CNC-G代码一览表教学教材

CNC-G代码一览表教学教材

C N C-G代码一览表CNC代码一览表M代码一览表M代码一览表注) 不能同时处理的M代码M32中虽然在1程序程序段中能加入4个M代码,但不能同时处理的M 代码加入程序时,会发出“227不能同时处理的M代码”的警示.此警示的组合如下:M03﹑M04、M05、M19中的2个以上在同一程序段中M15﹑M16在同一程序段中M23﹑M24在同一程序段中M33﹑M34在同一程序段中M48﹑M49在同一程序段中M15﹑M33在同一程序段中M06﹑M149在同一程序段中M70~M72中两个以上在同一程序段中(只在带有换托盘功能中)M195~M198不能同时单独发指令不合规格的M代码当发出M代码表中没有的M代码或不合规格的M代码指令时,会提示“228不合规格的M代码”,并终止程序,这一点请注意.但是,M36~M39指令什么也不进行,便到达完了状态.G代码一览表表1.1从表中我们可以看到,G代码被分为了不同的组,这是由于大多数的G代码是模态的,所谓模态G代码,是指这些G代码不只在当前的程序段中起作用,而且在以后的程序段中一直起作用,直到程序中出现另一个同组的G代码为止,同组的模态G代码控制同一个目标但起不同的作用,它们之间是不相容的。

00组的G代码是非模态的,这些G代码只在它们所在的程序段中起作用。

标有*号的G代码是上电时的初始状态。

对于G01和G00、G90和G91上电时的初始状态由参数决定。

如果程序中出现了未列在上表中的G代码,CNC会显示10号报警。

同一程序段中可以有几个G代码出现,但当两个或两个以上的同组G代码出现时,最后出现的一个(同组的)G代码有效。

在固定循环模态下,任何一个01组的G代码都将使固定循环模态自动取消,成为G80模态。

NC指令

NC指令

1.暂停指令G04 X(U)_/P_ 是指刀具暂停时间(进给停止,主轴不停止),地址P或X后的数值是暂停时间。

X后面的数值要带小数点,否则以此数值的千分之一计算,以秒(s)为单位,P后面数值不能带小数点(即整数表示),以毫秒(ms)为单位。

例如,G04 X2.1.暂停指令G04 X(U)_/P_ 是指刀具暂停时间(进给停止,主轴不停止),地址P或X后的数值是暂停时间。

X后面的数值要带小数点,否则以此数值的千分之一计算,以秒(s)为单位,P后面数值不能带小数点(即整数表示),以毫秒(ms)为单位。

例如,G04 X2.0; 或G04 X2000;暂停2秒G04 P2000;为了保证孔底的精糙度,当刀具加工至孔底时需有暂停时间,此时只能用地址P表示,若用地址X表示,则控制系统认为X是X轴坐标值进行执行。

例如,G82 X100.0 Y100.0 Z-20.0 R5.0 F200 P2000; 钻孔(100.0,100.0)至孔底暂停2秒G82 X100.0 Y100.0 Z-20.0 R5.0 F200 X2.0;钻孔(2.0,100.0)至孔底不会暂停。

2.M00、M01、M02和M30的区别与联系M00为程序无条件暂停指令。

程序执行到此进给停止,主轴停转。

重新启动程序,必须先回到JOG状态下,按下CW(主轴正转)启动主轴,接着返回AUTO状态下,按下START 键才能启动程序。

M01为程序选择性暂停指令。

程序执行前必须打开控制面板上OP STOP键才能执行,执行后的效果与M00相同,要重新启动程序同上。

M00和M01常常用于加工中途工件尺寸的检验或排屑。

M02为主程序结束指令。

执行到此指令,进给停止,主轴停止,冷却液关闭。

但程序光标停在程序末尾。

M30为主程序结束指令。

功能同M02,不同之处是,光标返回程序头位置,不管M30后是否还有其他程序段。

3.地址D、H的意义相同刀具补偿参数D、H具有相同的功能,可以任意互换,它们都表示数控系统中补偿寄存器的地址名称,但具体补偿值是多少,关键是由它们后面的补偿号地址来决定。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数控122 太劣阿昕哥四、程序设计Public X0 As Double, Y0 As Double, X1 As Double, Y1 As Double, X2 As Double, Y2 As Double, R As DoublePublic Xs1 As Double, Ys1 As Double, Xs2 As Double, Ys2 As DoublePublic Ori As IntegerPublic Xl1 As Double, Yl1 As Double, Xl2 As Double, Yl2 As Double, dX1 As Double, dY1 As Double, dX2 As Double, dY2 As Double, d1 As Double, d2 As DoublePrivate Sub Command1_Click()Dim X1_FWD As Integer, Y1_FWD As Integer, X2_FWD As Integer, Y2_FWD As IntegerDim alfa As Double, beta As DoubleCall PaintAxis'绘制补偿前图像Picture1.ForeColor = vbBluePicture1.DrawWidth = 1Picture1.Line (X0, Y0)-(X1, Y1)Picture1.Line (X1, Y1)-(X2, Y2)'算法设计'计算坐标增量dX1 = X1 - X0dY1 = Y1 - Y0dX2 = X2 - X1dY2 = Y2 - Y1alfa = Atn(dY1 / dX1)beta = Atn(dY2 / dX2)If dX1 >= 0 ThenX1_FWD = 1ElseX1_FWD = -1End IfIf dX2 >= 0 ThenX2_FWD = 1X2_FWD = -1End IfIf dY1 >= 0 ThenY1_FWD = 1ElseY1_FWD = -1End IfIf dY2 >= 0 ThenY2_FWD = 1ElseY2_FWD = -1End If'计算d1,d2d1 = Sqr(dX1 ^ 2 + dY1 ^ 2)d2 = Sqr(dX2 ^ 2 + dY2 ^ 2)'计算方向矢量投影Xl1 = dX1 / d1Yl1 = dY1 / d1Xl2 = dX2 / d2Yl2 = dY2 / d2'判断缩短型,伸长型,插入型If Ori * (Yl2 * Xl1 - Xl2 * Yl1) >= 0 Then '缩短型'刀补建立If Combo1.ListIndex = 0 And Ori * (Yl2 * Xl1 - Xl2 * Yl1) <> 0 Then Xs1 = X1 - R * Ori * Yl2Ys1 = Y1 + R * Ori * Xl2X_0p.Text = X0Y_0p.Text = Y0X_s1.Text = Xs1Y_s1.Text = Ys1X_2p.Text = Xs1 + dX2Y_2p.Text = Ys1 + dY2Picture1.ForeColor = vbMagentaPicture1.Line (X0, Y0)-(Xs1, Ys1)Picture1.Line (Xs1, Ys1)-(Xs1 + dX2, Ys1 + dY2)'刀补进行ElseIf Combo1.ListIndex = 1 ThenIf Yl2 * Xl1 - Xl2 * Yl1 = 0 Then 'l1与l2共线Xs1 = X1 - R * Ori * Yl1Ys1 = Y1 + R * Ori * Xl1X_0p.Text = Xs1 - dX1Y_0p.Text = Ys1 - dY1X_s1.Text = Xs1Y_s1.Text = Ys1X_2p.Text = Xs1 + dX2Y_2p.Text = Ys1 + dY2Picture1.ForeColor = vbMagentaPicture1.Line (Xs1 - dX1, Ys1 - dY1)-(Xs1, Ys1)Picture1.Line (Xs1, Ys1)-(Xs1 + dX2, Ys1 + dY2)Else ' l1与l2不共线Xs1 = X1 + (Xl2 - Xl1) * Ori * R / (Xl1 * Yl2 - Xl2 * Yl1)Ys1 = Y1 + (Yl2 - Yl1) * Ori * R / (Xl1 * Yl2 - Xl2 * Yl1)X_0p.Text = Xs1 - dX1Y_0p.Text = Ys1 - dY1X_s1.Text = Xs1Y_s1.Text = Ys1X_2p.Text = Xs1 + dX2Y_2p.Text = Ys1 + dY2Picture1.ForeColor = vbMagentaPicture1.Line (Xs1 - dX1, Ys1 - dY1)-(Xs1, Ys1)Picture1.Line (Xs1, Ys1)-(Xs1 + dX2, Ys1 + dY2)End If'刀补撤销ElseIf Combo1.ListIndex = 2 And Ori * (Yl2 * Xl1 - Xl2 * Yl1) <> 0 Then Xs1 = X1 - R * Ori * Yl1Ys1 = Y1 + R * Ori * Xl1X_0p.Text = Xs1 - dX1Y_0p.Text = Ys1 - dY1X_s1.Text = Xs1Y_s1.Text = Ys1X_2p.Text = X2Y_2p.Text = Y2Picture1.ForeColor = vbMagentaPicture1.Line (Xs1 - dX1, Ys1 - dY1)-(Xs1, Ys1)Picture1.Line (Xs1, Ys1)-(X2, Y2)End IfElseIf Ori * (Yl2 * Xl1 - Xl2 * Yl1) < 0 And (Yl2 * Yl1 + Xl2 * Xl1) >= 0 Then '伸长型'刀补建立If Combo1.ListIndex = 0 Then'第一对转接点Xs1 = X1 - R * Ori * Yl1Ys1 = Y1 + R * Ori * Yl1'第二对转接点Xs2 = X1 + (Xl2 - Xl1) * R * Ori / (Xl1 * Yl2 - Xl2 * Yl1)Ys2 = Y1 + (Yl2 - Yl1) * R * Ori / (Xl1 * Yl2 - Xl2 * Yl1)'输出坐标'X0',Y0'X_0p.Text = X0Y_0p.Text = Y0'Xs1,Ys1X_s1.Text = Xs1Y_s1.Text = Ys1'Xs2,Ys2X_s2.Text = Xs2Y_s2.Text = Ys2'X2' Y2'X_2p.Text = Xs2 + dX2Y_2p.Text = Ys2 + dY2'绘图Picture1.ForeColor = vbMagentaPicture1.Line (X0, Y0)-(Xs1, Ys1)Picture1.Line (Xs1, Ys1)-(Xs2, Ys2)Picture1.Line (Xs2, Ys2)-(Xs2 + dX2, Ys2 + dY2)'刀补进行ElseIf Combo1.ListIndex = 1 ThenXs1 = X1 + (Xl2 - Xl1) * R * Ori / (Xl1 * Yl2 - Xl2 * Yl1)Ys1 = Y1 + (Yl2 - Yl1) * R * Ori / (Xl1 * Yl2 - Xl2 * Yl1)'输出坐标'X0',Y0'X_0p.Text = X0Y_0p.Text = Y0'Xs1,Ys1X_s1.Text = Xs1Y_s1.Text = Ys1'X2' Y2'X_2p.Text = Xs2 + dX2Y_2p.Text = Ys2 + dY2'绘图Picture1.ForeColor = vbMagentaPicture1.Line (Xs1 - dX1, Ys1 - dY1)-(Xs1, Ys1)Picture1.Line (Xs1, Ys1)-(Xs1 + dX2, Ys1 + dY2)'刀补撤销ElseIf Combo1.ListIndex = 2 ThenXs1 = X1 + (Xl2 - Xl1) * R * Ori / (Xl1 * Yl2 - Xl2 * Yl1)Ys1 = Y1 + (Yl2 - Yl1) * R * Ori / (Xl1 * Yl2 - Xl2 * Yl1)Xs2 = X1 - R * Ori * Yl2Ys2 = Y1 + R * Ori * Xl2'输出坐标'X0',Y0'X_0p.Text = Xs1 - dX1Y_0p.Text = Ys1 - dY1'Xs1,Ys1X_s1.Text = Xs1Y_s1.Text = Ys1'Xs2,Ys2X_s2.Text = Xs2Y_s2.Text = Ys2'X2' Y2'X_2p.Text = X2Y_2p.Text = Y2'绘图Picture1.ForeColor = vbMagentaPicture1.Line (Xs1 - dX1, Ys1 - dY1)-(Xs1, Ys1)Picture1.Line (Xs1, Ys1)-(Xs2, Ys2)Picture1.Line (Xs2, Ys2)-(X2, Y2)End IfElseIf Ori * (Yl2 * Xl1 - Xl2 * Yl1) < 0 And (Yl2 * Yl1 + Xl2 * Xl1) < 0 Then '插入型'刀补建立If Combo1.ListIndex = 0 Then'第一对转接点Xs1 = X1 - R * Ori * Yl1Ys1 = Y1 + R * Ori * Xl1'第二对转接点Xs2 = X1 - Ori * R * Yl1 + R * Xl1Ys2 = Y1 + Ori * R * Xl1 + R * Yl1'第三对转接点Xs3 = X1 - R * Ori * Yl2 - R * Xl2Ys3 = Y1 + R * Ori * Xl2 - R * Yl2'输出坐标'X0',Y0'X_0p.Text = X0Y_0p.Text = Y0'Xs1,Ys1X_s1.Text = Xs1Y_s1.Text = Ys1'Xs2,Ys2X_s2.Text = Xs2Y_s2.Text = Ys2'Xs3,Ys3X_s3.Text = Xs3Y_s3.Text = Ys3'X2' Y2'X_2p.Text = Xs3 + dX2 + Abs(R * Cos(beta)) * X2_FWDY_2p.Text = Ys3 + dY2 + Abs(R * Sin(beta)) * X2_FWD'绘图Picture1.ForeColor = vbMagentaPicture1.Line (X0, Y0)-(Xs1, Ys1)Picture1.Line (Xs1, Ys1)-(Xs2, Ys2)Picture1.Line (Xs2, Ys2)-(Xs3, Ys3)Picture1.Line (Xs3, Ys3)-(Xs3 + dX2 + Abs(R * Cos(beta)) * X2_FWD, Ys3 + dY2 + Abs(R * Sin(beta)) * Y2_FWD)'刀补进行ElseIf Combo1.ListIndex = 1 Then'第一对转接点Xs1 = X1 - R * Ori * Yl1 + R * Xl1Ys1 = Y1 + R * Ori * Xl1 + R * Yl1'第二对转接点Xs2 = X1 - R * Ori * Yl2 - R * Xl2Ys2 = Y1 + R * Ori * Xl2 - R * Yl2'输出坐标'X0',Y0'X_0p.Text = Xs1 - dX1 - Abs(R * Cos(alfa)) * X1_FWDY_0p.Text = Ys1 - dY1 - Abs(R * Sin(alfa)) * Y1_FWD'Xs1,Ys1X_s1.Text = Xs1Y_s1.Text = Ys1'Xs2,Ys2X_s2.Text = Xs2Y_s2.Text = Ys2'X2' Y2'X_2p.Text = Xs2 + dX2 + Abs(R * Cos(beta)) * X2_FWDY_2p.Text = Ys2 + dY2 + Abs(R * Sin(beta)) * Y2_FWD'绘图Picture1.ForeColor = vbMagentaPicture1.Line (Xs1 - dX1 - Abs(R * Cos(alfa)) * X1_FWD, Ys1 - dY1 - Abs(R * Sin(alfa)) * Y1_FWD)-(Xs1, Ys1)Picture1.Line (Xs1, Ys1)-(Xs2, Ys2)Picture1.Line (Xs2, Ys2)-(Xs2 + dX2 + Abs(R * Cos(beta)) * X2_FWD, Ys2 + dY2 + Abs(R * Sin(beta)) * Y2_FWD)'刀补撤销ElseIf Combo1.ListIndex = 2 Then'第一对转接点Xs1 = X1 - R * Ori * Yl1 + R * Xl1Ys1 = Y1 + R * Ori * Xl1 + R * Yl1'第二对转接点Xs2 = X1 - R * Ori * Yl2 - R * Xl2Ys2 = Y1 + R * Ori * Xl2 - R * Yl2'第三对转接点Xs3 = X1 - R * Ori * Yl2Ys3 = Y1 + R * Ori * Xl2'输出坐标'X0',Y0'X_0p.Text = Xs1 - dX1 - Abs(R * Cos(alfa)) * X1_FWDY_0p.Text = Ys1 - dY1 - Abs(R * Sin(alfa)) * Y1_FWD'Xs1,Ys1X_s1.Text = Xs1Y_s1.Text = Ys1'Xs2,Ys2X_s2.Text = Xs2Y_s2.Text = Ys2'Xs3,Ys3X_s3.Text = Xs3Y_s3.Text = Ys3'X2' Y2'X_2p.Text = X2Y_2p.Text = Y2'绘图Picture1.ForeColor = vbMagentaPicture1.Line (Xs1 - dX1 - Abs(R * Cos(alfa)) * X1_FWD, Ys1 - dY1 - Abs(R * Sin(alfa)) * Y1_FWD)-(Xs1, Ys1)Picture1.Line (Xs1, Ys1)-(Xs2, Ys2)Picture1.Line (Xs2, Ys2)-(Xs3, Ys3)Picture1.Line (Xs3, Ys3)-(X2, Y2)End IfEnd IfEnd SubPrivate Sub Command2_Click()Call PaintAxisEnd SubPrivate Sub Form_Load()'补偿后坐标不可编辑,只读X_0p.Locked = TrueY_0p.Locked = TrueX_s1.Locked = TrueY_s1.Locked = TrueX_s2.Locked = TrueY_s2.Locked = TrueX_2p.Locked = TrueY_2p.Locked = True'初始化ComboBox 两个Combo1.AddItem "刀补建立", 0Combo1.AddItem "刀补进行", 1Combo1.AddItem "刀补撤销", 2End SubPrivate Sub Text1_Change() End SubPrivate Sub Option1_Click() Ori = 1End SubPrivate Sub Option2_Click() Ori = -1End SubPrivate Sub Picture1_Paint() Call PaintAxisEnd SubPrivate Sub Text9_Change() R = Val(R_K.Text)End SubPrivate Sub R_K_Change() R = Val(R_K.Text)End SubPrivate Sub X_0_Change() '赋值坐标X0 = Val(X_0.Text)End SubPrivate Sub X_1_Change() '赋值坐标X1 = Val(X_1.Text)End SubPrivate Sub X_2_Change() '赋值坐标X2 = Val(X_2.Text)End SubPrivate Sub Y_0_Change()'赋值坐标Y0 = Val(Y_0.Text)End SubPrivate Sub Y_1_Change()'赋值坐标Y1 = Val(Y_1.Text)End SubPrivate Sub Y_2_Change()'赋值坐标Y2 = Val(Y_2.Text)End SubPrivate Sub PaintAxis()ClsDim i As IntegerPicture1.BackColor = vbWhitePicture1.ForeColor = vbBlackPicture1.Scale (-1000, 1000)-(1000, -1000)Picture1.DrawWidth = 2Picture1.Line (-1000, 0)-(1000, 0) '画x轴Picture1.Line (1000, 0)-(970, 15) '画箭头Picture1.Line (1000, 0)-(970, -15) '画箭头Picture1.Line (0, -1000)-(0, 1000) '画y轴Picture1.Line (0, 1000)-(10, 964) '画箭头Picture1.Line (0, 1000)-(-10, 964) '画箭头'画坐标刻度For i = -10 To 9 Step 1If i <> 0 ThenPicture1.Line (i * 100, 0)-(i * 100, 10) 'x轴刻度Picture1.CurrentX = i * 100 - 52: Picture1.CurrentY = -10: Picture1.Print i * 100 'x轴数字Picture1.Line (0, i * 100)-(10, i * 100) 'y轴刻度Picture1.CurrentX = -88: Picture1.CurrentY = i * 100 + 16: Picture1.Print i * 100 'y轴数字End IfNext iPicture1.ForeColor = vbRedPicture1.CurrentX = 10: Picture1.CurrentY = -10: Picture1.Print 0 Picture1.CurrentX = 980: Picture1.CurrentY = -14: Picture1.Print "X" Picture1.CurrentX = 15: Picture1.CurrentY = 990: Picture1.Print "Y" Picture1.ForeColor = vbBlack'显示框清零X_0p.Text = ""Y_0p.Text = ""X_s1.Text = ""Y_s1.Text = ""X_s2.Text = ""Y_s2.Text = ""X_s3.Text = ""Y_s3.Text = ""X_2p.Text = ""Y_2p.Text = ""End Sub。

相关文档
最新文档