こちらにチラッと記載したので、簡単なテストをしてみました。
解決済み: Re: tsmファイルのデータ形式について - Autodesk Community
TSMファイルはFusion360のスカルプトのフォーマットの様です。
(サーフェス・ソリッドになったものはBrepになるのかな?)
HelpによるとACIS(SAT)に似たフォーマットの様です。
確かに歴史的背景から、そうなるのだろうと思います。
ShapeManager - C#ATIA
まず、スカルプトでボディを1個以上作成し「フォームを終了」でデザインに
戻ります。(戻らずスプリクトを実行するとエラーになります)
この状態で以下のスプリクトを実行すると、無事TSMファイルがエクスポート
出来ました。
#Fusion Python #TSM Export Test import adsk.core, adsk.fusion, traceback def run(context): try: path = r'C:\temp\tsm_test.tsm' app = adsk.core.Application.get() ui = app.userInterface product = app.activeProduct des = adsk.fusion.Design.cast(product) root = des.rootComponent forms = root.features.formFeatures fFeat = forms.item(0) tBodies = fFeat.tSplineBodies tBody = tBodies.item(0) tBody.saveAsTSMFile(path) ui.messageBox('done:\n{}'.format(tBody.name)) except: if ui: ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))
このコードでは、恐らくエクスポート出来るのは最初のスカルプトのボディ
1個だけです。
続いてインポートを試してみたのですが、上手く行きません。
取りあえず作成したのは以下のコードです。
#Fusion Python #TSM Import Test import adsk.core, adsk.fusion, traceback def run(context): try: path = r'C:\temp\tsm_test.tsm' app = adsk.core.Application.get() ui = app.userInterface product = app.activeProduct des = adsk.fusion.Design.cast(product) root = des.rootComponent forms = root.features.formFeatures fFeat = forms.item(0) tBodies = fFeat.tSplineBodies tBody = tBodies.addByTSMFile(path) ui.messageBox('done:\n{}'.format(tBody.name)) except: if ui: ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))
何故? 間違っている気がしないのですが…。