こちらの続きです。
Fusion360スプリクト作成の取っ掛かり1 - C#ATIA
昨夜は押し出しで説明するつもりだったのに、画像はスケッチでしたね。
(半分寝ながら書いていました)
前回のようにタイムラインを選択してスプリクトを実行すると
押し出しとしてダイアログが表示されますが、
押し出しで作成したボディを選択して実行すると、ボディとして
ダイアログが表示されます。
厄介ですね。この「押し出し」と「ボディ」が関係しているのは明らかなので
何とかスプリクトで取得したいところです。
ExtendFeatureオブジェクトを見てみると
Help
プロパティの中にそれっぽいものがありますよね。(この辺は勘です・・・)
'body' では無く 'bodies' なのは、Fusion360は複数のプロファイルを
1コマンドで押し出すことが可能なのですが、離れたボディは別々のボディ
となる仕様なので、仮に1個ボディでも複数形での表記なのでしょう。
一応HelpにBRepLumpの説明が有りますが、押し出しに関しては
恐らく無いでしょう。
Help
bodiesプロパティを開くと 'BRapBodies' オブジェクトであることがわかります。
ここもクリックして開くと、BRapBodyのコレクションだとわかります。
add item count 等、馴染み深いものしかありませんね。
ここで前回のコードに追記します。
・・・ #実際に選択した要素 ent = sel.entity #押し出しで出来た全てのボディ名を追記 bodies = ent.bodies for body in bodies: dl_msg += '\n 出来上がったボディ[{}]'.format(body.name) #情報取得 msg = dl_msg.format(ent.name,ent.objectType) ・・・
実際にタイムラインの押し出しを選択した状態で、スプリクトを実行すると
こんな感じで、[押し出し1]と[ボディ1][ボディ2]が関連していることを
スプリクトで取得出来る事がわかりました。
(例外処理していないので、押し出し以外で実行すると
エラーになる可能性が高いです)