見出し画像

ケーナ笛の指穴加工Gコードプログラム

(<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>)
(ケーナの指穴あけメインプログラム)
(Mach3 CNC G-Code program.)
(Fukui Shotaro 2019/8/31-2024/9/16)
(2024/8/10 真円穴あけ追加)
(<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>)

(Windows memo font: System 18 pt.)

(機械原点の方向はテーブル上で左手前がX0,Y0,Z-150ぐらい)
(反時計回りに加工するとバリが出にくい)

(<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>)
O0001 (ケーナ指穴あけメインプログラム O0-99999)

(パラメーターセット #1-10320)
(システムパラメータ #5160-10306)

N001 #1 = 3000 (Dwell time.3000[ms]3秒の汎用タイマ)

(-----移動速度と移動高さの設定-----)

(低速移動設定 Z軸切り込みにする)
N011 #11 = [-115.00] (Slow moving height. [mm])
N012 #12 = 50 (Slow moving speed. [mm/min])

(中速移動設定 材料へアプローチ 次切り込み)
N021 #21 = [-110.00] (Medium moving height. [mm])
N022 #22 = 500 (Medium moving speed. [mm/min])

(高速移動設定 その他移動用)
N031 #31 = [-100.00] (Fast moving height. [mm])
N032 #32 = 1000 (Fast moving speed. [mm/min])

(スピンドル速度設定)
N050 #50 = 700 (停止スピンドル)
N051 #51 = 800 (低速スピンドル)
N052 #52 = 850 (中速スピンドル)
N053 #53 = 1000 (高速スピンドル)

(加工開始高さの設定.)
N061 #61 = #11 (加工開始高さ [mm])
N062 #62 = #12 (加工速度 [mm/min])

(切り込み量の設定)
N063 #63 = 0.00 (一回あたりの加工深さ. [mm])
N064 #64 = 1 (管尻加工回数)
N065 #65 = 1 (指穴加工回数)

(ツールの設定)
N071 #71 = 2.00 (ツール直径 [mm])
N072 #72 = [#71 / 2] (ツール直径 / 2 [mm] = ツール半径)

(楕円加工用パラメータ)
N080 #80 = #61 (加工開始高さ)
N081 #81 = 48 (楕円用パラメータ 1/4円の折れ線の数)
N082 #82 = 1176 (楕円用パラメータ 1/4円の分割数)

(指穴の位置と大きさの設定)
(Quena C major key.)
(内径 18.00 [mm])
(全長 285.00 [mm])

(材料の中心)
N100 #100 = [0.00] (材料の中心 X axis. [mm])
N101 #101 = 92.12 (材料の中心 Y axis. [mm])

N102 #102 = 18.50

(指穴1)
N111 #111 = [46.8 + 0.5 - #102] (下の円弧の頂点 1 [mm])
N112 #112 = [9.50] (スロット長 1 [mm])
N113 #113 = [9.50] (スロット幅 1 [mm])

(指穴2)
N121 #121 = [77.7 + 0.9 - #102] (下の円弧の頂点 2 [mm])
N122 #122 = [9.50] (スロット長 2 [mm])
N123 #123 = [9.50] (スロット幅 2 [mm])

(指穴3)
N131 #131 = [92.8 + 0.9 - #102] (下の円弧の頂点 3 [mm])
N132 #132 = [7.20] (スロット長 3 [mm])
N133 #133 = [7.20] (スロット幅 3 [mm])

(指穴4)
N141 #141 = [117.5 + 0.8 - #102] (下の円弧の頂点 4 [mm])
N142 #142 = [9.50] (スロット長 4 [mm])
N143 #143 = [9.50] (スロット幅 4 [mm])

(指穴5)
N151 #151 = [141.8 + 0.6 - #102] (下の円弧の頂点 5 [mm])
N152 #152 = [9.50] (スロット長 5 [mm])
N153 #153 = [9.50] (スロット幅 5 [mm])

(指穴6)
N161 #161 = [163.6 + 0.4 - #102] (下の円弧の頂点 6 [mm])
N162 #162 = [9.50] (スロット長 6 [mm])
N163 #163 = [9.50](スロット幅 6 [mm])

(裏穴.)
(N171 #171 = 176.00 - #102) (下の円弧の頂点 [mm])
(N172 #172 = 6.30) (スロット長 [mm])
(N173 #173 = 6.30) (スロット幅[mm])

(N300 #300 = [#100 - #72]) (管尻 X軸)
(N301 #301 = [#101 - 15]) (菅尻 加工開始 手前 Y軸)
(N302 #302 = [#101 + 15]) (菅尻 加工終了 奥側 Y軸)

(<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>)
O5200(スタートアップ)
(スピードとフィードオーバーライド設定)
(N5200 M48) (Enable / Set by dial override.)
N5200 M49 (Disable / Set by program only.)

(Feed stop. / Spindle stop. / Coolant stop.)
N5201 F0 (フィード0)
N5202 S0 (スピンドル0)
N5203 M3 (スピンドル回転方向 clockwise. CW)
(N5203 M4) (スピンドル回転方向 counterclockwise. CCW)
N5204 M5 (スピンドル停止)
(N5204 M7) (ミストクーラントon.)
(N5204 M8) (フルードクーラント on.)
N5205 M9 (全クーラント off.)

(オペレーションセッティング)

(長さの単位設定)
(N5206 G20) (インチを使う)
N5206 G21 (ミリメーターを使う)

(フィードレートモード設定)
(N5207 G93) (Inverse time feed mode.)
N5207 G94 (Units per min.)

(パスコントロールモード設定)
N5208 G61 (Full stop mode.)
(N5208 G64) (Constant speed mode.)

(ディスタンスモード設定)
N5209 G90 (Absolute distance mode. X3,6,9)
(N5209 G91) (Incremental distance mode. X3,3,3)

(固定サイクル復帰レベル)
N5210 G98 ( Initial level after fixed cycle.)
(N5210 G99) (R point level after fixed cycle.)

(機械座標系の設定)
(Plane selection.)
N5220 G17 (Select XY plane.)
(N5220 G18) (Select XZ plane.)
(N5220 G19) (Select YZXY plane.)

(ワークオフセットテーブルに座標系データを設定します)
(P1-255 Fixture number.)
N5221 G10 L2 P1 X0 Y0 Z0 A0 B0 C0 (Compatible with G54)
N5222 G10 L2 P2 X0 Y0 Z0 A0 B0 C0 (Compatible with G55)
N5223 G10 L2 P3 X0 Y0 Z0 A0 B0 C0 (Compatible with G56)
N5224 G10 L2 P4 X0 Y0 Z0 A0 B0 C0 (Compatible with G57)
N5225 G10 L2 P5 X0 Y0 Z0 A0 B0 C0 (Compatible with G58)
N5226 G10 L2 P6 X0 Y0 Z0 A0 B0 C0 (Compatible with G59)

(ワークオフセット座標系を選択します.)
N5501 G54 (Use fixture offset 1)
(N5501 G55) (Use fixture offset 2)
(N5501 G56) (Use fixture offset 3)
(N5501 G57) (Use fixture offset 4)
(N5501 G58) (Use fixture offset 5)
(N5501 G59) (Use fixture offset 6)

(Coordinate offset.)

(N5502 G92 X0 Y0 Z0 A0 B0 C0) (Coordinate offset and parameter set.)
N5503 G92.1 (Pra 5211-5216 0set)
N5504 G92.3 (Pra 5211-5216 to offset)

(ツール設定)

(工具オフセットテーブルに座標系データを設定します)
(P0-255Tool number. / A-Tool radius.)
N5511 G10 L1 P1 X0 Z0 A0 (Tool offset value setting.)
N5512 G10 L1 P2 X0 Z0 A0 (Tool offset value setting.)
N5513 G10 L1 P3 X0 Z0 A0 (Tool offset value setting.)
N5514 G10 L1 P4 X0 Z0 A0 (Tool offset value setting.)
N5515 G10 L1 P5 X0 Z0 A0 (Tool offset value setting.)
N5516 G10 L1 P6 X0 Z0 A0 (Tool offset value setting.)

(半径補正)
N5800 G40 (半径補正キャンセル)
(N5800 G41) (Start cutter radius correction.)
(N5800 G42) (Start cutter radius correction.)

(ツール長オフセット)
(N5801 G43) (Offset Apply positive value.)
N5801 G49 (ツール長オフセットキャンセル)

(ツール選択)
N5802 T1 (Tool 1 selection.)
N5803 M6 (Tool change.)

(スタートアップ完了)

(<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>)
(材料の置き方と原点位置の設定)

(ケーナは横置き 左側が菅尻 右側が歌口)

(<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>)

N5900 M1 (Optional program stop.)
( +=MOVE START=+ )
( MOVE TO HOME POSITION)

(高速移動高さへ移動)
N5901 F#32 (高速移動速度)
N5902 G01 Z#31 (高速移動高さへ移動)

(材料供給、排出位置へ移動)
N5903 G01 X90.00 Y150.00 Z-50.00 (Move to loading / unloading pos.)

(Material loading / unloading pos.)

N6000 M1 (Optional program stop.)
( +=MOVE START=+ )
(Spindle UP)

(スピンドル速度設定 停止)
N6004 S#50 (停止スピンドル)

(Spindle on)
N6005 M3 (スピンドル clockwise. CW)
(N6005 M4) (Spindle counterclockwise. CCW)
(N6005 M5) (Spindle stop.)
N6006 G4 P#1 (Dwell / Spindle acceleration time.)

(スピンドル速度設定 低速)
N6008 S#51 (Medium speed spindle.)
N6009 G4 P#1 (Dwell / Spindle acceleration time.)

(スピンドル速度設定 中速)
N6010 S#52 (Medium speed spindle.)
N6011 G4 P#1 (Dwell / Spindle acceleration time.)

(スピンドル速度設定 高速)
N6012 S#53 (Medium speed spindle.)
N6013 G4 P#1 (Dwell / Spindle acceleration time.)

N6020 M1 (Optional program stop.)
(Spindle check. fast speed spindle.)

(<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>)
N6100 M1 (Optional program stop.)
( +=MOVE START=+ )
(Processing of finger holes)

(Hole 1 parameter set. > Milling)
N6110 #80 = #61 (加工高さ 切り込み量計算用)
N6111 #211 = #111 (Vertex of the lower arc.)
N6112 #212 = #112 (Slot length.)
N6113 #213 = #113 (Slot width.)
N6114 M98 P10200 L1 (Call the approach sub. only once.)
N6115 M98 P10300 L#65 (Call the milling sub. only once.)
N6116 M98 P10800 L1 (Call the depart sub. only once.)

(Hole 2 parameter set. > Milling)
N6120 #80 = #61 (加工高さ 切り込み量計算用)
N6121 #211 = #121 (Vertex of the lower arc.)
N6122 #212 = #122 (Slot length.)
N6123 #213 = #123 (Slot width.)
N6124 M98 P10200 L1 (Call the approach sub. only once.)
N6125 M98 P10300 L#65 (Call the milling sub. only once.)
N6126 M98 P10800 L1 (Call the depart sub. only once.)

(Hole 3 parameter set. > Milling)
N6130 #80 = #61 (加工高さ 切り込み量計算用)
N6131 #211 = #131 (Vertex of the lower arc.)
N6132 #212 = #132 (Slot length.)
N6133 #213 = #133 (Slot width.)
N6134 M98 P10200 L1 (Call the approach sub. only once.)
N6135 M98 P10300 L#65 (Call the milling sub. only once.)
N6136 M98 P10800 L1 (Call the depart sub. only once.)

(Hole 4 parameter set. > Milling)
N6140 #80 = #61 (加工高さ 切り込み量計算用)
N6141 #211 = #141 (Vertex of the lower arc.)
N6142 #212 = #142 (Slot length.)
N6143 #213 = #143 (Slot width.)
N6144 M98 P10200 L1 (Call the approach sub. only once.)
N6145 M98 P10300 L#65 (Call the milling sub. only once.)
N6146 M98 P10800 L1 (Call the depart sub. only once.)

(Hole 5 parameter set. > Milling)
N6150 #80 = #61 (加工高さ 切り込み量計算用)
N6151 #211 = #151 (Vertex of the lower arc.)
N6152 #212 = #152 (Slot length.)
N6153 #213 = #153 (Slot width.)
N6154 M98 P10200 L1 (Call the approach sub. only once.)
N6155 M98 P10300 L#65 (Call the milling sub. only once.)
N6156 M98 P10800 L1 (Call the depart sub. only once.)

(Hole 6 parameter set. > Milling)
N6160 #80 = #61 (加工高さ 切り込み量計算用)
N6161 #211 = #161 (Vertex of the lower arc.)
N6162 #212 = #162 (Slot length.)
N6163 #213 = #163 (Slot width.)
N6164 M98 P10200 L1 (Call the fapproach sub. only once.)
N6165 M98 P10300 L#65 (Call the milling sub. only once.)
N6166 M98 P10800 L1 (Call the depart sub. only once.)

( -=SPINDLE STOP=- )

(スピンドル速度設定 停止)
N6190 S#50 (停止スピンドル)

(Spindle on)
N6195 M3 (スピンドル clockwise. CW)
(N6195 M4) (Spindle counterclockwise. CCW)
(N6195 M5) (Spindle stop.)
N6196 G4 P#1 (Dwell / Spindle acceleration time.)

N6200 S0 (Spindle stop.)
(N6200 M3) (Spindle clockwise. CW)
(N6200 M4) (Spindle counterclockwise. CCW)
N6201 M5 (Spindle stop.)

(材料供給、排出位置へ移動)
N6210 F#32 (Fast moving speed.)
(N6210 G01 X0 Y85 Z#31 ) (Move to loading/unloading pos.)
N6211 G01 X90.00 Y150.00 Z-50.00 (Move to loading / unloading pos.)

(<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>)
N6220 M30 (Program end and rewind.)
(<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>)

O10200 (approach subroutine.)

(-----Path control mode set.-----)
N10200 G61 (Full stop mode.)
(N10200 G64) (Constant speed mode.)

(切り込み開始位置の計算)
(Start X = Bottom + [Slot length / 2])
N10201 #531 = [#211 + [#212 /2 ]]

(Start Y = Material center + [Width / 2] - [Tool diameter / 2])
N10202 #532 = [#101 + [#213 /2] - #72 ]

(切込み開始位置へ移動)

(-----Move to starting position. High speed moving height.-----)
N10210 F#32(Fast moving speed.)
N10211 G01 X#531 Y#532 Z#31 (Starting pos. High speed height.)

N10212 F#22(Medium moving speed.)
N10213 G01 Z#21 (Starting pos. medium speed height.)

N10214 F#12(Low moving speed.)
N10215 G01 Z#11 (Hole center. Low speed height.)

(Arrived at the machining start position.)

N10217 M99 (Return from subroutine. CALL530用)

O10300 (Guri guri subroutine.真円 )
(<><><><><><><><><><><><><><><><>)
(インクリメンタルIJモードにする)
(終点を指定するXY 開始位置と同じ)
(現在位置から中心位置のオフセットを指定するIJ)

N10320 G03 J[[[#213-#71]/2]*-1]

N10324 #80 = [#80 - #63] (切り込み量更新)

N10325 M99 (Return from subroutine.)

O10600
(グラフで楕円を描く)

(ダウンカット)
(菅尻は手前から奥へマイナス座標でカット カット面がX0になるように)

(指穴は左上から入って左回転カット)

N10600 #1601 = #81 (楕円用パラメータ 1/4円の折れ線の数)
N10601 #1602 = #82 (楕円用パラメータ 1/4円の分割数)

(N10602 #80 = #61) (切り込み量更新)
(N10603 M98 P600 L#65) (Call the guri guri sub.)

(Clothoid curve start X)
(Bottom + [Slot length / 2])
N10610 #600 = [#211 + [#212 / 2]]

(Clothoid curve start Y)
(Material center + [Width / 2] - [Tool diameter / 2])
N10611 #601 = [#101 + [#213/2] - #72]

N10612 #602 = #1601 (Clothoid X offset 6 to 1 dec 1)
N10613 #603 = 1 (Clothoid Y offset 1 to 6 add 1)

N10614 #94 = 5 (R 5 to 2 )

N10615 M98 P10650 L#1601 (Call the clothoid sub.)
(L6)

N10616 G01 X[#211 + #72] Y#101 Z#80

N10617 #600 = [#211 + #72]
N10618 #601 = #101

N10619 #602 = 1 (Clothoid X offset 6 to 1 dec 1)
N10620 #603 = #1601 (Clothoid Y offset 1 to 6 add 1)

N10621 #94 = 2 (R 5 to 2 )

N10622 M98 P10660 L#1601 (Call the clothoid sub.)

N10623 G01 X[#211 + [#212/2]] Y[#101-[#213/2]+#72] Z#80

N10624 #600 = [#211 + [#212/2]]
N10625 #601 = [#101-[#213/2]+#72]

N10626 #602 = #1601 (Clothoid X offset 6 to 1 dec 1)
N10627 #603 = 1 (Clothoid Y offset 1 to 6 add 1)

N10628 #94 = 5 (R 5 to 2 )

N10629 M98 P10670 L#1601 (Call the clothoid sub.)

N10630 G01 X[#211 + #212 - #72] Y#101 Z#80

N10631 #600 = [#211 + #212 - #72]
N10632 #601 = #101
N10633 #602 = 1 (Clothoid X offset 6 to 1 dec 1)
N10634 #603 = #1601 (Clothoid Y offset 1 to 6 add 1)

N10635 #94 = 2 (R 5 to 2 )

N10636 M98 P10680 L#1601 (Call the clothoid sub.)

N10637 G01 X[#211 + #212/2] Y[#101+[#213/2]-#72] Z#80

N10638 #80 = [#80 - #63] (切り込み量更新)

N10639 M99 (Return from subroutine.)

O10650 (Guri guri subroutine. )
(ツール直径4mm)

(絶対IJモードにする IJは絶対値で指定すること)

(インボリュートの楕円にしたい)
(インボリュートかと思いきやクロソイド曲線)
(Gコードでかけないかと思いきや かけそうな気がしてきた ような)

(中心の横から刃を入れることにした  パイプに当たらないところに入って 当てる 左回転)
(クロソイドの書き方 X1個進む Y1,2,4,8,16,32で増やす の 逆回転)
(<><><><><><><><><><><><><><><><>)

([ X pos. - [[[Slot length / 2] - [Tool diameter / 2]] / 33]*#602])

N10650 #600 = [#600 - [[[#212 / 2]-#72] / #1602] * #602] (x clothoid offset)
(33)

( [[ Y pos. - [Width / 2] - [Tool diameter / 2]])

N10651 #601 = [#601 - [[[#213/2]-#72] / #1602] * #603] (y clothoid offset)
(21)

(Move to clothoid curve.)

N10652 G01 X#600 Y#601 Z#80

N10653 #602 = [#602 - 1]
N10654 #603 = [#603 + 1]

N10655 #94 = [#94 - 1]

N10656 M99 (Return from subroutine.)

O10660 (Guri guri subroutine. 楕円 11×8.6寸法固定 位置指定 )

(<><><><><><><><><><><><><><><><>)

([ X pos. - [[[Slot length / 2] - [Tool diameter / 2]] / 33]*#602])

N10660 #600 = [#600 + [[[#212 / 2]-#72 ] / #1602] * #602] (x clothoid offset)

( [[ Y pos. - [Width / 2] - [Tool diameter / 2]])

N10661 #601 = [#601 - [[[#213/2] - #72] / #1602] * #603] (y clothoid offset)

(Move to clothoid curve.)

N10662 G01 X#600 Y#601 Z#80

N10663 #602 = [#602 + 1]
N10664 #603 = [#603 - 1]

N10665 #94 = [#94 + 1]

N10666 M99 (Return from subroutine.)

O10670 (Guri guri subroutine. 楕円 11×8.6寸法固定 位置指定 )

(<><><><><><><><><><><><><><><><>)

([ X pos. - [[[Slot length / 2] - [Tool diameter / 2]] / 33]*#602])

N10670 #600 = [#600 + [[[#212 / 2]-#72 ] / #1602] * #602] (x clothoid offset)

( [[ Y pos. - [Width / 2] - [Tool diameter / 2]])

N10671 #601 = [#601 + [[[#213/2] - #72] / #1602] * #603] (y clothoid offset)

(Move to clothoid curve.)

(N632 G03 X#600 Y#601 R#94 Z#80 )

N10672 G01 X#600 Y#601 Z#80

N10673 #602 = [#602 - 1]
N10674 #603 = [#603 + 1]

N10675 #94 = [#94 - 1]

N10676 M99 (Return from subroutine.)

O10680 (Guri guri subroutine. 楕円 11×8.6寸法固定 位置指定 )

(<><><><><><><><><><><><><><><><>)

([ X pos. - [[[Slot length / 2] - [Tool diameter / 2]] / 33]*#602])

N10680 #600 = [#600 - [[[#212 / 2] -#72] / #1602] * #602] (x clothoid offset)

( [[ Y pos. - [Width / 2] - [Tool diameter / 2]])

N10681 #601 = [#601 + [[[#213/2] - #72] / #1602] * #603] (y clothoid offset)

(Move to clothoid curve.)

(N632 G03 X#600 Y#601 R#94 Z#80 )

N10682 G01 X#600 Y#601 Z#80

N10683 #602 = [#602 + 1]
N10684 #603 = [#603 - 1]

N10685 #94 = [#94 + 2]

(Bottom + [Slot length /2])

N10686 #610 = [#211 + [#212 / 2]]

N10687 M99 (Return from subroutine.)

(Depart subroutine.)
(その場でZ軸を引き上げる)

O10800

(N10800 F#62) (Cutting speed.)
(N10801 G01 Z#80) (Cutting end pos. )

(N10802 F#12)(Low moving speed.)
(N10803 G01 Z#11)(Cutting end pos. )

N10804 F#22 (Medium moving speed.)
N10805 G01 Z#21 (Cutting end pos. )

N10806 F#32 (Fast moving speed.)
N10807 G01 Z#31 (Cutting end pos.)

N10808 M1 (Optional program stop.)
N10809 M99 (Return from subroutine.)

おしまい

なんか、狙い通りの寸法に加工できないので変な補正入れてます。
あってるんだろうか、うーんわからない。


いいなと思ったら応援しよう!

福井彰太郎
いいことがありますように☘️