C#ATIA

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

サーフェス種類を表示する

Fusion360サーフェスは結構細かく種類が分かれているようです。
APIのHelpを見るとこんな感じです。

Fusion 360 Help

アルファベット順での説明じゃなくて、列挙の値順に表示して欲しい気持ちが
強いのですが・・・。
CATIAはここまで細かく判別出来ないと思います、多分。

これを判断するためのスクリプトを作成しました。

#Fusion360API Python script

import adsk.core, adsk.fusion, traceback

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

        surfTypes = {
            0:'PlaneSurfaceType',
            1:'CylinderSurfaceType',
            2:'ConeSurfaceType',
            3:'SphereSurfaceType',
            4:'TorusSurfaceType',
            5:'EllipticalCylinderSurfaceType',
            6:'EllipticalConeSurfaceType',
            7:'NurbsSurfaceType'}
                    
        msg :str = 'Select'
        selFiltter :str = 'Faces'

        while True:
            sel :adsk.core.Selection = selectEnt(ui, msg ,selFiltter)
            if not sel: break

            geoType :adsk.core.SurfaceTypes = sel.entity.geometry.surfaceType
            if geoType in surfTypes:
                msg = surfTypes[geoType]
            else:
                msg = 'わかんないっす'

            ui.messageBox(msg)

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

def selectEnt(
        ui :adsk.core.UserInterface,
        msg :str, 
        filtterStr :str) -> adsk.core.Selection :

    try:
        sel = ui.selectEntity(msg, filtterStr)
        return sel
    except:
        return None

スクリプト実行後、ESCキーを押すまで面を選択する毎にタイプを表示します。
保険の為に  'わかんないっす' を入れてますが恐らく表示されることは
無いだろうと思います。(判断出来ないものは全て NurbsSurfaceType になる予感)


本当はこちらの確認のために作りました。
解決済み: .STPでのツールパス作成 不具合 - Autodesk Community
CAMで穴あけで認識出来ない穴があるとの事。

変換の為に穴がCylinderでは無くNurbsになっているのかな?
と思って作りましたが、見事に全ての穴がCylinderでした・・・。

なるほど、天面がわずかに歪んでいるんですね。さすが足立さん。
と言うことは穴はエッジで判断されるんじゃないのかな?

と言うことで、役に立たなかったこのスクリプトの存在は内緒です。