完全な G-Code ガイド: 初心者からプロフェッショナルまで
G-Code とは何か、機械での使用方法、SVG とラスター イメージからペン プロッター、レーザー彫刻機、3D プリンター、CNC ミル用の機械対応ファイルに至るまで、完全な生産パイプラインについて説明します。
G-Codeとは何ですか?
G-Code (幾何学コード) は、CNC マシンを駆動するプレーンテキスト言語です。各ファイル (通常、.gcode、.nc、または.cnc) は、マシンにどこに移動するか、どのくらいの速度で移動するか、いつツールを起動するかを指示する一連の命令です。行は上から下に一度に 1 つずつ実行されます。
デザインを青写真、G-Code をターンバイターンのナビゲーションと考えてください。 3D プリンターでは JPG を処理できません。ペンプロッタは、文字「A」がどのようなものであるかを知りません。 G-Code は、あらゆる形状を基本的な動き (直線、円弧、ツールのオン/オフ コマンド) に分割することでこの問題を解決します。これらの動きは、どのモーション コントローラーでも確実に実行できます。
この規格の起源は 1950 年代の MIT にまで遡り、1963 年に RS-274 として正式に制定され、1982 年に ISO 6983 として国際的に公開されました。その古いものにもかかわらず、G-Code は趣味のデスクトップ プリンターから産業用 5 軸ミルに至るまで、製造の世界共通言語であり続けています。
G-Code はどこで使用されますか?
- ペン プロッタ (AxiDraw、HP 7475A、DIY GRBL): 紙上で物理ペンを動かしてベクター アートワークを再現します。アーティストやメーカーにとって、G-Code への最もアクセスしやすいエントリ ポイントの 1 つです。
- レーザー彫刻機とカッター: パワーを調整しながらビームを操作し、画像を木材に焼き付けたり、アクリルから形状を切断したりします。
- FDM 3D プリンタ (Prusa、Creality、Bambu Lab): フィラメントを送りながらプリント ヘッドを X、Y、Z 全体で調整し、オブジェクトをレイヤーごとに構築します。
- CNC ルーターおよびミル: 回転切削工具を材料に送り込み、彫刻、ポケット加工、およびプロファイリングを行います。
- CNC 旋盤、プラズマ カッター、ウォータージェット、ワイヤー EDM マシン: すべて G-Code またはそれに近い派生製品を使用します。
G-Code ファイルの構造
各行 (ブロックと呼ばれます) は 1 つの完全な命令です。マシンはライン間の状態を記憶します。つまり、ライン 10 で設定された送り速度は、変更しない限りライン 200 でも有効のままです。これをモーダル状態と呼びます。
以下は、50×50mm の正方形を描画するペン プロッタ プログラムです。
G21 ; millimeters
G90;絶対位置決め
G0 Z5.0 ; lift pen
G0 X0 Y0 ; move to origin
M3 S1000 ; pen down
G1 X50.0 Y0 F2000
G1 X50.0 Y50.0
G1 X0 Y50.0
G1 X0 Y0
M5 ; pen up
M2 ; end
G1 X50.0 Y25.3 F1500 の内訳: G1 = 直線を引く、X50.0 Y25.3 = 目的地、F1500 = 1500 mm/分。 G1 は 1 回だけ表示されることに注意してください。G0 または別のモーション コマンドを作成するまで、後続の座標線はすべて自動的に再利用されます。セミコロンの後のものはコメントであり、マシンによって無視されます。
必須の G-Code コマンド
これらのコマンドは、趣味用の GRBL から産業用の Fanuc まで、事実上すべてのファームウェアで機能します。
- G0 — 高速移動: マシンが許す限り速く位置を変更します。レーザーまたはスピンドルがアクティブな状態では絶対に使用しないでください。
- G1 — 直線移動: 設定された送り速度 (F) で直線を描画または切断します。すべての CNC が動作するための主要なコマンドです。
- G2 / G3 — 時計回り / 反時計回りの円弧: I/J 中心オフセットまたは R 半径を使用して、単一のコマンドで滑らかな曲線を生成します。 1 つの G2/G3 が、数十の小さな G1 セグメントを置き換えます。
- G4 — 滞留: 設定された時間の間一時停止します。 ⚠ P 単位は異なります: GRBL = 秒 (G4 P1.5 = 1.5s)、Marlin = ミリ秒 (G4 P1500 = 1.5s)。
- G20 / G21 — インチ / ミリメートル単位。これは常にすべてのファイルの先頭に設定してください。
- G28 — すべての軸をホームにします。動作はファームウェアによって異なります。使用する前に必ず確認してください。
- G90 / G91 — 絶対位置/相対位置。 G90 がデフォルトです。 G91 は、すべての座標を現在位置を基準にします。
- G92 — 現在位置を移動せずに原点として設定します。ジョブの途中で作業原点を定義するために使用されます。
- M3 S[value] — ツール オン: レーザーを発射、スピンドルを回転、またはペン サーボを下げます。 S はパワー、RPM、またはサーボ角度を制御します。
- M5 — ツールがオフです。早送り移動の前には必ず含めてください。
- M104 / M109 — ホットエンド温度を設定します (3D プリント)。 M109 は、目標に達するまで待機してから続行します。
- M140 / M190 — ベッド温度を設定します (3D プリント)。 M190 は待機します — 印刷が開始される前に使用します。
- F — 送り速度 (mm/min)。モーダル: 変更するまで保持されます。
- S — 出力または速度: レーザー出力 (GRBL では 0 ~ 1000)、スピンドル RPM、またはサーボ角度。
- E — 押出機のフィラメント距離 (3D プリントのみ)。
- I、J — 現在の位置からの円弧中心のオフセット。G2 および G3 で使用されます。
GRBL は秒を使用します — G4 P1.5 は 1.5 秒間一時停止します。 Marlin はミリ秒を使用します。G4 P1500 は同じ一時停止です。間違った単位を使用すると、マシンが数分間ほとんど停止するかフリーズすることになります。常にファームウェアのドキュメントを確認してください。
ワークフロー 1: ペンプロッタ
- 1
ベクター ソフトウェアでデザインする
プロッターはパスのみを認識し、ピクセル、塗りつぶし、生のテキストは認識しません。 Inkscape、Illustrator、または Affinity Designer を使用して、SVG ストローク パスを作成します。すべてのテキストをアウトラインに変換します。塗りつぶし、ビットマップ、効果を削除します。これらはコンバーターによって黙って無視されます。
- 2
SVG を最適化する
重複したパスを結合し (ペンは同じ線を 2 回トレースします)、密集したノードを簡素化し、ドキュメントの寸法をピクセルではなくミリメートル単位で設定して、後で DPI スケーリングの問題が発生するのを回避します。
- 3
G-Codeに変換します
コンバーターは各パスを G1 の動きに変換し、切断されたストロークの間に M3/M5 のペンリフト コマンドを挿入します。最も重要な設定はパスの並べ替え、つまりストロークが描画される順序です。ソートが不十分だと、ペンがページ上で何千回もジグザグに動きます。最近傍ソートにより、密度の高いアートワークの移動時間を 50% 以上短縮できます。
- 4
G-Code 送信者経由で送信する
Universal Gcode Sender (UGS) または bCNC を介して、ファイルを GRBL ファームウェアにストリーミングします。送信者は行を 1 つずつ配信します。 GRBL はそれぞれをステッピング モーター パルスに変換します。
ワークフロー 2: レーザー彫刻機 / カッター
- 1
モードを選択します: ベクターまたはラスター
ベクター モードは一定の出力でパスをトレースします。輪郭や彫刻された線の切断に使用します。ラスター モードはプリンターのように前後にスイープし、ピクセルごとにパワーを変化させます。写真や陰影のある塗りつぶしに使用します。 1 つのジョブで、別々のレイヤーで両方のモードを使用できます。
- 2
レーザー設定で G-Code を生成
LightBurn や LaserGRBL などのツールは、レーザーを発射する場合は M3 S[値] を出力し、レーザーを停止する場合は M5 を出力します。ラスター モードでは、S 値が G1 ラインごとに変化し、グレースケールのグラデーションが再現されます。このためには、GRBL をレーザー モードでコンパイルする必要があります。これにより、速度ランピングが無効になり、瞬時の電力応答が可能になります。
- 3
まずスクラップでテストする
パワーとスピードは素材によって大きく異なります。実際の作業を開始する前に、必ず同じ材料に対して小さな出力/速度グリッド テストを実行してください。
レーザー: 波長に応じた安全メガネを着用してください (CO2 = 10,600nm、ダイオード彫刻機 ≈ 450nm - これらには別のメガネが必要です)。換気を確保してください。彫刻では、ほぼすべての素材から有毒なガスが発生します。稼働中のレーザーを決して放置しないでください。 CNC: スピンドルを動かす前にワークピースをクランプします。固定されていないワークピースは高速で投げられる可能性があります。開始する前に緊急停止場所を確認してください。
ワークフロー 3: 3D プリント
- 1
モデル化して STL または STEP としてエクスポート
Fusion 360、Blender、FreeCAD などでデザインします。 STL は標準の交換形式です。 STEP は、エンジニアリング部品のためのより正確な形状を実現します。
- 2
レイヤーにスライスする
スライサー (PrusaSlicer、Cura、Bambu Studio) は、モデルを 0.1 ~ 0.3mm の水平レイヤーにカットし、ツールパス、サポート、充填、ブリッジを計算します。一般的な動きは、G1 X42.5 Y88.3 E0.0234 F4500 のようになります。フィラメントを正確に 0.0234mm 押し出しながらヘッドを動かします。スライサーは、印刷開始前にノズルとベッドを加熱するために、M109 および M190 も挿入します。
- 3
SDカードまたはネットワーク経由で送信
Marlin、Klipper、または RepRapFirmware がファイルを実行します。 Klipper は計算を Raspberry Pi にオフロードし、入力整形をサポートします。加速度計でフレームの共振を測定し、モーション コマンドからフィルタリングして除外することで、リンギング アーティファクトを軽減し、印刷速度の高速化を可能にします。
ワークフロー 4: CNC 加工
- 1
CADでのモデル
Fusion 360、SolidWorks、または FreeCAD を使用します。機械加工部品には 0.01 ~ 0.05mm の公差が必要なため、モデルの品質が部品の品質に直接影響します。
- 2
CAM でツールパスを定義する
CAM ソフトウェア (Fusion 360 CAM、VCarve、Mastercam) を使用すると、工具、切削方法 (適応クリアリング、輪郭、ポケット加工)、切込み深さ、主軸速度、送り速度を指定できます。目標は、ビットを折ったり材料を焦がしたりすることなく、効率的に工具をかみ合わせることです。
- 3
コントローラーの後処理
産業用 CNC マシンは、それぞれ独自の方言 (Fanuc、Siemens Sinumerik、Heidenhain、Haas) を話します。 CAM ソフトウェア内のポストプロセッサは、汎用ツールパスをマシンが期待する正確な構文に変換します。間違ったポストプロセッサを使用すると、不良部品が生成されるだけでなく、機械がワークピースに衝突し、工具が破損し、安全上の危険が生じる可能性があります。
SVG から G-Code: 実際に何が起こるか
SVG パスは、Bézier 曲線、円弧、直線を使用します。 G1 は直線のみを描画します。そのため、コンバーターは次の 2 つの方法でギャップを埋める必要があります。
ファセット加工では、曲線を多数の小さな直線セグメントに分割します。より滑らかな曲線には短いセグメントが必要ですが、これはファイルが大きくなり、マシンのコマンド バッファーが追いつかない場合にモーションが途切れる可能性があることを意味します。
円弧フィッティングはよりスマートです。一連の短いセグメントが集合的に円を形成することを検出し、グループ全体を 1 つの G2 または G3 コマンドで置き換えます。 G1 360 行分の円が G-Code の 1 行になります。ファイルは最大 90% 縮小し、動きは完全にスムーズで、マシンは円弧全体にわたって連続速度を維持します。すべての GRBL ビルドが G2/G3 をサポートしているわけではありません。有効にする前に確認してください。
Illustrator は 72 DPI でエクスポートします。 v0.92 より前の Inkscape は 90 DPI を使用していました。最新のツールは 96 DPI を使用します。コンバーターが 96 DPI を想定しているが、ファイルが Illustrator からのものである場合、すべての寸法が 33% 大きすぎます。100mm 形状は 133mm にプロットされます。修正: コンバーターの DPI 設定をソース アプリに一致させるか、さらに良いことに、SVG ドキュメントのサイズをミリメートル単位で設定して、DPI を完全に無関係にします。
G-Code 方言: 1 つのファイルがすべてのマシンに適合しない理由
コア モーション コマンド (G0、G1、G2、G3) はどこでも機能します。それ以外のすべて (起動シーケンス、ツールの変更、コメント構文) はファームウェア ファミリによって異なります。プロ仕様の CNC マシンで間違ったコントローラーから G-Code を実行すると、間違った出力が生成されるだけでなく、ワークピースへの急速な衝突を引き起こす可能性があります。
- GRBL: 趣味のペン プロッター、レーザー彫刻機、小型 CNC ルーター用の主要なファームウェア。 Arduino ベースで、コンバータおよび CAM ツールによって広くサポートされています。
- Marlin: FDM 3D プリンターで主流。標準のモーション コマンドに加えて、押出機制御、温度 M コード、ベッド レベリングを追加します。
- Klipper: Raspberry Pi 上で実行される最新の 3D プリンターのファームウェア。同じハードウェアを使用する Marlin では実現できない入力シェーピングと高速印刷が可能になります。
- Smoothieware: ミッドレンジ レーザー彫刻機および CNC 用の 32 ビット ARM ファームウェア — Arduino ベースの GRBL よりも高いコンピューティング ヘッドルーム。
- Fanuc: 世界的に支配的な産業用 CNC コントローラー。固定サイクル (G81 ~ G89) とマクロ プログラミングが含まれます。
- Siemens Sinumerik / Heidenhain / Haas: 独自の方言を持つヨーロッパおよび米国の産業用コントローラー。 Fanuc ポストプロセッサは、Sinumeric マシンでは正しく動作しません。
写真をプロット可能なパスに変換する
写真にはピクセルのみが含まれており、パス データは含まれません。写真をプロットしたりベクトル彫刻したりする前に、SVG に変換する必要があります。一般的なアプローチ:
- 線画トレース: 被写体の輪郭と構造エッジを SVG パスとして抽出します。輪郭がはっきりしたロゴ、ポートレート、イラストに最適です。
- ハッチング/クロスハッチング: 画像の明るさを線の密度にマップします。暗い領域では線がより密に詰め込まれます。結果は伝統的な彫刻を思い起こさせ、美しくプロットします。
- 点描: 明るさをドット密度にマッピングします。各ドットは短いペンタッチまたはレーザーの滞留であり、点描画のイラストに似ています。
- 等高線マッピング: 明るさを標高のように扱い、明るさのしきい値で同心円の線を描きます。写真から流れるような有機的な結果を生み出します。
- アルゴリズム スタイル (ボロノイ、フロー フィールド、波形パターン): 抽象的だが認識可能な機械描画アートのための、画像の明るさによって変調された数学的変換。
完全なパイプライン: 写真 → SVG → G-Code と Laserlinez
Laserlinez は、線画、ハッチング、点描など、ペン プロッターやレーザー彫刻機向けに構築されたプロフェッショナルなスタイルで、写真をきれいな機械対応の SVG に変換します。出力パスは個別のストロークとして構成され、ペンのリフトと移動時間を最小限に抑えます。
SVG を取得すると、SVG-to-G-Code サービスは、マシン プロファイル設定、プリフライト チェック、およびプレビュー アーティファクトを含む最終ファイルを生成します。
この 2 ステップのパイプライン (Laserlinez 経由で写真を SVG に、サービス経由で SVG から G-Code に) により、G-Code を手動で記述することなく、ラスター ソースから機械で準備されたレーザーまたはプロッター ファイルに移動します。
飛行前チェックリスト
- 最初にシミュレーションします。マシンが移動する前に、NCViewer (ブラウザー、無料) または CAMotics (デスクトップ、無料) を使用して完全なツールパスをレンダリングします。間違ったサイズ、ペンリフトのミス、予期せぬ急流をキャッチします。
- 単位を確認します - G20 (インチ) または G21 (ミリメートル) が予想される寸法と一致する必要があります。
- 作業原点を設定します。マシンのホーム、G92、または WCS オフセットが正しく配置されています。
- Z クリアランスを確認します。ペンアップまたはレーザーオフの高さは、ワークピースおよびクランプを物理的にクリアする必要があります。
- 重複したパスを探します。各輪郭は 1 回だけです。ダブルバーンまたはダブルカットを複製します。
- 送り速度を確認します。速すぎるとステップがスキップされます。遅すぎると時間の無駄になります。
- G4 の滞留単位を確認します。GRBL の場合は秒、Marlin の場合はミリ秒です。
- 安全な高さでの予行運転 — 移動範囲全体が機械の作業領域に適合することを確認します。
- スクラップでテストする — レーザーと CNC の場合は、最終ピースを作成する前に常に同じ材料をスクラップで切断します。
よくある問題と解決策
- 図面はミラーリングされます: SVG Y は下に増加します。 G-Code Y は上に増加します。コンバーターで Y 軸反転を有効にします。
- 間違った出力サイズ: DPI が一致しません。 Illustrator = 72、古い Inkscape = 90、最新のツール = 96。コンバーターの DPI をソース アプリに一致させるか、SVG の寸法をミリメートル単位で定義します。
- マシンがカーブを通過すると途切れます。非常に多くの小さなセグメントがモーション バッファーをオーバーフローします。円弧フィッティングを有効にするか、線形化公差を増やすか、送り速度を下げます。
- ペンがドラッグするだけで持ち上げられない: M5 コマンドが欠落しているか、Z クリアランスが小さすぎて紙から物理的に持ち上げることができません。
- ジョブに予想よりもはるかに時間がかかります。パスの順序付けが不十分です。 G-Code を再生成する前に、vpype でパスを再ソートします。
- 開始時に機械が間違った位置に移動します: 作業原点が設定されていません。ホームに戻し、目的の原点までジョグして、開始前に G92 X0 Y0 を実行します。
コメント
コメントを読み込み中...