コンテンツへスキップ
CADCAMFUN
ドキュメント

ドキュメント

CAMとGコード

ツールパスを生成し、機械プログラムをポストし、出力された NC を再生し、各結果に添付された証拠を検査します。

英語から自動翻訳されています。 英語の原文を見る

幾何学からプログラムへ

@cadcamfun/core 製造機能を公開します cam。オペレーション ジェネレータは、ジオメトリと加工パラメータをツールパスの移動に変換します。 Post は、マシンに依存しないプログラムをコントローラー テキストに変換します。ジェネレーター アダプターは、アプリケーション フォームで使用されるフライス盤、旋盤、3D プリンターのリクエストもサポートしています。

ネイティブ製造カーネルは、順序付けされたパイプラインを追加します。つまり、部品とリソースの準備、操作の計画または受け入れ、切削データの計算、モーションの生成、1 つの NC プログラムの出力、その NC の独立した再生、および証拠の添付です。生成されたテキスト、解析されたプログラム、および検証された製造成果物は、異なる保証を持つ異なる出力です。

既存のプログラムを出力する
import { cam } from "@cadcamfun/core"

const post = cam.getPost("fanuc")
if (post === undefined) throw new Error("Post is unavailable")
const nc = post.emit(program, { decimals: 3, tolerance: 0.01 })

ツールパスの表現

プログラムには順序付けられたツールパスが含まれており、それぞれがツール識別子と移動リストに関連付けられています。座標はミリメートル、切削送りはミリメートル/分、持続時間は秒です。従来の動作座標では、切り込み深さはストックトップに対してマイナスZになります。 Post は、ドメイン規則を変更せずに出力単位を変換します。

動きは Rapid, Linear, Arc, Dwell, Comment, Cycle、 そして Orient。円弧の中心は絶対 XY 座標です。ポストはコントローラー相対の I/J オフセットを計算します。開始と終了の XY 座標が一致すると、完全な円が示されます。サイクルでは、リトラクト面と送りにより、ドリル、ドウェル、ペック、またはチップブレークの意図が維持されます。

直線的かつ高速な動きの回転フィールドは、同時の軸の動きを表現します。 Orient インデックス付きの位置決めを表します。これらの角度フィールドでは度が使用されます。回転運動をサポートできない方言は、回転フィールドを破棄する代わりに、そのようなプログラムを拒否します。

操作とジェネレーター API

操作ライブラリには、プロファイル、ポケット、穴あけ、フェーシング、彫刻、表面加工、残り加工、ねじ切り、面取り、適応加工、多軸生成が含まれます。各操作は、そのパラメーター コントラクトと純粋な生成関数を公開します。工具の寸法、深さ制限、クリアランス、送り、および形状は、オペレーションの検証ルールを満たしている必要があります。

POST /api/toolpaths/generate ジェネレータの設定、ジオメトリ、およびプリンタの追加機能を受け入れて返します。 gcode, cycles, warnings, stats, program、そして通常は証拠を生成します。プログラムを生成できない有効なリクエストは、理由とともに 400 を返します。予期しない計算エラーは 500 になります。生成ではツールパスは保存されません。

/api/toolpaths/suggest 要素主導のパラメータ、フィードバック、切断統計、操作テキスト、および警告を導き出します。 /api/toolpaths/parse 提供された G コードをプログラムの動作と統計に解釈します。提案と解析は、プログラムが安全であること、または幾何学的に正しいことを証明するものではありません。

コントローラの方言

組み込みレジストリの実装 generic, fanuc, grbl、 そして haas. linuxcnc このレジストリに実装されていない認識された投稿識別子です。 getPost 未定義を返すことができます。電話をかける前に、投稿を解決して確認してください。

ポストは、固定 10 進数の書式設定、コメントのサニタイズ、ツールの変更、アーク処理、オプションの行番号付け、およびサイクル拡張を備えたエミッターを共有します。デフォルトは小数点以下 3 桁、固定サイクルが有効、IJK 円弧、ヘッダーが有効、許容差が 0.01 mm です。サポートされていない円弧形式は、方言のサポートされている形式と線形化によってフォールバックされます。

toolNumbers ツール識別子を明示的な正の整数ポケットにマップします。マップされていないツールは、占有番号を回避しながら、最初に使用する番号付けを使用します。 retractBeforeToolChange オプトインです。工具交換前に、Z をプログラムの最高到達位置まで上げます。サブプログラムの発行もオプトインであり、方言のサポートに依存します。実稼働環境で使用する前に、選択したコントローラーの出力とマシン構成を確認してください。

繰り返されるツールパスはサブプログラムとして出力できます。ツールパスは、位置決め移動後のモーションが、同じ移動種類、送り、円弧センスで 5 × 10⁻⁶ mm 以内に変換された別のツールパスのモーションである場合に適格となります。各グループには少なくとも 6 つの体の動きが必要で、合計で少なくとも 12 の動きを保存する必要があります。固定サイクルまたは回転ワードを含むツールパスは決して候補にはなりません (packages/core/src/cam/post/subprograms.ts).

ネイティブの製造およびリリース レベル

POST /api/toolpaths/manufacture 受け入れる CamKernelRequest、バージョン 1 の CAD スナップショット。ID、材料、オプションの機械、在庫、ツール、オペレーション、品質管理、および作業オフセットが含まれます。欠落している操作はプランナーを呼び出します。不足しているツールはデフォルトのカッタークリブを使用します。サポートされていない入力、不明な材料またはツール、空の部品ジオメトリ、無効な在庫、および計画外の作業により、明らかな問題が発生します。

カーネルは、操作ごとの送り、主軸速度、係合、動力と力の推定、警告、時間、除去量を計算します。 1 つのプログラムをポストし、その出力された NC を独自に解釈します。成果物には、プログラム、カッター、NC テキスト、在庫統計、操作結果、ID ダイジェスト、クレーム、および問題が保持されます。

release は blocked, preview、 または verified-program。ハード障害または空の NC ブロックの解放。検証には、関連するクレームが合格する必要があります。現在のリリース規則では、プログラムに検証済みのマークを付けながら、サポートされていない機械移動の証拠は許可されています。証拠が目的のマシンをカバーしているかどうかを判断する前に、サポートされていないステータスや未解決のステータスを含む各主張を検査してください。

クレームには、切削データ、機械の限界、完了した作業、急速クリアランス、ホルダー クリアランス、ガウジング、材料除去、NC 再生、機械の移動、および機械のクリアランスが含まれます。証拠は、アーティファクトの NC およびソースのアイデンティティに関連付けられます。 NC を編集したり、ソース設定を変更すると、ジョブが再度評価されない限り、その接続は無効になります。

リプレイ検証とその限界

POST /api/toolpaths/verify 軸に合わせたストックに対して G コードまたはプログラムを再生します。モーション ソース、ツール、およびストック境界を 1 つだけ指定します。オプションの治具は、軸を揃えたエンベロープです。オプションのターゲット ソリッドまたはメッシュにより、ガウジと残存ストックの比較が可能になります。フルート、シャンク、スティックアウト、またはホルダーの寸法が欠落している場合、対応する小切手はモデル化されません。

検証器は動きを高さフィールドにサンプリングし、問題、除去統計、エンゲージメント/エアカットの長さ、および表示プレビューを返します。デフォルトの公差は 0.05 mm です。解像度のデフォルトはカッターの直径に基づいており、計算予算に合わせて粗くすることができます。 ResolutionCoarsened 変化を報告します。グリッド解像度により、結果がサポートできる幾何学的証拠が制限されます。

結果 ok: true エラー重大度の問題はありません。目標がなければ、完成品の精度を確立することはできません。固定具やホルダーの形状がなければ、それらのクリアランスを確立できません。カーネルの統合されたリプレイとマシン チェックは、キャプチャされたジョブに固有の証拠を追加しますが、スタンドアロンの検証は、提供されたリクエストのみを反映します。

実施マップ

cam/ir.ts ムーブとプログラム契約を所有します。 operations/ 戦略ジェネレーターを所有しています。 post/ コントローラーのエミッションを所有します。 generator/ アプリケーション設定を適応させ、テキストを解析します。 model/ 部品の形状を構築します。 verify/ ハイトフィールドリプレイを所有。 kernel/ 製造オーケストレーションと証拠を所有しています。 setup.ts そして indexing.ts ワークフレーム検証とインデックス付きテーブル変換を提供します。

ドキュメントの保存、図面アクセスのチェック、ソース証拠の保持はサイドカー サービスに属します。見る セットアップ ポータブルな操作ドキュメントと永続性チェック用。

深さ、高さ、フィード、およびデフォルト

コア操作パラメータは、正の切削深さを絶対 Z 平面から区別します。 totalDepth そして stepdown 正の有限長が必要です。 5 mm のステップダウンを伴う 2 mm の深さでは、上部から 2、4、および 5 mm の下にパスが生成されます。デフォルトはフィールドが欠落している場合にのみ適用されるため、明示的に許可されたゼロが保持されます。

分野デフォルト / ユニット意味
clearanceHeight10 mm明確で迅速な位置決めに使用される平面。
safeHeight5 mm動作フィード入口/出口高さ。
retractHeight2 mm峠間の駐車高さ。ゼロも有効です。
feed / plungeFeed800 / 300 mm/分ポジティブ切削とプランジ送り。
spindleRpm / coolant10,000 / off運用レベルのスピンドルとクーラントの目的。

高さは、クリアランス ≧ 安全 ≧ 格納を満たさなければなりません。プロファイルのデフォルトは、外側補正、上昇方向、ゼロ仕上げ許容値、直接導入、円弧フィッティングオフ、および 0.01 mm 公差です。ランプ角度のデフォルトは 3° で、0.1–45° を受け入れます。らせんピッチのデフォルトは 1 回転あたり 1 mm です。宣言された側面と許容値は、ソース輪郭を変更するのではなく、工具中心パスを移動します。

これらは純粋な操作のデフォルトです。アプリケーション ジェネレーターの設定とネイティブ カーネルのマテリアル由来のプロセス データは、別個のパラメーター レイヤーです。それらの間で同じフィールド名やデフォルトを想定しないでください。

ソース: packages/core/src/cam/params.ts そして operations/profile.ts.

ねじ切り加工では、ISO 68-1 の基本プロファイル高さを使用します: 0.54127 × 雌ねじのピッチ、および 0.61343 × 雄ねじのピッチ(packages/core/src/cam/operations/thread.ts)。ツールパス ビューアは、アニメーションのタイミングを設定するときに、送りなしの切削移動の場合は 500 mm/min、急流の場合は 1,000 mm/min を想定します。これらは再生の仮定であり、マシンの推定ではありません。

小さな NC プログラムを再生する

このメモリ内の例では、4 × 3 × 40 mm のストック モデルに、幅 40 mm のストレート スロット 10 mm の深さを切り込みます。ツールパスを保存せずに、HTTP エンドポイントで使用されるのと同じコア検証ツールを実行します。

ストックの除去と衝突を検査する
import { cam } from "@cadcamfun/core"

const report = cam.verify.verifyToolpath({
  gcode: "G21\nG90\nG0 X-10 Y0 Z5\nG0 Z0\nG1 Z-3 F200\nG1 X10 F400\nG0 Z5\nM30",
  stock: { minX: -20, maxX: 20, minY: -20, maxY: 20, minZ: -10, maxZ: 0 },
  tool: { kind: "endmill", diameter: 4 },
  fixtures: [], tolerance: 0.05, resolution: 0.25
})
console.log(report.ok) // true for this stock/tool model
console.log(report.stats.removedVolume)
console.log(report.issues)

プランジを次のように変更します G0 Z-3 を生成します RapidInMaterial 発見。短い切削長またはホルダー寸法を追加すると、元のリクエストではテストできなかったシャンク/ホルダーの結果が生じる可能性があります。ターゲット ジオメトリを指定すると、完成品の比較が追加されます。この例では、ターゲットまたはフィクスチャについて何も主張しません。

検証者は、最大で 2、500、000 個のグリッド セルと 3、000、000 個のパス サンプルを、80、000、000 個の作業予算に割り当てます。これらの制限を満たすためにリクエストを粗くすることができます。プレビュー ストックは表示用にダウンサンプリングされるため、そのピクセルは 2 番目のより詳細な検証結果ではありません。

ソース: packages/core/src/cam/verify/verify.ts そして verify/verify.test.ts.

サブプログラムを呼び出すテキストを再生するとき、インタプリタは次のように動作します。 M98 最大 8 レベルの深さでネストされ、2、000、000 行で展開が停止するため、繰り返し回数が多くてもメモリが使い果たされることはありません (packages/core/src/cam/subprogram-text.ts).

失敗したアーティファクトまたはプレビューアーティファクトを読み取る

カーネルの問題には以下が含まれます tag, severity, stage, message, and optional operation ID, NC line, and point. Follow that stage to the input that caused it: preparation checks stock/material/tools; planning selects strategies; cutting-data checks process limits; generation creates motion; posting writes the controller format; replay/evidence checks the resulting bytes.

  • NoSuitableTool または UnknownTool: 選択したカッター ID と形状制限 (直径、溝長、突き出し、付属のカッター ライブラリなど) を検査します。
  • RapidInStock または HolderCollision: 報告された操作/ポイントを特定し、エントリ、リトラクト、ストック、およびホルダー/テーブルのクリアランスを検査します。切削送りを上げても、危険な急流は修復されません。
  • Gouge: 輪郭面、上/下レベル、仕上げ代、ターゲット形状を確認します。カーネルは、実際の再生失敗として外部部分の内部プロファイルをテストします。
  • RemainingStock: 残りのボリュームを解釈する前に、アクセスできないコーナー、工具半径、仕上げ方法、および検証解像度を検査します。
  • ReplayMismatch: 投稿されたモーションとその要求された IR を矛盾しているものとして扱い、キャプチャされたジョブから再生成します。

マシンのプリセットは、測定されたマシンではなく、典型的なクラスを表します。利用可能なスナップショット プリセット ID は次のとおりです。 vmc-standard, haas-vf2, hsc-mill, desktop-mill、 そして cnc-router。 1 つ目はデフォルトです。プリセットの表示名から推測するのではなく、実際のマシンの移動とクリアランスの証拠を検査します。

ソース: packages/core/src/cam/kernel/execute.ts, machines.ts、 そして kernel.test.ts;ワイヤー発行フィールドは次のとおりです packages/api/src/cam-kernel.ts.

ポケットを生成して投稿する

CAM レイヤーは純粋な関数のパイプラインです。ジオメトリとパラメーターは操作に入り、操作は を返します。 Toolpath 中間表現 (IR) の動き、 Program ツールパスをグループ化し、ポストプロセッサがプログラムを方言固有のテキストに変換します。この投稿以前は G コード ワードについて何も知らないため、GRBL、Fanuc、Haas、または一般的な方言に対して同じツールパスを出力できます。

pocket.ts — 完全、bun で実行可能
import { cam } from "@cadcamfun/core"

const tool = { id: "t6", name: "6 mm flat end mill", kind: "endmill",
               diameter: 6, flutes: 3, maxRpm: 18000 }
// 60 × 40 × 10 mm block; its top face is at origin.z (Z = 0)
const stock = { x: 60, y: 40, z: 10, origin: { x: 0, y: 0, z: 0 },
                material: "aluminium-6061" }

const params = new cam.PocketParams({
  name: "Pocket 30x20",
  totalDepth: 3,   // mm below the stock top
  stepdown: 1.5,   // two levels: -1.5 and -3.0
  entry: "ramp",   // default is "helix"
})

const ring = [{ x: 15, y: 10 }, { x: 45, y: 10 }, { x: 45, y: 30 }, { x: 15, y: 30 }]
const pocket = cam.generatePocket(params, ring, tool, stock)

const program = { name: "pocket-demo", units: "mm", workOffset: "G54",
                  toolpaths: [pocket] }
const gcode = cam.getPost("grbl")!.emit(program)
console.log(gcode)
ポケットツールパス: 30 × 20 mm、深さ 3 mm、Ø6 エンドミル ドラッグして周回します · スクロールしてズーム · 右ドラッグしてパンします
The moves generated by the example below, drawn in machine coordinates. Dashed amber lines are rapids (G0); green lines are feed moves (G1). Watch the ramp entry spiral down at the start of each 1.5 mm level, then the offset rings work outward (order insideOut). The translucent block is the 60 × 40 × 10 mm stock, whose top face is Z = 0.
出力 (GRBL、85 行、中央省略)
(PROGRAM: pocket-demo)
(UNITS: MM)
(WORK OFFSET: G54)
(OP 1: Pocket 30x20 | T1 [t6] | S10000 | F300-800)
G21 G90 G17 G94
G54
(OPERATION: Pocket 30x20)
(TOOL T1)
M3 S10000
(Pocket: Pocket 30x20)
G0 X30.000 Y21.000 Z10.000
Z5.000
Z2.000
Z1.000
G1 X36.000 Z0.732 F300
Y19.000 Z0.643
X24.000 Z0.107
Y21.000 Z0.018
X30.000 Z-0.250
X36.000 Z-0.518
Y19.000 Z-0.607
X24.000 Z-1.143
Y21.000 Z-1.232
X30.000 Z-1.500
...
(the second level repeats the ramp from Z-1.500 to Z-3.000)
...
X18.000
Y27.000
G0 Z2.000
Z10.000
M5
M2

出力を上から読むと、ヘッダー コメントにはプログラム、単位、ワーク オフセット、および操作ごとの概要 (工具番号、ID、主軸速度、送り範囲) がリストされます。 G21 G90 G17 G94 ミリメートル、絶対座標、XY 平面、および毎分送りを選択します。 GRBL にはツールチェンジャーがないため、最初のツールはコメントとして通知され、その後のツール変更はコメントとして通知されます。 (CHANGE TO TOOL Tn) に続く M0. The pocket starts with rapids down through clearance (10), safe (5), and retract (2) heights, then ramps at the 300 mm/min plunge feed. Once the ramp reaches depth it switches to the 800 mm/min cutting feed. The program ends with M5 (スピンドルストップ)と M2.

空のジオメトリは通知されずにスキップされずに報告されます

領域が閉じた境界ではない場合、操作によりコメントが出力されます。 (nothing to cut: no closed boundary) そして動きはありません。リングポイントを次のように渡します { x, y } オブジェクト。操作によってカットが生成されない場合、生成されたプログラムでそのコメントを検索します。

操作パラメータとデフォルト

すべての操作のパラメーター クラスは、同じ共通フィールドを拡張します。高さは絶対 Z 値であり、クリアランス ≥ 安全 ≥ リトラクトを満たす必要があります。スキーマはそれ以外のものを拒否します。深さはストック上部から下の正の距離です。最後のパスはクリップされます totalDepth.

共通フィールドデフォルト意味
id, nameoperation, Operationコメントと概要に示されるアイデンティティ。
clearanceHeight10操作間の移動の高さ。
safeHeight5領域間の移動の高さ。
retractHeight2突入/供給前の高さ。
totalDepth必須ストック上部の下の正の深さ。
stepdown必須パスごとの正の深さ。
feed800切削送り、mm/min。
plungeFeed300プランジングおよびランピングの送り、mm/min。
spindleRpm10000主軸速度。
coolantoffクーラントモード。
手術特定のフィールド (デフォルト)
Pocketstepover 40 (直径の%、1–100)、 allowance 0, finishPass 間違い、 climb 真実、 entry helix | ramp | plunge, order insideOut | outsideIn, helixPitch 1, helixRadius 0 (= 工具半径)、 rampAngle 3° (0.1–45), tolerance 0.01, toolCentre 間違い。
Profileside outside | inside | onLine, climb 真実、 allowance 0, leadIn direct | ramp | helix | arc, helixPitch 1, helixRadius 0, leadRadius 2, rampAngle 3°, tabs [] (各タブ: position 0~1 沿いの道、 width, height), arcFit 間違い、 tolerance 0.01.
Drillいいえ stepdown または feed. peck 0 (1 ストローク)、 chipBreak 間違い、 dwell 0秒。ペックサイクルは最後の深さより上のクリアランスを 0.5 mm に保ち、切りくずのリトラクトは 0.5 mm です。
Facestepover 60, overshoot 0 (= 工具半径 + 1 mm)、 alongX 真実、 tolerance 0.01.
Engravetolerance 0.01.
Threadねじ切り加工;プロファイルの深さ 0.54127 × 内部ピッチおよび 0.61343 × 外部ピッチ。
Adaptive、レスト、サーフェス、面取り、多軸同じモジュールからエクスポートされたさらなる戦略。面取りを追加します tipOffset 0.2 と lead 1.

パラメータを構築する new cam.PocketParams({ ... }) (または一致するクラス)、デフォルトが適用され、制約が 1 回チェックされます。各操作は、次のようにペアとしてもエクスポートされます。 cam.Pocket = { Params, generate }、操作の種類によってディスパッチするコードの場合。

ポストプロセッサーと出力オプション

投稿はIDごとに登録されます cam.posts と見上げた cam.getPost(id)。の linuxcnc ID は予約されていますが実装されていないため、 getPost("linuxcnc") 返品 undefined。電話する前にそれを確認してください emit.

役職固定サイクル住戸回転軸工具交換番組枠
genericはい秒はいTn M6なし
grblいいえ (移動に拡張)秒拒否したコメントしてから M0 一時停止なし
fanucはいミリ秒はいTn M6 + G43 Hn% / O####、サブプログラム
haasはいミリ秒はい、 G234 TCPTn M6 + G43 Hn% / O####、サブプログラム

4 つすべてが円弧を次のように受け入れます ijk または radius; linearize いつでも可能です。動きに回転角度が含まれるプログラムは、黙って角度を失うのではなく、GRBL によって拒否されます。

放出オプションデフォルトEffect
decimals3小数点以下の数字。
lineNumbersオフ{ start, step } たとえば、N ワードを書き込みます N10, N20.
useCannedCyclestrue方言にドリル サイクルがある場合は、ドリル サイクルを発行します。
arcModeijkijk, radius、 または linearize.
headertrue説明的なコメントヘッダーを記述します。
tolerance0.01円弧が直線化される場合の弦の許容値。
toolNumbers初回使用順ツール ID のカルーセル ポケットへのマップ。欠落しているエントリは、明示的なポケットと衝突することなく、最初に使用される番号付けを維持します。
retractBeforeToolChangeオフ工具交換前に到達した最高点まで Z を上げます。
stamp不在ヘッダースタンプ。確定的な出力の場合は省略しておきます。
subprogramsオフ反復され、変換されたツールパスを増分サブプログラムとして 1 回作成します (Fanuc および Haas)。
行番号付きのファナック制御用の同じプログラム
const text = cam.getPost("fanuc")!.emit(program, { lineNumbers: { start: 10, step: 10 } })
// %
// O1000
// (PROGRAM: POCKET-DEMO)          comments are upper-cased
// ...
// N10 G21 G90 G17 G94 G40 G49 G80
// N20 G54
// N30 T1 M6
// N40 G43 H1
// N50 M3 S10000

デフォルトでバイト同一

出力を変更するオプション (工具変更の取り消し、サブプログラム、スタンプ) はデフォルトでオフになっているため、保存されたリクエストを再生成すると同一のテキストが生成されます。の cam/gcode ワークフロー ステップはこれに基づいて古いプログラムを検出します。

プログラムをマシンに送信する前に

  1. ストックのサイズ、最小コーナーの原点、および上面が次の位置にあることを確認します。 origin.z。あらゆる深さはその面から測定されます。
  2. 固定具に対する高さを確認してください。クリアランス、セーフ、およびリトラクトの高さは、ワーク オフセットの絶対 Z 値です。
  3. 実際のコントローラーのポストを選択し、それが実装されていることを確認します (getPost 投稿を返しました)。
  4. Replay the program with verification and read every issue.エラー コメントがないことを証拠として扱わないでください。
  5. NC テキストが手動で編集された場合は、再生成または再検証します。元のテキストに対して計算された証拠は適用されなくなります。
  6. 新しいプログラムの場合と同様に、送りオーバーライドを減らしてパーツの上のマシンでドライランを実行します。

生成されたコードはマシンを保証するものではありません

カーネルとポストは、既知のジオメトリ、制限、方言ルールをチェックします。彼らはあなたの治具、工具の長さ、または機械の状態を知りません。検証されたプログラムは証拠であり、安全な切断を保証するものではありません。

ネイティブカーネルの証拠主張

上記のジェネレーターの他に、ネイティブ カーネルは 10 個のクレームを持つアーティファクトを返します。それぞれが passed, failed, unsupported または unresolved、詳細文字列を使用します。リリース レベルは次のように要約します。 blocked, preview または verified-program.

請求ステータスの例カーネルによって返される詳細
cutting-data合格したすべての操作は、アセタール POM-C (デルリン) とそのカッター用に計算された切断データに基づいて実行されます。
machine-limits合格した主軸速度、送り、出力、トルク、およびカッターのたわみが制限内にある
operations-complete合格した3 オペレーションが生成されました。計画されているすべての機能には操作が必要です
no-rapid-in-stock合格したリプレイ時にストックに触れる素早い動きはありません
holder-clearance合格したシャンクとホルダーはストックから遠ざかります (3 軸の高さフィールド再生)
no-gouge合格した0.030 mm を超える部分の下はカットしないでください (1 セルの横方向のたるみ)
material-removed合格した再生されたストックは 0.110 mm 以内の部品と一致します
nc-replay合格した3035 個の NC モーションをポストとは独立して解釈しました。範囲は 2.0e-3 mm 以内で一致します
machine-travelサポートされていないマシンには移動制限が設定されていません
machine-clearance合格した3035 の移動がチェックされました。ホルダーとシャンクはテーブルから少なくとも 6.500 mm 離れた位置にあります

行は、ネイティブ製造ガイドの POM ブランクの実際の結果です: 3 オペレーション、3071 NC ライン、リリース verified-program。アーティファクトのマシンポストも linuxcnc スキーマ内にありますが、LinuxCNC ポストが実装されていないため、プリセットはそれを使用しません。