Home > 3D-CAD > Fusion 360 > スクリプトとアドイン

ベクトルドロー・レベルゼロ

Fusion 360 スクリプト Copy PasteボディのAPIサンプル

広告

新規作成日 2017-10-07
最終更新日

Fusion360では、スクリプトとアドインが使用できます。スクリプトやアドインは、プログラミングの技能があれば、自分でプログラムすることが可能です。プログラミングできなくても、公開されているスクリプトやアドインを利用することができます。

スクリプトやアドインは、定形機能をスクリプトで記述し、複数の操作をまとめて実行する機能です。ほとんどのCADでは、UIで提供されるコマンドは、APIと呼ばれる基本機能を組み合わせたスクリプトで作成されています。スクリプトとアドインが作成できれば、自分の必要な機能を自分で用意することができます。

このAPIサンプルは、Fusion360のドキュメント内で紹介されています。

Copy Paste ボディ関連APIをどのように使用するかを示します。

Copy Paste Bodies API Sample

スクリプトとアドインをクリックします。

スクリプトとアドインをクリックします。

作成をクリックします。

作成をクリックします。

「プログラミング言語」にPythonを選択し、「スクリプト名またはアドイン名」と「説明」を入力し、「作成」をクリックします。

「プログラミング言語」にPythonを選択し、「スクリプト名またはアドイン名」と「説明」を入力し、「作成」をクリックします。スクリプト名に日本語が利用できないことに注意して下さい。

マイスクリプトに入力した内容で項目が追加されます。項目を選択し、編集をクリックします。

マイスクリプトに入力した内容で項目が追加されます。項目を選択し、編集をクリックします。

Spyderが起動するので、サンプルコードをコピーして、Editペイン貼り付けます。後から確認し易いように、日本語のコメントを追加します。図のペインの配置は、初期状態から変更しています。

#Author-
#Description-Copy Paste ボディ関連APIをどのように使用するかを示します。

import adsk.core, adsk.fusion, adsk.cam, traceback

def run(context):
ui = None
try:
app = adsk.core.Application.get()
ui = app.userInterface

# Get active design
# アクティブなデザインを取得します
product = app.activeProduct
design = adsk.fusion.Design.cast(product)
# Get root component in this design
# このデザインでルート・コンポーネントを取得します。
rootComp = design.rootComponent

# Get the first sub component
# 最初のサブ・コンポーネントを取得します
occs = rootComp.occurrences
subComp1 = occs.item(0).component

# Get the second sub component
# 2つ目のサブ・コンポーネントを取得します
subComp2 = occs.item(1).component

# Get the first body in sub component 1 
# サブ・コンポーネント1で最初のボディを取得します。
bodyInSubComp1 = subComp1.bRepBodies.item(0)
# Copy/paste body from sub component 1 to sub component 2
# サブ・コンポーネント1からサブ・コンポーネント2へ、ボディをコピー&ペーストします。
copyPasteBody = subComp2.features.copyPasteBodies.add(bodyInSubComp1)
# Copy/paste bodies from sub component to root component
# サブ・コンポーネントからルート・コンポーネントへ、ボディをコピー&ペーストします。
sourceBodies = adsk.core.ObjectCollection.create()
for body in copyPasteBody.sourceBody:
sourceBodies.add(body)
for body in subComp2.bRepBodies:
sourceBodies.add(body)
rootComp.features.copyPasteBodies.add(sourceBodies)
# Dump the information of Copy Paste Body in root component
# ルート・コンポーネントでCopy Pasteボディの情報をダンプします
for copyPasteBody in rootComp.features.copyPasteBodies:
copyPasteBodyInfo = 'CopyPasteBody: name - {}'.format(copyPasteBody.name)
ui.messageBox(copyPasteBodyInfo)

except:
if ui:
ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))
実行します。

実行します。

エラーが発生します。

エラーが発生します。

コンポーネントを2つ作成し、最初のコンポーネントにコピー対象として使用する形状を作成します。球を作成しました。

コンポーネントを2つ作成し、最初のコンポーネントにコピー対象として使用する形状を作成します。球を作成しました。

マクロを実行します。

マクロを実行します。

メッセージボックスが表示されます。

メッセージボックスが表示されます。

コンポーネント1に存在した形状が、コンポーネント2にコピーされました。

コンポーネント1に存在した形状が、コンポーネント2にコピーされました。

Home 3D-CAD 2D-CAD 3D-モデラー 学生版 モデリング資料

Copyright (C) 2011 Horio Kazuhiko(kukekko) All Rights Reserved.
kukekko@gmail.com
ご連絡の際は、お問い合わせページのURLの明記をお願いします。
「掲載内容は私自身の見解であり、所属する組織を代表するものではありません。」