C#ATIA

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

空きピクチャ取得 外部マクロ

CATIAのDrawのシートと同様に、"AdvanceCAD" には1ファイル当り
ピクチャが1~63まで用意されおり、複数の図面が管理できます。

使用されている(要素のある)次のピクチャに移動する為の
コマンドは用意されているおり、マクロでも使用できます。
が、逆に次の空のピクチャに移動するコマンドが恐らく無いです。
(あったら教えてください)
現在製作中のマクロや類似したマクロを作成する予定の為、
空きピクチャを探す、関数代わりの外部マクロを作成しました。

/*
AdvanceCAD_macro
空のPIC番号を取得 GetNullPic.MAC
*/
extern gInt;
nullPic = 0;
for(i=1; i<64; i+=1) {
  res = getitm(0,i);
  if (res < 1 ){
    nullPic = i;
    break;
  }
}
gInt = nullPic;
return;

外部変数:引数はなしで戻り値は "gInt" です。
空きピクチャが無い場合は、0が戻ります。


使い方はこんな感じ

/* AdvanceCAD_macro */
/* ライブラリパス GetNullPic.MAC の置いてあるフルパス*/
libraryPath = "C:MACRO/Func/";

clear();
extern gInt = 0;
MACRO NEW [libraryPath + "GetNullPic.MAC"] <CE>
nullPic = gInt;
if (nullPic < 1){ 
  msg = "このファイルには、空きPICがありません";
} else {
  msg = encode("PIC%gが空いています",nullPic);
}
echo msg;
exit;

結構面倒なのですが、無いよりましです。