広告
新規作成日 2017-08-21
最終更新日
Fusion360では、スクリプトとアドインが使用できます。スクリプトやアドインは、プログラミングの技能があれば、自分でプログラムすることが可能です。プログラミングできなくても、公開されているスクリプトやアドインを利用することができます。
スクリプトやアドインは、定形機能をスクリプトで記述し、複数の操作をまとめて実行する機能です。ほとんどのCADでは、UIで提供されるコマンドは、APIと呼ばれる基本機能を組み合わせたスクリプトで作成されています。スクリプトとアドインが作成できれば、自分の必要な機能を自分で用意することができます。
このAPIサンプルは、Fusion360のドキュメント内で紹介されています。
CircularPattern Feature API Sample
新しいデザインを作成した後、スケッチを押し出して作成した円柱を円形状パターンで複写します。
スクリプトとアドインをクリックします。
作成をクリックします。
「プログラミング言語」にPythonを選択し、「スクリプト名またはアドイン名」と「説明」を入力し、「作成」をクリックします。スクリプト名に日本語が利用できないことに注意して下さい。
マイスクリプトに入力した内容で項目が追加されます。項目を選択し、編集をクリックします。
Spyderが起動するので、サンプルコードをコピーして、Editペイン貼り付けます。後から確認し易いように、日本語のコメントを追加します。図のペインの配置は、初期状態から変更しています。
#Author-
#Description-新しい円形状パターン機能を作成します。
import adsk.core, adsk.fusion, traceback
def run(context):
ui = None
try:
app = adsk.core.Application.get()
ui = app.userInterface
# Create a document.
# 文書を作成します。
doc = app.documents.add(adsk.core.DocumentTypes.FusionDesignDocumentType)
product = app.activeProduct
design = adsk.fusion.Design.cast(product)
# Get the root component of the active design.
# アクティブ・デザインのルート・コンポーネントを取得します。
rootComp = design.rootComponent
# Create sketch
# スケッチを作成します。
sketches = rootComp.sketches
sketch = sketches.add(rootComp.xZConstructionPlane)
sketchCircles = sketch.sketchCurves.sketchCircles
centerPoint = adsk.core.Point3D.create(10, 0, 0)
circle = sketchCircles.addByCenterRadius(centerPoint, 3.0)
# Get the profile defined by the circle.
# 円によって定義されたプロファイルを取得します。
prof = sketch.profiles.item(0)
# Create an extrusion input
# 押し出し入力を作成します。
extrudes = rootComp.features.extrudeFeatures
extInput = extrudes.createInput(prof, adsk.fusion.FeatureOperations.NewBodyFeatureOperation)
# Define that the extent is a distance extent of 5 cm.
# 長さが、5cmの距離の長さであることを定義します。
distance = adsk.core.ValueInput.createByReal(5)
extInput.setDistanceExtent(False, distance)
# Create the extrusion.
# 押し出しを作成します。
ext = extrudes.add(extInput)
# Get the body created by extrusion
# 押し出しによって作成されるボディを取得します
body = rootComp.bRepBodies.item(0)
# Create input entities for circular pattern
# 円形状パターンのために、入力エンティティを作成します
inputEntites = adsk.core.ObjectCollection.create()
inputEntites.add(body)
# Get Y axis for circular pattern
# 円形状パターンのy軸を取得します。
yAxis = rootComp.yConstructionAxis
# Create the input for circular pattern
# 円形状パターンのために、入力を作成します
circularFeats = rootComp.features.circularPatternFeatures
circularFeatInput = circularFeats.createInput(inputEntites, yAxis)
# Set the quantity of the elements
# 要素の数を設定します。
circularFeatInput.quantity = adsk.core.ValueInput.createByReal(5)
# Set the angle of the circular pattern
# 円形状パターンの角度を設定します。
circularFeatInput.totalAngle = adsk.core.ValueInput.createByString('180 deg')
# Set symmetry of the circular pattern
# 円形状パターンの対称性を設定します。
circularFeatInput.isSymmetric = False
# Create the circular pattern
# 円形状パターンを作成します。
circularFeat = circularFeats.add(circularFeatInput)
except:
if ui:
ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))
実行します。
新しいデザインが作成され、円柱の配列が作成されます。
このような状態になります。
Tweet
広告