RunSVL上で使用できるコマンドです。
Cmd$オブジェクトはコマンド関数を呼び出すためのオブジェクトです。
シートの属性を変更
引数
Fromsheet : String
変更元のシート名
Tosheet : String
変更後のシート名
type : String
"standard" : 標準のシート
"mtable" : メモリ上に仮想シートを作成
返値
シートの属性変更に成功すると1、失敗すると0を返します。
解説
Fromsheetで指定したシート名を、Tosheetで指定したシート名へ変更します。
typeに標準のシートまたはメモリ上の仮想シートにするか指定できます。
例
Cmd$.ChangeTable( "test1", "Sheet5" ); //"test1"を"Sheet5"にシート名を変更
Cmd$.ChangeTable( "Sheet5", "test6", "mtable" ); //"Sheet5"を"test6"にシート名を変更して、さらにメモリ上に保存
数値を度分秒文字列に変換
引数
value : Number
変換する数値
返値
変換後の文字列
解説
数値(value)を度分秒の文字列に変換します。
例
Cmd$.MsgBox( "45.4545 → " + Cmd$.ChgDofunc( 45.4545 ) ); //45.4545 → 45゚27'16"
シートの内容をクリア
引数
sheetname : String
シート名
r1, c1 : Integer
クリアする範囲の行列番号1
r2, c2 : Integer
クリアする範囲の行列番号2
返値
なし
解説
シートの内容を消去します。範囲の行列番号を省略するとシート全体の内容を消去します。
例
Cmd$.ClearTable( "test1", 5, 1, 10, 1 ); //"test1"シートの5行1列目から10行1列目の範囲をクリア
処理待ちメッセージボックスを終了する
引数
waitno : Integer
WaitmsgBox関数の返値(処理待ちメッセージボックスのハンドル)を与えます。
返値
なし
解説
処理待ちメッセージボックスが表示中であれば、そのハンドルを使って処理待ちメッセージボックスを閉じます。
WaitmsgBox関数をご参照ください。
例
var waitno = Cmd$.WaitmsgBox( "処理中・・・", "TEST" ); //処理待ちメッセージボックスを表示
:
Cmd$.CloseWaitmsgBox( waitno ); //処理待ちメッセージボックスを終了
文字列の比較
引数
firststr : String
最初の文字列
serchstr : String
調査される文字列
返値
等しければ1、そうでなければ0を返します。
解説
firststrとserchstrを比較します。大文字と小文字も区別します。
例
var a = "ABC";
var b = "ABc";
if( Cmd$.CompFirstpart( a, b ) ){
Cmd$.MsgBox( "等しいです。" );
}else{
Cmd$.MsgBox( "等しくありません。" );
}
シートのコピー
引数
Fromsheet : String
コピー元のシート名
Tosheet : String
コピー後のシート名
bClear : Integer
0 : コピー元を残す 1 : コピー元をクリア
返値
シートのこぴに成功すると1、失敗すると0を返します。
解説
Fromsheetで指定したシートの内容を、Tosheetで指定したシートへコピーします。Tosheetに既にデータがある場合は上書きされます。
また、bClearを与えることで、コピー元のシートの内容を残すか、全てクリアするか指定できます。
Fromsheetが存在しない場合は、コピーの失敗を返しますが、Tosheetが存在しない場合は、Tosheetのシート名で新しくシートを作成しFromsheetの内容をコピーします。
例
//"test1"シートの内容を"Sheet3"シートへコピーし、コピー元の内容はクリアする
Cmd$.CopyTable( "test1", "Sheet3", 1 );
シートの作成
引数
sheetname : String
作成するシート名
type : String
"standard" : 標準のシート
"mtable" : メモリ上に仮想シートを作成
comment : String
シートのコメント
返値
シートの作成に成功すると1、失敗すると0を返します。
解説
アクティブなプロジェクトへシートを追加作成します。
typeで"mtable"を指定した場合、メモリ上にシートを作成します。メモリ上のシートは標準のシートに比べて実行スピードが速く、効率も良いです。
例
//"test1"シートは初めにプロジェクトに存在しないものとします。
Cmd$.MsgBox( Cmd$.CreateTable( "test1" ) ); //"1"
Cmd$.MsgBox( Cmd$.CreateTable( "test1" ) ); //"0"
カレントディレクトリの取得/設定
引数
dirpath : String
カレントにするディレクトリ
返値
変更前のカレントディレクトリを返します。
解説
SVLプログラムのカレントディレクトリを設定するのによく使われます。
dirpathに何も渡さなければ、現在のカレントディレクトリが取得できます。
例
//"D:\Data"をカレントディレクトリに設定
Cmd$.CurDir( "D:\\Data" );
シートの削除
引数
sheetname : String
削除するシート名
返値
シートの削除に成功すると1、失敗すると0を返します。
解説
シートを削除します。削除するシートが存在しない場合、削除に失敗し、0が返ります。
例
//"test1"シートはプロジェクトに存在しているものとします。
Cmd$.MsgBox( Cmd$.DeleteTable( "test1" ) ); //"1"
Cmd$.MsgBox( Cmd$.DeleteTable( "test1" ) ); //"0" 2回目は既にシートが存在しないため0が返ります。
外部プログラムの実行
引数
progname : String
外部プログラム名(フルパス)
arg : String
外部プログラムに渡す引数
返値
なし
解説
プロジェクトから外部プログラムを起動します。引数を渡すこともできます。
例
//Future32を起動
Cmd$.Execute( "C:\\Program Files\\Future32\\Future.exe" );
[ファイルを開く]ダイアログボックスでファイルを選択
引数
filter : String
ファイルの種類
ファイル種類名1|拡張子1|ファイル種類名2|拡張子2;拡張子3|・・・
ext : String
ファイル名入力に拡張子を省略した場合、ファイル名に付ける拡張子
title : String
ダイアログボックスのタイトル名
返値
選択されたファイルのフルパス名を返します。
解説
ファイルを選択するダイアログを表示します。あくまでファイルの選択のみでファイルは開きません。
また、ダイアログボックスで[キャンセル]ボタンが押された時は、空文字("")が返されます。
例
var fname = Cmd$.GetOpenFilename(" 図 面 (*.FTR;*.DXF)|*.FTR;*.DXF| そ の 他 (*.*)|*.*", "FTR", "図面ファイル選択" );
if( fname != "" ){
Cmd$.MsgBox( "選択されたファイル : " + fname );
}else{
Cmd$.MsgBox( "何も選択されていません" );
}
[名前を付けて保存]ダイアログボックスでファイル名を入力
引数
sfname : String
ファイル名を入力する欄の初期文字列
filter : String
ファイルの種類
ファイル種類名1|拡張子1|ファイル種類名2|拡張子2;拡張子3|・・・
ext : String
ファイル名入力に拡張子を省略した場合、ファイル名に付ける拡張子
title : String
ダイアログボックスのタイトル名
返値
入力されたファイルのフルパス名を返します。
解説
保存するファイル名を取得するダイアログを表示します。あくまでファイル名の取得のみでファイルは保存しません。
また、ダイアログボックスで[キャンセル]ボタンが押された時は、空文字("")が返されます。
例
var fname = Cmd$.GetSaveAsFilename("tmp"," 図 面 (*.FTR;*.DXF)|*.FTR;*.DXF| そ の 他 (*.*)|*.*", "FTR", "図面ファイル選択" );
if( fname != "" ){
Cmd$.MsgBox( "ファイルのパス : " + fname );
}else{
Cmd$.MsgBox( "何も入力されていません" );
}
STC変数を取得
引数
STCname : String
STC名
member : String
STCのメンバー名
返値
取得した値を返します。
解説
STC変数の値を取得します。
STC変数の初期値はINIファイル内に次の形式で記述されます。
[STC名]
メンバー名=初期値
( STCname, member )形式ではCADエンジン内部に定義されているものだけが有効です。
( member )形式では自由にプログラムで定義されているものだけが有効です。
例
//[sysSt]
//DataPath="D:\CADDATA"
Cmd$.MsgBox( Cmd$.GetSTCvar("sysSt","DataPath"); //"D:\CADDATA"
//[NonSTCname]
//AAA="1234"
Cmd$.MsgBox( Cmd$.GetSTCvar("AAA") ); //"1234"
入力ボックスの表示
引数
message : String
表示する文字列
title : String
タイトルバーに表示する文字列
default : String
入力する欄の初期値
返値
入力された値を返します。
解説
入力された値が返ります。値が入力されなければ空文字("")が返され、[キャンセル]ボタンが押されるとundefindを返します。
プロンプト(message)で使用できるエスケープシーケンスは次の通りです。
\n : 改行
\" : ダブルクォーテーション
\\ : \記号
\' : シングルクォーテーション
\? : クェスチョンマーク(文字)
\a : ビープ音(アラート)
\b : バックスペース
\f : フォームフィード
\r : キャリッジリターン
\t : 水平タブ
\v : 垂直タブ
例
var ans = Cmd$.InputBox( "x を入力してください" );
if( ! ans ){
Cmd$.MsgBox( "何も入力されていません" );
}else{
Cmd$.MsgBox( "x = " + ans );
}
ライブラリーの読み込み
引数
modulename : String
使用するライブラリー名
返値
オブジェクトを返します。
解説
ライブラリーを読み込み、オブジェクトを返します。
現在RunSVLでは以下のライブラリーが使用できます。
Sys : システムライブラリー
Util : ユーティリティライブラリー
Math : 数学関数ライブラリー
CAD : CADライブラリー
SVL : SVLライブラリー
CADalpha : CADalphaライブラリー
例
var cad = Cmd$.Library( "CAD" );
プロジェクトの結合
引数
spsname : String
プロジェクトファイル名(SPSファイル)
bFlag : Integer
1 : 同名シートがあれば上書きする 、 0 : 上書きしない
返値
結合に成功すると1、失敗すると0を返します。
解説
プロジェクトファイル(SPSファイル)を現在のアクティブなプロジェクトに結合します。
bFlag=1の場合、プロジェクトファイルの中に、アクティブなプロジェクトにあるシート名と同名のシートが存在したとき読み込んだ側のシートを上書きします。
bFlag=0の場合、そのシートは読み飛ばされます。
例
Cmd$.Merge( "D:\\Data\\Project1.SPS", 1 ); //同名シートがあれば上書き
メッセージボックスの表示
引数
message : String
表示する文字列
title : String
タイトルバーに表示する文字列
返値
なし
解説
メッセージボックスを表示します。「OK」ボタンをクリックすると、次の処理へ移ります。。
プロンプト(message)で使用できるエスケープシーケンスは次の通りです。
\n : 改行
\" : ダブルクォーテーション
\\ : \記号
\' : シングルクォーテーション
\? : クェスチョンマーク(文字)
\a : ビープ音(アラート)
\b : バックスペース
\f : フォームフィード
\r : キャリッジリターン
\t : 水平タブ
\v : 垂直タブ
例
Cmd$.MsgBox( "よろしいですか?\nOKボタンをクリックしてください", "確認" );
文字列を正規表現のパターン文字列で検索
引数
patternstr : String
正規表現のパターン文字列
serchstr : String
調査される文字列
返値
合致したら1、そうでなければ0を返します。
解説
正規表現のパターン文字列と合致するか調べます。
ワイルドカードは*(アスタリスク)のみです。
例
Cmd$.PatternMatch( "A*D", "ABCD" ); //1
STC変数を読み込む
引数
STCname : String
STC変数の名前
InifileName : String
INIファイル名(フルパス)
返値
成功したら1、失敗したら0を返します。
解説
INIファイル名(InifileName)を読み込んでSTC変数のすべてのメンバーの値を更新します。
STCname==""である場合すべてのSTC変数の内容を更新します。
例
//設定ファイル(Future.INI)から"sysSt"変数を読み込む
Cmd$.ReadSTC( "sysSt", "C:\\Program Files\\Future32\Future.INI" );
STC変数を設定
引数
STCname : String
STC名
member : String
STCのメンバー名
value : String | Number
設定する値
返値
なし
解説
STC変数の初期値はINIファイル内に次の形式で記述されます。
[STC名]
メンバー名=初期値
( STCname, member, value )形式ではCADエンジン内部に定義されているものだけが有効です。
( member, value )形式では自由にプログラムで定義可能です。
例
Cmd$.SetSTCvar("sysSt","DataPath","D:\CADDATA"); //[sysSt]
//DataPath="D:\CADDATA"
Cmd$.SetSTCvar("AAA",1234); //[NonSTCname]
//AAA="1234"
シートから変数をセット
引数
sheetname : String
変数表が用意されているシート名
var : Integer
変数名が記述されている列番号
value : Integer
値が記述されている列番号
type : Integer
変数型が記述されている列番号
start : Integer
変数の読み込みを開始する行番号
返値
なし
解説
sheetnameに記述されている変数と値を対応付けて変数宣言します。
変数が配列の場合、必ず値の列が最後になるようにして下さい。
例
//"VarSheet"シート内の表を変数化する
// 変数名列 → 1 値列 → 4 型名列 → 3 開始行 → 2
Cmd$.SetVarS( "VarSheet", 1, 4, 3, 2 );
※1行目は無視されます。
処理待ちメッセージボックスを開始する
引数
message : String
表示する文字列
title : String
タイトルバーに表示する文字列
maxsecond : Number
最大表示時間(秒)
返値
なし
解説
処理待ちメッセージボックスの表示を開始します。最大表示時間(秒)も指定できます。
CloseWaitmsgBox関数をご参照ください。
例
var waitno = Cmd$.WaitmsgBox( "処理中・・・", "TEST" ); //処理待ちメッセージボックスを表示
:
Cmd$.CloseWaitmsgBox( waitno ); //処理待ちメッセージボックスを終了
STC変数の値をINIファイルに書き込む
引数
STCname : String
STC変数の名前
InifileName : String
INIファイル名(フルパス)
返値
成功したら1、失敗したら0を返します。
解説
STC変数名(STCname)のすべてのSTC変数の内容を書き込みます。
STCname==""である場合すべてのSTC変数の内容を書き込みます。
例
//設定ファイル(Future.INI)へ"sysSt"変数を書き込む
Cmd$.WriteSTC( "sysSt", "C:\\Program Files\\Future32\Future.INI" );
指定図面の履歴を削除
引数
modelname : String
履歴を削除したい図面名
返値
なし
解説
指定図面の履歴を削除します。その図面の「Undo」「Redo」が効かなくなります。
例
Cmd$.ClearHistory( "Test.FTR" );
アクティブ図面の圧縮
引数
bHistory : Integer
1 : 圧縮時に履歴を残す 、 0 : 履歴も含む
返値
なし
解説
「履歴を含む」で圧縮した場合、その図面の「Undo」「Redo」が効かなくなります。
「履歴を残す」圧縮した場合、要素の登録順に対しての「Undo」「Redo」は効きますが、要素やブロックに対する変更履歴は消えます。
例
Cmd$.CompressModel( 1 ); //履歴を残して圧縮
新規図面を作成
引数
modelname : String
作成する図面名
papername : String
ペーパー名
Xsize, Ysize : Number
ペーパーの縦、横長さ(mm)
layerN : Integer
固有画層数
返値
成功したらtrue、失敗したらfalseを返します。
解説
"図面名"と同じ図面がメモリー上に存在していれば、削除して新規に作成します。
"図面名"が新規に作成された後、アクティブな図面になり表示されます。但し、"図面名"の先頭文字が「@」であれば、表示されません。
計算用などで非表示で実行させたいときに「@」を先頭文字とした図面名を引数に与えます。
例
var bRet = Cmd$.CreateFTR( "D:\\TEST.FTR", "A1横", 841, 594, 8 );
if( bRet ){
Cmd$.MsgBox( "図面が作成されました" );
}else{
Cmd$.MsgBox( "図面が作成されませんでした" );
}
座標系を作成、既存座標系の変更
引数
mapname : String
作成する座標系名または既存座標系名
Xp, Yp : Number
ペーパー上の座標系原点位置
sc : Number
縮尺(③の場合、X方向縮尺)
Ysc : Number
Y方向縮尺
rt : Number
座標軸傾き
返値
座標系ハンドルを返します。
解説
座標系を新規作成したり、既存の座標系の変更を行います。
①の場合、座標系名・原点位置・縮尺を指定できます。
②の場合、座標系名・原点位置・縮尺・傾きを指定できます。
③の場合、座標系名・原点位置・X方向縮尺・Y方向縮尺・傾きを指定できます。
例
var hmap = Cmd$.CreateMap( "平面図", 5, 5, 1/10 );
if( hmap ){
Cmd$.MsgBox( "座標系が作成されました\n座標系ハンドル = " + hmap );
}else{
Cmd$.MsgBox( "座標系が作成されませんでした" );
}
図面をメモリー上に新規作成し、その図面をアクティブにする
引数
modelname : String
作成する図面名
papername : String
ペーパー名
Xsize, Ysize : Number
ペーパーの縦、横長さ(mm)
layerN : Integer
固有画層数
返値
成功したらtrue、失敗したらfalseを返します。
解説
"図面名"と同じ図面がメモリー上に存在していれば、削除して新規に作成します。
"図面名"が新規に作成された後、アクティブな図面になり表示されます。但し、"図面名"の先頭文字が「@」であれば、表示されません。
計算用などで非表示で実行させたいときに「@」を先頭文字とした図面名を引数に与えます。
例
var bRet = Cmd$.CreateModel( "D:\\TEST.FTR", "A1横", 841, 594, 8 );
if( bRet ){
Cmd$.MsgBox( "図面が作成されました" );
}else{
Cmd$.MsgBox( "図面が作成されませんでした" );
}
カレントカラーの設定と取得
引数
colorname : String
カレントにするカラーの名前
colorno : HColor=Integer
カレントにするカラーの番号
返値
①②の場合、設定する前のカレントカラーの番号
③の場合、現在のカレントカラーの番号
解説
カレントカラーの設定と取得を行います。失敗した場合は、0を返します。
|
colorname |
colorno |
黒 |
"black" |
1 |
赤 |
"red" |
2 |
緑 |
"green" |
3 |
黄 |
"yellow" |
4 |
青 |
"blue" |
5 |
紫 |
"violet" |
6 |
水色 |
"skyblue" |
7 |
白 |
"white" |
8 |
|
例
Cmd$.CurColor( "green" ); //緑色をカレントカラーにする
Cmd$.MsgBox( Cmd$.CurColor( ) ); //3
アクティブ図面のカレント画層の設定と取得
引数
layername : String
カレントにする画層の名前
layerhandle : HLayer=Integer
カレントにする画層ハンドル
返値
①②の場合、設定する前のカレント画層ハンドル
③の場合、現在のカレント画層ハンドル
解説
カレント画層の設定と取得を行います。失敗した場合は、0を返します。
例
Cmd$.CurLayer( "M2-5" ); //画層"M2-5"をカレント画層にする
Cmd$.MsgBox( Cmd$.CurLayer( ) ); //"M2-5"
カレント線種の設定と取得
引数
lstylename : String
カレントにする線種の名前
lstyleno : HLStyle=Integer
カレントにする線種番号
返値
①②の場合、設定する前のカレント線種番号
③の場合、現在のカレント線種番号
解説
カレント線種の設定と取得を行います。失敗した場合は、0を返します。
|
lstylename |
lstyleno |
実線 |
"solid" |
1 |
点線 |
"dot" |
2 |
破線1 |
"dash" |
3 |
一点鎖線1 |
"dash1dot" |
4 |
二点鎖線2 |
"dash2dot" |
5 |
破線2 |
"dash_" |
6 |
一点鎖線2 |
"dash1dot_" |
7 |
二点鎖線2 |
"dash2dot_" |
8 |
|
例
Cmd$.CurLStyle( "solid" ); //実線をカレント線種にする
Cmd$.MsgBox( Cmd$.CurLStyle( ) ); //1
カレント線種の設定と取得
引数
fontname : String
カレントにするフォントの名前
fonthandle : HTFont=Integer
カレントにするフォント番号
返値
①②の場合、設定する前のカレントフォント番号
③の場合、現在のカレントフォント番号
解説
カレントフォントの設定と取得を行います。失敗した場合は、0を返します。
例
Cmd$.CurTFont( 1 ); //"標準フォント"をカレントフォントにする
Cmd$.MsgBox( Cmd$.CurTFont( ) ); //1
アクティブ図面の重複要素をチェックしてまとめる
引数
Gosa : Number
重複誤差(mm)
返値
なし
解説
アクティブな図面の重複要素をチェックします。重複している要素は一つにまとめられます。
例
Cmd$.DblCheck( 0.0001 ); //重複誤差を0.0001mmにしてチェックを行う
要素を削除
引数
henty : HEnty=Integer
要素番号
返値
成功したらtrue、失敗したらfalseを返します。
解説
削除したい要素番号を渡し、その要素を削除します。
例
var henty = Cmd$.DrwLine( 0, 0, 100, 100 ); //直線を描画
Cmd$.DeleteEntity( henty );
図面を削除
引数
filename : String
削除する図面の名前
返値
成功したらtrue、失敗したらfalseを返します。
解説
削除したい図面名を渡し、その図面を削除します。
例
Cmd$.DeleteModel( "D:\\TEST.FTR" );
Bスプラインを描画
引数
arryX : Array
曲線の定義点X座標の配列
arryY : Array
曲線の定義点Y座標の配列
color : HColor=Integer | String
線色番号または線色名
lstyle : HLStyle=Integer | String
線種番号または線種名
layer : String
登録画層名
返値
要素番号を返します。
解説
(arryX[],arryY[])の点座標を元に指示された条件(色、線種、画層)でBスプラインを描画します。
描画できたら要素番号を返しますが、失敗したらnullを返します。
例
var arryX = [ 0, 50, 100, 150 ];
var arryY = [ 10, 50, 20, 35 ];
Cmd$.DrwBSpline( arryX, arryY, "red", 1 );
円(弧)を描画
引数
x, y : Number
中心座標
r : Number
半径
sa : Number
開始角(度)
da : Number
変位角(度)
color : HColor=Integer | String
線色番号または線色名
lstyle : HLStyle=Integer | String
線種番号または線種名
layer : String
登録画層名
返値
要素番号を返します。
解説
(x,y)を中心とする半径rの円を開始角saから変位角daまで指示された条件(色、線種、画層)で描画します。
描画できたら要素番号を返しますが、失敗したらnullを返します。
例
var x = 100, y = 150;
var r = 50, sa = 0, da = 180;
Cmd$.DrwCircle( x, y, r, sa, da, 8, 1, "0" );
Cスプラインを描画
引数
arryX : Array
曲線の定義点X座標の配列
arryY : Array
曲線の定義点Y座標の配列
color : HColor=Integer | String
線色番号または線色名
lstyle : HLStyle=Integer | String
線種番号または線種名
layer : String
登録画層名
返値
要素番号を返します。
解説
(arryX[],arryY[])の点座標を元に指示された条件(色、線種、画層)でCスプラインを描画します。
描画できたら要素番号を返しますが、失敗したらnullを返します。
例
var arryX = [ 0, 50, 100, 150 ];
var arryY = [ 10, 50, 20, 35 ];
Cmd$.DrwCSpline( arryX, arryY, "red", 1 );
楕円(弧)を描画
引数
x, y : Number
中心座標
ra : Number
長軸方向の半径
rb : Number
短軸方向の半径
tna : Number
傾き(度)
sa : Number
開始角(度)
da : Number
変位角(度)
color : HColor=Integer | String
線色番号または線色名
lstyle : HLStyle=Integer | String
線種番号または線種名
layer : String
登録画層名
返値
要素番号を返します。
解説
(x,y)を中心として傾きtna、長軸方向半径ra、短軸方向daの楕円を開始角saから変位角daまで指示された条件(色、線種、画層)で描画します。
描画できたら要素番号を返しますが、失敗したらnullを返します。
例
var x = 100, y = 150;
var ra = 100, rb = 50, tna = 45, sa = 0, da = 180;
Cmd$.DrwCircle( x, y, ra, rb, tna, sa, da, 8, 1, "0" );
連続寸法を描画
引数
Joken : Array
寸法描画条件
xbsp, ybsp : Array
寸法足位置基準線の座標の配列
dL : Number
寸法足位置基準線からの寸法高さ
xp, yp : Array
寸法足の座標の配列
返値
要素番号の配列を返します。
解説
連続寸法を条件に従って描画します。失敗したらnullを返します。
(dL2, xp2, yp2, ・・・, dLn, xpn, ypn)引数を追加すると、複数段の寸法を描画できます。
【寸法描画条件一覧】
|
型 |
初期値 |
説 明 |
layer |
String |
カレント画層名 |
登録画層名 |
iro |
HColor=Integer |
GetSTCvar("snpSt","LClr") |
寸法補助線の色 |
legrot |
Number |
GetSTCvar("snpSt","Th") |
寸法補助線の傾き(度) |
muki |
Number |
90° |
寸法の表示方向(度) |
iro2 |
HColor=Integer |
GetSTCvar("snpSt","TClr") |
寸法文字の色 |
valchk |
Integer |
1 |
1 : 隣り合った寸法が同幅の場合、まとめる 0 : まとめない |
artmark |
String |
@ |
員数倍表示文字列 valchk=1の場合、有効 |
DblTxt |
Number |
0 |
寸法文字重複判定するための距離 前の寸法と文字位置が近い場合に文字位置を自動的に変更 |
|
例
var Joken = {
layer : "2",
iro : 4,
iro2 : 8,
artmark : "x"
};
var xbsp = [ 0, 100, 150, 200 ];
var ybsp = [ 50, 60, 60, 50 ];
var xp = [ 10, 20, 30, 100, 120, 140, 190.5 ];
var yp = [ 10, 10, 10, 10, 10, 10, 10 ];
var xp2 = [ 20, 30, 40, 50, 100, 150 ];
var yp2 = [ 10, 10, 10, 10, 10, 10 ];
var dL = 50, dL2 = 20;
Cmd$.DrwExtendDim( Joken, xbsp, ybsp, dL, xp, yp, dL2, xp2, yp2 );
連続寸法(途中省略)を描画
引数
Joken : Array
寸法描画条件
xbsp, ybsp : Array
寸法足位置基準線の座標の配列
dL : Number
寸法足位置基準線からの寸法高さ
xp, yp : Array
寸法足の座標の配列
cutLine1 : Array
トリミング線1
[ x1, y1, x2, y2 ]
cutLine2 : Array
トリミング線2
[ x1, y1, x2, y2 ]
返値
配列[ N, hEnty ]を返します。
N : 描画した寸法の数 hEnty : 最初に描画した寸法の要素番号
解説
連続寸法(途中省略)を条件に従って描画します。失敗したらnullを返します。
【寸法描画条件一覧】
|
型 |
初期値 |
説 明 |
layer |
String |
カレント画層名 |
登録画層名 |
iro |
HColor=Integer |
GetSTCvar("snpSt","LClr") |
寸法補助線の色 |
legrot |
Number |
GetSTCvar("snpSt","Th") |
寸法補助線の傾き(度) |
muki |
Number |
90° |
寸法の表示方向(度) |
iro2 |
HColor=Integer |
GetSTCvar("snpSt","TClr") |
寸法文字の色 |
valchk |
Integer |
1 |
1 : 隣り合った寸法が同幅の場合、まとめる 0 : まとめない |
artmark |
String |
@ |
員数倍表示文字列 valchk=1の場合、有効 |
DblTxt |
Number |
0 |
寸法文字重複判定するための距離 前の寸法と文字位置が近い場合に文字位置を自動的に変更 |
amari |
Number |
必ず指定して下さい |
途中省略区間の寸法位置延長距離 |
|
例
var Joken = {
layer : "2",
iro : 4,
iro2 : 8,
artmark : "x",
amari : 5
};
var xbsp = [ 0, 100, 150, 200 ];
var ybsp = [ 50, 60, 60, 50 ];
var xp = [ 10, 20, 30, 100, 120, 140, 190.5 ];
var yp = [ 10, 10, 10, 10, 10, 10, 10 ];
var cutL1 = { x1 : 110, y1 : 0, x2 : 110, y2 : 1 };
var cutL2 = { x1 : 130, y1 : 0, x2 : 130, y2 : 1 };
var dL = 50;
var ans = Cmd$.DrwExtendDim2( Joken, xbsp, ybsp, dL, xp, yp, cutL1, cutL2 );
if( ans ){
Cmd$.MsgBox( ans.N + "個の寸法が描画されました" );
}else{
Cmd$.MsgBox( "寸法は描画されませんでした" );
}
ハッチングを描画
引数
Joken : Array
ハッチング描画条件
xp, yp : Array
領域座標群
color : HColor=Integer | String
線色番号または線色名
lstyle : HLStyle=Integer | String
線種番号または線種名
layer : String
登録画層名
返値
なし
解説
指定領域内にハッチングを行います。
【ハッチング描画条件一覧】
|
型 |
初期値 |
説 明 |
cross |
Integer |
必ず指定して下さい |
1 : クロスさせる 0 : クロスさせない |
ang1 |
Number |
必ず指定して下さい |
ハッチング線傾き1(度) |
ang2 |
Number |
cross=1の場合、必ず指定して下さい |
ハッチング線傾き2(度) |
L1 |
Number |
必ず指定して下さい |
ハッチング線間隔1 |
L2 |
Number |
cross=1の場合、必ず指定して下さい |
ハッチング線間隔2 |
|
例
var Joken = {
cross : "2",
ang1 : 45,
ang2 : -45,
L1 : 10,
L2 : 15
};
var xp = [ 10, 100, 100, 10 ];
var yp = [ 10, 10, 100, 1000 ];
Cmd$.DrwHatting( Joken, xp, yp, 8, 1, "2" ); //白色の実線で"2"画層へ登録
注釈記入を描画
引数
str : String
注釈文字列
x1, y1 : Number
注釈基準点座標
x2, y2 : Number
注釈折れ曲がり位置座標
u, v : Number
注釈文字描画方向
返値
要素番号を返します。
解説
注釈記入を描画します。色などはすべて設定に依存します。
描画できたら要素番号を返しますが、失敗したらnullを返します。
直線を描画
引数
x1, y1 : Number
端点1座標
x2, y2 : Number
端点2座標
color : HColor=Integer | String
線色番号または線色名
lstyle : HLStyle=Integer | String
線種番号または線種名
layer : String
登録画層名
返値
要素番号を返します。
解説
直線を指定された条件(色・線種・画層)で描画します。
描画できたら要素番号を返しますが、失敗したらnullを返します。
点を描画
引数
x : Number
X座標
y : Number
Y座標
color : HColor=Integer | String
線色番号または線色名
layer : String
登録画層名
返値
要素番号を返します。
解説
点を指定された条件(色・画層)で描画します。
描画できたら要素番号を返しますが、失敗したらnullを返します。
連続線を描画
引数
arryX : Array
X座標の配列
arryY : Array
Y座標の配列
color : HColor=Integer | String
線色番号または線色名
lstyle : HLStyle=Integer | String
線種番号または線種名
layer : String
登録画層名
返値
描画した最初の要素の番号を返します。
解説
(arryX[],arryY[])の座標を使って指定された条件(色、線種、画層)で連続線を描画します。
描画できたら要素番号を返しますが、失敗したらnullを返します。
例
var arryX = [ 0, 50, 100, 150 ];
var arryY = [ 10, 50, 20, 35 ];
Cmd$.DrwPolyline( arryX, arryY, "red", 1 );
連続線(トリミング線を境に色・線種・画層を変更)を描画
引数
cutLn : Array
トリミング線
[ x1, y1, x2, y2 ]
arryX : Array
X座標の配列
arryY : Array
Y座標の配列
color1 : HColor=Integer | String
線色番号または線色名
lstyle1 : HLStyle=Integer | String
線種番号または線種名
layer1 : String
登録画層名
color2 : HColor=Integer | String
線色番号または線色名
lstyle2 : HLStyle=Integer | String
線種番号または線種名
layer2 : String
登録画層名
返値
配列[ N, hEnty ]を返します。
N : 描画した直線の数 hEnty : 最初に描画した直線の要素番号
解説
(arryX[],arryY[])の座標を使って連続線を描画します。そのときトリミング線cutLnを境に色・線種・画層を変えて登録します。
トリミング線までは(color1,lstyle1,layer1)、トリミング線からは(color2,lstyle2,layer2)を使用して描画します。
例
var cutLn = { x1 : 120, y1 : 0, x2 : 130, y2 : 1 };
var arryX = [ 0, 50, 100, 150 ];
var arryY = [ 10, 50, 20, 35 ];
Cmd$.DrwPolyline2( cutLn, arryX, arryY, "red", 1 ,"1", "yellow", 3, "2" );
寸法を描画
引数
Joken : Array
寸法描画条件
xbsp, ybsp : Array
寸法足位置基準線の座標の配列
dL : Number
寸法足位置基準線からの寸法高さ
xp1, yp1 : Number
寸法足1の座標
xp2, yp2 : Number
寸法足2の座標
返値
要素番号を返します。
解説
寸法を条件に従って描画します。失敗したらnullを返します。
【寸法描画条件一覧】
|
型 |
初期値 |
説 明 |
layer |
String |
カレント画層名 |
登録画層名 |
iro |
HColor=Integer |
GetSTCvar("snpSt","LClr") |
寸法補助線の色 |
legrot |
Number |
GetSTCvar("snpSt","Th") |
寸法補助線の傾き(度) |
muki |
Number |
90° |
寸法の表示方向(度) |
iro2 |
HColor=Integer |
GetSTCvar("snpSt","TClr") |
寸法文字の色 |
dh2 |
Number |
GetSTCvar("snpSt","Dh2") |
寸法線と寸法文字の間隔(図面大) |
sid1 |
Integer |
1 |
寸法補助線1の表示フラグ |
sid2 |
Integer |
1 |
寸法補助線2の表示フラグ |
str |
String |
"" (空文字) |
接頭語 |
bNum |
Integer |
1 |
寸法文字表示方法 1 : 接頭語+計測値 0 : 計測値 |
mog_f |
Integer |
0 |
寸法文字表示位置番号 |
|
例
var Joken = {
layer : "2",
str : "A=",
sid1 : 0
};
var xbsp = [ 0, 100, 150, 200 ];
var ybsp = [ 50, 60, 60, 50 ];
Cmd$.DrwSingleDim( Joken, xbsp, ybsp, 50, 20, 0, 170, 10 );
記事を描画
引数
Joken : Object
記事描画条件
x, y : Number
記事文字列
text : String
返値
要素番号を返します。
解説
記事を条件に従って描画します。失敗したらnullを返します。
【記事描画条件一覧】
|
型 |
初期値 |
説 明 |
layer |
String |
カレント画層名 |
登録画層名 |
color, iro |
HColor=Integer |
図面大ならGetSTCvar("txtSt","TClr")
現寸大ならGetSTCvar("txtSt","genTClr") |
記事の色 |
font |
String |
カレントフォント名 |
フォント名 (空文字列なら標準フォント1) |
xbs, ybs |
Integer(0,1,2) |
横文字ならxbs=0,ybs=0、縦文字ならxbs=2,ybs=2 |
記事の基準位置フラッグ
xbs=0(左端),1(中央),1(右端)
>ybs=0(下端),1(中央),1(上端) |
th |
Number |
横文字なら0°, 縦文字なら90° |
記事の表示方向(度) |
psize |
Boolean |
true(図面大) |
trueなら図面大、falseなら現寸大 |
vdir |
Boolean |
false(横文字) |
trueなら縦文字、falseなら横文字 |
h, w, gap |
Number |
図面大ならGetSTCvar("txtSt","H"/"W"/"Gap")
現寸大ならGetSTCvar("txtSt","genH"/"genW"/"genGap") |
文字の高さ、幅、隙間 |
rot |
Number |
図面大ならGetSTCvar("txtSt","Ang")
現寸大ならGetSTCvar("txtSt","genAng" |
文字の傾き(度) |
|
SVL実行
引数
svlPath : String
SVLファイル名(フルパス)
返値
なし
解説
SVLを実行します。引数を渡すとすぐにSVLが実行されますが、省略すると選択画面(下図)を表示し選択後、実行します。
例
Cmd$.ExeSVL( "D:\\Data\\Rect.SVL" );
図面が存在するか調べる
引数
filename : String
図面名
返値
存在すればtrue、そうでなければfalseを返します。
解説
ファイルが存在するか調べます。メモリー上も調べます。
例
if( Cmd$.ExistModel( "平面図.FTR" ) ){
Cmd$.MsgBox( "平面図.FTRはあります" );
}else{
Cmd$.MsgBox( "平面図.FTRはありません" );
}
フォーカス座標系の変更または、現在のフォーカス座標系の番号を取得
引数
mapname : String
フォーカスにしたい座標系の名前
hmap : HMap=Integer
フォーカスにしたい座標系の番号
返値
①②の場合、実行前のフォーカス座標系の番号
③の場合、現在のフォーカス座標系の番号
解説
mapnameまたはhmapを引数として渡しフォーカス座標を変更した場合は、変更する前のフォーカス座標系番号が返されます。
引数を省略した場合は、現在のフォーカス座標系番号が返されます。
例
Cmd$.FocusMap( "No3" ); //"No3"という名前の座標系をフォーカスにする
var hFMap = Cmd$.FocusMap( ); //現在のフォーカス座標系の番号を取得
アクティブなモデルの取得
引数
なし
返値
現在アクティブになっている図面名を返します。
解説
現在アクティブな図面の名前を取得します。失敗したら空文字が返されます。
例
var bRet = Cmd$.LoadModel( "D:\\TEST.FTR" );
Cmd$.MsgBox( Cmd$.GetActiveModel( ) ); //"D:\\TEST.FTR"
アクティブなモデルの情報を取得
引数
なし
返値
現在アクティブになっている図面の情報を配列[ filename, papername, xsize, ysize, Nlayer ]で返します。
|
型 |
説 明 |
filename |
String |
図面名 |
papername |
String |
ペーパー名 |
xsize |
Number |
ペーパー横サイズ |
ysize |
Number |
ペーパー縦サイズ |
Nlayer |
Integer |
画層数 |
|
解説
現在アクティブな図面の情報を取得します。失敗したら空文字が返されます。
例
Cmd$.CreateModel( "TEST.FTR", "A1横", 841, 594, 12 );
var ans = Cmd$.GetActiveModelInf( );
if( ans != "" ){
Cmd$.MsgBox( ans.filename ); //"TEST.FTR"
Cmd$.MsgBox( ans.papername ); //"A1横"
Cmd$.MsgBox( ans.xsize ); //841
Cmd$.MsgBox( ans.ysize ); //594
Cmd$.MsgBox( ans.Nlayer ); //12
}
指定要素の情報を取得
引数
henty : HEnty=Integer
要素番号
返値
要素(henty)の情報を配列[ htype, layername, color, startpt[], endpt[], length,
pt[], ang, r, sa, da, ra, rb, pointn, string, dimtype, color2 ]で返します。
【共通情報】
|
型 |
説 明 |
htype |
HType=Integer |
要素タイプ |
layername |
String |
登録画層名 |
color |
HColor=Integer |
色 |
|
【各要素タイプに応じた情報】
|
型 |
説 明 |
点要素 htype = 1 |
pt |
Array [ x, y ] |
点座標 x : X座標 y : Y座標 |
線要素 htype = 2 |
ang |
Number |
傾斜角 |
startpt |
Array [ x, y ] |
始点座標 x : X座標 y : Y座標 |
endpt |
Array [ x, y ] |
終点座標 x : X座標 y : Y座標 |
length |
Number |
長さ(有限の場合のみ) |
円要素 htype = 3 |
pt |
Array [ x, y ] |
中心点座標 x : X座標 y : Y座標 |
r |
Number |
半径 |
sa |
Number |
開始角 |
da |
Number |
変位角 |
startpt |
Array [ x, y ] |
始点座標(有限の場合のみ) x : X座標 y : Y座標 |
endpt |
Array [ x, y ] |
終点座標(有限の場合のみ) x : X座標 y : Y座標 |
length |
Number |
周長 |
楕円要素 htype = 4 |
pt |
Array [ x, y ] |
中心点座標 x : X座標 y : Y座標 |
ra |
Number |
長軸半径 |
rb |
Number |
短軸半径 |
sa |
Number |
開始角 |
da |
Number |
変位角 |
ang |
Number |
傾斜角 |
startpt |
Array [ x, y ] |
始点座標(有限の場合のみ) x : X座標 y : Y座標 |
endpt |
Array [ x, y ] |
終点座標(有限の場合のみ) x : X座標 y : Y座標 |
length |
Number |
周長 |
曲線要素 htype = 5 |
pointn |
Integer |
定義点数 |
startpt |
Array [ x, y ] |
始点座標(有限の場合のみ) x : X座標 y : Y座標 |
endpt |
Array [ x, y ] |
終点座標(有限の場合のみ) x : X座標 y : Y座標 |
length |
Number |
周長 |
記事要素 htype = 6 |
string |
String |
文字列 |
寸法要素 htype = 7 |
dimtype |
Dim2Type=Integer |
寸法タイプ |
color2 |
HColor=Integer |
寸法文字色 |
|
解説
要素の情報を、全要素共通の情報と要素タイプごとの情報と分けて返します。
例
var henty1 = Cmd$.DrwPoint( 150, 250, "red", 2, "aaa" ); //点を描画
var henty2 = Cmd$.DrwLine( 100, 100, 200, 200, "yellow", 1, "bbb" ); //直線を描画
var ans = Cmd$.GetEntyInf( henty1 );
if( ans.htype == 1 ){
Cmd$.MsgBox( "登録画層名 : " + ans.layername ); //登録画層名 : aaa
Cmd$.MsgBox( "色 : " + ans.color ); //色 : 2
Cmd$.MsgBox( "X座標 : " + ans.pt.x ); //X座標 : 150
Cmd$.MsgBox( "Y座標 : " + ans.pt.y ); //Y座標 : 250
}
ans = Cmd$.GetEntyInf( henty2 );
if( ans.htype == 2 ){
Cmd$.MsgBox( "登録画層名 : " + ans.layername ); //登録画層名 : bbb
Cmd$.MsgBox( "色 : " + ans.color ); //色 : 4
Cmd$.MsgBox( "始点座標 : ( " + ans.startpt.x + " , " + ans.startpt.y + " )" ); //始点座標 : ( 100 , 100 )
Cmd$.MsgBox( "終点座標 : ( " + ans.endpt.x + " , " + ans.endpt.y + " )" ); //終点座標 : ( 200 , 200 )
Cmd$.MsgBox( "長さ : " + ans.length ); //長さ : 141.42135624
}
フォーカス座標系の情報を取得
引数
なし
返値
フォーカス座標系の情報を配列[ name, xscale, yscale, rotate ]で返します。
|
型 |
説 明 |
name |
String |
座標系名 |
xscale |
Number |
X方向縮尺 |
yscale |
Number |
Y方向縮尺(異縮尺の場合、yscale=xscale) |
rotate |
Number |
傾斜角(度) |
|
解説
現在フォーカスな座標系の情報を取得します。失敗したら空文字が返されます。
例
Cmd$.CreateModel( "TEST.FTR", "A1横", 841, 594, 12 );
Cmd$.CreateMap( "map0", 5, 5, 1/5, 45 );
var ans = Cmd$.GetFocusMapInf( );
if( ans != "" ){
Cmd$.MsgBox( ans.name ); //"map0"
Cmd$.MsgBox( ans.xscale ); //0.2
Cmd$.MsgBox( ans.yscale ); //0.2
Cmd$.MsgBox( ans.rotate ); //45°
}
フォーカス座標系の情報を取得
引数
なし
返値
選択されているプリンタの用紙サイズを配列[ xsize, ysize ]で返します。
|
型 |
説 明 |
xsize |
Number |
横サイズ |
ysize |
Number |
縦サイズ |
|
解説
選択されているプリンタの用紙サイズを取得します。失敗したらNULLが返されます。
例
var ans = Cmd$.GetPrtPaper( );
if( ans ){
Cmd$.MsgBox( ans.xsize + " , " + ans.ysize );
}
既存図面を読み込み、アクティブ図面にする
引数
filename : String
図面名(フルパス)
返値
図面が開けたらtrue、失敗したらfalseを返します。
解説
指定された図面名を読み込み表示し、アクティブ化します。
例
if( Cmd$.LoadFTR( "D:\\Test.FTR" ) ){
Cmd$.MsgBox( "読み込みに成功しました" );
}else{
Cmd$.MsgBox( "読み込みに失敗しました" );
}
既存図面を読み込み、アクティブ図面にする
引数
filename : String
図面名(フルパス)
返値
図面が開けたらtrue、失敗したらfalseを返します。
解説
指定された図面名を読み込み表示し、アクティブ化します。
例
if( Cmd$.LoadModel( "D:\\Test.FTR" ) ){
Cmd$.MsgBox( "読み込みに成功しました" );
}else{
Cmd$.MsgBox( "読み込みに失敗しました" );
}
アクティブな図面の記録をスタックから取り出す
引数
なし
返値
なし
解説
最後にPushActiveModelコマンドでスタックに記録した図面を再度アクティブにします。
例
Cmd$.PushActiveModel(); //図面をスタックに記録
:
Cmd$.PopActiveModel(); //スタックしてある図面をアクティブ化
図面の印刷
引数
Pt1, Pt2 : Array
印刷出力範囲の対角点座標。フォーマットは次の通り。
{ x : X座標, y : Y座標 } { id : 要素番号, x : X座標, y : Y座標 } |
現在のフォーカス座標上の点を表し、 それをペーパー上の点に変換 |
{ id : 0, x : X座標, y : Y座標 } |
ペーパー上の点 |
|
xp1, yp1, xp2, yp2 : Number
出力範囲の対角点で、ペーパー上の座標
Scalar : Number
倍率
返値
印刷に成功したらtrue、失敗したらfalseを返します。
解説
アクティブな図面を指定範囲、指定倍率で印刷します。
倍率Scalarに0を渡すと、内部で倍率を計算して現寸大で印刷します。
引数をすべて渡さない場合、アクティブ図面全体を印刷します。
例
//アクティブ図面全体を印刷
Cmd$.Print( );
//(0,0)-(300,200)の範囲を印刷
Cmd$.Print( 0, 0, 300, 200 );
//pt1-pt2の範囲を5倍して印刷
var pt1 = { id : 0, x : 100, y : 100 };
var pt2 = { id : 0, x : 300, y : 400 };
Cmd$.Print( pt1, pt2, 5 );
図面の印刷
引数
Pt1, Pt2 : Array
印刷出力範囲の対角点座標。フォーマットは次の通り。
{ x : X座標, y : Y座標 } { id : 要素番号, x : X座標, y : Y座標 } |
現在のフォーカス座標上の点を表し、 それをペーパー上の点に変換 |
{ id : 0, x : X座標, y : Y座標 } |
ペーパー上の点 |
|
xp1, yp1, xp2, yp2 : Number
出力範囲の対角点で、ペーパー上の座標
Scalar : Number
倍率
返値
印刷に成功したらtrue、失敗したらfalseを返します。
解説
アクティブな図面を指定範囲、指定倍率で印刷します。
倍率Scalarに0を渡すと、内部で倍率を計算して現寸大で印刷します。
引数をすべて渡さない場合、アクティブ図面全体を印刷します。
例
//アクティブ図面全体を印刷
Cmd$.PrintModel( );
//(0,0)-(300,200)の範囲を印刷
Cmd$.PrintModel( 0, 0, 300, 200 );
//pt1-pt2の範囲を5倍して印刷
var pt1 = { id : 0, x : 100, y : 100 };
var pt2 = { id : 0, x : 300, y : 400 };
Cmd$.PrintModel( pt1, pt2, 5 );
アクティブな図面をスタックへ記録する
引数
なし
返値
なし
解説
現在アクティブな図面をスタックに記録します。岐路億した図面を再度アクティブにするにはPopActiveModelコマンドを実行します。
PushActiveModel()とPopActiveModel()は対で使用されます。
例
Cmd$.PushActiveModel(); //図面をスタックに記録
:
Cmd$.PopActiveModel(); //スタックしてある図面をアクティブ化
部品(ライブラリ)配置
引数
filename : String
部品(ライブラリ)名(フルパス)
X, Y : Number
配置座標
Pt : Array
配置座標[ x, y ]
Scale : Number
倍率
rot : Number
回転角
bTurn : Integer
反転フラグ
true : 反転する false : 反転しない
bToitsu : Integer
画層統一フラグ
true : 統一する false : 統一しない
bZumen : Integer
記事図面大フラグ
true : 図面大 false : 現寸大
返値
配置に成功したらtrue、失敗したらfalseを返します。
解説
図形を部品(ライブラリ)として保存したファイル(拡張子:FPR)を指定した条件でアクティブな図面へ配置します。
例
if( Cmd$.PutPart( "D:\\Lib.FPR", 5, 5 ) ){
Cmd$.MsgBox( "配置に成功しました" );
}else{
Cmd$.MsgBox( "配置に失敗しました" );
}
アクティブな図面の名前を変更
引数
filename : String
変更後のファイル名
返値
変更できたらtrue、失敗したらfalseを返します。
解説
ファイル名を変更します。メモリー上に同名の図面があれば、変更に失敗しfalseを返します。
例
//アクティブな図面が"D:\Test.FTR"の場合
if( Cmd$.RenameFTR( "D:\\Test1.FTR" ) ){
Cmd$.MsgBox( "変更に成功しました" );
}else{
Cmd$.MsgBox( "変更に失敗しました" );
}
画層名の変更
引数
Oldlayer : String
変更したい画層名
OldHlayer : HLayer=Integer
変更したい画層ハンドル
Newlayer : String
変更後の画層名
返値
変更できたらtrue、失敗したらfalseを返します。
解説
指定画層の画層名を変更します。
例
Cmd$.RenameLayer( "aaa", "bbb" ); //"aaa"→"bbb"
Cmd$.RenameLayer( hlayer, "aaa" ); //画層(hlayer)→"aaa"
アクティブな図面の名前を変更
引数
filename : String
変更後のファイル名
返値
変更できたらtrue、失敗したらfalseを返します。
解説
ファイル名を変更します。メモリー上に同名の図面があれば、変更に失敗しfalseを返します。
例
//アクティブな図面が"D:\Test.FTR"の場合
if( Cmd$.RenameModel( "D:\\Test1.FTR" ) ){
Cmd$.MsgBox( "変更に成功しました" );
}else{
Cmd$.MsgBox( "変更に失敗しました" );
}
アクティブな図面を保存
引数
filename : String
保存ファイル名
ext : String
拡張子の種類
FTR |
FTR形式で保存 |
DXF |
DXF形式で保存 |
DWG |
DWG形式で保存 |
JWC |
JWC形式で保存 |
JWW |
JWW形式で保存 |
P21 |
STEPファイル形式で保存 |
SFC |
フィーチャーコメントファイル形式で保存 |
|
返値
保存できたらtrue、失敗したらfalseを返します。
解説
アクティブな図面を指定した名前、拡張子で保存します。
例
//「名前を付けて保存」ダイアログで保存ファイル名を取得
var filename = Cmd$.GetSavaAsFilename( "temp", "FTR (*.FTR)|*.FTR|DXF, DWG (*.DXF,*.DWG)|*.DXF;*.DWG", "FTR" );
if( filename != "" ){
if( Cmd$.Save( filename ) ){
Cmd$.MsgBox( "保存に成功しました" );
}else{
Cmd$.MsgBox( "保存に失敗しました" );
}
}
アクティブな図面をFTR形式で保存
引数
filename : String
保存ファイル名
返値
保存できたらtrue、失敗したらfalseを返します。
解説
アクティブな図面を指定した名前でFTR形式保存します。
例
//「名前を付けて保存」ダイアログで保存ファイル名を取得
var filename = Cmd$.GetSavaAsFilename( "temp", "FTR (*.FTR)|*.FTR", "FTR" );
if( filename != "" ){
if( Cmd$.SaveFTR( filename ) ){
Cmd$.MsgBox( "保存に成功しました" );
}else{
Cmd$.MsgBox( "保存に失敗しました" );
}
}
アクティブな図面を保存
引数
filename : String
保存ファイル名
ext : String
拡張子の種類
FTR |
FTR形式で保存 |
DXF |
DXF形式で保存 |
DWG |
DWG形式で保存 |
JWC |
JWC形式で保存 |
JWW |
JWW形式で保存 |
P21 |
STEPファイル形式で保存 |
SFC |
フィーチャーコメントファイル形式で保存 |
|
返値
保存できたらtrue、失敗したらfalseを返します。
解説
アクティブな図面を指定した名前、拡張子で保存します。
例
//「名前を付けて保存」ダイアログで保存ファイル名を取得
var filename = Cmd$.GetSavaAsFilename( "temp", "FTR (*.FTR)|*.FTR|DXF, DWG (*.DXF,*.DWG)|*.DXF;*.DWG", "FTR" );
if( filename != "" ){
if( Cmd$.SaveModel( filename ) ){
Cmd$.MsgBox( "保存に成功しました" );
}else{
Cmd$.MsgBox( "保存に失敗しました" );
}
}
アクティブな図面のメタファイル出力
引数
filename : String
保存ファイル名
Pt1, Pt2 : Array
メタファイル出力範囲の対角点座標
{ x : X座標, y : Y座標 } { id : 要素番号, x : X座標, y : Y座標 } |
現在のフォーカス座標上の点を表し、 それをペーパー上の点に変換 |
{ id : 0, x : X座標, y : Y座標 } |
ペーパー上の点 |
|
xp1, yp1, xp2, yp2 : Number
出力範囲の対角点で、ペーパー上の座標
bColor : Boolean
true : カラー出力 false : モノクロ出力
返値
保存できたらtrue、失敗したらfalseを返します。
解説
アクティブな図面の指定領域をメタファイル出力します。出力形式はWMF形式とEMF形式です。
例
//(0,0)-(300,200)の範囲をメタファイル出力
Cmd$.SaveWMF( "a.wmf", 0, 0, 300, 200 );
//pt1-pt2の範囲をカラーでメタファイル出力
var pt1 = { id : 0, x : 100, y : 100 };
var pt2 = { id : 0, x : 300, y : 400 };
Cmd$.SaveWMF( "a.emf", pt1, pt2, true );
汎用CAD「FUTURE32」へアクティブな図面を転送
引数
なし
返値
なし
解説
アクティブな図面を汎用CAD「FUTURE32」へ転送します。
実行すると「FUTURE32」が起動し、転送した図面を表示します。
例
Cmd$.SendToFTR( );
指定図面をアクティブにする
引数
filename : String
アクティブにするファイル名
bRefresh : Boolean
0 : 清書しない 1 : 清書する
返値
アクティブ化できたらtrue、失敗したらfalseを返します。
解説
複数の図面が表示されている場合、指定図面をアクティブにします。その際、清書(再描画)することも可能です。
例
LoadModel( "D:\\Test.FTR" );
LoadModel( "D:\\Test1.FTR" );
LoadModel( "D:\\Test2.FTR" );
Cmd$.SetActiveModel( "Test.FTR" );
指定画層に色・線種属性を設定
引数
layer : String
対象画層名
color : HColor=Integer | String
色番号または色名
lstyle : HLStyle=Integer | String
線種番号または線種名
返値
なし
解説
指定画層の属性情報の色・線種を設定する。
例
//画層"aaa"の色属性を黄色に、線種属性を破線にする
Cmd$.SetLayerAttrib( "aaa", "yellow", 3 );
指定画層に色属性を設定
引数
layer : String
対象画層名
color : HColor=Integer | String
色番号または色名
返値
なし
解説
指定画層の属性情報の色を設定する。
例
//画層"aaa"の色属性を黄色にする
Cmd$.SetLayerColor( "aaa", "yellow" );
指定画層に線種属性を設定
引数
layer : String
対象画層名
lstyle : HLStyle=Integer | String
線種番号または線種名
返値
なし
解説
指定画層の属性情報の線種を設定する。
例
//画層"aaa"の線種属性を破線にする
Cmd$.SetLayerLStyle( "aaa", 3 );
図面に印刷領域を設定
引数
xd, yd : Number
印刷領域基準座標
wide, height : Number
印刷領域幅、高さ
bAdd : Boolean
既にある場合、追加するかどうかのフラグ
返値
なし
解説
アクティブ図面の指定領域を印刷領域情報として図面に設定する。
「簡易印刷」を行うと、SetPrtAreaコマンドで実行した印刷領域が印刷・プレビューされます。
例
Cmd$.SetPrtArea( 10, 10, 200, 300, true );
SVL実行時の色変換表を設定
引数
Scolor : HColor=Integer | String
SVL作成時の色番号または色名
Jcolor : HColor=Integer | String
SVL実行後の色番号または色名
返値
なし
解説
このコマンドはSVL入出力部分の先頭で実行する以外は無効です。
色名と色番号は以下のように対応付けられています。
|
colorname |
colorno |
黒 |
"black" |
1 |
赤 |
"red" |
2 |
緑 |
"green" |
3 |
黄 |
"yellow" |
4 |
青 |
"blue" |
5 |
紫 |
"violet" |
6 |
水色 |
"skyblue" |
7 |
白 |
"white" |
8 |
|
例
SVL作成時に赤であった線色を白、緑であった線色を赤にしてSVLを実行する
|
1 |
2 |
1 |
%%SVL="AAA.SVL" |
*Label(X,Y) |
2 |
% |
Cmd$.SVL_SetColorMap(2,8,"green","red"); |
3 |
ivx=数値:x座標 |
<X |
4 |
ivy=数値:y座標 |
<Y |
5 |
|
|
6 |
ie0=点:基準点(左下) |
<200,300 |
7 |
%% |
|
|
SVL実行時の画層変換表を設定
引数
Slayer : String
SVL作成時の画層名
Jlayer : String
SVL実行後の画層名
返値
なし
解説
このコマンドはSVL入出力部分の先頭で実行する以外は無効です。
例
SVL作成時に"5"であった画層を"7"、"AAA"であった画層を"BBB"にしてSVLを実行する
|
1 |
2 |
1 |
%%SVL="AAA.SVL" |
*Label(X,Y) |
2 |
% |
Cmd$.SVL_SetLayerMap("5","7","AAA","BBB"); |
3 |
ivx=数値:x座標 |
<X |
4 |
ivy=数値:y座標 |
<Y |
5 |
|
|
6 |
ie0=点:基準点(左下) |
<200,300 |
7 |
%% |
|
|
SVL実行時の線種変換表を設定
引数
Slstyle : HLStyle=Integer | String
SVL作成時の線種番号または線種名
Jlstyle : HLStyle=Integer | String
SVL実行後の線種番号または線種名
返値
なし
解説
このコマンドはSVL入出力部分の先頭で実行する以外は無効です。
色名と色番号は以下のように対応付けられています。
|
lstylename |
lstyleno |
実線 |
"solid" |
1 |
点線 |
"dot" |
2 |
破線1 |
"dash" |
3 |
一点鎖線1 |
"dash1dot" |
4 |
二点鎖線2 |
"dash2dot" |
5 |
破線2 |
"dash_" |
6 |
一点鎖線2 |
"dash1dot_" |
7 |
二点鎖線2 |
"dash2dot_" |
8 |
|
例
SVL作成時に点線であった線種を実線、破線であった線種を点線にしてSVLを実行する
|
1 |
2 |
1 |
%%SVL="AAA.SVL" |
*Label(X,Y) |
2 |
% |
Cmd$.SVL_SetLStyleMap(2,1,"dash","dot"); |
3 |
ivx=数値:x座標 |
<X |
4 |
ivy=数値:y座標 |
<Y |
5 |
|
|
6 |
ie0=点:基準点(左下) |
<200,300 |
7 |
%% |
|
|
SVL実行時のフォント変換表を設定
引数
Stfont : String
SVL作成時のフォント名
Jtfont : String
SVL実行後のフォント名
返値
なし
解説
このコマンドはSVL入出力部分の先頭で実行する以外は無効です。
例
SVL作成時に"_DEFAULT"(標準フォント)であったフォントを"_DEFAULT2"(標準フォント2)、
"MS明朝"であったフォントを"MSゴシック"にしてSVLを実行する
|
1 |
2 |
1 |
%%SVL="AAA.SVL" |
*Label(X,Y) |
2 |
% |
Cmd$.SVL_SetTFontMap("_DEFAULT","_DEFAULT2", "MS明朝","MSゴシック"); |
3 |
ivx=数値:x座標 |
<X |
4 |
ivy=数値:y座標 |
<Y |
5 |
|
|
6 |
ie0=点:基準点(左下) |
<200,300 |
7 |
%% |
|
|
実座標をペーパー座標へ変換
引数
xp, yp : Number
フォーカス座標系の座標
返値
ペーパー上での座標を配列[ x, y ]で返します。
解説
フォーカス座標系での点(xp,yp)を、ペーパー上の点([x,y])に変換します。
例
var pt = Cmd$.TrnsMtoP( 100, 200 );
if( pt ){
Cmd$.MsgBox( "ペーパー上の点 : ( " + pt.x + " , " + pt.y + " )" ); //ペーパー上の点 : ( X座標 , Y座標 )
}
ペーパー座標を実座標へ変換
引数
xp, yp : Number
ペーパー上の座標
返値
フォーカス座標系での座標を配列[ x, y ]で返します。
解説
ペーパー上の点(xp,yp)を、フォーカス座標系での点([x,y])に変換します。
例
var pt = Cmd$.TrnsPtoM( 100, 200 );
if( pt ){
Cmd$.MsgBox( "フォーカス座標系の点 : ( " + pt.x + " , " + pt.y + " )" ); //フォーカス座標系の点 : ( X座標 , Y座標 )
}
アクティブな図面を基図・全体・拡大(図面上での座標を指定)して表示
引数
type : Integer
type |
説明 |
0 |
基図表示 |
1 |
全体表示 |
2 |
拡大表示(x1,y1,x2,y2を指定) |
|
x1, y1, x2, y2 : Number
拡大表示(type=2)の場合、拡大する領域の対角座標(ペーパー上)
返値
なし
解説
アクティブな図面を基図・全体・拡大表示します。拡大表示の場合は対角座標を指定します。
例
Cmd$.Zooming( 2, 100, 100, 200, 200 );
CSV形式のファイルの読み込み
引数
fname : String
読み込むCSV形式のファイル名
sname : String
書き込み先のシート名
row, col : Integer
書き込み先シートの開始行列
返値
読み込みできたらtrue、失敗したらfalseを返します。
解説
指定CSV形式ファイルを読み込んで、指定シートの指定位置(row,col)へ書き込みます。
例
Cmd$.LoadCSV( "D:\\Table1.csv", "Table1" );
シートの内容をCSV形式のファイルに保存する
引数
fname : String
CSV形式の保存ファイル名
sname : String
保存元のシート名
row, col : Integer
保存先シートの保存開始行列
n : Integer
保存する列数
返値
保存できたらtrue、失敗したらfalseを返します。
解説
指定シートの指定位置(row,col)からn列分までを指定CSV形式ファイルに保存します。
n=0の場合、指定位置以降の全ての列を保存します。
例
Cmd$.SaveCSV( "D:\\Table1.csv", "Table1" );
メタファイルをExcelシートに貼り付ける
引数
bkname : String
貼り付けるワークブック名
stname : String
貼り付けるシート名
row, col : Integer
貼り付ける位置の行列番号
Pt1, Pt2 : Array
図面の貼り付け対象範囲の対角点座標
[ x, y ]
x1, y1, x2, y2 : Number
図面の貼り付け対象範囲の対角点座標
xsize : Number
貼り付ける時のX軸方向の大きさ(mm)
ysize : Number
貼り付ける時のY軸方向の大きさ(mm)
返値
なし
解説
(Pt1.x,Pt1.y)-(Pt2.x,Pt2.y)または(x1,y1)-(x2,y2)と対角とするペーパー上の矩形領域を
指定ブック(bkname)の指定シート(stname)の指定セル(row,col)位置に横xsize(mm)、縦ysize(mm)の大きさでメタファイルを貼り付けます。
ブック名、シート名に空文字""を渡すとアクティブシート上に貼り付けます。
例
var sp = { x : 0, y : 0 };
var ep = { x : 100, y : 100 };
Cmd$.PasteWMF( "book.xls", "Sheet1", 1, 1, sp, ep, 150 );
ブロック化の開始宣言
引数
blockname : String
ブロック化した名前
返値
成功したらtrue、失敗したらfalseを返します。
解説
BeginBlock()~EndBlock()の間をブロック化します。その時の開始宣言です。
例
Cmd$.BeginBlock( "A" ); //ブロック"A"開始
:
Cmd$.BeginBlock( "./B" ); //ブロック"A/B"開始(ブロック"A"が親ブロック)
:
Cmd$.EndBlock( ); //ブロック"A/B"終了
Cmd$.EndBlock( ); //ブロック"A"終了
ブロック図形の属性を変更
引数
blockname : String
ブロック名
FromJoken : Array
対象条件 [ type, layer, iro, style ]
|
型 |
説 明 |
type |
HType=Integer |
対象要素タイプ |
layer |
String |
対象画層名 |
iro |
HColor=Integer |
対象色番号 |
style |
HLStyle=Integer |
対象線種番号 |
|
ToJoken : Array
変更条件 [ layer, iro, style ]
|
型 |
説 明 |
layer |
String |
変更画層名 |
iro |
HColor=Integer |
変更色番号 |
style |
HLStyle=Integer |
変更線種番号 |
|
返値
なし
解説
ブロック図形(blockname)内の要素で対象条件(FromJoken)に合う要素を、
変更条件(ToJoken)に沿って属性を変更します。
対象条件には要素タイプ、画層、色、線種を、変更条件には画層、色、線種をそれぞれ設定できます。
blockname=""の場合、図面内の全要素対象です。
例
Cmd$.BeginBlock( "A" );
//① 色:赤、線種:実線、画層:"aaa"
Cmd$.DrwPoint( 100, 100, "red", "solid", "aaa" );
//② 色:赤、線種:実線、画層:"bbb"
Cmd$.DrwLine( 150, 150, 200, 200, "red", "solid", "bbb" );
//③ 色:黄、線種:破線1、画層:"aaa"
Cmd$.DrwLine( -150, -150, -200, -200, "yellow", "dash", "aaa" );
//④ 色:赤、線種:実線、画層:"bbb"
Cmd$.DrwCircle( 50, 50, 75, 0, 360, "red", "solid", "bbb" );
Cmd$.EndBlock( );
var FromJoken = { type : 2, layer : "aaa" };
var ToJoken = { iro : 3, style : 1 };
Cmd$.BlockChgAttrib( "A", FromJoken, ToJoken );
//※③の要素が緑色の実線に変更されます
ブロック図形の削除
引数
blockname : String
ブロック名
type : HEnty=Integer
対象要素タイプ
color : HColor=Integer
対象色
返値
なし
解説
ブロック図形(blockname)内の要素で指定条件(type,color)に合う要素を削除します。
blockname=""(空文字)の場合、図面内の全要素対象です。
type=0の場合、全要素対象です。color=0の場合、全色対象です。
例
Cmd$.BeginBlock( "A" );
Cmd$.DrwPoint( 100, 100, "red" );
Cmd$.DrwLine( 150, 150, 200, 200, "yellow" );
Cmd$.EndBlock( );
Cmd$.BlockDelete( "A", 2 ); //ブロック"A"内の線要素を削除
ブロック図形内の寸法文字の最小矩形を取得
引数
blockname : String
ブロック名
返値
最小矩形の対角座標を配列[ xmin[], ymin[], xmax[], ymax[] ]を返します。
解説
ブロック図形(blockname)内の寸法要素の文字の最小矩形を求めます。
例
var ans = Cmd$.BlockDimStrRect( "A" );
var N = ans.xmin.length;
for( var i=0; i<N; ++i ){
Cmd$.MsgBox( ans.xmin[i] );
Cmd$.MsgBox( ans.ymin[i] );
Cmd$.MsgBox( ans.xmax[i] );
Cmd$.MsgBox( ans.ymax[i] );
}
ブロック図形を拡大・縮小する
引数
blockname : String
ブロック名
xp, yp : Number
基準点
xscl : Number
X方向倍率
yscl : Number
Y方向倍率(0の場合、yscl=xscl)
type : HType=Integer
対象要素タイプ
color : HColor=Integer | String
対象色番号または色名
bCirc : Boolean
真円対象フラグ
返値
なし
解説
ブロック図形(blockname)内の対象要素(type,color,bCirc)を(xp,yp)基準に拡大・縮小(xscl,yscl)します。
blockname=""(空文字)の場合、図面内の全要素対象です。
例
Cmd$.BlockKak( "A", 100, 100, 5 ); //ブロック"A"を5倍にする
平行な2直線に囲まれたブロック図形を水平方向に移動する
引数
blockname : String
ブロック名
line1, line2 : Array
平行な2直線 [x1,y1,x2,y2]
ido : Number
移動量
返値
なし
解説
line1とline2に囲まれた対象ブロック(blockname)の要素をido量ほど水平方向に移動します。
line1とline2が平行でない場合は処理を行いません。また、要素がどちらかのlineにまたがっている場合、
移動対象となる部分のみ水平方向に変形します。
例
var ln1 = { x1 : 0, y1 : 0, x2 : 0, y1 : 1 };
var ln2 = { x1 : 100, y1 : 0, x2 : 100, y1 : 1 };
Cmd$.BlockLMove( "A", ln1, ln2, 50 ); //2直線ln1,ln2間のブロック"A"の要素を50mmほど移動
ブロック図形を移動する
引数
blockname : String
ブロック名
xz, yz : Number
移動量
type : HType=Integer
対象要素タイプ
color : HColor=Integer | String
対象色番号または色名
返値
なし
解説
ブロック図形(blockname)内の対象要素(type,color)を移動(xz,yz)します。
blockname=""(空文字)の場合、図面内の全要素対象です。
例
Cmd$.BlockMove( "A", 100, 200 ); //ブロック"A"をX方向へ100mm,Y方向へ200mmほど移動
ブロック図形を回転移動する
引数
blockname : String
ブロック名
dx, dy : Number
移動量
xc, yc : Number
回転の中心座標
ang : Number
回転角度(度)
type : HType=Integer
対象要素タイプ
color : HColor=Integer | String
対象色番号または色名
返値
なし
解説
ブロック図形(blockname)内の対象要素(type,color)を(xc,yc)を中心に回転(ang)して移動(dx,dy)します。
blockname=""(空文字)の場合、図面内の全要素対象です。
例
//ブロック"A"を(50,50)中心に45°回転しX方向へ100mm,Y方向へ200mmほど移動
Cmd$.BlockMove( "A", 100, 200, 50, 50, 45 );
ブロック図形の最小矩形を取得
引数
blockname : String
ブロック名
bDimNot : Integer
寸法文字 非対象フラグ
0 : 寸法文字を含む 1 : 寸法文字を含まない
返値
最小矩形を配列[ xmin, ymin, xmax, ymax ]で返します。
xmin, ymin : 最小矩形の最小頂点
xmax, ymax : 最小矩形の最大頂点
解説
ブロック図形(blockname)の最小矩形を求めます。寸法文字を対象とするかどうかも設定できます。
blockname=""(空文字)の場合、図面内の全要素対象です。
例
var rect = Cmd$.BlockRect( "A" );
if( rect ){
Cmd$.MsgBox( "最小頂点 : ( " + rect.xmin + " , " + rect.ymin +" )" ); //最小頂点 : ( x座標 , y座標 )
Cmd$.MsgBox( "最大頂点 : ( " + rect.xmax + " , " + rect.ymax +" )" ); //最大頂点 : ( x座標 , y座標 )
}
ブロック化の終了宣言
引数
blockname : String
ブロック名
返値
成功したらtrue、失敗したらfalseを返します。
解説
BeginBlock()~EndBlock()の間をブロック化します。その時の終了宣言です。
例
Cmd$.BeginBlock( "A" ); //ブロック"A"開始
:
Cmd$.BeginBlock( "./B" ); //ブロック"A/B"開始(ブロック"A"が親ブロック)
:
Cmd$.EndBlock( ); //ブロック"A/B"終了
Cmd$.EndBlock( ); //ブロック"A"終了
現在のブロック名を取得
引数
なし
返値
ブロック名を返します。
解説
BeginBlock()~EndBlock()の間で実行すると、そのブロック名を返します。
例
Cmd$.BeginBlock( "A" );
Cmd$.MsgBox( Cmd$.NowBlock( ) ); //A
:
Cmd$.BeginBlock( "./B" );
Cmd$.MsgBox( Cmd$.NowBlock( ) ); //A/B
:
Cmd$.EndBlock( );
Cmd$.EndBlock( );
ブロック図形内を矩形で切り抜く
引数
blockname : String
ブロック名
x1, y1 : Number
矩形頂点1
x2, y2 : Number
矩形頂点2
layername : String
対象画層名
返値
なし
解説
ブロック図形(blockname)内を矩形(x1,y1-x2,y2)で切り抜きます。(=矩形内の要素を交点削除)
例
//ブロック"A"内を矩形(100,100-200,250)で切り抜く
Cmd$.RDelBlock( "A", 100, 100, 200, 250 );
ブロック図形を切断線を境にトリミングする
引数
blockname : String
ブロック名
cutLine : Array
切断線 [ x1, y1, x2, y2 ]
flag : Integer
トリミングフラグ
0 : 左側を削除 1 : 右側を削除
返値
なし
解説
ブロック図形(blockname)を切断線(cutLine)を境にトリミングします。
例
var cutL = { x1 : 50, y1 : 0, x2 : 50, y2 : 1 };
Cmd$.TrimBlock( "A", cutL ); //ブロック"A"をcutLの位置でトリミング
2切断線間のブロック図形の要素をトリミングする
引数
blockname : String
ブロック名
cutLine1, cutLine2 : Array
切断線 [ x1, y1, x2, y2 ]
返値
なし
解説
2切断線(cutLine1,cutLine2)間のブロック図形(blockname)の要素をトリミングします。
例
var cutL1 = { x1 : 50, y1 : 0, x2 : 50, y2 : 1 };
var cutL2 = { x1 : 150, y1 : 0, x2 : 150, y2 : 1 };
Cmd$.TrimBlock2( "A", cutL1, cutL2 ); //ブロック"A"をcutL1,cutL2でトリミング
入力要求
引数
reqType : ReqType=Integer
入力要求
|
説 明 |
cad.reqNothing |
要求なし |
cad.reqSPKEY |
特殊キー要求 |
cad.reqMSCLIK |
自由点要求 |
cad.reqPICKENTY |
ピックアップ要求 |
cad.reqBACKRECT |
バック矩形領域要求 |
cad.reqVIEWRECT |
ビュー矩形領域要求 |
cad.reqYESNO |
Yes/No要求 |
cad.reqDRAGDROP |
Drag&Drop要求 |
cad.reqNOMSSIGN |
クリック位置の無印要求 |
|
※cad ・・・ CADライブラリ。( var cad = Cmd$.Library("CAD"); )
※複数の要求を設定する場合、「 | 」でそれぞれの要求を結びます。
pickType : PickType=Integer
入力要求種類
|
説 明 |
cad.pickPoint2 |
点 |
cad.pickLine2 |
直線 |
cad.pickCircle2 |
円(弧) |
cad.pickEllipse2 |
楕円(弧) |
cad.pickCurve2 |
曲線 |
cad.pickText2 |
記事 |
cad.pickDim2 |
寸法 |
|
※cad ・・・ CADライブラリ。( var cad = Cmd$.Library("CAD"); )
※複数の要求を設定する場合、「 | 」でそれぞれの要求を結びます。
返値
ユーザー入力を配列で返します。
|
型 |
説 明 |
f |
Integer |
ユーザー入力種類 f<0の場合、ReauestClick(reqType,・・・)の入力要求のデータ
cad.ansSPKEY : 特殊キー cad.ansMSCLIK : 自由点 cad.ansPICKENTY : ピックアップ cad.ansBACKRECT : バック矩形領域
cad.ansVIEWRECT : ビュー矩形領域 cad.ansYESNO : Yes/No cad.ansDRAGDROP : Drag$Drop ※cad ・・・ CADライブラリ。( var cad = Cmd$.Library("CAD"); ) |
Model |
String |
クリックした図面名 |
n |
Integer |
整数 |
value |
Number |
実数 |
str |
String |
入力文字列 |
spKey |
Integer |
特殊キー番号 |
xs , ys |
Number |
クリック位置(Widow内座標) |
xd , yd |
Number |
クリック位置(ペーパー座標) |
hMap |
HMap=Integer |
座標系番号 |
Ptc |
Array [ type, x, y ] |
クリック位置(フォーカス座標系上) type : 要素タイプ x , y : 座標 |
hType |
HType=Integer |
要素タイプ |
hEnty |
HEnty=Integer |
要素番号 |
Enty |
Array [ id, type, x, y, x1, y1, x2, y2, r, sa, da ] |
要素情報
id : 要素番号 type : 要素タイプ x , y : 点座標 x1,y1,x2,y2 : 直線要素の場合、始点と終点座標 r, sa, da : 円要素の場合、半径と開始角、変位角 |
|
解説
図面表示Window上でのマウス入力要求します。マウス・キーボードから入力されたらその情報を返します。
SetInpWin()でセットした入力要求もこのコマンドから情報を返します。
例
Cmd$.SetInpWin( "基準点を指示" ); //入力バーに表示
var cad = Cmd$.Library( "CAD" );
var ans = Cmd$.RequestClick( cad.reqMSCLICK | cad.reqPICKENTY , cad.pickPoint2 );
if( ans.f == cad.ansMSCLICK ){
//自由点が指示されました
:
}else if( ans.f == cad.ansPICKENTY ){
if( ans.hType == cad.htypePoint2 ){
//点要素が指示されました
:
}
}
入力バーへメッセージを表示
引数
msg : String
表示するメッセージ
【書式】
・エスケープシーケンス
\n : 改行
\" : ダブルクォーテーション
\\ : \記号
\' : シングルクォーテーション
\? : クェスチョンマーク(文字)
\a : ビープ音(アラート)
\b : バックスペース
\f : フォームフィード
\r : キャリッジリターン
\t : 水平タブ
\v : 垂直タブ
・入力ボックス
{etype 入力表示文字数[ /最大入力文字数] [D フラグ値] `表示文字列[`初期値]}
etype = "F" : 実数値を入力要求
etype = "I" : 符号あり10進数整数値を入力要求
etype = "X" : 符号なし16進数整数値を入力要求
etype = "S" : 文字列を入力要求(最大255文字)
表示文字数 ≦ 最大文字数
フラグ値 ≧ 0
・マウス左ボタンクリック入力
{mtype [D フラグ値] `表示文字列[`]}
mtype = "M" : ボタン風表示
mtype = "m" : 普通表示(動作は"M"と同様)
フラグ値 ≧ 0
"D フラグ値"を省略した場合、0,1,2,・・・と連番が割り当てられます。
返値
なし
解説
入力Windowにメッセージを表示する基本機能の上に、キーボードやボタンからの入力を受け取れる準備を行います。
また、SetInpWin()で設定した入力要求は、RequestClick()の返値に入力データがセットされます。
例
Cmd$.SetInpWin("{MD1 ` ①ボタンA } {mD2 ` ②ボタンB }\n
③{I 16/32 D3 `整数=`1} ④{F 16/255 D4 `実数=`3.14}\n
⑤{X 16/32 D5 `16進整数=`22} ⑥{S 32/255 D6 `文字列=`ABC");
while( true ){
var ans = Cmd$.RequestClick( );
switch( ans.f ){
case 1:
alert( "ボタンAが押されました" );
break;
case 2:
alert( "ボタンBが押されました" );
break;
case 3:
alert( "整数が入力されました : " + ans.n );
break;
case 4:
alert( "実数が入力されました : " + ans.value );
break;
case 5:
alert( "16進数が入力されました : " + ans.n );
break;
case 6:
alert( "文字列が入力されました : " + ans.str );
break;
}
}
グローバルに呼び出せる関数です。コマンド関数と違いCmd$オブジェクトは必要ありません。
グローバル補助関数です。
RunSVLの実行を中止
引数
なし
返値
なし
解説
RunSVLの実行を中止します。
例
alert( "ダイアログ表示" ); //ダイアログは表示されます
end$(); //実行を中止
alert( "ダイアログ表示" ); //ダイアログは表示されません
グローバル定数を宣言
引数
vname : String
定数名
val : Number | String | Array
値
返値
なし
解説
グローバル定数を宣言します。同じグローバル定数名を再宣言すると、最初の実行のみ定数化します。
例
gconst$( "gcXXX", 100 ); //gcXXX = 100
グローバル変数を宣言
引数
vname : String
変数名
val : Number | String | Array
値
返値
なし
解説
グローバル変数を宣言します。
例
gvar$( "gXXX", 1000 ); //gXXX = 1000
ダイアログ表示や出力関連のグローバル関数です。
警告ダイアログを表示
引数
message : String
表示する文字列
返値
なし
解説
警告ダイアログで表示します。「OK」ボタンをクリックすると、次の処理へ移ります。
プロンプト(message)で使用できるエスケープシーケンスは次の通りです。
\n : 改行
\" : ダブルクォーテーション
\\ : \記号
\' : シングルクォーテーション
\? : クェスチョンマーク(文字)
\a : ビープ音(アラート)
\b : バックスペース
\f : フォームフィード
\r : キャリッジリターン
\t : 水平タブ
\v : 垂直タブ
例
alert( "エラーが発生!!" );
「@out」シートへ出力
引数
val : Number | String | Array
出力したい値
返値
なし
解説
「@out」シートを無ければ作成し、カーソル位置に値(val)を出力します。
出力後、カーソル位置は次の行へ移動します。
例
print( PI ); //「@out」シートへPI(=3.14...)を出力
数学関数で角度を用いる関数についてはrequest('RunSVL').bRadianプロパティを設定することにより、度単位・ラジアンを切り替えて使用できます。
request('RunSVL').bRadian = false → 度単位(通常はこちらになっています)
request('RunSVL').bRadian = true → ラジアン
用途に応じて使い分けて使用して下さい。
絶対値を求める
引数
val : Number
実数値
返値
引数の絶対値を返します。
解説
実数値の絶対値を求めます。
例
Cmd$.MsgBox( abs( -1 ) ); //1
Cmd$.MsgBox( abs( 0.5 ) ); //0.5
Cmd$.MsgBox( abs( 1 ) ); //1
アークコサインの値を求める
引数
val : Number
実数値
返値
引数のアークコサインの値を返します。
解説
実数値のアークコサインの値(度)を求めます。
例
Cmd$.MsgBox( acos( 0.5 ) ); //60
アークサインの値を求める
引数
val : Number
実数値
返値
引数のアークサインの値を返します。
解説
実数値のアークサインの値(度)を求めます。
例
Cmd$.MsgBox( asin( 0.5 ) ); //30
アークタンジェントの値を求める
引数
val : Number
実数値
返値
引数のアークタンジェントの値を返します。
解説
実数値のアークタンジェントの値(度)を求めます。
例
Cmd$.MsgBox( atan( 1.0 ) ); //45
Y/Xのアークタンジェントの値を求める
引数
X, Y : Number
実数値
返値
引数Y/Xのアークタンジェントの値を返します。
解説
引数Y/Xのアークタンジェントの値(度)を求めます。
例
Cmd$.MsgBox( atan2( 1.0, 1.0 ) ); //45
度単位⇔ラジアンの切り替え
解説
数学関数で角度を用いる関数について度単位またはラジアンで計算するかを決めます。
request('RunSVL').bRadian = false → 度単位(通常はこちらになっています)
request('RunSVL').bRadian = true → ラジアン
小数点以下を切り上げた整数を求める
引数
val : Number
実数値
返値
小数点以下を切り上げた整数を返します。
解説
実数値の小数点以下を切り上げた整数を求めます。
例
Cmd$.MsgBox( ceil( 3.2 ) ); //4
Cmd$.MsgBox( ceil( -3.2 ) ); //-3
コサインの値を求める
引数
ang : Number
度単位の角度
返値
コサインの値を返します。
解説
角度(度)のコサインの値を求めます。
例
Cmd$.MsgBox( cos( 60 ) ); //0.5
指数関数の値を求める
引数
val : Number
実数値
返値
指数関数の値を返します。
解説
実数値の指数関数の値(自然対数eのval乗)を求めます。
※e = 2.71828182845905
例
Cmd$.MsgBox( exp( 1 ) ); //2.71828182845905
小数点以下を切り捨てた整数を求める
引数
val : Number
実数値
返値
小数点以下を切り捨てた整数を返します。
解説
実数値の書数点以下を切り捨てた整数を求めます。
例
Cmd$.MsgBox( floor( 3.2 ) ); //3
Cmd$.MsgBox( floor( -3.2 ) ); //-4
(X*X+Y*Y)の平方根の値を求める
引数
X, Y : Number
実数値
返値
(X*X+Y*Y)の平方根の値を返します。
解説
(X*X+Y*Y)の平方根の値を求めます。
例
//2点間の距離を求める
var x1 = 0, y1 = 0;
var x2 = 100, y1 = 100;
Cmd$.MsgBox( hypot( x2-x1, y2-y1 ) );
自然対数の値を求める
引数
val : Number
実数値
返値
自然対数の値を返します。
解説
実数値の自然対数(底がeの対数log)の値を求めます。
例
Cmd$.MsgBox( log( 2 ) ); //0.693147180559945
常用対数の値を求める
引数
val : Number
実数値
返値
常用対数の値を返します。
解説
実数値の常用対数(底が10の対数log)の値を求めます。
例
Cmd$.MsgBox( log10( 2 ) ); //0.301029995663981
引数の中で最大の値を求める
引数
val1, val2・・・ : Number
実数値
返値
引数の中で最大の値を返します。
解説
引数の中で最大の値を求めます。引数は可変です。
例
Cmd$.MsgBox( max( 1, 2, 0.5 ) ); //2
Cmd$.MsgBox( max( -99, -100, -101 ) ); //-99
引数の中で最小の値を求める
引数
val1, val2・・・ : Number
実数値
返値
引数の中で最小の値を返します。
解説
引数の中で最小の値を求めます。引数は可変です。
例
Cmd$.MsgBox( min( 1, 2, 0.5 ) ); //0.5
Cmd$.MsgBox( min( -99, -100, -101 ) ); //-101
円周率
解説
円周率を返します。( 3.14159265358979323846 )
xのy乗の値を求める
引数
x : Number
実数値
y : Number
乗数
返値
xのy乗の値を返します。
解説
xのy乗の値を求めます。
例
Cmd$.MsgBox( pow( 3, 2 ) ); //9(3の2乗)
0.0~1.0までの乱数を発生する
引数
なし
返値
0.0~1.0までの乱数を返します。
解説
0.0~1.0までの乱数を発生させます。
例
for( var i=0; i<10; ++i ){
Cmd$.MsgBox( random( ) ); //実行する度に0.0~1.0までの数がランダムに表示
}
指定桁数の右で(M-1)捨M入(四捨五入)した値を求める
引数
val : Number
実数値
n : Integer
n |
説明 |
> 0 |
小数点以下の(桁数+1)桁を(M-1)捨M入します |
= 0 |
最も近い整数として(M-1)捨M入します |
< 0 |
整数部分の(-桁数)桁を(M-1)捨M入します |
|
M : Integer
指定桁数の右の値がM以上であれば切り上げ、そうでなければ切り捨て
返値
指定桁数の右で(M-1)捨M入の値を返します。
解説
指定桁数の右で(M-1)捨M入の値を求めます。通常は四捨五入になります。
例
Cmd$.MsgBox( round( 2.149, 1 ) ); //2.1
Cmd$.MsgBox( round( 21.5, -1 ) ); //20
指定した桁数で切り捨てた値を求める
引数
val : Number
実数値
n : Integer
n |
説明 |
> 0 |
小数点以下の(桁数+1)桁で切り捨てます |
= 0 |
最も近い整数として切り捨てます |
< 0 |
整数部分の(-桁数)桁を切り捨てます |
|
返値
指定した桁数で切り捨てた値を返します。
解説
指定した桁数で切り捨てた値を求めます。
例
Cmd$.MsgBox( roundDown( 3.2 ) ); //3
Cmd$.MsgBox( roundDown( 353, -1 ) ); //350
指定した桁数で切り上げた値を求める
引数
val : Number
実数値
n : Integer
n |
説明 |
> 0 |
小数点以下の(桁数+1)桁で切り上げます |
= 0 |
最も近い整数として切り上げます |
< 0 |
整数部分の(-桁数)桁を切り上げます |
|
返値
指定した桁数で切り上げた値を返します。
解説
指定した桁数で切り上げた値を求めます。
例
Cmd$.MsgBox( roundUp( 3.2 ) ); //4
Cmd$.MsgBox( roundUp( 353, -1 ) ); //360
引数の符号を求める
引数
val : Number
実数値
返値
val >= 0 だったら1、val < 0 なら0を返します。
解説
引数の符号(正負)を求めます。
例
Cmd$.MsgBox( sgn( 1 ) ); //1
Cmd$.MsgBox( sgn( -1 ) ); //0
サインの値を求める
引数
ang : Number
度単位の角度
返値
サインの値を返します。
解説
角度(度)のサインの値を求めます。
例
Cmd$.MsgBox( sin( 30 ) ); //0.5
平方根の値を求める
引数
val : Number
実数値
返値
平方根の値を返します。
解説
実数値の平方根の値を求めます。
例
Cmd$.MsgBox( sqrt( 4 ) ); //2
タンジェントの値を求める
引数
ang : Number
度単位の角度
返値
タンジェントの値を返します。
解説
角度(度)のタンジェントの値を求めます。
例
Cmd$.MsgBox( tan( 45 ) ); //1
RunSVL上で使用できる定数一覧です。
var cad = Cmd$.Library("CAD");
cad.black;
以上のようにLibraryコマンドで"CAD"ライブラリーを読み込み、使用します。
黒色
解説
1
赤色
解説
2
緑色
解説
3
黄色
解説
4
青色
解説
5
紫色
解説
6
水色
解説
7
白色
解説
8
実線
解説
1
点線
解説
2
破線(1)
解説
3
1点鎖線(1)
解説
4
2点鎖線(1)
解説
5
破線(2)
解説
6
1点鎖線(2)
解説
7
2点鎖線(2)
解説
8
要求なし
解説
0
特殊キー要求
解説
1
自由点要求
解説
2
要素ピックアップ要求
解説
4
バック矩形領域要求
解説
8
ビュー矩形領域要求
解説
16
Yes/No要求
解説
32
ドラッグ&ドロップ要求
解説
64
クリック位置の無印要求
解説
-2147483648
点
解説
1
直線
解説
2
円(弧)
解説
4
楕円(弧)
解説
8
曲線
解説
16
記事
解説
32
寸法
解説
64
特殊キー
解説
-32767
自由点
解説
-32766
要素ピックアップ
解説
-32765
バック矩形領域
解説
-32764
ビュー矩形領域
解説
-32763
Yes/No
解説
-32762
ドラッグ&ドロップ
解説
-32761
Point2型
解説
1
Line2型
解説
2
Circle2型
解説
3
Ellipse2型
解説
4
Curve2型
解説
5
Text2型
解説
6
Dim2型
解説
7
その他コマンド、特殊コマンドの一覧です。
var alpha = Cmd$.Library("CADalpha");
alpha.AttachProp(...);
以上のようにLibraryコマンドで"CADalpha"ライブラリーを読み込み、使用します。
要素にテキスト情報を埋め込む
引数
hEnty : HEnty=Integer
要素番号
textdata : String
埋め込むテキスト
dataname : String
埋め込むデータの名前
返値
なし
解説
要素(hEnty)に、文字列データ(textdata)を埋め込みます。
データを埋め込んだ要素を「FUTURE32」の「要素」コマンドで確認すると、「属性データあり」と表示されます。
例
var alpha = Cmd$.Library( "CADalpha" );
alpha.AttachProp( 1, "aaa" );
ブロック図形の点要素の座標を取得
引数
blockname : String
ブロック名
color : HColor=Integer | String
対象色番号または色名
bDel : Integer
認識した点要素の削除フラグ
0 : 残す 1 : 削除
返値
点座標を配列[ x[], y[] ]で返します。
解説
ブロック図形(blockname)内に存在する点要素で、対象要素(color)の座標を取得します。
blockname=""(空文字)の場合、図面内の全要素対象です。
bDel=1の場合、取得した点要素を削除します。
例
var alpha = Cmd$.Library( "CADalpha" );
var ans = alpha.BGetPoint( "A", "red", 1 );
if( ans ){
for( var i=0; i<ans.x.length; ++i ){
Cmd$.MsgBox( ans.x[i] + " , " + ans.y[i] ); //点の座標を表示
}
}
ブロック図形の点の要素番号を取得
引数
blockname : String
ブロック名
color : HColor=Integer | String
対象色番号または色名
返値
点要素番号を配列で返します。
解説
ブロック図形(blockname)内に存在する点要素で、対象要素(color)の要素番号を取得します。
blockname=""(空文字)の場合、図面内の全要素対象です。
例
var alpha = Cmd$.Library( "CADalpha" );
var ans = alpha.BGetPointId( "A", "red" );
if( ans ){
for( var i=0; i<ans.length; ++i ){
Cmd$.MsgBox( ans[i] ); //点の要素番号を表示
}
}
ブロック図形の陰線処理をする
引数
UnderBlock : String
下になるブロックの名前
OverBlock : String
上になるブロックの名前
nFlag : Integer
一点鎖線の処理
iro : HColor=Integer | String
処理後の色
style : HLStyle=Integer | String
処理後の線種
layer : String
処理後の登録画層名
返値
なし
解説
下になるブロック図形(UnderBlock)を上になるブロック図形(OverBlock)で陰線処理します。
iro,style,layerを指定すると、削除せずに要素の属性を変更して再登録します。
例
var alpha = Cmd$.Library( "CADalpha" );
alpha.BlockHidden( "A", "B" ); //ブロック"A"をブロック"B"で陰線処理
ブロック図形を多角形で陰線処理する
引数
blockname : String
ブロック名
arryX, arryY : Array
多角形の頂点座標の配列
nFlag : Integer
一点鎖線の処理
iro : HColor=Integer | String
処理後の色
style : HLStyle=Integer | String
処理後の線種
layer : String
処理後の登録画層名
返値
なし
解説
ブロック図形(blockname)を多角形(arryX,arryY)領域で陰線処理をします。
iro,style,layerを指定すると、削除せずに要素の属性を変更して再登録します。
例
var alpha = Cmd$.Library( "CADalpha" );
var arryX = [], arryY = [];
:
alpha.BlockHidden( "A", arryX, arryY ); //ブロック"A"を多角形(arryX,arryY)で陰線処理
ブロック図形を多角形でトリミングする
引数
blockname : String
ブロック名
arryX, arryY : Array
多角形の頂点座標の配列
nFlag : Integer
一点鎖線の処理
iro : HColor=Integer | String
処理後の色
style : HLStyle=Integer | String
処理後の線種
layer : String
処理後の登録画層名
返値
なし
解説
ブロック図形(blockname)を多角形(arryX,arryY)領域でトリミングをします。
iro,style,layerを指定すると、削除せずに要素の属性を変更して再登録します。
例
var alpha = Cmd$.Library( "CADalpha" );
var arryX = [], arryY = [];
:
alpha.BlockTakakuTrim( "A", arryX, arryY ); //ブロック"A"を多角形(arryX,arryY)でトリミング
指定属性の要素を削除
引数
name : String
属性名
"color"または"lstyle"を指定
idx : HColor=Integer | HLStyle=Integer | String
属性
返値
削除した数を返します。
解説
属性名(name)と属性(idx)から削除する要素を絞り込みます。
属性名(name)には、色属性の場合は"color"(="COLOR")、線種属性の場合は"lstyle"(="LSTYLE")を指定します。
属性(idx)には、色属性の場合は色番号または色名、線種属性の場合は線種番号または線種名を指定します。
例
var alpha = Cmd$.Library( "CADalpha" );
var N = alpha.DelEntys_Attr( "color", 7 ); //水色の属性を持つ要素を削除
Cmd$.MsgBox( N ); //削除した数
多角形の面積と最小矩形を取り出す
引数
arryX, arryY : Array
多角形の頂点座標の配列
u, v : Number
最小矩形計算時の基準方向(デフォルトは自動計算)
返値
多角形の面積、最小矩形の情報を配列[ S, RectH, RectW, xk0,yk0, xk1,yk1, xk2,yk2, xk3,yk3 ]で返します。
|
型 |
説 明 |
S |
Number |
面積 |
RectH |
Number |
矩形の高さ |
RectW |
Number |
矩形の幅 |
xk0, yk0 xk1, yk1 xk2, yk2 xk3, yk3 |
Number |
矩形の四隅座標 |
|
解説
指定した多角形領域(arryX,arryY)の面積と最小矩形の情報を取得します。
最小矩形の基準方向(u,v)を指定することもできます。
例
var alpha = Cmd$.Library( "CADalpha" );
var arryX = [], arryY = [];
:
var ans = alpha.GetTakakuRect( arryX, arryY );
if( ans ){
Cmd$.MsgBox( ans.S ); //面積
Cmd$.MsgBox( ans.RectH + " , " + ans.RectW ); //矩形の高さ、幅
Cmd$.MsgBox( ans.xk0 + " , " + ans.yk0 ); //矩形の四隅座標1
Cmd$.MsgBox( ans.xk1 + " , " + ans.yk1 ); //矩形の四隅座標2
Cmd$.MsgBox( ans.xk2 + " , " + ans.yk2 ); //矩形の四隅座標3
Cmd$.MsgBox( ans.xk3 + " , " + ans.yk3 ); //矩形の四隅座標4
}
ディレクトリを作成
引数
dirpath : String
作成するディレクトリのパス名
返値
なし
解説
指定したパス(dirpath)にフォルダが存在しなければ、新しくフォルダを作成します。
例
var alpha = Cmd$.Library( "CADalpha" );
alpha.MakeDir( "D:\\AAA" ); //"D:\AAA"フォルダを作成
図形内の記事を置換・計算して図形要素にする
引数
FromText : String
検索文字列
ToText : String
変更文字列
bCulc : Integer
計算フラグ
0 : 計算しない 1 : 計算する
返値
なし
解説
現在アクティブな図面から、検索文字列(FromText)を検索し、変更文字列(ToText)へ置換されます。
そのとき、bCulc=1であれば文字列を計算します。その後、文字列から図形要素へ変換します。
図形要素へ変換するため、コマンド実行後は、文字列として認識しません。
例
var alpha = Cmd$.Library( "CADalpha" );
//"a+b"を検索し、見つかれば"a+5"を計算して置換後、図形要素へ分解
alpha.StrBunkai( "a+b", a+"+5", 1 );
図形内の記事を置換・計算する
引数
FromText : String
検索文字列
ToText : String
変更文字列
bFlag : Integer
対象要素フラグ
0 : 記事・寸法 1 : 記事のみ 2 : 寸法のみ
bCulc : Integer
計算フラグ
0 : 計算しない 1 : 計算する
返値
なし
解説
現在アクティブな図面から、検索文字列(FromText)を検索し、変更文字列(ToText)へ置換されます。
また、対象要素(bFlag)を指定することで記事・寸法、記事のみ、寸法のみの3種類から選べます。
そのとき、bCulc=1であれば文字列を計算します。
例
var alpha = Cmd$.Library( "CADalpha" );
//"a+b"を検索し、見つかれば"a+5"を計算して置換します。
alpha.StrChg( "a+b", a+"+5", 1, 1 );
図形内のフォントを変更する
引数
FromFont : String
検索フォント名
ToFont : String
変更フォント名
bFlag : Integer
対象要素フラグ
0 : 記事・寸法 1 : 記事のみ 2 : 寸法のみ
返値
なし
解説
現在アクティブな図面から、検索フォント(FromFont)を検索し、変更フォント(ToFont)へ変換します。
また、対象要素(bFlag)を指定することで記事・寸法、記事のみ、寸法のみの3種類から選べます。
例
var alpha = Cmd$.Library( "CADalpha" );
//"標準フォント"を使用している要素を検索し、見つかれば"Times New Roman"へ変換
alpha.StrFontChg( "標準フォント", "Times New Roman" );
デバッグを行う時に用いるコマンドです。
実行時の変数登録状態をリスト表示
引数
なし
返値
なし
解説
このコマンドを実行時の変数の登録状態をリストアップし、ダイアログで表示します。(下図)
<各部説明>
①変数の一覧表
このコマンドを実行時の変数の登録状態を表示します。左から「変数名」、「G/L」、「値」を表示しています。
「G/L」はそれぞれグローバル変数/ローカル変数を意味します。
シートもグローバル変数として、一覧表に載ります。
②確認
変数の一覧表からマウス左クリックで変数を選択後、「確認」ボタンを押すと下側へ(②-1)、変数の内容が表示されます。
変数の内容をコピー&ペーストして利用することが可能です。
③探索変数名
変数の一覧表を絞り込み表示することができます。
変数が大量に登録されている場合、目的の変数を探すときに便利です。
例えば「a」と入力すると、変数名の先頭が"a"から始まる変数のみ一覧表示します。
変数名は大文字、小文字を区別しますので、ご注意下さい。
④OK
例
グローバル変数a,b,cを宣言し、関数funcA()内でDebugVarSコマンドを実行します。
関数funcA()内からSheet2シートの関数funcB()へ移り、DebugVarSコマンドを実行します。