C#ATIA

↑タイトル詐欺 主にFusion360API 偶にCATIA V5 VBA(絶賛ネタ切れ中)

サーフェスをプロファイルとした回転を作る

悩みました。
こんな感じのデータで、サーフェスをプロファイルとして
Z軸を軸として回転のボディ(ソリッド)を作ります。

# Fusion360API Python script

import traceback
import adsk.fusion
import adsk.core
import math

def run(context):
    ui = adsk.core.UserInterface.cast(None)
    try:
        app: adsk.core.Application = adsk.core.Application.get()
        ui = app.userInterface
        des: adsk.fusion.Design = app.activeProduct
        root: adsk.fusion.Component = des.rootComponent

        face: adsk.fusion.BRepFace = root.bRepBodies[0].faces[0]


        revolveFeats: adsk.fusion.RevolveFeatures = root.features.revolveFeatures
        revolveIpt: adsk.fusion.RevolveFeatureInput = revolveFeats.createInput(
            face,
            root.zConstructionAxis,
            adsk.fusion.FeatureOperations.NewBodyFeatureOperation
        )

        revolveIpt.setAngleExtent(
            False,
            adsk.core.ValueInput.createByReal(math.pi*2)
        )

        revolveFeats.add(revolveIpt)


    except:
        if ui:
            ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))

・プロファイルはサーフェスそのもので大丈夫。
・軸は実在するものにする。

上手く行かなかったのは、軸だ・・・。


追記。
Fusion360は軸は線などの要素では無く、円筒や円錐等の中心軸が
直線になるものの場合は、回転の軸として指定できるみたい。
凄いなこれ。(API的にはちょっと迷惑・・・)