iCAx开思网

标题: 【求助】什么叫宏指令、宏程序、循环程序编程 [打印本页]

作者: kkqqjj    时间: 2003-7-21 17:10
标题: 【求助】什么叫宏指令、宏程序、循环程序编程
HI,各位
  
什么叫宏指令、宏程序、循环程序编程
他们是一个概念吗?
  
手动用宏指令、宏程序、循环程序编程
  
比CAM软件好吗?
作者: wjmvp    时间: 2003-7-21 19:57
哥哥你应该拿一本加工中心的书看看了~
这些都是加工编程的常识了~
作者: kkqqjj    时间: 2003-7-21 21:26
流行一种说法,说宏程序比CAM好,我怎么也不明白
就算手工的宏程序再厉害,也比不上CAM软件又快有好
啊。
请各位大哥点播点播。
作者: abkk    时间: 2003-7-22 10:10
总结自己编过的程序,类同的程序把它们用变数来代替.
偶的左右对称钻孔程序.L93(G83--5.0ANA       )
#150=14.5(Z)
#140=3500(S)
#120=83(G81-G83)
#121=3(Q)
#131=300(F)
#100=120(X)
#101=120(Y)
#102=150(X#102/2Y0-UE)
GG90G54XY
M50
G92Z20.1
Z50.M3S#140
G#120R1.Z-#150Q#121F#131
X-#100/2Y#101/2
X#100/2
Y-#101/2
X-#100/2
/X-#102/2Y0
/X#102/2
G80
M9G0Z50.1
XY
G91G28Z0
M2
作者: kkqqjj    时间: 2003-7-22 17:47
总结自己编过的程序,类同的程序把它们用变数来代替.  
我用法拉棵指令解读
  偶的左右对称钻孔程序.L93(G83--5.0ANA       )  
你这样写有什么规范和特殊含义?
  
#符号后面接变量
  #150=14.5(Z)  
钻孔深度
  #140=3500(S)  
转速
  #120=83(G81-G83)  
钻孔模式选择
  #121=3(Q)  
深孔钻中的每次啄钻量
  #131=300(F)  
进给速度
  #100=120(X)  
  #101=120(Y)  
此处XY是两空间的长度。那两空间的长度什么意思?
  #102=150(X#102/2Y0-UE)  
X#102/2Y0-UE 是什么意思?
  GG90G54XY  
G0G90G54X0Y0   字母 G、X、Y后面不加数字系统默认为0。
  M50  
吹气
  G92Z20.1  
G92坐标系设定
  Z50.M3S#140  
抬刀转速以参数定正转
  G#120R1.Z-#150Q#121F#131  
参数决定钻孔指令G8X Z值根据图纸来 Q每次啄钻量    
  X-#100/2Y#101/2  
/是除法符号除法符号FANUC应该可用
  X#100/2  
  Y-#101/2  
  X-#100/2  
  /X-#102/2Y0  
/在句头起blockskip ON不读入 OFF时读入
  /X#102/2  
  G80  
结束固定循环
  M9G0Z50.1  
主轴停转快速抬刀到安全位置
  
  G91G28Z0  
Z轴归参考点
XY
我感觉Z轴归零后再XY归零更安全
  M2
程序停止不返回
作者: abkk    时间: 2003-7-22 20:47
#符号后面接变量  
#150=14.5(Z)  
安全高度? >钻孔深度
#140=3500(S)  
转速  
#120=83(G81-G83)  
钻孔模式选择  
#121=3(Q)  
什么意思? >深孔钻中的每次啄钻量
#131=300(F)  
进给速度  
#100=120(X) >两空间的长度
#101=120(Y)  
此处XY是什么意思? >
#102=150(X#102/2Y0-UE)  
X#102/2Y0-UE 是什么意思?  
GG90G54XY  
G0G90G54X0Y0 字母 G、X、Y后面不加数字系统默认为0。  
M50  
吹气  
G92Z20.1  
G92预置寄存???什么意思? >坐标系设定
Z50.M3S#140  
抬刀转速以参数定正转  
G#120R1.Z-#150Q#121F#131  
参数决定钻孔指令G8X Z值根据图纸来 Q是什么意思? >每次啄钻量
X-#100/2Y#101/2  
/是除法符号吗?控制器能执行除法命令吗? >除法符号FANUC应该可用
X#100/2  
Y-#101/2  
X-#100/2  
/X-#102/2Y0  
两个/和/是什么意思? >/在句头起blockskip ON不读入 OFF时读入   
/X#102/2  
G80  
结束固定循环  
M9G0Z50.1  
主轴停转快速抬刀到安全位置  
XY  
XY归零我觉得应该移动到下一句之后  
G91G28Z0  
Z轴归参考点  
XY  
我感觉Z轴归零后再XY归零更安全 >说得对,谢谢PP
M2  
程序停止不返回  
G92就是说自己在图纸上所设定的坐标点,出发位置以G92传给程序那边.
G92初学者还是不用为好,用惯后改过来难呀.不过对于加工零件来说,程序多的话用之以提高效率还是一种办法.
不知是否说的正确还请各位多指点.给予意见.
谁有挖槽的是否能贴出来欣赏.
作者: kkqqjj    时间: 2003-7-22 21:26
总结自己编过的程序,类同的程序把它们用变数来代替.  
我用法拉棵指令解读
  偶的左右对称钻孔程序.L93(G83--5.0ANA       )  
你这样写有什么规范和特殊含义?
  
#符号后面接变量
  #150=14.5(Z)  
钻孔深度
  #140=3500(S)  
转速
  #120=83(G81-G83)  
钻孔模式选择
  #121=3(Q)  
深孔钻中的每次啄钻量
  #131=300(F)  
进给速度
  #100=120(X)  
  #101=120(Y)  
此处XY是两空间的长度。那两空间的长度什么意思?
  #102=150(X#102/2Y0-UE)  
X#102/2Y0-UE 是什么意思?
  GG90G54XY  
G0G90G54X0Y0   字母 G、X、Y后面不加数字系统默认为0。
  M50  
吹气
  G92Z20.1  
G92坐标系设定
  Z50.M3S#140  
抬刀转速以参数定正转
  G#120R1.Z-#150Q#121F#131  
参数决定钻孔指令G8X Z值根据图纸来 Q每次啄钻量    
  X-#100/2Y#101/2  
/是除法符号除法符号FANUC应该可用
  X#100/2  
  Y-#101/2  
  X-#100/2  
  /X-#102/2Y0  
/在句头起blockskip ON不读入 OFF时读入
  /X#102/2  
  G80  
结束固定循环
  M9G0Z50.1  
主轴停转快速抬刀到安全位置
  
  G91G28Z0  
Z轴归参考点
XY
我感觉Z轴归零后再XY归零更安全
  M2
程序停止不返回
作者: abkk    时间: 2003-7-22 21:58
L93(G83--5.0ANA )  
L93是程序号码MELDAS控制器用的,相当于FANUC的O93.
至于(X#102/2Y0-UE ..)内是注解,自己避免出错注解一定要附上.
至于什么意思只有自己问自己了.
你上面程序还看不懂的话,你该好好再看一遍G CODE 详细说明书了.
明天来个四角外形大家一起来讨论.
作者: kkqqjj    时间: 2003-7-23 04:32
关于G92
  
我习惯用G54赋予XY编程零点,Z的零点不在G54中而在刀长中补正。
  
G54在机床上找。G92在发那棵里有吗?
作者: abkk    时间: 2003-7-23 11:20
FANUC控制器里当然有G92机能.说明书有没有我就不知了.
但现在一般不建议在新机上用,不知道为什么.
作者: abkk    时间: 2003-7-24 16:22
挺好用的东东,用于排列,遗憾我只会用.哪位高手把L8999解释一下吧.
L200(haretu)
#133=21
GG90G54XY
G22H100
G54XY
M2
N100
#135=55
G22H200
#135=56
G22H200
#135=57
G22H200
#135=58
G22H200
G23
N200
#524(PRG.NO)=#133
#525(WORK.OFFSET)=#135
#526(X.PIC)=8
#527(X.KOSUU)=8
#528(Y.PIC)=16
#529(Y.KOSUU)=2
G22L8999
G23
----------------------------------------------
  
L8999(G10,G54,SETSUTEI, )
IF[#525EQ54]GOTO1
IF[#525EQ55]GOTO2
IF[#525EQ56]GOTO3
IF[#525EQ57]GOTO4
IF[#525EQ58]GOTO5
IF[#525EQ59]GOTO6
N1#530=#5221  
#531=#5222  
GOTO10  
N2#530=#5241  
#531=#5242  
GOTO10  
N3#530=#5261  
#531=#5262  
GOTO10  
N4#530=#5281  
#531=#5282  
GOTO10  
N5#530=#5301  
#531=#5302  
GOTO10  
N6#530=#5321  
#531=#5322  
N10#533=0
#534=#531
WHILE[#533LT#529]DO2  
G10G#525Y#534
#532=0  
#535=#530
WHILE[#532LT#527]DO1  
G10G#525X#535
G22L#524  
#535=#535+#526  
#532=#532+1.  
END1  
#534=#534+#528  
#533=#533+1.  
END2  
G10G#525X#530Y#531  
G23
  
-----------------------------------
L21
(3.0E)
G90G0X0Y0
G92Z20.1
N1
G90G00X-.965Y-6.875Z10.S7500M03
M08
Z1.
G01Z-1.9F200.
Y-5.875F700.
X1.5
G03X3.875Y-3.5I0.J2.375
G01Y3.5
G03X2.86Y5.447I-2.375J0.
X1.1Y6.675I-1.76J-.647
G01X.8
G03X-.736Y5.875I0.J-1.875
G01X-.965
G03X-2.941Y4.817I0.J-2.375
G01X-3.476Y4.015
G03X-3.875Y2.697I1.976J-1.318
G01Y-2.697
G03X-3.476Y-4.015I2.375J0.
G01X-2.941Y-4.817
G03X-.965Y-5.875I1.976J1.317
G01Y-6.875
G00Z10.
M09
G00Z20.1
X0Y0
G23
%
作者: kkqqjj    时间: 2003-7-24 17:30
你用的是立铣
1、你用的是什么牌子的铣床
2、什么控制器,那种型号
3、随机手册命令请贴上来
4、程序前面有没有 N开头的程序号请写明?
5、你的两张图片一个样子,没有说明是加工那里用多大刀具。
作者: fzci    时间: 2003-7-24 18:35
原来abkk兄弟还是宏程式高手!
作者: abkk    时间: 2003-7-24 19:11
fzci wrote:
原来abkk兄弟还是宏程式高手!

  
:-)fzci兄过讲了,只不过灵活利用资源而已.
现在你应该会解释上面 L8999 程序了吧,详细注解一下吧!
作者: abkk    时间: 2003-7-24 19:37
kkqqjj wrote:
你用的是立铣  
  1、你用的是什么牌子的铣床  
  2、什么控制器,那种型号  
  3、随机手册命令请贴上来  
  4、程序前面有没有 N开头的程序号请写明?  
  5、你的两张图片一个样子,没有说明是加工那里用多大刀具。

俺用的是OKK厂家出的VM5机床.MELDAS 635控制器.带有远程监控机能.一直没用过,不过装有硬盘倒方便多了.不再为容量过多而发愁.
  
你的随机手册指的什么呢.是G CODE 指令吗.差不多跟FANUC一样.
常用的G01 G02 G03 G10 G90 G91 G43 G41 G40跟FANUC一样吧.
至于反向G51.1 回转 G68.1   局部坐标 G52.   
查一下FANUC手册看看是否跟MELDAS一样 .
  
程序前面 N开头的程序号 附上不附上,无所谓跟 MELDAS一样.
作者: jhhxzhxz    时间: 2003-7-25 13:30
加工简单规则的零件(如下图之类的),使用宏程序确实很方便,并且程序很短,还能使用刀具半径补偿、自动转角进给率调整等功能。
作者: abkk    时间: 2003-7-25 16:14
jhhxzhxz wrote:
加工简单规则的零件(如下图之类的),使用宏程序确实很方便,并且程序很短,还能使用刀具半径补偿、自动转角进给率调整等功能。

  
:-O要用到SIN ,COS,TAN,它们吧,贴出你的宏程序让大家见识见识.
作者: kkqqjj    时间: 2003-7-25 17:06
jhhxzhxz wrote:
加工简单规则的零件(如下图之类的),使用宏程序确实很方便,并且程序很短,还能使用刀具半径补偿、自动转角进给率调整等功能。

  
求其的宏程序,以及怎样用 MASTERCAM 做宏程序。
作者: wangjian    时间: 2003-7-25 22:03

作者: wangjian    时间: 2003-7-25 22:19
abkk wrote:
   
   
  :-)fzci兄过讲了,只不过灵活利用资源而已.  
  现在你应该会解释上面 L8999 程序了吧,详细注解一下吧!

   
L8999 试解
我用的是FANUC系统对于以下有些指令还不了解,错误之处请高手指出
  
L8999(G10,G54,SETSUTEI, )  
IF[#525EQ54]GOTO1  
判断语句 当#525等于54,执行N1语句(此时#525为55故顺序执行下一语句)
IF[#525EQ55]GOTO2  
  此时#252=55,故跳转执行N2语句
IF[#525EQ56]GOTO3  
IF[#525EQ57]GOTO4  
IF[#525EQ58]GOTO5  
IF[#525EQ59]GOTO6  
N1#530=#5221            
#531=#5222         
GOTO10              
N2#530=#5241      
   G55中X值赋予#530
#531=#5242      
    G55中Y值赋予#531    
GOTO10            
   跳转至N10语句      (以下类推)
                           
N3#530=#5261                        
#531=#5262  
GOTO10  
N4#530=#5281  
#531=#5282  
GOTO10  
N5#530=#5301  
#531=#5302  
GOTO10  
N6#530=#5321  
#531=#5322  
  
N10#533=0           
#533赋值为0(行数计数器)      
#534=#531         
  #534赋值为#531 (第一次执行时为G55中y值)
                       此处为循环嵌套从里往外执行(从#532=0处执行)

WHILE[#533LT#529]DO2   
#533小于#529时执行2语句 (#529中是槽的行数 0<2,故执行2)
G10G#525Y#534            
执行G10G55Y** (G10含义::?)                      以下完成G55中第一行8个槽
#532=0                 
#532赋值为0(列数计数器)
#535=#530               
#535赋值为#530 (第一次执行时为G55中x值)
    WHILE[#532LT#527]DO1   
#532小于#527时执行1 (0<8,故执行1
    G10G#525X#535           
  执行G10G55X**  (G10含义?::?)
G22L#524            
  调用L21(G22是调用子程序?!::?)
  
#535=#535+#526      
  X=X+8         
#532=#532+1.         
  #532=0+1=1 (计数器累加)
END1  
  
#534=#534+#528      
Y=Y+16   
#533=#533+1.         
  #533=0+1=1
END2  
G10G#525X#530Y#531  
G23
作者: abkk    时间: 2003-7-26 10:04
wangjian wrote:
   
     
  L8999 试解  
  我用的是FANUC系统对于以下有些指令还不了解,错误之处请高手指出  
   
  L8999(G10,G54,SETSUTEI, )   
  IF[#525EQ54]GOTO1   
   判断语句 当#525等于54,执行N1语句(此时#525为55故顺序执行下一语句)  
  IF[#525EQ55]GOTO2   
   此时#252=55,故跳转执行N2语句  
  IF[#525EQ56]GOTO3   
  IF[#525EQ57]GOTO4   
  IF[#525EQ58]GOTO5   
  IF[#525EQ59]GOTO6   
  N1#530=#5221            
  #531=#5222           
  GOTO10               
  N2#530=#5241      
    G55中X值赋予#530  
  #531=#5242        
     G55中Y值赋予#531     
  GOTO10            
    跳转至N10语句      (以下类推)  
                             
  N3#530=#5261                          
  #531=#5262   
  GOTO10   
  N4#530=#5281   
  #531=#5282   
  GOTO10   
  N5#530=#5301   
  #531=#5302   
  GOTO10   
  N6#530=#5321   
  #531=#5322   
   
  N10#533=0            
  #533赋值为0(行数计数器)       
  #534=#531           
   #534赋值为#531 (第一次执行时为G55中y值)  
                        此处为循环嵌套从里往外执行(从#532=0处执行)
  
  WHILE[#533LT#529]DO2   
  #533小于#529时执行2语句 (#529中是槽的行数 0<2,故执行2)  
  G10G#525Y#534            
   执行G10G55Y** (G10含义::?)                      以下完成G55中第一行8个槽  
  #532=0                  
  #532赋值为0(列数计数器)  
  #535=#530               
  #535赋值为#530 (第一次执行时为G55中x值)  
     WHILE[#532LT#527]DO1     
  #532小于#527时执行1 (0<8,故执行1)  
     G10G#525X#535            
   执行G10G55X**  (G10含义?::?)  
  G22L#524            
   调用L21(G22是调用子程序?!::?)  
   
  #535=#535+#526        
   X=X+8          
  #532=#532+1.         
   #532=0+1=1 (计数器累加)  
  END1   
   
  #534=#534+#528        
   Y=Y+16    
  #533=#533+1.         
   #533=0+1=1  
  END2   
  G10G#525X#530Y#531   
  G23  

  
执行G10G55Y** (G10含义::?)
由N1#530=#5221  
#531=#5222
  
可以推出G10G55Y#5221
#5221是Y柚现在停止的位置的机械值
G10指令是自动数值写入机能.
所以G10G#525Y#534应该可以说是把现在的Y柚机械值写入G55坐标.
  
MELDAS  G23  =  FANUC  M99
               G22  =              M98
不过近几年出的MELDAS控制器可以兼容FANUC的NC指令. 需改变设定  

作者: xxsoo    时间: 2009-3-30 20:26
yao要顶的,还是要回得
作者: wolhl    时间: 2009-12-1 23:15
学习.好东西.
作者: 陳伟    时间: 2009-12-2 22:08
有才呢  
有才呢
有才呢
作者: yahuo20032001    时间: 2009-12-26 13:49
手工编宏程序只在2D特定的工件上好点,虽然3D也能编但不能和CAM软件同日而语的!
作者: hgo    时间: 2010-3-19 13:26
好东西就要顶顶




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3