数控车宏程序
数控车床宏程序编程

数控宏程序一.什么是宏程序?什么是数控加工宏程序?简单地说,宏程序是一种具有计算能力和决策能力的数控程序。
宏程序具有如下些特点:1.使用了变量或表达式(计算能力),例如:(1)G01 X[3+5] ;有表达式3+5(2)G00 X4 F[#1] ;有变量#1(3)G01 Y[50*SIN[3]] ;有函数运算2.使用了程序流程控制(决策能力),例如:(1)IF #3 GE 9 ;有选择执行命令……ENDIF(2)WHILE #1 LT #4*5 ;有条件循环命令……ENDW二.用宏程编程有什么好处?1.宏程序引入了变量和表达式,还有函数功能,具有实时动态计算能力,可以加工非圆曲线,如抛物线、椭圆、双曲线、三角函数曲线等;2.宏程序可以完成图形一样,尺寸不同的系列零件加工;3.宏程序可以完成工艺路径一样,位置不同的系列零件加工;4.宏程序具有一定决策能力,能根据条件选择性地执行某些部分;5.使用宏程序能极大地简化编程,精简程序。
适合于复杂零件加工的编程。
一.宏变量及宏常量1.宏变量先看一段简单的程序:G00 X25.0上面的程序在X轴作一个快速定位。
其中数据25.0是固定的,引入变量后可以写成:#1=25.0 ;#1是一个变量G00 X[#1] ;#1就是一个变量宏程序中,用“#”号后面紧跟1~4位数字表示一个变量,如#1,#50,#101,……。
变量有什么用呢?变量可以用来代替程序中的数据,如尺寸、刀补号、G指令编号……,变量的使用,给程序的设计带来了极大的灵活性。
使用变量前,变量必需带有正确的值。
如#1=25G01 X[#1] ;表示G01 X25#1=-10 ;运行过程中可以随时改变#1的值G01 X[#1] ;表示G01 X-10用变量不仅可以表示坐标,还可以表示G、M、F、D、H、M、X、Y、……等各种代码后的数字。
如:#2=3G[#2] X30 ;表示G03 X30例1 使用了变量的宏子程序。
新代数控车床宏程序说明

一.用户宏程序的基本概念用一组指令构成某功能,并且象子程序一样存储在存储器中,再把这些存储的功能由一个指令来代表,执行时只需写出这个代表指令,就可以执行其相应的功能。
在这里,所存储的一组指令叫做宏程序体(或用户宏程序),简称为用户宏。
其代表指令称为用户宏命令,也称作宏程序调用指令。
用户宏有以下四个主要特征:1)在用户用户宏程序中可以使用变量,即宏程序体中能含有复杂的表达式;2)能够进行变量之间的各种运算;3)可以用用户宏指令对变量进行赋值,就象许多高级语言中的带参函数或过程,实参能赋值给形参;4)容易实现程序流程的控制。
使用用户宏时的主要方便之处在于由于可以用变量代替具体数值,因而在加工同一类的工件时.只得将实际的值赋予变量既可,而不需要对每个不同的零件都编一个程序。
二.基本书写格式数控程序文档中,一般以“%”字符作为第一行的起头,该行将被视为标题行。
当标题行含有关键字“@MACRO”时整个文档就会以系统所定义的MACRO语法处理。
如果该行无“@MACRO”关键词此档案就会被视为一般ISO程序文档格式处理,此时将不能编写用户宏和使用其MACRO语法。
而当书写ISO程序文档时标题行一般可以省略,直接书写数控程序。
“@MACRO”关键词必须是大写字母。
对于程序的注释可以采用“//……”的形式,这和高级语言C++一样。
例一:MACRO格式文档% @MACRO //用户宏程序文档,必须包含“@MACRO”关键词IF @1 = 1 THENG00 X100.;ELSEG00 Z100.;END_IF;M99;例二:ISO格式文档% 这是标题行,可当作档案用途说明,此行可有可无G00 X100.;G00 Z100.;G00 X0;G00 Z0;M99;三.用户宏程序的编写如前所述,变量是指可以在用户宏程序中的地址码后代替具体数值,在调用宏程序时进行赋值的符号#i (i=1,2,3,…)。
使用变量可以使用户宏程序具有通用性。
数控车床宏程序编程..

数控宏程序一.什么是宏程序?什么是数控加工宏程序?简单地说,宏程序是一种具有计算能力和决策能力的数控程序。
宏程序具有如下些特点:1.使用了变量或表达式(计算能力),例如:(1)G01X[3+5];有表达式3+5(2)G00X4F[#1];有变量#1(3)G01Y[50*SIN[3]];有函数运算2.使用了程序流程控制(决策能力),例如:(1(2123451性。
G01X[#1];表示G01X25#1=-10;运行过程中可以随时改变#1的值G01X[#1];表示G01X-10用变量不仅可以表示坐标,还可以表示G、M、F、D、H、M、X、Y、……等各种代码后的数字。
如:#2=3G[#2]X30;表示G03X30例1使用了变量的宏子程序。
%1000#50=20;先给变量赋值M98P1001;然后调用子程序#50=350;重新赋值M98P1001;再调用子程序M30%1001G91G01X[#50];同样一段程序,#50的值不同,X移动的距离就不同M992.局部变量编号#0~#49的变量是局部变量。
局部变量的作用范围是当前程序(在同一个程序号内)。
如果在主程序或不同子程序里,出现了相同名称(编号)的变量,它们不会相互干扰,值也可以不同。
例%100N10#3=30;主程序中#3为30M98P101#4=#3;#3M30%101#4=#3;#3=18;M993编号零件程序。
例%100M30%101#50=18;M99用;造变量名。
什么时候用全局变量?什么时候用局部变量?在一般情况下,你应优先考虑选用局部变量。
局部变量在不同的子程序里,可以重复使用,不会互相干扰。
如果一个数据在主程序和子程序里都要用到,就要考虑用全局变量。
用全局变量来保存数据,可以在不同子程序间传递、共享、以及反复利用。
刀补变量(#100~#199)。
这些变量里存放的数据可以作为刀具半径或长度补偿值来使用。
如#100=8G41D100;D100就是指加载#100的值8作为刀补半径。
数控车床华中系统用户宏程序编程

如图2,Z坐标为自变量#2,则X坐标为因变量#1,那么X用Z表示为:
分别用宏变量#1、#2代替上式中的X、Z,即得因变量#1相对于自变量#2的宏表达式:
如图1,Z坐标为自变量#2,则X坐标为因变量#1,那么X用Z表示为:
3、如何进行函数变换,确定因变量相对于自变量的宏表达式
如图3,X坐标为自变量#1,因Z坐标为因变量#2,那么Z用X表示为:
IF 条件表达式 IF 条件表达式
02
… …
ELSE ENDIF
…
05
ENDIF
格式:WHILE 条件表达式
…
ENDW
5、循环语句WHILE,ENDW
二、公式曲线宏程序编程模板的具体应用实例
运用以上公式曲线宏程序模板,结合粗加工循环指令,就可以快速准确实现零件公式曲线轮廓的编程和加工。具体应用示例如下: 例1:如图1所示零件的外轮廓粗精加参考程序如下(设毛坯为直径25毫米的棒料): %0001(程序头) T0101(调用01号外圆刀及01号刀具偏置补偿) G90 M03 S700(绝对值编程;主轴以700转/分正转) G00 X33 Z2(快速定位到粗加工循环起点) G71 U1 R0.5 P10 Q20 X0.6 F100(外径粗车循环) N10 G01 X10 F60 S1000(精加工起始程序段) Z-10 X24 Z-22(公式曲线起点) #2=8(设Z为自变量#2,给自变量#2赋值8:Z1=8) WHILE #2 GE [-8](自变量#2的终止值-8:Z2=-8) (因变量#1: 用#1、#2代替X、Z) #11=-#1+15(工件坐标系下的X坐标值#11:编程使用的是负轮廓,#1前冠以负;ΔX=15) #22=#2-30(工件坐标系下的Z坐标值#22:ΔZ=-30) G01 X[2*#11] Z[#22](直线插补,X为直径编程) #2=#2-0.5(自变量以步长0.5变化) ENDW(循环结束) N20 G01 Z-50(精加工终止程序段) G00 X100 Z80(快速定位到退刀点) M30(程序结束)
数控车宏程序编程讲解

矩形螺纹
刀具
• 12. [矩形螺纹].
• 编程:
• O0001:(主程序) O0002: (子程序)
• N1 T0202 G99; G0 U–0.3; G0 U10; U–10;
• N2 M3 S200;
G32 Z–55 F12; Z14; M99;
• N3 G0 X82 Z12; G0 U10;
数控车床(宏程序)编程
特形零件练习
正切曲线方程:
椭圆
抛物线方程:
椭圆
双头螺纹.
材料:45#刚. 毛坯: 50*140.
华中系统(宏程序)编程
• 1. 图1.
方向
右偏刀
1.
• 抛物线方程:– X*X/10. • ①以(X轴)作变量. • 编程: • O0001; • N1 #1= 0; (X轴的起点) • N2 WHILE #1 LE [10]; (X轴的终点). • N3 #2= – #1*#1/10; (抛物线的公式) • N4 G01 X[2*#1] Z[#2]; (X,Z轴的坐标变量) • N5 #1= #1+0.1; (X轴的增量) • N6 ENDW; (调用返回) • ②以(Z轴)作变量. • 编程: • O0001; • N1 #1= 0; (Z轴的起点) • N2 WHILE #1 LE [10]; (Z轴的终点) • N3 #2= SQRT[#1*10]; (抛物线的公式) • N4 G01 X[2*#2] Z[–#1]; (X,Z轴的坐标变量) • N5 #1= #1+0.1; (Z轴的增量) • N6 ENDW; (调用返回)
图2.
方向
图2
右偏刀
• 2. 抛物线方程:–X*X/10. • ①以(X轴)作变量. • 编程: • O0001; • N1 #1= 0; • N2 #2= – #1*#1/10; • N3 G01 X[2*#1] Z[#2]; • N4 #1= #1+0.1; • N5 IF #1 LE [10] GOTO2; • ②以(Z轴)作变量. • 编程: • O0001; • N1 #1= 0; • N2 #2= SQRT[#1*10]; • N3 G01 X[2*#2] Z[–#1]; • N4 #1= #1+0.1; • N5 IF #1 LE [10] GOTO2;
新代数控车床宏程序说明

一.用户宏程序的基本概念用一组指令构成某功能,并且象子程序一样存储在存储器中,再把这些存储的功能由一个指令来代表,执行时只需写出这个代表指令,就可以执行其相应的功能。
在这里,所存储的一组指令叫做宏程序体(或用户宏程序),简称为用户宏。
其代表指令称为用户宏命令,也称作宏程序调用指令。
用户宏有以下四个主要特征:1)在用户用户宏程序中可以使用变量,即宏程序体中能含有复杂的表达式;2)能够进行变量之间的各种运算;3)可以用用户宏指令对变量进行赋值,就象许多高级语言中的带参函数或过程,实参能赋值给形参;4)容易实现程序流程的控制。
使用用户宏时的主要方便之处在于由于可以用变量代替具体数值,因而在加工同一类的工件时.只得将实际的值赋予变量既可,而不需要对每个不同的零件都编一个程序。
二.基本书写格式数控程序文档中,一般以“%”字符作为第一行的起头,该行将被视为标题行。
当标题行含有关键字“@MACRO”时整个文档就会以系统所定义的MACRO语法处理。
如果该行无“@MACRO”关键词此档案就会被视为一般ISO程序文档格式处理,此时将不能编写用户宏和使用其MACRO语法。
而当书写ISO程序文档时标题行一般可以省略,直接书写数控程序。
“@MACRO”关键词必须是大写字母。
对于程序的注释可以采用“//……”的形式,这和高级语言C++一样。
例一:MACRO格式文档%@MACRO//用户宏程序文档,必须包含“@MACRO”关键词IF@1=1THENG00X100.;ELSEG00Z100.;END_IF;M99;例二:ISO格式文档%这是标题行,可当作档案用途说明,此行可有可无G00X100.;G00Z100.;G00X0;第1页G00Z0;M99;三.用户宏程序的编写如前所述,变量是指可以在用户宏程序中的地址码后代替具体数值,在调用宏程序时进行赋值的符号#i(i=1,2,3,…)。
使用变量可以使用户宏程序具有通用性。
用户宏程序中可以使用多个变量,以变量编号进行识别。
数控车宏程序常用的数学运算公式

数控车宏程序常用的数学运算公式数控车宏程序是一种用于控制数控车床进行加工的程序,其中常用的数学运算公式在快速而准确地完成加工过程中起到了重要的作用。
以下是数控车宏程序中常用的数学运算公式:1. 线性插补公式:用于计算两个坐标点之间的直线路径。
公式如下:X = X1 + (X2 - X1) * tY = Y1 + (Y2 - Y1) * t其中,(X1, Y1) 和 (X2, Y2) 分别表示起点和终点的坐标,t 表示时间参数,取值范围为 [0, 1]。
2. 圆弧插补公式:用于计算从起点到终点经过中间点的圆弧路径。
公式如下:X = Xc + R * cos(α + β * t)Y = Yc + R * sin(α + β * t)其中,(Xc, Yc) 表示圆弧的圆心坐标,R 表示圆弧的半径,α 表示圆弧起始点的角度,β 表示圆弧角度增量,t 表示时间参数,取值范围为 [0, 1]。
3. 螺旋线插补公式:用于计算沿着螺旋线路径进行加工。
公式如下:X = Xc + R * cos(α + β * t)Y = Yc + R * sin(α + β * t)Z = Zc + H * t其中,(Xc, Yc, Zc) 表示螺旋线的起点坐标,R 表示螺旋线的半径,α 表示螺旋线起始点的角度,β 表示螺旋线角度增量,H 表示螺旋线的高度增量,t 表示时间参数,取值范围为 [0, 1]。
4. 平面差补公式:用于校正加工件与期望形状之间的误差。
公式如下:X = X0 + E * cos(A)Y = Y0 + E * sin(A)其中,(X0, Y0) 表示加工点的坐标,E 表示误差,A 表示误差对应的角度。
以上是数控车宏程序常用的数学运算公式,它们在数控车床加工过程中起到了关键的作用,确保了加工精度和加工效率的提升。
数控车宏程序

数控车宏程序(总31页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--数控宏程序FANUC数控车第一章编程代码 ----------------------------------------------------------11.准备功能G------------------------------------------------------------12.辅助功能M-----------------------------------------------------------6第二章用户宏程序 -------------------------------------------------------71. 运算符号---------------------------------------------------------------72.转移和循环-----------------------------------------------------------73.运算指令--------------------------------------------------------------8第三章宏程序编程 ------------------------------------------------------111.车V型圆锥- --------------------------------------------------------112.车U圆弧-------------------------------------------------------------123.方程曲线车削加工-------------------------------------------------135.车梯形螺纹36×6--------------------------------------------------146.蜗杆-------------------------------------------------------------------157.加工多件--------------------------------------------------------------17第四章自动编程---------------------------------------------------------------211.UG建模--------------------------------------------------------------------212.创建几何体----------------------------------------------------------------24附录 --------------------------------------------------------------------------29第一章编程代码1.准备功能G00快速定位 G01直线插补 G02顺弧插补G03逆弧插补 G04暂停G9,G60,G64准确/连续停G20英制输入 G21米制输入 G40取消刀具补偿G41建立左刀具补偿 G42建立右刀具补偿G50坐标设定/主轴最高速设定G70精车循环格式: G70 P(ns) Q(nf)ns: 精加工形状程序的第一个段号。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
S800 F150; #150 = 26.;(定义椭圆加工余量) N30 IF [#150 LT 1] GOTO 40;
(如果余量小于1,跳到40句) M98 P0003;(调用椭圆加工宏程序) #150 = #150 - 2;(每次递减2mm) GOTO 30 ;(无条件跳转到30句)
N40 G0 X30. Z2.; S1500 F80; #150 =0;(开始精加工椭圆轮廓) M98 P0003; G0 X100. Z5.; M30;
(构造
a2 Z 2
)
#104=10+2/3*#103; #105=2*#104;
(构造 b
a
a 2 Z 2 X向半径偏移10mm)
G01 X#105 Z#100; #100=#100-2;(Z向递减2mm) IF [#100GT-72.102] GOTO 15(如果Z坐标值大于-72.102跳转到15句) G00 U30; N20 X70; G00 X80 Z5; G70 P10 Q20 F100;(精加工椭圆轮廓) G00 X100; Z100; M05; M30;
O0272; M03 S800; G98; G00 X90 Z100; N10 #24=0;(抛物线顶点处X值) #26=0; (抛物线顶点处Z值) #17=-10;(常量) #22=42;(抛物线开口处直径) #6=1;(每次步进量) #9=100;(进给率) G00 X#24 Z[#26+5];(加工起点) G01 Z#26 F[2*#9]; N30 #24=#24+#6;(X向递增) X2 ) #26=[#24*#24]/[#17]; (构造 G01X2*#24 Z#26 F#9; 10 N60 IF [#24 LT #22/2] GOTO 30;(如果X值小于开口处直 径一半跳转到30句) G01 X#22 Z#26 F[3*#9]; M05; M30;
当条件不满足时,程序就执行ENDm下 一条语句
循环嵌套:
DO—END循环嵌套: WHILE [条件式1] DO 1; …… WHILE [条件式2] DO 2; …… WHILE [条件式3] DO 3; …… END 3; …… END 2 …… END 1;
二、数控车床宏程序编程技巧编程实例
(2).条件转移
条件转移语句1 I F [ 条件表达式 ] GOTO n
当条件满足时,程序就跳转到同一程 序 中语句标号为n的语句上继续执 行 当条件不满足时,程序执行下一条语 句
条件转移语句2 WHILE [ 条件表达式 ] DO m ... … END m 当条件满足时,从DO m到ENDm之间的 程序就重复执行。
焦点在X轴上的双曲线宏程序编程:
O0045; T0101; G98; M03 S500; G00 X60 Z0; G01 X0; #100=0; N15 #101=4/3*SQRT[[#100-6]*[#100-6]-36]; G01 X2*#101 Z#100; #100=#100-1; IF [#100 GT -16.594] GOTO 15; G01 X58 Z-16.594; X60; G00 Z0; G00 X100; Z100; M05; M30;
逻辑判断功能
等于: EQ 不等于: NE 大于: GT 小于: LT 大于等于:GE 小于等于:LE 格式: #j 格式: #j 格式: #j 格式: #j 格式: #j 格式: #j EQ NE GT LT GE LE #k #k #k #k #k #k
3.宏程序的控制语句 (1)、无条件转移(GOTO语句) 格式:GOTO n; 式中:n——顺序号(1~9999),可 用变量表示。 举例:GOTO 1; GOTO #10;
D2之间的程序段) #6=#2*COS[#3];(构造 #7=2*#1*SIN[#3];(构造 (椭圆X坐标加余量值)
a * COS ( ))
G1 X[#7+#20] Z#6 F150;
2 * b * SIN( ) )
#3=#3+#4;(椭圆离心角递增) #10=#7+#20;(X向当前点坐标) IF [#10 GT 26] GOTO 56;
2 2
可转化为:
Z X / 2P (或X Z / 2P)
2
2
抛物线宏程序结构流程:
开始 给常量赋值 给变量赋初值 进入循环体 X变量递加 计算Z坐标值 指令机床沿抛物线轮廓移动X,Z坐标
判断X值是否小于抛物线终点处直径一半
若不小于刀具退离到工件右端
若小于返回进入循环体
结束
抛物线宏程序编制:
2
2
X b / tan Y a / sin
双曲线宏程序结构流程:
开始
给常量赋值 给自变量Z赋初值
指令机床移动X,Z坐标
Z向均值递减
双曲线上任意一点X坐标值计算
动点Z值是否大于等于双曲线终点Z值
若大于等于返回移动X,Z坐标 若小于结束
焦点在Y轴上的双曲线宏程序编制:
程序编制: O0273; T0101; M03 S500; G98; G01 X10; Z-5.05; X17.524; #1=20; N10 #2=38-10/SIN[#1]; #3=-60+20/TAN[#1]; G01 X2*#2 Z#3; #1=#1+1; IF [#1 LT 80] GOTO 10; G01 X56 Z-56.473; X60; G00 X100; Z100; M05; M30;
4.计算坐标值
5.指令机床沿曲线移动X,Z坐标
6.变量递增或递减
7.判断是ห้องสมุดไป่ตู้到达终点
未到终点返回4.计算坐标值
8.到终点结束
椭圆加工: 零件材料 45钢,毛 坯为 φ50mm×1 00mm,按 图要求完 成数控加 工程序。
【解答】
O0001; T0101 ; M03 S800; G0 X51. Z2.; G71 U1.5 R1. ;(粗车右端外形轮廓) G71 P10 Q20 U0.5 W0.1 F150 ; N10 G1 X25.966;(椭圆处外径) Z0.; Z-19.; X35.988 Z-29.; Z-46; X44.; X45.992 Z-47.; N20 Z-55.; G70 P10 Q20 S1000 F120;(精车右端外形轮廓) G00 X100.; Z50.;
一、数控车床宏程序编程特征
变量的类型和功能(FANUC系统为例) 变量号 #0 #1-#33 变量类型 空 局部变量 功能 该变量值总为空 只能在一个宏程序中使 用 在各宏程序中可以公用 的 固定用途的变量
#100~#149(#199) 公共变量 #500~#531(#999) #1000 系统变量
数控车宏程序编程 方法及技巧
在数控车床编程中,宏程序编 程灵活、高效、快捷。宏程序不仅 可以实现象子程序那样,对编制相 同加工操作的程序非常有用,还可 以完成子程序无法实现的特殊功能, 例如: 系列零件加工宏程序、椭圆 加工宏程序、抛物线加工宏程序、 双曲线加工宏程序等。
主要内容
数控车床宏程序编程特征 宏程序中的变量 宏程序变量间的运算指令 宏程序的控制语句 数控车床宏程序编程技巧编程实例 宏程序用于系列零件的加工 椭圆类零件的宏程序编制 抛物线类零件的宏程序编制 双曲线过渡类零件的宏程序编制
O0003;(椭圆加工子程序) #101=20.;(椭圆长半轴) #102=13.;(椭圆短半轴) #103=20.;(起点处Z坐标) N20 IF [#103 LT 1] GOTO 50;(如果Z值小于1跳转到50句)
#104 = SQRT[#101*#101 - #103*#103];(构造
#105 = #102*#104/#101;(构造 G01 X[2*#105 + #150] Z[#103 – 20]; #103 = #103 –0.5;(Z坐标递减0.5mm) GOTO 20;(绝对跳转到20句) N50 G00 U2. Z2.;(退刀)
2.椭圆类零件的宏程序编制
椭圆的标准方程:
X Z 2 1 2 b a
2
2
椭圆的参数方程:
X b * SIN[ ] Z a * COS[ ]
其中
为椭圆的离心角,
为椭圆的旋转角
两者不为一个值,关系为
a tan b tan
椭圆宏程序结构流程:
1.开始 2.给常量赋值
3.给变量赋值
4.双曲线过渡类零件的宏程序编制
焦点在X轴上的双曲线,其标准方程为
X2 Y2 2 1(a 0, b 0) 2 a b
参数方程为:
X A / COS Y B * TAN
焦点在Y轴上的双曲线,其标准方程为
Y X 2 1(a 0, b 0) 2 a b
参数方程为:
2.宏程序变量间的运算
数学运算功能
加法:#i=#j + #k 减法: #i=#j - #k 乘法: #i=#j * #k 除法: #i=#j / #k
运算的优先顺序: ①函数; ②乘除、逻辑与; ③加减、逻辑或、逻辑异或。 可以用[ ]来改变顺序。
函数运算功能
正弦 #i=SIN [#j] 余弦 #i=COS [#j] 正切 #i=TAN [#j] 反正切 #i=ATAN [#j] / [#k] 平方根 #i=SQRT [#j] 绝对值 #i=ABS [#j] 取整 #i=ROUND [#j] 单位:度 单位:度 单位:度 单位:度
X
Z
A
B C D
0
2R 2R 40
0
-R -[60-2*[40-2R] -60
E
40
-90
程序如下: O0034 T0101; M03 S800; G98; G00 X42 Z0; G71 U2 R1; G71 P10 Q20 U0.5 W0 F150; N10 G01 X0; #1=10; G03 X[2*#1] Z[-#1] R[#1]; G01 Z[-[-60-[80-4*#1]]]; G01 X40 Z-60; N20 G01 Z-90; G00 X100; Z100; M05; M30;