找回密码 注册 QQ登录
开思网工业级高精度在线3D打印服务

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
打印 上一主题 下一主题

宏程式

[复制链接]
61
发表于 2003-8-6 05:11:21 | 只看该作者
abkk wrote:
来个实用的吧!  
  自动机械值写入控制器G54坐标(X,Y).  
  用于MELDAS dos下的控制器.  
  %  
  L54(G10G54XY  )  
  #5221=#5021  
  #5222=#5022  
  M2   
  %

  
#5021和#5022 分别是任意时刻XY坐标的数值,是个实时的值。
不知道三另M65中也是这个变量吗?
其中可以加数值计算和暂停来实现对规则零件的快速找正
如:通过圆上四点找圆心(圆周上的点到圆心的距离是相等的),
然后通过直边上两点来定直线边,从而确定一个工件的具体位置。
  
wuleizy wrote:
G17G21G80G49G40; XY平面,取消各类补偿取消固定循环
  T#600;          #600参数决定刀号
  M6  (CALL P9001); 呼叫P9001副程序
  N1G66P8200I100.J50.C15.Z-20.D20.R10.Q2.F200; G66是什么意思?
  G67; G67是什么意思?
  N2  
  M40 (CALL P9002)  
  M30;  
   
  O9001  
  G0G90G#4014X0Y0; 参数#4014确定坐标系的号数
  G43H#4111Z100.    参数#4111确定刀具正向补正的数值
  M99;  
   
  O8200  
  I FOR POCKET LENGTH  
  J FOR POCKET WIDTH  
  Z FOR POCKET DEPTH  
  Q FOR DEPHT OF CUTTER  
  E FOR POCKET ANGLE   
  .......                    省略了很多程序?
  IF [#4*#5*#26*#9....] EQ 0 GOTO 3000  
  IF #4012EQ66 GOTO 60  
   
  N3000 #3000=140 DATA ERROR  
   
  M99  
      
  
#600
#4014
#4111
#3000
#4*#5*#26*#9
这几个变量请预先说明,说明变量是编程的好传统。
此程序适用于链式刀库的加工中心
62
发表于 2003-8-6 09:17:19 | 只看该作者
wuleizy wrote:
上面所写的MACRO 只是简单,如加上一些system variable就会使PROGRAM 出神入画,有意联系我

macro 程式,好處是可以縮短程式增加机床的功能,並在加工中將各軸座標、     Tcode、Mcode、Scode 、G code ..連線輸出到PC 做各種資料運算等,不過並不會出神入化,一般較多使用在規則狀的的循環切削,如真圓銑削、矩形槽,螺旋銑削、自動校刀,工件座標自動輸入等。寫了快10年的macro最後還是需要學CAM因3D曲面用macro是寫不來的,奉勸各位還是把cam學好吧!  
我來注解你貼的程式
由糸統變數判斷此程式是給fanuc 18系列用
G17G21G80G49G40;  
T#600; (變數600的值=T code)
M6 (CALL P9001);
(用M6來呼叫9001程式,先決條件是參數6071要設6)
N1G66P8200I100.J50.C15.Z-20.D20.R10.Q2.F200;  
(以 macro 形態呼叫8200副程式並用引數將 I值、J值、C值、Z值…..等代到8200的副程式)
  
G67;(取消G66狀
N2  
M40 (CALL P9002)  
(以M40呼叫9002程式,先決條件是參數6072要設40)
M30;  
  
O9001  
G0G90G#4014X0Y0;(如現是G54則#4014等於54,所以等於現在是G54又再下一次G54的指令沒意義,此行只要G0G90X0Y0即可)  
G43H#4111Z100.( #4111是H code的值也就是刀長補正位置)
M99;  
  
O8200  
(N1G66P8200I100.J50.C15.Z-20. - D20.R10.Q2.F200)
I FOR POCKET LENGTH (I值等於切槽的長100.)
J FOR POCKET WIDTH  (J值等於切槽的寬50.   )
Z FOR POCKET DEPTH (Z值等於切槽的深  -20.)
Q FOR DEPHT OF CUTTER (Q值等於刀具的深度  2.)
E FOR POCKET ANGLE (值等於切槽的角度)
.......  
IF [#4*#5*#26*#9....] EQ 0 GOTO 3000 (假如 I J Z F的值相乘等於0時跳到N3000 也就I J Z F有任何的值等於0時跳到N3000)
IF #4012EQ66 GOTO 60 (判斷是G65、G66、G67狀態如果是G66的狀態跳到N60)
  
N3000 #3000=140 DATA ERROR (執行此行是會出現3140ALARM DATA ERROR)
  
M99  
    
63
发表于 2003-8-6 14:55:49 | 只看该作者
我在CAD/CAM与制造业信息化杂志上看到一个宏程序
是工件座標自動輸入的宏程序。
工件是一个扇形
大概的意思是先找圆上的几个点,输入然后进行数学处理求出圆的中心。
再根据直线边两点求出侧面的直线坐标,从而确定工件位置。
  
我看了半天不知道他是根据什么算法来计算的。

下面是程序
  
FANUC SERIES-0MJ MCV1700立式加工中心上试验通过
  
%
:0002(CIRCLE)(R)
N20 #1=#5021
       #2=#5022
       M02
N25 #3=#5021
        #4=#5022
N30#5=#5021
      #6=#5022
#11 =[#1*#1-#5*#5+#2*#2-#6*#6] /2
#10=[#1*#1-#3*#3+#2*#2-#4*#4] /2
#12=#1-#3
#13=#1-#5
#14=#2-#4  
#15=#2-#6
#17 =[#11*#12-#13*#10]/[#13*#14-#15*#12]  
#17 =-#17  
#18 =[#10-#17*#14]/#12
#2501 =#18(G54-X)
#2601 =#17(G54-Y)
#18 =#18 -#1
#17 =#17 -#2
  
N35 略 此处是求直线边的程序
  
%
N20-N25用手摇轮找到第一点后启动该程序#2#3放XY值
N25-N30找到第二点后#4#5放XY值
N30-N35同样放第三点的数值。然后进行一系列数学运算
,将结果传送到#2510、#2610存储器中既G54XY,并算
出该圆弧半径值,结果存在#500寄存器里。
我看了半天不知道他是根据什么算法来计算的。
64
发表于 2003-8-7 06:50:07 | 只看该作者
adar wrote:
   
  macro 程式,好處是可以縮短程式增加机床的功能,並在加工中將各軸座標、     Tcode、Mcode、Scode 、G code ..連線輸出到PC 做各種資料運算等,不過並不會出神入化,一般較多使用在規則狀的的循環切削,如真圓銑削、矩形槽,螺旋銑削、自動校刀,工件座標自動輸入等。寫了快10年的macro最後還是需要學CAM因3D曲面用macro是寫不來的,奉勸各位還是把cam學好吧!   
        

能不能把常用的macro程式贴出来,实用的。就象上述你说的几个功能
T、M、S、G等代码连线输出功能。
规则切削常用程序
自动校刀程序
特别是工件坐标自动输入程序。
如果敲入有麻烦可以扫描贴入。
65
发表于 2003-8-7 12:19:36 | 只看该作者
不是有個數學題目---不在同一直線的任意3點請求出此3點構成的園弧直徑及園心。另外為提高本公司的兢爭力只免費提供有購買我們公司出產的机床客戶,不過我可以附上一則簡單的工件中心座標程式供你參考(macro a的寫法)
:8000(CENTER AUTO SETING)  
(#500SET1=G54  #500SET2=G55)  
(3=G56  4=G57  5=G58  6=G59)  
G65H01P#1100Q1
G4X0.5  
G90
G65H01P#1100Q0
M00(MOVE EDGEFINDER AT X FIRST POINT THEN PRESS CYCLE START)  
G65H01P#100Q#5021
M00(MOVE EDGEFINDER AT X SECON POINT THEN PRESS CYCLE START)  
G65H01P#101Q#5021
G65H03P#102Q#101R#100
G65H05P#103Q#102R2
G65H02P#104Q#100R#103
G10L2P#500X#104
M00(MOVE EDGEFINDER AT Y FIRST POINT THEN PRESS CYCLE START)  
G65H01P#105Q#5022
M00(MOVE EDGEFINDER AT Y SECON POINT THEN PRESS CYCLE START)  
G65H01P#106Q#5022
G65H03P#107Q#106R#105
G65H05P#108Q#107R2
G65H02P#109Q#108R#105
G10L2P#500Y#109
M30
66
发表于 2003-8-7 18:15:01 | 只看该作者
偶看了晕!
老贴又被偶顶出一个高手出现adar
多多赐教
67
发表于 2003-8-9 17:20:40 | 只看该作者
G61
G04X.1
M3
IF[#11EQ#0]GOTO910
G65P9370S#19T#20U#21
IF[#500NE#105]GOTO920
IF[#8NE#0]GOTO110
#8=.02*#500
N110#14=#[#103+#11]
G0G90
IF[#1NE#0]GOTO310
G91G28Z0
#26=#5043
#28=#14-#526+#26
GOTO830
N310#26=#5043-#5023
#28=#14-#526+#26
IF[#1EQ1]GOTO840
IF[#1NE2]GOTO810
IF[#106EQ1]GOTO320
G53X#524
GOTO840
N320G53Y#525
GOTO840
N810IF[#18NE#0]GOTO820
#18=#28+#500*2
N820Z#18
N830G90G53X#524Y#525
N840Z[#28-#8]
G4X.5
G53X#524Y#525
G65P9367A4.B3.C[#28+#500/10]F40.
G0G91G28Z0
M5
M58
IF[#105EQ0]GOTO930
M99
N910#3000=108(NO Hh)
N920#3000=166(MODE CONFLICT)
N930#3000=188(TOOL WORN/BROKEN)
68
发表于 2003-8-10 08:36:56 | 只看该作者
拜托,请写一下使用方法。让我等新手更好理解。
69
发表于 2003-8-10 08:46:02 | 只看该作者
樓上wuleizy所貼只是程式的一部份,應該是刀長量測的macro程式聽你說可以出神入化那就考考老兄對系統變數的了解,我上面貼的程式裡面有一句是
G65H01P#1100Q1 (#1100=0)請問#1100是什麼意義?
70
发表于 2003-8-10 09:00:35 | 只看该作者
以前粗略学过计算机的编程语言。
G65H01P#1100Q1 (#1100=0)
  
我看到#1100  我又看到一个字母 P是不是代表子程序号码的?  
  
所以我认为,是个地址里面放着变量,代替程序号的。
  
#1100的初始值为0
  
Q1是什么意思?
  
还有#1100这个地址在系统内是不是有特殊定义?哪个系统的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2024-12-24 20:44 , Processed in 0.027620 second(s), 9 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

快速回复 返回顶部 返回列表