スプリクトで2要素間の距離測定をしたいのですが、見つかりません。
実はこちらの問題をスプリクトで解決できるかな? と考えています。
形状面の穴の高点 低点 - Autodesk Community
CATIAであれば単純に '極値' コマンドで解決するのですがFusion360には
無いですね。
そこで作戦としては、
・上下方向になる部分の少し遠いところに平面を作成する
・平面と曲線との距離を測る
・距離分のオフセット平面を作成する
・オフセット平面と曲線の交差を取る
で良いかな?と思いました。
そこで欲しくなるのが "距離を測る" なんです。 下手な手段なのですが
計測コマンドの呼び出し方を探してみました。
#FusionAPI_python import adsk.core, adsk.fusion, traceback def run(context): ui = None try: app = adsk.core.Application.get() ui = app.userInterface # Get the CommandDefinitions collection. cmdDef = ui.commandDefinitions.itemById('MeasureCommand') cmdDef.execute() except: if ui: ui.messageBox('エラー:\n{}'.format(traceback.format_exc()))
計測コマンドは起動します。 でもこんな問題だらけなのです。
結局、CATIAのStartCommand関数と一緒でコマンドを呼び出すだけなんです・・・。
Helpのこちらにトポロジカルな記述があるのですが
Help
BRep~のオブジェクトは "adsk.fusion" のライブラリなのですが
その下に属している(Fusion360ではgeometryと表現している)部分は
"adsk.core" のライブラリに入っています。
"adsk.fusion" は、Fusion360独自のものだろうとは思うのですが、
"adsk.core" は、他にも利用されているものなのかな? と勝手に感じました。
例のブライアンさんはどうやら、Inventorの開発も行っている人のようなので
(ブログにもサンプルマクロを書いてますし)ひょっとしたらInventorの方法で
測定できるのかな? と期待し調べてみました。
Solved: Using the Measure.MinimumDistance command - Autodesk Community
どうやら "MeasureTools" オブジェクトというものがあるようで、それを利用している
ように見えます。 Fusion360にはそんなオブジェクトありませんでしたよ・・・。
諦めつつあったのですが、他の手段で何とかなりそうな予感がしています。
それ以上にFusion360の平面は、無限平面では無いような気がしてきました。