PerfectVector
著者: Jay Lee2 分で読める

CNC用DXFの線分が多すぎる理由と修正方法

元のトレース、書き出した曲線、重複パス、断片が大量のエンティティになるとDXFが密になります。原因を診断し、CAMへ渡す前に整える方法を解説します。

目次

曲線が何百もの短い直線として渡される、トレースが元画像の小さな不規則さをすべて追う、重複パスが重なる、分離した断片が個々のエンティティになると、DXFの線分が多すぎる状態になります。拡張子は診断ではありません。まず、密度が書き出し前からあったのか、変換時に生じたのか、読み込み先のCAMアプリで初めて問題になったのかを確認します。

この順序が重要です。500線分を1つのポリラインに結合すると選択しやすくなっても、500頂点は残ります。きれいな曲線を短い直線に変換すると、逆の問題が生じる場合があります。点をむやみに削除すると、カットする部品が変わることもあります。

診断の要点
  • 書き出し前のSVGが密: トレースを修正するか、元のベクター原本を簡略化します。
  • きれいな曲線が書き出し後に多数の直線になる: 読み込み先が別のエンティティに対応していれば、DXFバージョンや曲線の書き出し設定を変えます。
  • 同じ輪郭が2つある: 重複を削除します。結合しても2つ目のパスは消えません。
  • 小さな分離オブジェクトが何百もある: 断片を除くか、意図した輪郭を作り直します。
  • きれいなファイルの読み込みが遅い、拒否される: そのCAMバージョンが受け付けるDXFエンティティとレイヤーの規則を確認します。

「線分が多すぎる」とは何か

DXFは異なるエンティティ型で形状を記述できます。ポリラインは頂点列を持ち、AutodeskのDXF POLYLINEリファレンスは後続のVERTEXレコードを説明しています。一方、スプラインは次数、ノット、制御点などのデータを持ち、それらはAutodeskのSPLINEリファレンスで説明されています。

この表現は、すべての読み込み先で交換可能ではありません。SPLINEを直接受け付けるCAMもあれば、読み込み時に直線化するCAMもあります。古いコントローラーは円弧とポリラインを好む場合があります。そのため、「すべての曲線をスプラインで残す」「すべてポリラインに書き出す」はどちらも不十分です。

有用な問いは、より具体的です。形状を表すエンティティと頂点はいくつあり、出力先は正しく扱えるか。

元データからSVG、DXFへの検証

元データの密度と書き出し動作を分離するため、同じような波形の検証用SVGを5つ作成しました。1つは本来の3次ベジェ曲線2本です。3つは形状を16、64、256の直線で近似しました。最後は64線分のパスを完全に複製しました。

すべてを100 mmで、このリポジトリのDXF書き出し機能を通して書き出し、出力されたPOLYLINE、SPLINE、VERTEXレコードを数えました。再実行すると、バイト単位で同じファイルになりました。

検証用の元データDXFポリラインDXFスプラインDXF頂点DXFバイト数
本来の3次曲線2本0201,289
直線16線分10162,900
直線64線分10649,128
直線256線分1025634,040
重なる64線分のパス2本2012817,650
1つの形状、5つの表現
本来のスプライン2本と、16、64、256線分、および複製した64線分のポリラインを比較する、条件を管理したSVGからDXFへの検証
この条件を管理した書き出し検証では、本来の曲線は2つのSPLINEエンティティのまま、直線の元データは頂点数を保ち、64線分の複製は出力を128頂点へ倍増させました。

結論は限定的ですが有用です。この書き出し機能は、これらの検証用データで余分な直線を作りませんでした。元の表現を維持しました。本来の曲線は曲線のまま、密な直線は密なまま、重複は重複のままでした。

この数値を普遍的な基準としないでください。すべての変換ツール、DXFバージョン、CAM読み込み機能、典型的なPerfectVectorのトレースを測定したものではありません。自身のファイルでも繰り返せる診断方法を示しています。

DXFが密になる5つの理由

1. トレースがすでに細かすぎた

画像トレースは、圧縮の雑音、アンチエイリアスの縁、スキャンの質感、制作上意味のない小さなこぶに点を置く場合があります。書き出し機能がパスを残すなら、SVGからDXFへの書き出しは容器を変えるだけです。

変換前にベクター原本を調べます。単純な弧がすでに点の連鎖なら、SVGのノード数の診断から始めます。後でCAMに修正を任せるより、元データを直す方が安全です。

2. 書き出し時に曲線を細分化した

SVGパスには直線、3次ベジェ、2次ベジェ、円弧のコマンドを含められ、W3Cのパス仕様が定義しています。DXF書き出し機能は、選択したDXFバージョンと出力先が読めるエンティティに対応付ける必要があります。SPLINEやARCとして残す処理もあれば、短い直線で近似する処理もあります。

SVGの曲線はきれいなのにDXFが密なポリラインなら、書き出し設定とバージョンを比較します。読み込み先が確実に扱う、最も変形の少ない表現を使い、深い拡大と既知の寸法で読み込み後の曲線を確認します。

3. 重複した輪郭が重なる

重複は画面では見えない場合があります。CAMプレビューが輪郭を2つ選ぶ、同じ縁を2回切る、想定の2倍のエンティティ数を報告して初めて分かることがあります。

検証用の重複データも想定どおりでした。64線分のパス2本は、合計128頂点のポリライン2つになりました。各輪郭を結合しても両方残ります。修正は重複削除です。

4. 小さな断片が別オブジェクトになった

ラスターの点、スキャンの隙間、結合の失敗は、多くの短いパスを作る場合があります。CAMは各断片を輪郭、選択オブジェクト、個別加工の候補として扱う場合があります。不要な断片は削除しますが、先に調べます。短い線も意図した細部かもしれません。

5. 読み込み先が有効なエンティティを扱いにくい

構造が有効なDXFでも、特定の機械の手順に不向きな場合があります。SendCutSendは、密なノードが外部変換ツールや直線へ分割されたスプラインから生じることを説明し、密なノードのガイドで元データとソフト固有の曲線設定の確認を勧めています。

デスクトップのプレビューだけでなく出力先を確認します。SPLINEが失敗してARCが使えるなら、本当の円弧として作り直します。ポリラインが必要なら、明示した許容差を選び、結果を測定します。実用的な表現は読み込み先によって決まります。

結合、簡略化、重複削除、描き直しの違い

これらの操作は異なる問題を解決します。

操作変えるもの適する場合主なリスク
結合端点を長いオブジェクトへ接続正しい部分が1つの連続輪郭に属する多すぎる頂点はそのまま残る
簡略化許容差内で点を除去・再近似曲線に冗長な点がある角、半径、穴、はまり具合が変わる
重複削除一致するコピーを除く同じ輪郭が2つある許容差が大きすぎると意図的な平行形状を消す
円弧・スプラインとして描き直す折れ線形状を本来の曲線に置換実際に円形や滑らかなパラメトリック形状推測した曲線が意図した部品と合わない場合

装飾看板では、管理した簡略化で十分かもしれません。軸受けの座、かみ合う輪郭、ガスケット、寸法付き機械部品では、雑音のあるトレースから形状を推測しないでください。必要寸法を基にCADで作り直します。

意図を保つ修正の順序

  1. 未変更の原本を保存します。 すべて戻せるようコピーで作業します。
  2. DXF書き出し前に調べます。 SVGやデザインの元データで単純な曲線を拡大し、怪しいノードを数えます。重複、開いた端点、点を探します。
  3. 曲線1つを試しに書き出します。 円、円弧、ベジェ1つなら、全体の雑音なしに書き出しと読み込み先のエンティティ処理が分かります。
  4. 型別に数えます。 ツールが表示するなら、読み込み前後のLINE、ARC、POLYLINE/VERTEX、SPLINE数を記録します。
  5. 1つずつ修正します。 まず重複削除、次に断片除去、意図した部分の結合を行い、必要な場所だけ簡略化や描き直しをします。
  6. 形状を確認します。 既知の長さを測り、閉じた輪郭を確認し、修正した曲線を未変更の原本と比較します。
  7. 工具経路をプレビューします。 意図した輪郭が1回だけ選択され、方向と補正が正しく、予期しない小さな移動がないことを確認します。

既存のベクターではなくPNGやJPGから始めるなら、DXF確認の前に広い画像からCNC用SVGへの手順に従います。読み込み先がOnshapeなら、Onshapeの画像からスケッチへのDXF受け渡しで手動の再構築かトレース形状かを選びます。納品する容器を決める場合は、カット用SVGとDXFの比較が互換性と単位を説明します。

QCADを使う場合は、Trace Bitmapの輪郭と中心線のガイドで、トレースした外周か、意図的に描いたCAD形状か、どちらをDXF確認へ渡すか判断します。

CAM内でトレースする場合は、工具経路の割り当て前にVCarve Trace Bitmapの輪郭確認かCarbide Createのトレース・読み込みガイドを使います。どちらも読み込み先の作業領域で、開いた輪郭、断片、不要なノードの確認が必要です。

PerfectVectorの役割

PerfectVectorはラスターからベクターを作り、DXFの候補を提供できます。整えるベクター原本がない場合に役立ちます。機械の許容差、意図した寸法、刃、コントローラー、CAMの読み込み規則は分かりません。それらは制作上の確認として利用者が行います。

元画像をDXFへ変換し、拡張子を証拠とせず結果を調べます。単純な曲線の密な頂点、意図しない断片や重複を確認し、既知の特徴を測定し、出力先で工具経路をプレビューします。寸法のある工学的形状なら、画像トレースを正しい基準として扱わずCADで描き直します。

よくある質問

DXFに何千もの線分があるのはなぜですか? 元に密なトレースがある、書き出しで曲線が短い直線になった、重複パスが重なった、小さな断片が別エンティティになった可能性があります。原因を決める前に元データとDXFの数を比較します。

DXF線分の結合でノード数は減りますか? 通常は減りません。長いポリラインに接続すると輪郭を選びやすくなりますが、一般に頂点は残ります。冗長な点には簡略化や再近似、重複コピーには重複削除、形状が適する場合は本来の円弧やスプラインへの描き直しを使います。

CNCには何線分から多すぎますか? 共通のしきい値はありません。許容できる数は形状の複雑さ、許容差、CAM、コントローラー、加工で決まります。何百もの短い直線でできた単純な円は調べる価値がありますが、細かい装飾の輪郭は多くの形状情報を正当に必要とする場合があります。

DXF曲線はスプラインとポリラインのどちらで書き出すべきですか? 読み込み先の資料に記載され、確実に扱える型を使います。スプラインは少ないデータで滑らかな形状を残せますが、古いものや特殊な処理は円弧やポリラインを好む場合があります。1つの曲線で試し、読み込みを調べ、全体の変換前に寸法を確認します。

カットを変えずDXFノードを減らせますか? 許容差内でのみ可能であり、その許容差は用途から決める必要があります。簡略化は縁を動かし、角を丸め、はまり合う部分を変える場合があります。原本と比較し、重要な寸法を測ります。正確さが必要な機械形状はCADで描き直します。

参考資料

  1. W3C — SVGパス — SVGパスコマンドと曲線表現の規範的な定義です。
  2. Autodesk — POLYLINE DXFリファレンス — ポリライン構造と後続頂点レコードの一次資料です。
  3. Autodesk — SPLINE DXFリファレンス — スプラインの次数、ノット、重み、制御点の一次資料です。
  4. SendCutSend — 密なノードの防止 — 変換ツール、分割したスプライン、曲線修正について読み込み側の指針を示します。

良いDXFは、エンティティが最小のものではありません。意図した形状を、読み込み先が使える形式で残すものです。画像しかなければ、PerfectVectorでDXFの候補を作り、上記のエンティティと寸法を確認し、結果が示す必要に応じてCAM前に拒否または修正します。

ブログのその他の記事

フラットな絵柄をDXFに変換してCADで確認