C#ATIA

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

pycatiaを味わう4

関連無いのですが、こちらの続きです。
pycatiaを味わう3 - C#ATIA

referenceのお話です。わかりにくいですよねreference。
でも避けては通れないです。

こちらのサンプル見ていると、ちょっと不思議な気がしました。
pycatia/examples/example__hybrid_shape_factory__001.py at master · evereux/pycatia · GitHub

    hybrid_shape_reference = Reference(hybrid_shape.com_object)

referenceを取得している・・・正しくはpycatiaのReferenceオブジェクトの
インスタンスを作っているのですが、通常であればCreateReferenceFromObject
メソッドを使うはずなんです。
r1 Part (Object)

どうやっているのかな?と思い、pycatiaのReferenceのコンストラクタの
実装を見てみました。
pycatia/pycatia/in_interfaces/reference.py at master · evereux/pycatia · GitHub

COMオブジェクトを受け取って、pycatiaのAnyObjectのコンストラクタに
放り投げた後にCOMオブジェクトを持っているだけのような気がします・・・。
意外、これだけ?

AnyObjectのコンストラクタを見てみると、
pycatia/pycatia/system_interfaces/any_object.py at 472fd0f32a6439aa800525b8dcd73ea95080fd53 · evereux/pycatia · GitHub

COMオブジェクトを受け取って、pycatiaのPyCATIAのコンストラクタを
実行し、COMオブジェクトを保持しています。

さらにPyCATIAのコンストラクタを見てみると、
pycatia/pycatia/base_interfaces/pycatia.py at 472fd0f32a6439aa800525b8dcd73ea95080fd53 · evereux/pycatia · GitHub

何もしていないです・・・。
謎です。

理解できないので、見なかった事にしておきます。