トロコイドマクロ

indexへ

6角溝つきナット用
トロコイド加工開始角度指定バージョン
直線補間用トロコイド加工
直線円弧補間対応トロコイド加工マクロ
MURAOKAさん作成

6角溝つきナット用
トロコイド加工開始角度指定バージョン

W:溝幅
D:エンドミル直径
Z:加工深さ
A:外径
B:内径
Q:1回あたりの切りこみ
K:開始角度(指定なければ0)
F:送り速度
%

O100
G54
G40G49G80
S3500M3
G65P1000W16.3D11Z-13.A100.B60.Q10K140F1000
G0 Z100.
G0X0Y0
M5
M9
M30
%
%
O1000
IF[#6NE#0] GOTO 1
#6=0
N1
G90G0X0Y0
G0Z10.
#10=[#23-#7]/2
#11=#1/2+#17
#12=[#2-#7]/2
#8=FIX[[#11-12]/#17]+1
#13=0
WHILE[#13LE5] DO1
#14=60*#13+#6
#20=COS[#14]*#12
#21=SIN[#14]*#12
#22=COS[#14]*#17
#27=SIN[#14]*#17
#28=COS[#14-120]*#10
#29=SIN[#14-120]*#10
#30=COS[30]*#10*2
#31=COS[#14]*#30
#32=SIN[#14]*#30
#100=COS[#14+120]*#10
#101=SIN[#14+120]*#10
G90G1X#20Y#21F#9
G1Z#26
#33=1
WHILE[#33LE#8]DO2
G91
G1X#28Y#29F#9
G3X-#32Y#31I-#28J-#29
G1X-#100Y-#101
G1X#22Y#27
#33=#33+1
END2
G90G0Z2.
G0X#20Y#21
#13=#13+1
END1
G90G0Z10.
M99
%
先頭へ 直線加工用のトロコイドマクロ

G65 P1000 X0 Y0 I10. J10. R2. Q0.4 F1000
X=始点X(ABS)
Y=始点Y
I=終点X
J=終点Y
R=トロコイド加工半径
Q=切りこみピッチ
F=送り速度

O1000
#100=#4003
G90G1 X#24 Y#25 F#9
G91
#1=#4-#24
#2=#5-#25
#3=SQRT[#1*#1+#2*#2]
#10=ATAN[#2]/[#1]

IF[[[#1GE0]AND[#2GE0]]GT0]GOTO 20
IF[[[#1LE0]AND[#2LE0]]GT0]GOTO 20
N10
#10=#10+180
N20
#11=ABS[FIX[#3/#17]]
#12=#3-#11
#13=COS[#10]*#17
#14=SIN[#10]*#17
#20=SIN[#10]*#18
#21=-COS[#10]*#18
#22=#20*2
#23=#21*2
#30=1
WHILE[#30 LE #11] DO1
G91
G1X#13Y#14F#19
G1X#20 Y#21 F#19
G3X-#22Y-#23 R#18
G1X#20 Y#21
#30=#30+1
END1
IF [#12 EQ 0] GOTO 99
#13=COS[#10]*#12
#14=SIN[#10]*#12
G1X#13Y#14F#19
G1X#20 Y#21 F#19
G3X-#22Y-#23 R#18
G1X#20 Y#21
N99
M99
先頭へ
muraokaさん作成
FANUC16−M/18−M

O100( トロコイド加工 )
G0G90
M3S13200F2650
#101=1.0( ピック量 )
#102=5.0( トロコイド半径 )
M98P110
M30

O110( 平面の形状 )
( E = 補間コード )
G0X0Y-22.
G65P2E1X0Y-18.099
G65P2X-46.253Y-18.099
G65P2E2X-54.297Y-10.055I0J8.044
G65P2E1X-54.297Y-7.038
G65P2E3X-59.324Y-2.011I-5.027J0
G65P2E1X-71.29Y-2.011
G65P2X-71.29Y50.275
G65P2E2X-70.284Y51.28I1.005
G0X-51.583Y51.28
G65P2E3X-47.764Y53.038I0J5.027
G65P2E1X-37.Y65.611
G65P2E2X-28.744Y64.703I3.819J-3.27
G65P2E1X-26.764Y60.984
G65P2E3X-22.326Y58.319I4.438J2.362
G65P2E1X0Y58.319
G65P2E0X0Y-22.
M99

O2( マクロ )
IF[#8EQ#0]THEN#8=#4001
IF[#24EQ#0]THEN#24=#5041
IF[#25EQ#0]THEN#25=#5042
#27=[#24-#5041]
#28=[#25-#5042]
#14=SQRT[[#27*#27]+[#28*#28]]
GOTO[10+#8]
N12
N13
#29=[#8+#8-5]
#12=SQRT[[#4*#4]+[#5*#5]]
#13=ASIN[[#14/2]/#12]*2
#18=[57.296*#101]/#12
#32=[#5041+#4]
#33=[#5042+#5]
#1=ATAN[#5042-#33]/[#5041-#32]
#2=ATAN[#25-#33]/[#24-#32]
#11=[[#2*#29]-[#1*#29]]
IF[#11LT000]THEN#13=[360+#11]
IF[#11GT180]THEN#13=#11
IF[#11EQ000]THEN#13=360
IF[#13LE#18]GOTO1
#15=FIX[[[#13/57.296]*#12]/#101]
#3=1
WHILE[#3LE#15]DO1
G90G1X[[#32+[#12*COS[#1+[#18*#29]]]]-[#102*COS[[#1+[#18*#29]]+[90*#29]]]]Y[[#33+[#12*SIN[#1+[#18*#29]]]]-[#102*SIN[[#1+[#18*#29]]+[90*#29]]]]
G3I[#102*COS[[#1+[#18*#29]]+[90*#29]]]J[#102*SIN[[#1+[#18*#29]]+[90*#29]]]
#3=#3+1
#1=#1+[#18*#29]
END1
N1G90G1X[#24-[#102*COS[[#1+[#18*#29]]+[90*#29]]]]Y[#25-[#102*SIN[[#1+[#18*#29]]+[90*#29]]]]
G3I[#102*COS[[#1+[#18*#29]]+[90*#29]]]J[#102*SIN[[#1+[#18*#29]]+[90*#29]]]
G90G1X#24Y#25
G#8
M99
N11
#15=FIX[#14/#101]
#30=#101*COS[ATAN[#28]/[#27]]
#31=#101*SIN[ATAN[#28]/[#27]]
#32=#102*COS[ATAN[#28]/[#27]]
#33=#102*SIN[ATAN[#28]/[#27]]
IF[#14LE#101]GOTO2
G91G1X-#32Y-#33
#3=1
WHILE[#3LE#15]DO1
G91G1X#30Y#31
G3I#32J#33
#3=#3+1
END1
N2G90G1X[#24-#32]Y[#25-#33]
G3I#32J#33
G1X#24Y#25
G90M99
N10G0X#24Y#25
M99