A2-6 ダイアログボックスのサンプル
Fusion360のサンプルプログラムを変更して、ダイアログボックスによる入力ができるようにします。
1、入力一覧のダイアログボックス表示(サンプルそのまま)
2、半径を入力するダイアログボックスを追加
1、サンプルプログラムの入手、実行
ダイアログボックスの入力サンプルプログラムを入手します。
① スクリプトのフォルダーに「CommandInputsAPISample」名のフォルダーを作成します。
② Helpの「Command Inputs API Sample」のページを表示させます。
https://help.autodesk.com/view/fusion360/ENU/?guid=GUID-e5c4dbe8-ee48-11e4-9823-f8b156d7cd97
③ テキストエディタを起動して、「Python」タブにあるプログラムをコピーしたファイル(CommandInputsAPISample.py)を作成します。
④「Command Inputs API Sample」のページにあるリンクから、resource folderのデータ(CommandInputsResources.zip)をダウンロードして解凍します。
⑤ ③、④で作成した「CommandInputsAPISample.py」、「resources」フォルダーを①のフォルダに移動します。
⑥ Fusion360の「スクリプトとアドイン」から「CommandInputsAPISample」を実行すると、多数の入力部があるダイアログボックスが表示されます。入力部の操作はできますが出力はありません。
最下部の「OK」か「キャンセル」をクリックするとダイアログボックスが閉じます。
2、半径を入力するダイアログボックスを追加
円を書くサンプルプログラムに、半径を入力するダイアログを追加します。
① Helpの「Create circle by center and radius API Sample」のページを表示させます。
https://help.autodesk.com/view/fusion360/ENU/?guid=GUID-ecd3b76b-19f7-4efa-8a02-087c16da246f
② テキストエディタを起動して、「Python」タブにあるプログラムをコピーしたファイル(Make3Circles.py)を作成します。
③「Make3Circles.py」をスクリプトのフォルダーに移動します。
④ Fusion360の「スクリプトとアドイン」から「Make3Circles」を実行して、円のスケッチが3つ表示されることを確認します。
⑤ スクリプトのフォルダーにある「Make3Circles.py」をテキストエディタで開きます。
⑥ 16行目からダイアログ部分を追加します。
⑦ 「circles1」で作成する円の半径をダイアログ入力値に変更します。
変更前 (adsk.core.Point3D.create(0, 0, 0), 2)
変更後 (adsk.core.Point3D.create(0, 0, 0), radius)
⑧ 変更したプログラムを保存します。
import adsk.core, adsk.fusion, traceback def run(context): ui = None try: app = adsk.core.Application.get() ui = app.userInterface # doc = app.documents.add(adsk.core.DocumentTypes.FusionDesignDocumentType) design = app.activeProduct # Get the root component of the active design. rootComp = design.rootComponent #---------------- radius_input = ui.inputBox("半径(mm)を入力", "半径", "1") if radius_input[0]: (radius1,inCancelled) = radius_input radius = float(radius1)/10 else: return #------------------ # Create a new sketch on the xy plane. sketches = rootComp.sketches; xyPlane = rootComp.xYConstructionPlane sketch = sketches.add(xyPlane) # Draw some circles. circles = sketch.sketchCurves.sketchCircles circle1 = circles.addByCenterRadius(adsk.core.Point3D.create(0, 0, 0), radius) circle2 = circles.addByCenterRadius(adsk.core.Point3D.create(8, 3, 0), 3) # Add a circle at the center of one of the existing circles. circle3 = circles.addByCenterRadius(circle2.centerSketchPoint, 4) except: if ui: ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))
⑨ Fusion360の「スクリプトとアドイン」から「Make3Circles」を実行します。
⑩ 希望の半径を入力後に「OK」をクリックすると、希望の半径円と初期値のままの二つの円のスケッチが表示されます。
左側の円をクリックすると画面右下に直径が表示されます。
この項目は終了です。