はじめに
先々の記事に引き続いて、AI関連の第2弾。
DEXCS2026については、まだほとんど白紙状態でありながらも、いくつか思いついたアイデアもあるのだが、そのアイデアを実現するにはプログラミングが必要で、これをAIで助けてもらおうというお話の序の段。
先々の記事はOpenFOAMで100行程度の小さなプログラム作成であったが、今回はDEXCSワークベンチを対象として、それなりのボリュームもある代物。
プログラムの改変編集には数年前からvs code を使ってきており、それなりに重宝させてもらってきていたが、FreeCADの内蔵pythonで動くという特殊な環境で使うものであるので、vs code上でステップ実行させるなど、デバッガーとして使うことはできていなかった。
そこで、プログラムそのものの改変に先立って、vs code をデバッガとして使うにはどうしたら良いのかをAIさんに教えてもらった。
前提とした環境
誰でもトレースできるように、新たにDEXCS2025 for OpenFOAMで作成した仮想環境を構築、システム更新したところから始めた。
今回のAIを何にするかは色々比較記事など参考にしたが、claude さんにお願いすることにした(取り立てて理由はないが、基本無料でやるとすると、このあたりに落ち着くのかと)。
vscodeのインストール
最近の参考記事「UbuntuにVSCodeをインストールする3つの方法」の中で、一番簡単そうな方法(コマンド一発)で
sudo snap install --classic code
python関係、日本語環境の拡張機能もインストール追加
FreeCAD AppImageの展開
AppImage版そのままだと、起動の都度FreeCADの本体プログラムの展開場所が違ってしまうが、下記コマンドにより所定場所(~/squashfs-root/)に展開される。
freecad --appimage-extract
AppImage版を展開したpython環境にてdebugpy をインストール
~/squashfs-root/usr/bin/python -m pip install debugpy \
--target=/home/dexcs/.freecad-debugpy
debugpyの収納場所(–target)を変えているところがミソだったか…(よくわからなかったが結果的にこれでようやくOKとなった)
Addonの初期化コードにデバッグ起動処理を追加
InitGUI.pyの冒頭に以下追加
import sys, os
os.environ["PYDEVD_DISABLE_FILE_VALIDATION"] = "1"
_debugpy_path = "/home/dexcs/.freecad-debugpy"
if _debugpy_path not in sys.path:
sys.path.insert(0, _debugpy_path)
try:
import debugpy
debugpy.configure(python="/home/dexcs/squashfs-root/usr/bin/python")
if not debugpy.is_client_connected():
debugpy.listen(("localhost", 5678))
print("✅ debugpy listening on localhost:5678")
except Exception as e:
print(f"debugpy スキップ: {e}")
VS Code の launch.json を設定
~.vscode/launch.json を以下の内容で作成
{
"version": "0.2.0",
"configurations": [
{
"name": "FreeCAD AppImage Attach",
"type": "debugpy",
"request": "attach",
"connect": {
"host": "localhost",
"port": 5678
},
"pathMappings": [
{
"localRoot": "${workspaceFolder}",
"remoteRoot": "/home/dexcs/.local/share/FreeCAD/Mod/dexcsCfdOF"
}
],
"justMyCode": false
}
]
}
まとめ
DEXCSワークベンチの開発(vs code を使ってデバッグできる)環境を構築できた
今回の解決策まとめ(by claude)
環境: FreeCAD 1.0.1 AppImage + Linux + VS Code
InitGui.py の設定:
import sys, os
os.environ["PYDEVD_DISABLE_FILE_VALIDATION"] = "1"
_debugpy_path = "/home/dexcs/.freecad-debugpy"
if _debugpy_path not in sys.path:
sys.path.insert(0, _debugpy_path)
try:
import debugpy
debugpy.configure(python="/home/dexcs/squashfs-root/usr/bin/python")
if not debugpy.is_client_connected():
debugpy.listen(("localhost", 5678))
print("✅ debugpy listening on localhost:5678")
except Exception as e:
print(f"debugpy スキップ: {e}")
ポイントは2つ:
- debugpy.configure(python=…) でsquashfs-root内のPythonを明示指定
- debugpyは ~/.freecad-debugpy に –target インストール
デバッグ手順:
- FreeCADをターミナルから起動
- VS Codeでブレークポイント設置
- “FreeCAD AppImage Attach” でアタッチ ✅
補足
当初は、FreeCADのAppImage版を展開したプログラムで起動してデバッグする方法として使えるようになったので、一旦はその方針(下図)でまとめる予定でいた。
しかしながら本記事として取り纏めるに際して、要点を整理して改めてcladeに聞き直したところ、デバッガーだけをローカルインストールして、FreeCAD本体は通常のAppImage版を起動する方法が提案された(下図)。
当初の方法(展開したプログラムから起動する方法)で、DEXCSワークベンチのinitGUI.pyを改変してしまうと、通常のAppImage版で起動した際に、DEXCSワークベンチをロードできなくなってしまっていた(下図)。
したがって上記提案された方法が可能であるならば、通常のFreeCAD作業に支障もなくなるので、これ幸いとばかりに乗っかることにした。しかし最終的に完成するまでの道のりはずいぶん長かった(claudeに聞いてみた5参照)。


