DEXCS-WBの開発環境について

はじめに

先々の記事に引き続いて、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
        }
    ]
}

				
			

デバッグ方法

  1.  FreeCADを起動
  2.  Addonが読み込まれ debugpy がポート5678でListen開始
  3.  VS Code で “Attach to FreeCAD” を実行 (F5)
  4.  VS Code でブレークポイントを設定
  5. . FreeCAD上で操作 → ブレークポイントで停止 → ステップ実行可能

まとめ

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 インストール

デバッグ手順:

  1. FreeCADをターミナルから起動
  2. VS Codeでブレークポイント設置
  3. “FreeCAD AppImage Attach” でアタッチ ✅

補足

当初は、FreeCADのAppImage版を展開したプログラムで起動してデバッグする方法として使えるようになったので、一旦はその方針(下図)でまとめる予定でいた。

しかしながら本記事として取り纏めるに際して、要点を整理して改めてcladeに聞き直したところ、デバッガーだけをローカルインストールして、FreeCAD本体は通常のAppImage版を起動する方法が提案された(下図)。

当初の方法(展開したプログラムから起動する方法)で、DEXCSワークベンチのinitGUI.pyを改変してしまうと、通常のAppImage版で起動した際に、DEXCSワークベンチをロードできなくなってしまっていた(下図)。

したがって上記提案された方法が可能であるならば、通常のFreeCAD作業に支障もなくなるので、これ幸いとばかりに乗っかることにした。しかし最終的に完成するまでの道のりはずいぶん長かった(claudeに聞いてみた5参照)。

(参考)claudeで聞いてみたログ

聞いてみた2

本稿記事とは直接関係ないが、勉強の備忘録として残しておいた(本当は聞いてみた1もあったのだが、記録するのを失念した)。

聞いてみた3

この問い合わせで、おおまかな道筋は見えてきた。

聞いてみた4

聞いてみた3の続きを具体的に実行、幾多のエラーがあったが、エラーメッセージを食わせてやると、それなりに解決策が得られた。

聞いてみた5

「補足」で説明した聞き直し

 

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

上部へスクロール