#はじめに
Fusion360 のAPIの理解を深めるために公式ドキュメント内のサンプルコード Sketch Point API Sample (スケッチポイント APIサンプル) の内容からドキュメントを読み込んでみたメモ書きです
スケッチポイントを作成します
#スクリプトの内容を確認する
##最初と最後のおまじないとスケッチの作成まで
最初と最後のこの辺りはFusion360 APIのお決まりのパターンです。その5で触れたので説明を省略します。
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
# Create a new sketch on the xy plane.
sketches = rootComp.sketches;
xyPlane = rootComp.xYConstructionPlane
sketch = sketches.add(xyPlane)
#
# ここにコードを追加していく
#
except:
if ui:
ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))
##スケッチの healthState (健康状態?)を取得
# Get sketch health state
health = sketch.healthState
if health == adsk.fusion.FeatureHealthStates.ErrorFeatureHealthState or health == adsk.fusion.FeatureHealthStates.WarningFeatureHealthState:
msg = sketch.errorOrWarningMessage
Sketch.healthState プロパティを取得してhealth
に代入しています。
healthState :フィーチャーが持つ様々な状態のこと。フィーチャーのモデリング、コンストラクションジオメトリ、スケッチの状態に使用されます。
スケッチのhealthState が「ErrorFeatureHealthState:エラーがある」または「WarningFeatureHealthState:警告がある」だったら msg
に errorOrWarningMessage プロパティを代入します
##sketchPoints プロパティを取得する
# Get sketch points
sketchPoints = sketch.sketchPoints
sketchPoints
という名前で sketch オブジェクトの Sketch.sketchPoints プロパティを取得する
Sketch.sketchPoints プロパティ:このスケッチに関連付けられたスケッチ・ポイント・コレクションを返します。これは、既存のスケッチ ポイントへのアクセスを提供し、新しいスケッチ ポイントの作成をサポートします。
##スケッチポイントを作成
# Create sketch point
point = adsk.core.Point3D.create(1.0, 1.0, 0)
sketchPoint = sketchPoints.add(point)
SketchPoints.add メソッドでsketchPoints
にスケッチポイントを追加し sketchPoint
に代入します
SketchPoints
とSketchPoint
と "s" の有無での使い分けがややこしい・・・
Point3D.create メソッドではFusion360の画面にはなにも作成されませんが sketchPoints.add メソッドではユーザーインターフェイスの Point コマンドを使用してスケッチポイントを作成するのと同じスケッチポイントが作成されます
##スケッチポイントを移動
# Move sketch point
translation = adsk.core.Vector3D.create(1.0, 0, 0)
sketchPoint.move(translation)
Vector3D.create メソッドで移動用のベクトルを作成し translation
に代入。
SketchPoint.move メソッドでsketchPoint
を移動
#まとめ
このシリーズはものすごく地味な作業の繰り返しだけど、だんだんとAPIの構造が理解できてきてる気がしてやってる本人は少しだけ楽しくなってきた
前の記事 Fusion 360 を Pythonで動かそう その5 最初と最後のおまじないを読んでみる
次の記事 Fusion 360 を Pythonで動かそう その7 点を通過するスプライン作成