本帖最后由 tstec 于 2017-4-28 21:27 编辑
螺旋铣削宏最强版本(第二版,最实用更新!)申精
原帖见UG螺旋铣削宏最强版本可以模态(希望升为精华帖!)
闲话不多说,本次重大更新内容如下:
1,修正时间上跨00:00的bug(譬如夜班一个活正好跨零点,会出现跨零点之后的孔提示需要设置变量值的问题。) 2,删减了不添加Q值就默认一刀螺旋的功能。(避免有人忘记设置,一刀顶到工件。) 但是该功能依然可以通过设置Q为大数值来实现。(譬如Z-3R5时,Q可以为10等等) 3,增加了对极坐标调用的支持。(事实表明之前的版本并不能支持极坐标孔系编程。) 编者注:本次更新意义相当的重要。我还没有看到哪个宏能够对极坐标支持,对于寻常法兰孔系手工编写的同志来说,极坐标是应用相当广泛的。所以本次就前次宏的不足予以更新。 希望大家不吝赐教,欢迎各种挑毛病,提要求。本人会持续免费维护该螺旋宏的更新活动。
%
O9014( G133 XYZRCDQK )
#100=60*FIX[#3012/10000]+FIX[#3012/100]-100*FIX[FIX[#3012/100]/100]
IF[[#100-#999]GE60]THEN#500=#0
IF[[#100-#999]GE60]THEN#501=#0
IF[[#100-#100]GE60]THEN#502=#0
IF[[#100-#999]GE60]THEN#503=#0
IF[[#100-#999]GE60]THEN#504=#0
IF[[#100-#999]GE60]THEN#505=#0
IF[[#100-#999]GE60]THEN#506=#0
IF[[#100-#999]GE60]THEN#507=#0
IF[[#100-#999]GE60]THEN#508=#0 ( TEMP CLEAN )
#999=#100 ( SET CLEAN LABEL )
#500=#5003 (START POIT Z )
IF[[[1000*#24]OR[1000*#501]]EQ0]THEN#24=#5001 ( GET X )
IF[#24NE#0]THEN#501=#24 ( SET TEMP X )
IF[#24EQ#0]THEN#24=#501
IF[[[1000*#25]OR[1000*#502]]EQ0]THEN#25=#5002 ( GET Y )
IF[#25NE#0]THEN#502=#25 ( SET TEMP Y )
IF[#25EQ#0]THEN#25=#502
IF[[[1000*#26]OR[1000*#503]]EQ0]THEN#26=#5003 ( GET Z )
IF[#26NE#0]THEN#503=#26 ( SET TEMP Z )
IF[#26EQ#0]THEN#26=#503
IF[[[1000*#18]OR[1000*#504]]EQ0]THEN#18=#5003 ( GET R )
IF[#18NE#0]THEN#504=#18 ( SET TEMP R )
IF[#18EQ#0]THEN#18=#504
IF[[[1000*#3]OR[1000*#505]]EQ0]THEN#3000=133( NEED SET C! )
IF[#3NE#0]THEN#505=#3
IF[#3EQ#0]THEN#3=#505
IF[[[1000*#7]OR[1000*#506]]EQ0]THEN#3000=133( NEED SET D! )
IF[#7NE#0]THEN#506=#7
IF[#7EQ#0]THEN#7=#506
IF[[[1000*#6]OR[1000*#507]]EQ0]THEN#3000=133( NEED SET K! )
IF[#6NE#0]THEN#507=#6
IF[#6EQ#0]THEN#6=#507
IF[[[1000*#17]OR[1000*#508]]EQ0]THEN#3000=133( NEED SET Q! )
IF[#17NE#0]THEN#508=#17
IF[#17EQ#0]THEN#17=#508
#101=15
IF[#4017EQ16]THEN#101=16 ( CHECK G15/G16 )
G#101
G90G00X#24Y#25
G15
#24=#5001
#25=#5002
N10
IF[#18LT#26]THEN#17=-#17
#31=ABS[FIX[[#18-#26]/#17]]
#32=ABS[#18-#26]-#31*#17
#33=[#7-#3]/2
#27=360*ABS[#32/#17]
IF[#31EQ0]THEN#27=360*ABS[[#18-#26]/#17]
IF[#6EQ#0]GOTO11
IF[[#6-10*FIX[#6/10]]EQ3]THEN#28=#24-#33*SIN[#27]
IF[[#6-10*FIX[#6/10]]EQ2]THEN#28=#24+#33*SIN[#27]
GOTO12
N11
#28=#24-#33*SIN[#27]
#6=13
N12
#29=#25+#33*COS[#27]
IF[#33LT0.1]THEN#3000=133( ROTATE LE 0.1! )
IF[[FIX[#6/10]]NE0]GOTO2
#6=#6-10*FIX[#6/10]
G90G00Z#18
G01Y[#25+#33]F#9
#30=1
WHILE[#30LE#31]DO1
G#6Z[#18-#17*#30]I0.J-#33
#30=#30+1
END1
G#6X#28Y#29Z#26I0.J-#33
G#6X#28Y#29Z#26I[#24-#28]J[#25-#29]
G01X#24Y#25
GOTO99
N2
#6=#6-10*FIX[#6/10]
G90G00X#24Y#25
G00Z#18
G01Y[#25+#33]F#9
#30=1
WHILE[#30LE#31]DO1
G#6Z[#18-#17*#30]I0.J-#33
#30=#30+1
END1
G#6X#28Y#29Z#26I0.J-#33
G01X#24Y#25
GOTO99
N99
G90G00Z#500
G#101
M99
%
极坐标调用示例: G54G90G0X0Y0 M3S3000F2000 G43G0Z50H1 G16 G133 X100 Y0 Z-20 R3 C20 D50 Q3 K02 G133Y45 G133Y90 G15 M5 M30
补充内容 (2017-8-14 20:21):
已有第三版发布 见
http://www.ugsnx.com/forum.php?m ... ;extra=#pid10781816
补充内容 (2018-2-9 14:17):
本帖已完结,各位请下载最终版本。
http://www.ugsnx.com/thread-190807-1-1.html |