C#ATIA

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

VSCodeでPowerMillマクロ開発環境を作りたい8

こちらの続きです。
VSCodeでPowerMillマクロ開発環境を作りたい7 - C#ATIA

コメント部分に記載しましたが、本当はデバッグも行いたいです。

VSCodeプログラミング言語の拡張を見ると色々とあるのですが、
大半の言語がVSCode上でのデバッグは対応していないです。
対応しているのはこちらっぽいです。
Visual Studio Codeの各言語、環境のデバッグの仕方を集めたサイトを作ってる - Qiita
他にもHSPも対応してそうです。


恐らくそれなりにハードルが高いことなのだろうと思っており、
素人の手の届く範囲を超えていると諦めています。
但し、PowerMillのデバッガを起動することはマクロで可能と
わかっています。

「C:\tmp\hoge.mac」にファイルを置いておき、PowerMillを起動。
VBAでもVBScripでも動くのですが、こちらを実行すると
目的のマクロをデバッガで開いてくれます。

    'powermill
    Dim pm
    Set pm = GetObject(, "PMILL.Document")
    
    'マクロパス
    Dim path
    path = "C:\tmp\hoge.mac"
    
    'コマンド
    Dim cmd
    cmd = "MACRO DEBUG " & path
    
    'デバッガ起動
    Call pm.docommand(cmd)

PowerMill側でマクロパス設定を行っていないフォルダでもデバッガで
開くことが可能です。
これだけの事なのですが、もう一週間以上探し回っても手段が見つからない
状況です。本当にたったこれだけの事なのに…。


そもそも、VSCodeデバッグが可能になっている仕組み自体が理解出来て
いなかったため、色々調べてみました。
こちらのサイトが(このサイトと違って)非常に丁寧な説明がされており、
一番理解しやすかったです。
今日のPython: VSCode で TypeScript のデバック設定

薄っすらした理解(誤った理解がある可能性有り)では、TypeScriptの場合は
VSCodeデバッグ可能なのは Node.js のおかげ
・Node.js 経由でデバッグ可能なのは JavaScript のみ
・他言語でデバッグ可能にするのは、コンパイラ次第
・他言語の場合は、JavaScript にビルド(正しくはトランスパイル)
 して呼び出している?
と思い込んでおきます。

デバッグ開始(F5)では launch.json が構成になっているけど、
上記のビルド処理を事前に行っておく必要があるため、
ビルドタスク(Ctrl + Shift + B)を用意しておく必要があり、
そちらの構成が tasks.json になっていると思い込んでおきます。

是非、編集中のPowerMillマクロをF5で呼び出したい!

と思い探し回っているのですが、見つからないです。


〇作戦1
 VBSファイルを用意し、編集中ファイルパスをパラメータにし
 F5経由でタスクのコマンドとして実行する。

〇作戦2
 他言語(JavaScript・TypeScript・PowerShell辺り)で
 上記コード相当を実行する。

 ・JavaScript・TypeScriptでVBAのGetObject相当の処理を
  したいのだが見つからない。こちらを見つけたけ試したが
  ちょっと違うっぽい。
  GetObject - JavaScript | MDN

 ・PowerShellだとDotNetが利用出来そう(VB)なのだが、
  Node.js 以外のもののインストールを強制するのは気が引ける。


ん~下手すればワンライナーで済む処理なんだけどなぁ。