C#ATIA

↑タイトル詐欺 主にFusion360API 偶にCATIA V5 VBA(絶賛ネタ切れ中)※記載されている内容は個人の意見であり、所属する団体等を代表する意見では御座いません・・・・よ!

Fusionのアセンブリ

まだ、Updateが入っていないのですが、Helpだけ2026年1月のUpdateの内容に更新されていました。
Help

CATIA V5の場合は、部品はCATPartでAssyはCATProductと別れていますが、
Fusionの場合は部品もAssyもf3dで完結出来ます。(外部参照があればf3zですが)

これが、これまでのスタイルは"ハイブリッド設計"と呼び、"パーツ" + "アセンブリ"と言うもう一つの
スタイルが出来るようです。
自分のアドインは何か問題出るものがあったかな・・・。

他の更新内容を見ると、外部リンクのファイルも編集出来るようになりそうだし、派生挿入もサポート
されそうなので、出来る事が増えそうですね。

DocumentTree単独化2

こちらの続きです。
DocumentTree単独化1 - C#ATIA

まだまだ開発中ですが、こちらで公開しました。
GitHub - kantoku-code/Fusion_DocumentTree: Display the dependencies of Autodesk Fusion documents in a tree view.
が、説明書きがありません。

見た目が違うのですが、ほぼこちらと同じです。
Fusion360_GOKOTAI/GOKOTAI/commands/DocumentTree at main · kantoku-code/Fusion360_GOKOTAI · GitHub

全ての穴の軸を作成する(限定的)

限定的なお話です。

この様なモデルがあるとします。(Fusionに入っているサンプルデータです)

赤印のボディを選択すると、全ての穴の軸となる線を作成します。

役に立つ・・・のかな?

# Fusion360API Python script

import traceback
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
        des: fusion.Design = app.activeProduct
        root: fusion.Component = des.rootComponent

        msg: str = 'Select'
        selFilter: str = 'Bodies'
        sel: core.Selection = select_ent(msg, selFilter)
        if not sel:
            return
        body: fusion.BRepBody = sel.entity

        recognizedHolesInput: cam.RecognizedHolesInput = cam.RecognizedHolesInput.create()
        holeGroups: cam.RecognizedHoleGroups = cam.RecognizedHoleGroup.recognizeHoleGroupsWithInput(
            [body], 
            recognizedHolesInput
        )

        skt: fusion.Sketch = root.sketches.add(root.xYConstructionPlane)

        holeGroup: cam.RecognizedHoleGroup = None
        for holeGroup in holeGroups:
            
            for idx in range(holeGroup.count):
                hole: cam.RecognizedHole = holeGroup.item(idx)
                draw_hole_axis(hole, skt)


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


def draw_hole_axis(hole: cam.RecognizedHole, skt: fusion.Sketch):
    hole.top
    skt.sketchCurves.sketchLines.addByTwoPoints(
        hole.top,
        hole.bottom
    )


def select_ent(
    msg: str,
    filterStr: str
) -> core.Selection:

    try:
        app: core.Application = core.Application.get()
        ui: core.UserInterface = app.userInterface
        sel = ui.selectEntity(msg, filterStr)
        return sel
    except:
        return None

但し、この機能は製造のエクステンションを持っていないとエラーになります。残念。


以前は違ったんですよ。エクステンションが無くても使える機能でした。
RecognizedHoleGroup オブジェクトですが、今回はrecognizeHoleGroupsWithInputメソッドを使ってます。
Help
以前は、廃止されているrecognizeHoleGroupsメソッドを使っていたような記憶です。残念。

DocumentTree単独化1

明けましておめでとうございます。本年もマイペースで行きます。
・・・昨年末のあまりに気の無い最後を反省しております。

さっそく、昨年の宿題に取り掛かります!
サムネイルを表示する - C#ATIA

最後に記載していたあのアドインとはこちらのアドインのDocumentTreeの機能です。
Fusion360_GOKOTAI/GOKOTAI/commands/DocumentTree at main · kantoku-code/Fusion360_GOKOTAI · GitHub
そもそもこちらの機能は単独のアドインにするだけの価値はあるだろうと思っています。

念のためこちらのアドインは、

  • アクティブなドキュメント(ファイル)の外部参照しているファイル同士の依存関係をTree表示させます。
  • つまり依存しているトップファイルを探し出すことが可能です。
  • 表示された任意のファイルを開くことが可能です。
  • 表示されているTreeからファイル名の検索が行えます。

ここまでは、以前までの機能で、追加中の機能としては

  • 各ノード(ファイル名)をホバーした際のツールチップにサムネイル画像を表示させます。
  • 同じくツールチップにファイルの情報を表示させます。

内部的には、自由度を高めたかったためTree表示に使っていたjstreeやbootstrapの利用を止めつつあります。

未だ解決できていないのは、

  • 起動時にプログレスリングがカクカク動く。-> python側でのデータ取得に時間がかかる為
  • f2d(図面)を開くとアドインが終了する。 -> fusion側の問題なので、改善策が無いと思う

です。

・・・正直申し上げると、自力ではなくclaudeやantigravityを使用しています。
fusionからantigravity起動したいのですが、何処かに情報落ちていないかな・・・。

2025年を振り返る

正直に書くと仕事がまだ納まってませんが、今日を逃すと書く暇が無さそうなので
書きます。

今年の二月で退職しフリーランスとなり生活リズムは変えないようにしていますが、
生活自体は変わりました。ここ数年は比較的時間の余裕がありましたが、ありがたい事に
仕事は忙しいです。

〇CATIA
ブログに書けないのですが書いてます。ブログにはCATIAネタほぼ書いてないですね。
来年は何か書きたい。

〇Fusion
こちらは幾らか書きましたが、2年前に比べても取り組む機会が相変わらず少ないですね。
Fusionに興味がなくなったわけではないですし、個別の質問は頂いてます。
こちらも業務でやっているものに類似したものでも作ってみたい気持ちも山々。

〇その他
今年はソコソコ、バイブコーディング等はちょっと挑戦してみました。
が、最近は軽く使う程度です。もうちょっと使うべきなんですが
中々ガッツリ使いたくなる場面に出くわさない気がしてます。気のせいかな?

後は比較的最近、Goのオライリー本を購入しました。諦めてないです。
・・・取り組んでもいませんが。


では、皆様良いお年を!!