まず、こんな感じの穴あけを作っておきます。
深さや作り方が違ったりしているのですが、全てφ10の穴に対して
1つのオペレーションで3か所の穴をあけてます。
面を指定する際は3枚の面で行ってます。
ここで、何枚の面を指定しているか=穴をあけている数と解釈して
この様なスクリプトで指定面数を出力させています。
# Fusion360API Python script import traceback # import adsk import adsk.core as core # import adsk.fusion as fusion import adsk.cam as cam def run(context): ui: core.UserInterface = None try: app: core.Application = core.Application.get() ui = app.userInterface camObj: cam.CAM = get_cam_product() setup: cam.Setup = camObj.setups[0] ope: cam.Operation = setup.operations[0] facesPrm: cam.CAMParameter = ope.parameters.itemByName('holeFaces') facesPrmValue: cam.CadObjectParameterValue = facesPrm.value faces = [f for f in facesPrmValue.value] print(f'Faces Count:{len(faces)}') a=1 except: if ui: ui.messageBox('Failed:\n{}'.format(traceback.format_exc())) def get_cam_product() -> cam.CAM: app: core.Application = core.Application.get() activete_cam_env() return app.activeProduct def activete_cam_env() -> None: app: core.Application = core.Application.get() ui: core.UserInterface = app.userInterface camWS: core.Workspace = ui.workspaces.itemById('CAMEnvironment') camWS.activate()
実行した際の結果は
Faces Count:3
続いて、先程の穴あけの設定を変更します。
指定する面の数は1枚だけにし、"同じ直径を選択" にチェックを
入れておきます。便利ですね、同じ直径だった為3か所が処理対象と
なっています。
しかし先程のスクリプトを実行すると
Faces Count:1
あぁそうなんだ。確かに選択した面の数は1枚だけど・・・。
方法無いのかな?