C#ATIA

↑タイトル詐欺 主にFusion360API 偶にCATIA V5 VBA(絶賛ネタ切れ中)

パターンの微細な自己交差を解消する

久々にPowerMillのマクロです。
最近はFusion360ばかりだったので、すっかり忘れています。

こんな感じの単純なツールパスを作りたいのですが、
f:id:kandennti:20191119191726p:plain
PowerMillの場合、色々な機能があるとは思います。

訳があって「カーブ輪郭」と言う2Dの機能を使っているのですが、
これに何時も悩まされていました。
手間取ると、クルッと回すだけのツールパスに10分以上かかることも。

「カーブ輪郭」は2Dの機能なので、ガイドになるラインが必要です。
こんな感じの黄色いラインを3Dデータの面から「パターン」と言う
機能で作成します。
f:id:kandennti:20191119191738p:plain

これを元にツールパスを計算させると
f:id:kandennti:20191119191749p:plain
ん~設定を日本語にしているにも関わらず、英語なエラーです。
(社内にPMill2013があり、そちらも英語・・・)
その為、ツールパスが計算されません。

英語のわからない僕でも、自己交差があるために計算出来ないっぽい
雰囲気のメッセージだとは伝わっています。
・・・見た目では自己交差してないんですけどね。


色々と試したり、サポートさんに相談しながら、結果的に
自己解決しました。

恐らく、表示出来ないレベルの微細な自己交差しているようです。
それを「パターン」をオフセットし戻すように再度オフセットすると
解消する事がわかりました。
(+0.001オフセットしたのち、-0.001オフセットする 感じ)


その作業が結構面倒な為、マクロを作成しgithubにUpしました。
GitHub - kantoku-code/PowerMill-PatternCleaner: PowerMill

恐らく多くの方が、CADから線をインポートしているのだろうと
思うのですが、それはそれで結構手間なんですよね。


で、最大の原因はモデルの精度の悪さです。
個人的な事例ですが、これを起こすデータは、ほぼSpace-e製のデータです。
大切なのでもう一度記載しますが、
これを起こすデータは、ほぼSpace-e製のデータです。

受け取りたくない。