C#ATIA

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

pycatiaを味わう1

気になっていたpycatiaを試してみることにしました。
但し、不完全で解決する方法がわかりません。
解決方法がわかったら別途記載しますが、取り組んだ事を
忘れてしまいそうなためのメモ書きです。

pycatia自体はこちらです。
GitHub - evereux/pycatia: python module for CATIA V5 automation
ほぼ個人での開発だと思うので、すごいと思います。

インストールは、こちらに手順が記載されています。
Installation — pycatia 0.6.4 documentation
但し、手順がちょっと違う方法を行ったような気もするので
記載しておきます。

予め、スタート時の環境です。
・OSはwin10 proです。
・CATIAはV5-6 R2022です。
pythonは3.11がインストール済みです。
 (Anacondaとか嫌だったので、素のpythonです)
pythonのpathは通していません。(確か)
vscodeでは、ms-pythonの拡張をインストール済みです。

〇仮想環境を作成
過去にfletを取り組んだ際に行った手順です。
上手くいかない原因がここにあるような気もしています・・・。

まず、任意のフォルダーをエクスプローラ上で作成します。
エクスプローラのアドレス部分(?)で、"cmd"を実行しターミナル
(コマンドプロンプト)を起動します。

あまり詳しく分かっていないのですが、ターミナル上でこちらを実行。

py -3.11 -m venv .venv

これで".venv"フォルダが出来上がり、仮想環境が出来ました。

そのままターミナル上で、次を実行。

.venv\Scripts\activate.bat

これで仮想環境内に入りました。

〇pipのアップデート
最初にこれをやったのではありませんが、途中で進まなくなる為、
これを最初に行う必要がありました。

ターミナル上で次を実行。

pip install --upgrade pip

これで仮想環境上でのpipが最新?バージョンになります・・・。
と思っていたのですが、エラーが出ます。
エラーメッセージに従い、フルパスでの実行で最新状態になるはずです。

〇pycatiaのインストール
公式ドキュメントのpypiの方法で行いました。

ターミナル上で

pip install pycatia

を実行しインストール完了です。

最新にupdateする為、こちらも実行です。

pip install pycatia --upgrade

ここまでは、CATIAをインストールしていないPCでも出来るはずです。
・・・無意味ですが。


pythonのファイルを作成する
続いてvscodeで、最初の任意のフォルダを開きます。
面倒なのでvscode上で"hello.py"を作成します。
この様な状態です。

ファイル名からして、何を行うかはご察しの通りです。

続いてサンプルを元に"hello.py"をこの様にしました。

# pycatia test
import os
import sys

sys.path.insert(0, os.path.abspath("..\\pycatia"))

from pycatia import catia

caa = catia()
caa.message_box("Hello PyCatia")

〇実行する
CATIA V5を起動し、vscodeのこちらを押します。

で、結果は・・・

エラー出まくりです。
確かに、仮想環境に入った状態では無い為に出てくるエラーのような
気もします。

そこで、vscodeのターミナル上でこちらを実行します。

.venv\Scripts\activate.bat

これで仮想環境に入ったはず。

再度実行したところ、何とか表示されました。

表示されたものの、CATIAの裏側で表示されていました。
何かが違う・・・でも動きました。


公式のサンプルをちょっと試した際の画像なのですが、
ブレークポイントで停止させた際、変数の中も見れていますし、
型も表示されています。

又、インテリセンスも表示されました。

但し、スネークケースで表示されていることを考えると、
COMオブジェクトを直接見ているのではなく、pycatiaで定義
されているメソッド等の名前が表示されているようです。
(=ラッパー)

と、ここまでの感じではデバッグを含めて開発が十分出来そうな
感触は持ちました。
が、解決しないのはここからです。

一旦vscodeを閉じ、再度vscodeで開いてもエラーとなり、全く
実行出来なくなりました。

そもそもエディタ上でpycatiaが認識出来ていない事が、静的解析でも
表示されています。

pycatia的な事ではなく、仮想環境の理解が出来ていないのだろうとは
思いますが・・・。