C#ATIA

↑タイトル詐欺 主にCATIA V5 の VBA(最近はPMillマクロとFusion360APIが多い)

PMillのマクロ時間測定

以前こちらに書いた中に関数のコードだけ載せていたのですが
ツールパスバッチ処理 時間測定 - C#ATIA
エコーコマンド部分に表示される為、ちょっと使いにくかったです。

その為「Sw_GetTime」だけ書き換えました。

function Sw_Start() {
	CLOCK RESET QUIT
	CLOCK ON QUIT	
}

function Sw_GetTime() {
	string $TraceFilePath = macro_path(false) + "\clock.txt"
	string list txts = {}
	ECHO OFF DCPDEBUG UNTRACE COMMAND ACCEPT
	TRACEFILE OPEN $TraceFilePath
	CLOCK OFF QUIT
	CLOCK PRINT QUIT
	TRACEFILE CLOSE
	ECHO ON DCPDEBUG TRACE COMMAND ACCEPT
	
	FILE OPEN $TraceFilePath FOR READ AS Input
	FILE READ $txts FROM Input
	FILE CLOSE Input
	DELETE FILE $TraceFilePath

	message info $txts[0]
}

これを利用すると、こんな風にダイアログで表示します。
f:id:kandennti:20180525172725p:plain
TRACEFILE OPEN ~ CLOSE は、コマンドエコーに出力されるものを
ファイルで取得出来るんですね。(PRINT PAR ~等)