機械系CADのカスタム化紹介

始めてみました。

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)を作成します。

 ・タブの右上にある「Copy Code」ボタンをクリックすると簡単にコピーできます。
・保存時に文字コードUTF-8であることを確認してください。

   

④「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)を作成します。

 ・タブの右上にある「Copy Code」ボタンをクリックすると簡単にコピーできます。
・保存時に文字コードUTF-8であることを確認してください。

③「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」をクリックすると、希望の半径円と初期値のままの二つの円のスケッチが表示されます。

   

 左側の円をクリックすると画面右下に直径が表示されます。

   

 

この項目は終了です。