コマンド関数

RunSVL上で使用できるコマンドです。
Cmd$オブジェクトはコマンド関数を呼び出すためのオブジェクトです。

基本関数

ChangeTable

シートの属性を変更

Cmd$.ChangeTable( Fromsheet, Tosheet, [type="standard"] ) : Integer

引数
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"にシート名を変更して、さらにメモリ上に保存

ChgDofunc

数値を度分秒文字列に変換

Cmd$.ChgDofunc( value ) : String

引数
value : Number
変換する数値
返値
変換後の文字列
解説
数値(value)を度分秒の文字列に変換します。
Cmd$.MsgBox( "45.4545 → " + Cmd$.ChgDofunc( 45.4545 ) );	//45.4545 → 45゚27'16"

ClearTable

シートの内容をクリア

Cmd$.ClearTable( sheetname, [r1, c1, r2, c2] )

引数
sheetname : String
シート名
r1, c1 : Integer
クリアする範囲の行列番号1
r2, c2 : Integer
クリアする範囲の行列番号2
返値
なし
解説
シートの内容を消去します。範囲の行列番号を省略するとシート全体の内容を消去します。
Cmd$.ClearTable( "test1", 5, 1, 10, 1 );	//"test1"シートの5行1列目から10行1列目の範囲をクリア

CloseWaitmsgBox

処理待ちメッセージボックスを終了する

Cmd$.CloseWaitmsgBox( waitno )

引数
waitno : Integer
WaitmsgBox関数の返値(処理待ちメッセージボックスのハンドル)を与えます。
返値
なし
解説
処理待ちメッセージボックスが表示中であれば、そのハンドルを使って処理待ちメッセージボックスを閉じます。
WaitmsgBox関数をご参照ください。
var waitno = Cmd$.WaitmsgBox( "処理中・・・", "TEST" );	//処理待ちメッセージボックスを表示

  :
Cmd$.CloseWaitmsgBox( waitno );	//処理待ちメッセージボックスを終了

CompFirstpart

文字列の比較

Cmd$.CompFirstpart( firststr, serchstr ) : Integer

引数
firststr : String
最初の文字列
serchstr : String
調査される文字列
返値
等しければ1、そうでなければ0を返します。
解説
firststrとserchstrを比較します。大文字と小文字も区別します。
var a = "ABC";
var b = "ABc";
if( Cmd$.CompFirstpart( a, b ) ){
  Cmd$.MsgBox( "等しいです。" );
}else{
  Cmd$.MsgBox( "等しくありません。" );
}

CopyTable

シートのコピー

Cmd$.CopyTable( Fromsheet, Tosheet, [bClear=0] ) : Integer

引数
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 );

CreateTable

シートの作成

Cmd$.CreateTable( sheetname, [type="standard", comment=""] ) : Integer

引数
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"

CurDir

カレントディレクトリの取得/設定

Cmd$.CurDir( [dirpath=""] ) : String

引数
dirpath : String
カレントにするディレクトリ
返値
変更前のカレントディレクトリを返します。
解説
SVLプログラムのカレントディレクトリを設定するのによく使われます。
dirpathに何も渡さなければ、現在のカレントディレクトリが取得できます。
//"D:\Data"をカレントディレクトリに設定
Cmd$.CurDir( "D:\\Data" );

DeleteTable

シートの削除

Cmd$.DeleteTable( sheetname ) : Integer

引数
sheetname : String
削除するシート名
返値
シートの削除に成功すると1、失敗すると0を返します。
解説
シートを削除します。削除するシートが存在しない場合、削除に失敗し、0が返ります。
//"test1"シートはプロジェクトに存在しているものとします。
Cmd$.MsgBox( Cmd$.DeleteTable( "test1" ) );	//"1"
Cmd$.MsgBox( Cmd$.DeleteTable( "test1" ) );	//"0" 2回目は既にシートが存在しないため0が返ります。

Execute

外部プログラムの実行

Cmd$.Execute( progname, [arg=""] )

引数
progname : String
外部プログラム名(フルパス)
arg : String
外部プログラムに渡す引数
返値
なし
解説
プロジェクトから外部プログラムを起動します。引数を渡すこともできます。
//Future32を起動
Cmd$.Execute( "C:\\Program Files\\Future32\\Future.exe" );

GetOpenFilename

[ファイルを開く]ダイアログボックスでファイルを選択

Cmd$.GetOpenFilename( [filter="all (*.*)|*.*"], [ext=""], [title="ファイルを開く"] ) : String

引数
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( "何も選択されていません" );
}

GetSaveAsFilename

[名前を付けて保存]ダイアログボックスでファイル名を入力

Cmd$.GetSaveAsFilename( [sfname=""], [filter="all (*.*)|*.*"], [ext=""], [title="ファイルを開く"] ) : String

引数
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( "何も入力されていません" );
}

GetSTCvar

STC変数を取得

Cmd$.GetSTCvar( STCname, [member=""] ) : String | Number

引数
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"

InputBox

入力ボックスの表示

Cmd$.InputBox( message, [title="入力ダイアログ"], [default] ) : String | Number

引数
message : String
表示する文字列
title : String
タイトルバーに表示する文字列
default : String
入力する欄の初期値
返値
入力された値を返します。
解説
入力された値が返ります。値が入力されなければ空文字("")が返され、[キャンセル]ボタンが押されるとundefindを返します。
プロンプト(message)で使用できるエスケープシーケンスは次の通りです。
var ans = Cmd$.InputBox( "x を入力してください" );
if( ! ans ){
  Cmd$.MsgBox( "何も入力されていません" );
}else{
  Cmd$.MsgBox( "x = " + ans );
}

Library

ライブラリーの読み込み

Cmd$.Library( modulename ) : Object

引数
modulename : String
使用するライブラリー名
返値
オブジェクトを返します。
解説
ライブラリーを読み込み、オブジェクトを返します。
現在RunSVLでは以下のライブラリーが使用できます。
var cad = Cmd$.Library( "CAD" );

Merge

プロジェクトの結合

Cmd$.Merge( spsname, [bFlag=0] ) : Integer

引数
spsname : String
プロジェクトファイル名(SPSファイル)
bFlag : Integer
1 : 同名シートがあれば上書きする 、 0 : 上書きしない
返値
結合に成功すると1、失敗すると0を返します。
解説
プロジェクトファイル(SPSファイル)を現在のアクティブなプロジェクトに結合します。
bFlag=1の場合、プロジェクトファイルの中に、アクティブなプロジェクトにあるシート名と同名のシートが存在したとき読み込んだ側のシートを上書きします。
bFlag=0の場合、そのシートは読み飛ばされます。
Cmd$.Merge( "D:\\Data\\Project1.SPS", 1 );	//同名シートがあれば上書き

MsgBox

メッセージボックスの表示

Cmd$.MsgBox( message, [title="入力ダイアログ"] )

引数
message : String
表示する文字列
title : String
タイトルバーに表示する文字列
返値
なし
解説
メッセージボックスを表示します。「OK」ボタンをクリックすると、次の処理へ移ります。。
プロンプト(message)で使用できるエスケープシーケンスは次の通りです。
Cmd$.MsgBox( "よろしいですか?\nOKボタンをクリックしてください", "確認" );

PatternMatch

文字列を正規表現のパターン文字列で検索

Cmd$.PatternMatch( patternstr, serchstr )

引数
patternstr : String
正規表現のパターン文字列
serchstr : String
調査される文字列
返値
合致したら1、そうでなければ0を返します。
解説
正規表現のパターン文字列と合致するか調べます。
ワイルドカードは*(アスタリスク)のみです。
Cmd$.PatternMatch( "A*D", "ABCD" );	//1

ReadSTC

STC変数を読み込む

Cmd$.ReadSTC( [STCname=""], [InifileName=""] ) : Integer

引数
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" );

SetSTCvar

STC変数を設定

Cmd$.SetSTCvar( STCname | member, value )

引数
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"

SetVarS

シートから変数をセット

Cmd$.SetVarS( sheetname, var, value, [type=0], [start=1] )

引数
sheetname : String
変数表が用意されているシート名
var : Integer
変数名が記述されている列番号
value : Integer
値が記述されている列番号
type : Integer
変数型が記述されている列番号
start : Integer
変数の読み込みを開始する行番号
返値
なし
解説
sheetnameに記述されている変数と値を対応付けて変数宣言します。
変数が配列の場合、必ず値の列が最後になるようにして下さい。
//"VarSheet"シート内の表を変数化する
//  変数名列 → 1   値列 → 4   型名列 → 3   開始行 → 2
Cmd$.SetVarS( "VarSheet", 1, 4, 3, 2 );

※1行目は無視されます。

WaitmsgBox

処理待ちメッセージボックスを開始する

Cmd$.WaitmsgBox( message, [title], [maxsecond] ) : Integer

引数
message : String
表示する文字列
title : String
タイトルバーに表示する文字列
maxsecond : Number
最大表示時間(秒)
返値
なし
解説
処理待ちメッセージボックスの表示を開始します。最大表示時間(秒)も指定できます。
CloseWaitmsgBox関数をご参照ください。
var waitno = Cmd$.WaitmsgBox( "処理中・・・", "TEST" );	//処理待ちメッセージボックスを表示

  :
Cmd$.CloseWaitmsgBox( waitno );	//処理待ちメッセージボックスを終了

WriteSTC

STC変数の値をINIファイルに書き込む

Cmd$.WriteSTC( [STCname=""], [InifileName=""] ) : Integer

引数
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" );

CAD関連標準

ClearHistory

指定図面の履歴を削除

Cmd$.ClearHistory( modelname )

引数
modelname : String
履歴を削除したい図面名
返値
なし
解説
指定図面の履歴を削除します。その図面の「Undo」「Redo」が効かなくなります。
Cmd$.ClearHistory( "Test.FTR" );

CompressModel

アクティブ図面の圧縮

Cmd$.CompressModel( [bHistory=0] )

引数
bHistory : Integer
1 : 圧縮時に履歴を残す 、  0 : 履歴も含む
返値
なし
解説
「履歴を含む」で圧縮した場合、その図面の「Undo」「Redo」が効かなくなります。
「履歴を残す」圧縮した場合、要素の登録順に対しての「Undo」「Redo」は効きますが、要素やブロックに対する変更履歴は消えます。
Cmd$.CompressModel( 1 );	//履歴を残して圧縮

CreateFTR

新規図面を作成

Cmd$.CreateFTR( modelname, papername, Xsize, Ysize, [layerN=8] ) : Boolean

引数
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( "図面が作成されませんでした" );
}

CreateMap

座標系を作成、既存座標系の変更

① Cmd$.CreateMap( mapname, Xp, Yp, sc ) : HMap=Integer
② Cmd$.CreateMap( mapname, Xp, Yp, sc, rt ) : HMap=Integer
③ Cmd$.CreateMap( mapname, Xp, Yp, sc, Ysc, rt ) : HMap=Integer

引数
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( "座標系が作成されませんでした" );
}

CreateModel

図面をメモリー上に新規作成し、その図面をアクティブにする

Cmd$.CreateModel( modelname, papername, Xsize, Ysize, [layerN=8] ) : Boolean

引数
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( "図面が作成されませんでした" );
}

CurColor

カレントカラーの設定と取得

① Cmd$.CurColor( colorname ) : HColor=Integer
② Cmd$.CurColor( colorno ) : HColor=Integer
③ Cmd$.CurColor( ) : HColor=Integer

引数
colorname : String
カレントにするカラーの名前
colorno : HColor=Integer
カレントにするカラーの番号
返値
①②の場合、設定する前のカレントカラーの番号
③の場合、現在のカレントカラーの番号
解説
カレントカラーの設定と取得を行います。失敗した場合は、0を返します。
		
Cmd$.CurColor( "green" );	//緑色をカレントカラーにする
Cmd$.MsgBox( Cmd$.CurColor( ) );	//3

CurLayer

アクティブ図面のカレント画層の設定と取得

① Cmd$.CurLayer( layername ) : HLayer=Integer
② Cmd$.CurLayer( layerhandle ) : HLayer=Integer
③ Cmd$.CurLayer( ) : HLayer=Integer

引数
layername : String
カレントにする画層の名前
layerhandle : HLayer=Integer
カレントにする画層ハンドル
返値
①②の場合、設定する前のカレント画層ハンドル
③の場合、現在のカレント画層ハンドル
解説
カレント画層の設定と取得を行います。失敗した場合は、0を返します。
Cmd$.CurLayer( "M2-5" );	//画層"M2-5"をカレント画層にする
Cmd$.MsgBox( Cmd$.CurLayer( ) );	//"M2-5"

CurLStyle

カレント線種の設定と取得

① Cmd$.CurLStyle( lstylename ) : HLStyle=Integer
② Cmd$.CurLStyle( lstyleno ) : HLStyle=Integer
③ Cmd$.CurLStyle( ) : HLStyle=Integer

引数
lstylename : String
カレントにする線種の名前
lstyleno : HLStyle=Integer
カレントにする線種番号
返値
①②の場合、設定する前のカレント線種番号
③の場合、現在のカレント線種番号
解説
カレント線種の設定と取得を行います。失敗した場合は、0を返します。
		
Cmd$.CurLStyle( "solid" );	//実線をカレント線種にする
Cmd$.MsgBox( Cmd$.CurLStyle( ) );	//1

CurTFont

カレント線種の設定と取得

① Cmd$.CurTFont( fontname ) : HTFont=Integer
② Cmd$.CurTFont( fonthandle ) : HTFont=Integer
③ Cmd$.CurTFont( ) : HTFont=Integer

引数
fontname : String
カレントにするフォントの名前
fonthandle : HTFont=Integer
カレントにするフォント番号
返値
①②の場合、設定する前のカレントフォント番号
③の場合、現在のカレントフォント番号
解説
カレントフォントの設定と取得を行います。失敗した場合は、0を返します。
Cmd$.CurTFont( 1 );	//"標準フォント"をカレントフォントにする
Cmd$.MsgBox( Cmd$.CurTFont( ) );	//1

DblCheck

アクティブ図面の重複要素をチェックしてまとめる

Cmd$.DblCheck( [Gosa=0.001] )

引数
Gosa : Number
重複誤差(mm)
返値
なし
解説
アクティブな図面の重複要素をチェックします。重複している要素は一つにまとめられます。
Cmd$.DblCheck( 0.0001 );	//重複誤差を0.0001mmにしてチェックを行う

DeleteEntity

要素を削除

Cmd$.DeleteEntity( henty ) : Boolean

引数
henty : HEnty=Integer
要素番号
返値
成功したらtrue、失敗したらfalseを返します。
解説
削除したい要素番号を渡し、その要素を削除します。
var henty = Cmd$.DrwLine( 0, 0, 100, 100 );	//直線を描画
Cmd$.DeleteEntity( henty );

DeleteModel

図面を削除

Cmd$.DeleteModel( filename ) : Boolean

引数
filename : String
削除する図面の名前
返値
成功したらtrue、失敗したらfalseを返します。
解説
削除したい図面名を渡し、その図面を削除します。
Cmd$.DeleteModel( "D:\\TEST.FTR" );

DrwBSpline

Bスプラインを描画

Cmd$.DrwBSpline( arryX, arryY, [color=カレント色], [lstyle=カレント線種], [layer=カレント画層名] ) : HEnty=Integer

引数
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 );

DrwCircle

円(弧)を描画

Cmd$.DrwCircle( x, y, r, sa, da, [color=カレント色], [lstyle=カレント線種], [layer=カレント画層名] ) : HEnty=Integer

引数
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" );

DrwCSpline

Cスプラインを描画

Cmd$.DrwCSpline( arryX, arryY, [color=カレント色], [lstyle=カレント線種], [layer=カレント画層名] ) : HEnty=Integer

引数
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 );

DrwEllipse

楕円(弧)を描画

Cmd$.DrwEllipse( x, y, ra, rb, tna, sa, da, [color=カレント色], [lstyle=カレント線種], [layer=カレント画層名] ) : HEnty=Integer

引数
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" );

DrwExtendDim

連続寸法を描画

Cmd$.DrwExtendDim( Joken, xbsp, ybsp, dL, xp, yp, [dL2, xp2, yp2, ・・・, dLn, xpn, ypn] ) : Array

引数
Joken : Array
寸法描画条件
xbsp, ybsp : Array
寸法足位置基準線の座標の配列
dL : Number
寸法足位置基準線からの寸法高さ
xp, yp : Array
寸法足の座標の配列
返値
要素番号の配列を返します。
解説
連続寸法を条件に従って描画します。失敗したらnullを返します。
(dL2, xp2, yp2, ・・・, dLn, xpn, ypn)引数を追加すると、複数段の寸法を描画できます。
		
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 );

DrwExtendDim2

連続寸法(途中省略)を描画

Cmd$.DrwExtendDim2( Joken, xbsp, ybsp, dL, xp, yp, cutLine1, cutLine2 ) : Array

引数
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を返します。
		
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( "寸法は描画されませんでした" );
}

DrwHatting

ハッチングを描画

Cmd$.DrwHatting( Joken, xp, yp, [color=カレント色], [lstyle=カレント線種], [layer=カレント画層名] )

引数
Joken : Array
ハッチング描画条件
xp, yp : Array
領域座標群
color : HColor=Integer | String
線色番号または線色名
lstyle : HLStyle=Integer | String
線種番号または線種名
layer : String
登録画層名
返値
なし
解説
指定領域内にハッチングを行います。
		
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"画層へ登録

DrwLeader

注釈記入を描画

Cmd$.DrwLeader( str, x1, y1, x2, y2, [u=1.0, v=0.0] ) : HEnty=Integer

引数
str : String
注釈文字列
x1, y1 : Number
注釈基準点座標
x2, y2 : Number
注釈折れ曲がり位置座標
u, v : Number
注釈文字描画方向
返値
要素番号を返します。
解説
注釈記入を描画します。色などはすべて設定に依存します。
描画できたら要素番号を返しますが、失敗したらnullを返します。

DrwLine

直線を描画

Cmd$.DrwLine( x1, y1, x2, y2, [color=カレント色], [lstyle=カレント線種], [layer=カレント画層名] ) : HEnty=Integer

引数
x1, y1 : Number
端点1座標
x2, y2 : Number
端点2座標
color : HColor=Integer | String
線色番号または線色名
lstyle : HLStyle=Integer | String
線種番号または線種名
layer : String
登録画層名
返値
要素番号を返します。
解説
直線を指定された条件(色・線種・画層)で描画します。
描画できたら要素番号を返しますが、失敗したらnullを返します。

DrwPoint

点を描画

Cmd$.DrwPoint( x, y, [color=カレント色], [layer=カレント画層名] ) : HEnty=Integer

引数
x : Number
X座標
y : Number
Y座標
color : HColor=Integer | String
線色番号または線色名
layer : String
登録画層名
返値
要素番号を返します。
解説
点を指定された条件(色・画層)で描画します。
描画できたら要素番号を返しますが、失敗したらnullを返します。

DrwPolyline

連続線を描画

Cmd$.DrwPolyline( arryX, arryY, [color=カレント色], [lstyle=カレント線種], [layer=カレント画層名] ) : HEnty=Integer

引数
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 );

DrwPolyline2

連続線(トリミング線を境に色・線種・画層を変更)を描画

Cmd$.DrwPolyline2( cutLn, arryX, arryY, [color1=カレント色], [lstyle1=カレント線種], [layer1=カレント画層名], [color2=カレント色], [lstyle2=カレント線種], [layer2=カレント画層名] ) : Array

引数
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" );

DrwSingleDim

寸法を描画

Cmd$.DrwSingleDim( Joken, xbsp, ybsp, dL, xp1, yp1, xp2, yp2 ) : HEnty=Integer

引数
Joken : Array
寸法描画条件
xbsp, ybsp : Array
寸法足位置基準線の座標の配列
dL : Number
寸法足位置基準線からの寸法高さ
xp1, yp1 : Number
寸法足1の座標
xp2, yp2 : Number
寸法足2の座標
返値
要素番号を返します。
解説
寸法を条件に従って描画します。失敗したらnullを返します。
		
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 );

DrwText

記事を描画

Cmd$.DrwText( Joken, x, y, text ) : HEnty=Integer

引数
Joken : Object
記事描画条件
x, y : Number
記事文字列
text : String
返値
要素番号を返します。
解説
記事を条件に従って描画します。失敗したらnullを返します。
  

ExeSVL

SVL実行

Cmd$.ExeSVL( [svlPath=""] )

引数
svlPath : String
SVLファイル名(フルパス)
返値
なし
解説
SVLを実行します。引数を渡すとすぐにSVLが実行されますが、省略すると選択画面(下図)を表示し選択後、実行します。
Cmd$.ExeSVL( "D:\\Data\\Rect.SVL" );

ExistModel

図面が存在するか調べる

Cmd$.ExistModel( filename ) : Boolean

引数
filename : String
図面名
返値
存在すればtrue、そうでなければfalseを返します。
解説
ファイルが存在するか調べます。メモリー上も調べます。
if( Cmd$.ExistModel( "平面図.FTR" ) ){
  Cmd$.MsgBox( "平面図.FTRはあります" );
}else{
  Cmd$.MsgBox( "平面図.FTRはありません" );
}

FocusMap

フォーカス座標系の変更または、現在のフォーカス座標系の番号を取得

① Cmd$.FocusMap( mapname ) : HMap=Integer
② Cmd$.FocusMap( hmap ) : HMap=Integer
③ Cmd$.FocusMap( ) : HMap=Integer

引数
mapname : String
フォーカスにしたい座標系の名前
hmap : HMap=Integer
フォーカスにしたい座標系の番号
返値
①②の場合、実行前のフォーカス座標系の番号
③の場合、現在のフォーカス座標系の番号
解説
mapnameまたはhmapを引数として渡しフォーカス座標を変更した場合は、変更する前のフォーカス座標系番号が返されます。
引数を省略した場合は、現在のフォーカス座標系番号が返されます。
Cmd$.FocusMap( "No3" );	//"No3"という名前の座標系をフォーカスにする
var hFMap = Cmd$.FocusMap( );	//現在のフォーカス座標系の番号を取得

GetActiveModel

アクティブなモデルの取得

Cmd$.GetActiveModel( ) : String

引数
なし
返値
現在アクティブになっている図面名を返します。
解説
現在アクティブな図面の名前を取得します。失敗したら空文字が返されます。
var bRet = Cmd$.LoadModel( "D:\\TEST.FTR" );
Cmd$.MsgBox( Cmd$.GetActiveModel( ) );	//"D:\\TEST.FTR"

GetActiveModelInf

アクティブなモデルの情報を取得

Cmd$.GetActiveModelInf( ) : Array

引数
なし
返値
現在アクティブになっている図面の情報を配列[ 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
}

GetEntyInf

指定要素の情報を取得

Cmd$.GetEntyInf( henty ) : Array

引数
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
}

GetFocusMapInf

フォーカス座標系の情報を取得

Cmd$.GetFocusMapInf( ) : Array

引数
なし
返値
フォーカス座標系の情報を配列[ 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°
}

GetPrtPaper

フォーカス座標系の情報を取得

Cmd$.GetPrtPaper( ) : Array

引数
なし
返値
選択されているプリンタの用紙サイズを配列[ xsize, ysize ]で返します。
		

 型  説 明
xsize Number 横サイズ
ysize Number 縦サイズ
解説
選択されているプリンタの用紙サイズを取得します。失敗したらNULLが返されます。
var ans = Cmd$.GetPrtPaper( );
if( ans ){
  Cmd$.MsgBox( ans.xsize + " , " + ans.ysize );
}

LoadFTR

既存図面を読み込み、アクティブ図面にする

Cmd$.LoadFTR( filename ) : Boolean

引数
filename : String
図面名(フルパス)
返値
図面が開けたらtrue、失敗したらfalseを返します。
解説
指定された図面名を読み込み表示し、アクティブ化します。
if( Cmd$.LoadFTR( "D:\\Test.FTR" ) ){
  Cmd$.MsgBox( "読み込みに成功しました" );
}else{
  Cmd$.MsgBox( "読み込みに失敗しました" );
}

LoadModel

既存図面を読み込み、アクティブ図面にする

Cmd$.LoadModel( filename ) : Boolean

引数
filename : String
図面名(フルパス)
返値
図面が開けたらtrue、失敗したらfalseを返します。
解説
指定された図面名を読み込み表示し、アクティブ化します。
if( Cmd$.LoadModel( "D:\\Test.FTR" ) ){
  Cmd$.MsgBox( "読み込みに成功しました" );
}else{
  Cmd$.MsgBox( "読み込みに失敗しました" );
}

PopActiveModel

アクティブな図面の記録をスタックから取り出す

Cmd$.PopActiveModel( )

引数
なし
返値
なし
解説
最後にPushActiveModelコマンドでスタックに記録した図面を再度アクティブにします。
Cmd$.PushActiveModel();	//図面をスタックに記録
  :
Cmd$.PopActiveModel();	//スタックしてある図面をアクティブ化

Print

図面の印刷

① Cmd$.Print( [Pt1, Pt2, Scalar=1] )
② Cmd$.Print( [xp1, yp1, xp2, yp2, Scalar=1] )

引数
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 );

PrintModel

図面の印刷

① Cmd$.PrintModel( [Pt1, Pt2, Scalar=1] )
② Cmd$.PrintModel( [xp1, yp1, xp2, yp2, Scalar=1] )

引数
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 );

PushActiveModel

アクティブな図面をスタックへ記録する

Cmd$.PopActiveModel( )

引数
なし
返値
なし
解説
現在アクティブな図面をスタックに記録します。岐路億した図面を再度アクティブにするにはPopActiveModelコマンドを実行します。
PushActiveModel()とPopActiveModel()は対で使用されます。
Cmd$.PushActiveModel();	//図面をスタックに記録
  :
Cmd$.PopActiveModel();	//スタックしてある図面をアクティブ化

PutPart

部品(ライブラリ)配置

① Cmd$.PutPart( filename, [X=0, Y=0, Scale=1, rot=0, bTurn=false, bToitsu=false, bZumen=false] ) : Integer
② Cmd$.PutPart( filename, [Pt={ x:0, y:0 }, Scale=1, rot=0, bTurn=false, bToitsu=false, bZumen=false] ) : Integer

引数
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( "配置に失敗しました" );
}

RenameFTR

アクティブな図面の名前を変更

Cmd$.RenameFTR( filename ) : Boolean

引数
filename : String
変更後のファイル名
返値
変更できたらtrue、失敗したらfalseを返します。
解説
ファイル名を変更します。メモリー上に同名の図面があれば、変更に失敗しfalseを返します。
//アクティブな図面が"D:\Test.FTR"の場合
if( Cmd$.RenameFTR( "D:\\Test1.FTR" ) ){
  Cmd$.MsgBox( "変更に成功しました" );
}else{
  Cmd$.MsgBox( "変更に失敗しました" );
}

RenameLayer

画層名の変更

Cmd$.RenameLayer( Oldlayer, Newlayer ) : Boolean
Cmd$.RenameLayer( OldHlayer, Newlayer ) : Boolean

引数
Oldlayer : String
変更したい画層名
OldHlayer : HLayer=Integer
変更したい画層ハンドル
Newlayer : String
変更後の画層名
返値
変更できたらtrue、失敗したらfalseを返します。
解説
指定画層の画層名を変更します。
Cmd$.RenameLayer( "aaa", "bbb" );	//"aaa"→"bbb"
Cmd$.RenameLayer( hlayer, "aaa" );	//画層(hlayer)→"aaa"

RenameModel

アクティブな図面の名前を変更

Cmd$.RenameModel( filename ) : Boolean

引数
filename : String
変更後のファイル名
返値
変更できたらtrue、失敗したらfalseを返します。
解説
ファイル名を変更します。メモリー上に同名の図面があれば、変更に失敗しfalseを返します。
//アクティブな図面が"D:\Test.FTR"の場合
if( Cmd$.RenameModel( "D:\\Test1.FTR" ) ){
  Cmd$.MsgBox( "変更に成功しました" );
}else{
  Cmd$.MsgBox( "変更に失敗しました" );
}

Save

アクティブな図面を保存

Cmd$.Save( [filename=アクティブ図面の名前, ext=filenameから取り出す] ) : Boolean

引数
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( "保存に失敗しました" );
  }

}

SaveFTR

アクティブな図面をFTR形式で保存

Cmd$.SaveFTR( [filename=アクティブ図面の名前] ) : Boolean

引数
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( "保存に失敗しました" );
  }

}

SaveModel

アクティブな図面を保存

Cmd$.SaveModel( [filename=アクティブ図面の名前, ext=filenameから取り出す] ) : Boolean

引数
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( "保存に失敗しました" );
  }

}

SaveWMF

アクティブな図面のメタファイル出力

Cmd$.SaveWMF( filename、Pt1, Pt2, [bColor=false] ) : Boolean
Cmd$.SaveWMF( filename、xp1, yp1, xp2, yp2, [bColor=false] ) : Boolean

引数
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 );

SendToFTR

汎用CAD「FUTURE32」へアクティブな図面を転送

Cmd$.SendToFTR( )

引数
なし
返値
なし
解説
アクティブな図面を汎用CAD「FUTURE32」へ転送します。
実行すると「FUTURE32」が起動し、転送した図面を表示します。
Cmd$.SendToFTR( );

SetActiveModel

指定図面をアクティブにする

Cmd$.SetActiveModel( filename, [bRefresh=0] ) : Boolean

引数
filename : String
アクティブにするファイル名
bRefresh : Boolean
0 : 清書しない  1 : 清書する
返値
アクティブ化できたらtrue、失敗したらfalseを返します。
解説
複数の図面が表示されている場合、指定図面をアクティブにします。その際、清書(再描画)することも可能です。
LoadModel( "D:\\Test.FTR" );
LoadModel( "D:\\Test1.FTR" );
LoadModel( "D:\\Test2.FTR" );
Cmd$.SetActiveModel( "Test.FTR" );

SetLayerAttrib

指定画層に色・線種属性を設定

Cmd$.SetLayerAttrib( layer, color, lstyle )

引数
layer : String
対象画層名
color : HColor=Integer | String
色番号または色名
lstyle : HLStyle=Integer | String
線種番号または線種名
返値
なし
解説
指定画層の属性情報の色・線種を設定する。
//画層"aaa"の色属性を黄色に、線種属性を破線にする
Cmd$.SetLayerAttrib( "aaa", "yellow", 3 );

SetLayerColor

指定画層に色属性を設定

Cmd$.SetLayerColor( layer, color )

引数
layer : String
対象画層名
color : HColor=Integer | String
色番号または色名
返値
なし
解説
指定画層の属性情報の色を設定する。
//画層"aaa"の色属性を黄色にする
Cmd$.SetLayerColor( "aaa", "yellow" );

SetLayerLStyle

指定画層に線種属性を設定

Cmd$.SetLayerLStyle( layer, lstyle )

引数
layer : String
対象画層名
lstyle : HLStyle=Integer | String
線種番号または線種名
返値
なし
解説
指定画層の属性情報の線種を設定する。
//画層"aaa"の線種属性を破線にする
Cmd$.SetLayerLStyle( "aaa", 3 );

SetPrtArea

図面に印刷領域を設定

Cmd$.SetPrtArea( xd, yd, wide, height, [bAdd=false] )

引数
xd, yd : Number
印刷領域基準座標
wide, height : Number
印刷領域幅、高さ
bAdd : Boolean
既にある場合、追加するかどうかのフラグ
返値
なし
解説
アクティブ図面の指定領域を印刷領域情報として図面に設定する。
「簡易印刷」を行うと、SetPrtAreaコマンドで実行した印刷領域が印刷・プレビューされます。
Cmd$.SetPrtArea( 10, 10, 200, 300, true );

SVL_SetColorMap

SVL実行時の色変換表を設定

Cmd$.SVL_SetColorMap( Scolor1, Jcolor1, [Scolor2, Jcolor2,・・・] )

引数
Scolor : HColor=Integer | String
SVL作成時の色番号または色名
Jcolor : HColor=Integer | String
SVL実行後の色番号または色名
返値
なし
解説
このコマンドはSVL入出力部分の先頭で実行する以外は無効です。
色名と色番号は以下のように対応付けられています。
		
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_SetLayerMap

SVL実行時の画層変換表を設定

Cmd$.SVL_SetLayerMap( Slayer1, Jlayer1, [Slayer2, Jlayer2,・・・] )

引数
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_SetLStyleMap

SVL実行時の線種変換表を設定

Cmd$.SVL_SetLStyleMap( Slstyle1, Jlstyle1, [Slstyle2, Jlstyle2,・・・] )

引数
Slstyle : HLStyle=Integer | String
SVL作成時の線種番号または線種名
Jlstyle : HLStyle=Integer | String
SVL実行後の線種番号または線種名
返値
なし
解説
このコマンドはSVL入出力部分の先頭で実行する以外は無効です。
色名と色番号は以下のように対応付けられています。
		
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_SetTFontMap

SVL実行時のフォント変換表を設定

Cmd$.SVL_SetTFontMap( Stfont1, Jtfont1, [Stfont2, Jtfont2,・・・] )

引数
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 %%

TrnsMtoP

実座標をペーパー座標へ変換

Cmd$.TrnsMtoP( xp, yp ) : Array

引数
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座標 )
}

TrnsPtoM

ペーパー座標を実座標へ変換

Cmd$.TrnsPtoM( xp, yp ) : Array

引数
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座標 )
}

Zooming

アクティブな図面を基図・全体・拡大(図面上での座標を指定)して表示

Cmd$.Zooming( type, [x1, y1, x2, y2] )

引数
type : Integer
		
type 説明
0 基図表示
1 全体表示
2 拡大表示(x1,y1,x2,y2を指定)
x1, y1, x2, y2 : Number
拡大表示(type=2)の場合、拡大する領域の対角座標(ペーパー上)
返値
なし
解説
アクティブな図面を基図・全体・拡大表示します。拡大表示の場合は対角座標を指定します。
Cmd$.Zooming( 2, 100, 100, 200, 200 );

補助関数

LoadCSV

CSV形式のファイルの読み込み

Cmd$.LoadCSV( fname, sname, [row=1, col=1] ) : Boolean

引数
fname : String
読み込むCSV形式のファイル名
sname : String
書き込み先のシート名
row, col : Integer
書き込み先シートの開始行列
返値
読み込みできたらtrue、失敗したらfalseを返します。
解説
指定CSV形式ファイルを読み込んで、指定シートの指定位置(row,col)へ書き込みます。
Cmd$.LoadCSV( "D:\\Table1.csv", "Table1" );

SaveCSV

シートの内容をCSV形式のファイルに保存する

Cmd$.SaveCSV( fname, sname, [row=1, col=1, n=0] ) : Boolean

引数
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のみで使用

PasteWMF

メタファイルをExcelシートに貼り付ける

Cmd$.PasteWMF( bkname, stname, row, col, Pt1, Pt2, xsize, [ysize=xsize] )
Cmd$.PasteWMF( bkname, stname, row, col, x1, y1, x2, y2, xsize, [ysize=xsize] )

引数
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 );

ブロック操作

BeginBlock

ブロック化の開始宣言

Cmd$.BeginBlock( blockname ) : Boolean

引数
blockname : String
ブロック化した名前
返値
成功したらtrue、失敗したらfalseを返します。
解説
BeginBlock()~EndBlock()の間をブロック化します。その時の開始宣言です。
Cmd$.BeginBlock( "A" );	//ブロック"A"開始
    :
  Cmd$.BeginBlock( "./B" );	//ブロック"A/B"開始(ブロック"A"が親ブロック)
      :
  Cmd$.EndBlock( );	//ブロック"A/B"終了
Cmd$.EndBlock( );	//ブロック"A"終了

BlockChgAttrib

ブロック図形の属性を変更

Cmd$.BlockChgAttrib( blockname, FromJoken, ToJoken )

引数
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 );
//※③の要素が緑色の実線に変更されます

BlockDelete

ブロック図形の削除

Cmd$.BlockDelete( blockname, [type=0, color=0] )

引数
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"内の線要素を削除

BlockDimStrRect

ブロック図形内の寸法文字の最小矩形を取得

Cmd$.BlockDimStrRect( blockname ) : Array

引数
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] );
}

BlockKak

ブロック図形を拡大・縮小する

Cmd$.BlockKak( blockname, xp, yp, xscl, [yscl=0, type=0, color=0, bCirc=true] )

引数
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倍にする

BlockLMove

平行な2直線に囲まれたブロック図形を水平方向に移動する

Cmd$.BlockLMove( blockname, line1, line2, ido )

引数
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ほど移動

BlockMove

ブロック図形を移動する

Cmd$.BlockMove( blockname, xz, yz, [type=全要素タイプ, color=全色] )

引数
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ほど移動

BlockMove2

ブロック図形を回転移動する

Cmd$.BlockMove2( blockname, dx, dy, xc, yc, ang, [type=全要素タイプ, color=全色] )

引数
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 );

BlockRect

ブロック図形の最小矩形を取得

Cmd$.BlockRect( blockname, [bDimNot=0] ) : Array

引数
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座標 )
}

EndBlock

ブロック化の終了宣言

Cmd$.EndBlock( [blockname] ) : Boolean

引数
blockname : String
ブロック名
返値
成功したらtrue、失敗したらfalseを返します。
解説
BeginBlock()~EndBlock()の間をブロック化します。その時の終了宣言です。
Cmd$.BeginBlock( "A" );	//ブロック"A"開始
    :
  Cmd$.BeginBlock( "./B" );	//ブロック"A/B"開始(ブロック"A"が親ブロック)
      :
  Cmd$.EndBlock( );	//ブロック"A/B"終了
Cmd$.EndBlock( );	//ブロック"A"終了

NowBlock

現在のブロック名を取得

Cmd$.NowBlock( ) : String

引数
なし
返値
ブロック名を返します。
解説
BeginBlock()~EndBlock()の間で実行すると、そのブロック名を返します。
Cmd$.BeginBlock( "A" );
  Cmd$.MsgBox( Cmd$.NowBlock( ) );	//A
    :
  Cmd$.BeginBlock( "./B" );
    Cmd$.MsgBox( Cmd$.NowBlock( ) );	//A/B
      :
  Cmd$.EndBlock( );
Cmd$.EndBlock( );

RDelBlock

ブロック図形内を矩形で切り抜く

Cmd$.RDelBlock( blockname, x1, y1, x2, y2, [layername=""] )

引数
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 );

TrimBlock

ブロック図形を切断線を境にトリミングする

Cmd$.TrimBlock( blockname, cutLine, [flag=0] )

引数
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の位置でトリミング

TrimBlock2

2切断線間のブロック図形の要素をトリミングする

Cmd$.TrimBlock2( blockname, cutLine1, cutLine2 )

引数
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でトリミング

入力(マウス・キーボード)要求

RequestClick

入力要求

Cmd$.RequestClick( reqType, [pickType] ) : Array

引数
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 ){
    //点要素が指示されました
      :
  }
}

SetInpWin

入力バーへメッセージを表示

Cmd$.SetInpWin( msg )

引数
msg : String
表示するメッセージ
【書式】
・エスケープシーケンス

・入力ボックス

・マウス左ボタンクリック入力

"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$オブジェクトは必要ありません。

補助関数

グローバル補助関数です。

end$

RunSVLの実行を中止

end$( )

引数
なし
返値
なし
解説
RunSVLの実行を中止します。
alert( "ダイアログ表示" );	//ダイアログは表示されます
end$();	//実行を中止
alert( "ダイアログ表示" );	//ダイアログは表示されません

gconst$

グローバル定数を宣言

gconst$( vname, [val] )

引数
vname : String
定数名
val : Number | String | Array
返値
なし
解説
グローバル定数を宣言します。同じグローバル定数名を再宣言すると、最初の実行のみ定数化します。
gconst$( "gcXXX", 100 );	//gcXXX = 100

gvar$

グローバル変数を宣言

gvar$( vname, [val] )

引数
vname : String
変数名
val : Number | String | Array
返値
なし
解説
グローバル変数を宣言します。
gvar$( "gXXX", 1000 );	//gXXX = 1000

出力関数

ダイアログ表示や出力関連のグローバル関数です。

alert

警告ダイアログを表示

alert( message )

引数
message : String
表示する文字列
返値
なし
解説
警告ダイアログで表示します。「OK」ボタンをクリックすると、次の処理へ移ります。
プロンプト(message)で使用できるエスケープシーケンスは次の通りです。
alert( "エラーが発生!!" );

print

「@out」シートへ出力

print( val )

引数
val : Number | String | Array
出力したい値
返値
なし
解説
「@out」シートを無ければ作成し、カーソル位置に値(val)を出力します。
出力後、カーソル位置は次の行へ移動します。
print( PI );	//「@out」シートへPI(=3.14...)を出力

数学関数

数学関数で角度を用いる関数についてはrequest('RunSVL').bRadianプロパティを設定することにより、度単位・ラジアンを切り替えて使用できます。

用途に応じて使い分けて使用して下さい。

abs

絶対値を求める

abs( val ) : Number

引数
val : Number
実数値
返値
引数の絶対値を返します。
解説
実数値の絶対値を求めます。
Cmd$.MsgBox( abs( -1 ) );	//1
Cmd$.MsgBox( abs( 0.5 ) );	//0.5
Cmd$.MsgBox( abs( 1 ) );	//1

acos

アークコサインの値を求める

acos( val ) : Number

引数
val : Number
実数値
返値
引数のアークコサインの値を返します。
解説
実数値のアークコサインの値(度)を求めます。
Cmd$.MsgBox( acos( 0.5 ) );	//60

asin

アークサインの値を求める

asin( val ) : Number

引数
val : Number
実数値
返値
引数のアークサインの値を返します。
解説
実数値のアークサインの値(度)を求めます。
Cmd$.MsgBox( asin( 0.5 ) );	//30

atan

アークタンジェントの値を求める

atan( val ) : Number

引数
val : Number
実数値
返値
引数のアークタンジェントの値を返します。
解説
実数値のアークタンジェントの値(度)を求めます。
Cmd$.MsgBox( atan( 1.0 ) );	//45

atan2

Y/Xのアークタンジェントの値を求める

atan2( X, Y ) : Number

引数
X, Y : Number
実数値
返値
引数Y/Xのアークタンジェントの値を返します。
解説
引数Y/Xのアークタンジェントの値(度)を求めます。
Cmd$.MsgBox( atan2( 1.0, 1.0 ) );	//45

bRadian

度単位⇔ラジアンの切り替え

request('RunSVL').bRadian : Boolean

解説
数学関数で角度を用いる関数について度単位またはラジアンで計算するかを決めます。

ceil

小数点以下を切り上げた整数を求める

ceil( val ) : Number

引数
val : Number
実数値
返値
小数点以下を切り上げた整数を返します。
解説
実数値の小数点以下を切り上げた整数を求めます。
Cmd$.MsgBox( ceil( 3.2 ) );	//4
Cmd$.MsgBox( ceil( -3.2 ) );	//-3

cos

コサインの値を求める

cos( ang ) : Number

引数
ang : Number
度単位の角度
返値
コサインの値を返します。
解説
角度(度)のコサインの値を求めます。
Cmd$.MsgBox( cos( 60 ) );	//0.5

exp

指数関数の値を求める

exp( val ) : Number

引数
val : Number
実数値
返値
指数関数の値を返します。
解説
実数値の指数関数の値(自然対数eのval乗)を求めます。
※e = 2.71828182845905
Cmd$.MsgBox( exp( 1 ) );	//2.71828182845905

floor

小数点以下を切り捨てた整数を求める

floor( val ) : Number

引数
val : Number
実数値
返値
小数点以下を切り捨てた整数を返します。
解説
実数値の書数点以下を切り捨てた整数を求めます。
Cmd$.MsgBox( floor( 3.2 ) );	//3
Cmd$.MsgBox( floor( -3.2 ) );	//-4

hypot

(X*X+Y*Y)の平方根の値を求める

hypot( X, Y ) : Number

引数
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 ) );

log

自然対数の値を求める

log( val ) : Number

引数
val : Number
実数値
返値
自然対数の値を返します。
解説
実数値の自然対数(底がeの対数log)の値を求めます。
Cmd$.MsgBox( log( 2 ) );	//0.693147180559945

log10

常用対数の値を求める

log10( val ) : Number

引数
val : Number
実数値
返値
常用対数の値を返します。
解説
実数値の常用対数(底が10の対数log)の値を求めます。
Cmd$.MsgBox( log10( 2 ) );	//0.301029995663981

max

引数の中で最大の値を求める

max( val1, [val2,・・・] ) : Number

引数
val1, val2・・・ : Number
実数値
返値
引数の中で最大の値を返します。
解説
引数の中で最大の値を求めます。引数は可変です。
Cmd$.MsgBox( max( 1, 2, 0.5 ) );	//2
Cmd$.MsgBox( max( -99, -100, -101 ) );	//-99

min

引数の中で最小の値を求める

min( val1, [val2,・・・] ) : Number

引数
val1, val2・・・ : Number
実数値
返値
引数の中で最小の値を返します。
解説
引数の中で最小の値を求めます。引数は可変です。
Cmd$.MsgBox( min( 1, 2, 0.5 ) );	//0.5
Cmd$.MsgBox( min( -99, -100, -101 ) );	//-101

PAI

円周率

PAI : Number [ReadOnly]

解説
円周率を返します。( 3.14159265358979323846 )

pow

xのy乗の値を求める

pow( x, y ) : Number

引数
x : Number
実数値
y : Number
乗数
返値
xのy乗の値を返します。
解説
xのy乗の値を求めます。
Cmd$.MsgBox( pow( 3, 2 ) );	//9(3の2乗)

random

0.0~1.0までの乱数を発生する

random( ) : Number

引数
なし
返値
0.0~1.0までの乱数を返します。
解説
0.0~1.0までの乱数を発生させます。
for( var i=0; i<10; ++i ){
  Cmd$.MsgBox( random( ) );	//実行する度に0.0~1.0までの数がランダムに表示
}

round

指定桁数の右で(M-1)捨M入(四捨五入)した値を求める

round( val, [n=0, M=5] ) : Number

引数
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

roundDown

指定した桁数で切り捨てた値を求める

roundDown( val, [n=0] ) : Number

引数
val : Number
実数値
n : Integer
		
n 説明
 > 0  小数点以下の(桁数+1)桁で切り捨てます
= 0 最も近い整数として切り捨てます
< 0 整数部分の(-桁数)桁を切り捨てます
返値
指定した桁数で切り捨てた値を返します。
解説
指定した桁数で切り捨てた値を求めます。
Cmd$.MsgBox( roundDown( 3.2 ) );	//3
Cmd$.MsgBox( roundDown( 353, -1 ) );	//350

roundUp

指定した桁数で切り上げた値を求める

roundUp( val, [n=0] ) : Number

引数
val : Number
実数値
n : Integer
		
n 説明
 > 0  小数点以下の(桁数+1)桁で切り上げます
= 0 最も近い整数として切り上げます
< 0 整数部分の(-桁数)桁を切り上げます
返値
指定した桁数で切り上げた値を返します。
解説
指定した桁数で切り上げた値を求めます。
Cmd$.MsgBox( roundUp( 3.2 ) );	//4
Cmd$.MsgBox( roundUp( 353, -1 ) );	//360

sgn

引数の符号を求める

sgn( ) : Integer

引数
val : Number
実数値
返値
val >= 0 だったら1、val < 0 なら0を返します。
解説
引数の符号(正負)を求めます。
Cmd$.MsgBox( sgn( 1 ) );	//1
Cmd$.MsgBox( sgn( -1 ) );	//0

sin

サインの値を求める

sin( ang ) : Number

引数
ang : Number
度単位の角度
返値
サインの値を返します。
解説
角度(度)のサインの値を求めます。
Cmd$.MsgBox( sin( 30 ) );	//0.5

sqrt

平方根の値を求める

sqrt( val ) : Number

引数
val : Number
実数値
返値
平方根の値を返します。
解説
実数値の平方根の値を求めます。
Cmd$.MsgBox( sqrt( 4 ) );	//2

tan

タンジェントの値を求める

tan( ang ) : Number

引数
ang : Number
度単位の角度
返値
タンジェントの値を返します。
解説
角度(度)のタンジェントの値を求めます。
Cmd$.MsgBox( tan( 45 ) );	//1

CAD定数

RunSVL上で使用できる定数一覧です。

var cad = Cmd$.Library("CAD");
cad.black;

以上のようにLibraryコマンドで"CAD"ライブラリーを読み込み、使用します。

色定数

black

黒色

cad.black : Integer

解説
1

red

赤色

cad.red : Integer

解説
2

green

緑色

cad.green : Integer

解説
3

yellow

黄色

cad.yellow : Integer

解説
4

blue

青色

cad.blue : Integer

解説
5

violet

紫色

cad.violet : Integer

解説
6

skyblue

水色

cad.skyblue : Integer

解説
7

white

白色

cad.white : Integer

解説
8

線種定数

solid

実線

cad.solid : Integer

解説
1

dot

点線

cad.dot : Integer

解説
2

dash

破線(1)

cad.dash : Integer

解説
3

dash1dot

1点鎖線(1)

cad.dash1dot : Integer

解説
4

dash2dot

2点鎖線(1)

cad.dash2dot : Integer

解説
5

dash_

破線(2)

cad.dash_ : Integer

解説
6

dash1dot_

1点鎖線(2)

cad.dash1dot_ : Integer

解説
7

dash2dot_

2点鎖線(2)

cad.dash2dot_ : Integer

解説
8

入力要求 要求種類

reqNothing

要求なし

cad.reqNothing : Integer

解説
0

reqSPKEY

特殊キー要求

cad.reqSPKEY : Integer

解説
1

reqMSCLIK

自由点要求

cad.reqMSCLIK : Integer

解説
2

reqPICKENTY

要素ピックアップ要求

cad.reqPICKENTY : Integer

解説
4

reqBACKRECT

バック矩形領域要求

cad.reqBACKRECT : Integer

解説
8

reqVIEWRECT

ビュー矩形領域要求

cad.reqVIEWRECT : Integer

解説
16

reqYESNO

Yes/No要求

cad.reqYESNO : Integer

解説
32

reqDRAGDROP

ドラッグ&ドロップ要求

cad.reqDRAGDROP : Integer

解説
64

reqNOMSSION

クリック位置の無印要求

cad.reqNOMSSIGN : Integer

解説
-2147483648

入力要求 要素種類

pickPoint2

cad.pickPoint2 : Integer

解説
1

pickLine2

直線

cad.pickLine2 : Integer

解説
2

pickCircle2

円(弧)

cad.pickCircle2 : Integer

解説
4

pickEllipse2

楕円(弧)

cad.pickEllipse2 : Integer

解説
8

pickCurve2

曲線

cad.pickCurve2 : Integer

解説
16

pickText2

記事

cad.pickText2 : Integer

解説
32

pickDim2

寸法

cad.pickDim2 : Integer

解説
64

入力要求 戻り値種類

ansSPKEY

特殊キー

cad.ansSPKEY : Integer

解説
-32767

ansMSCLIK

自由点

cad.ansMSCLIK : Integer

解説
-32766

ansPICKENTY

要素ピックアップ

cad.ansPICKENTY : Integer

解説
-32765

ansBACKRECT

バック矩形領域

cad.ansBACKRECT : Integer

解説
-32764

ansVIEWRECT

ビュー矩形領域

cad.ansVIEWRECT : Integer

解説
-32763

ansYESNO

Yes/No

cad.ansYESNO : Integer

解説
-32762

ansDRAGDROP

ドラッグ&ドロップ

cad.ansDRAGDROP : Integer

解説
-32761

要素タイプ種類

htypePoint2

Point2型

cad.htypePoint2 : Integer

解説
1

htypeLine2

Line2型

cad.htypeLine2 : Integer

解説
2

htypeCircle2

Circle2型

cad.htypeCircle2 : Integer

解説
3

htypeEllipse2

Ellipse2型

cad.htypeEllipse2 : Integer

解説
4

htypeCurve2

Curve2型

cad.htypeCurve2 : Integer

解説
5

htypeText2

Text2型

cad.htypeText2 : Integer

解説
6

htypeDim2

Dim2型

cad.htypeDim2 : Integer

解説
7

その他

その他コマンド、特殊コマンドの一覧です。

CADalphaライブラリー

var alpha = Cmd$.Library("CADalpha");
alpha.AttachProp(...);

以上のようにLibraryコマンドで"CADalpha"ライブラリーを読み込み、使用します。

AttachProp

要素にテキスト情報を埋め込む

alpha.AttachProp( hEnty, textdata, [dataname=""] )

引数
hEnty : HEnty=Integer
要素番号
textdata : String
埋め込むテキスト
dataname : String
埋め込むデータの名前
返値
なし
解説
要素(hEnty)に、文字列データ(textdata)を埋め込みます。
データを埋め込んだ要素を「FUTURE32」の「要素」コマンドで確認すると、「属性データあり」と表示されます。
var alpha = Cmd$.Library( "CADalpha" );
alpha.AttachProp( 1, "aaa" );

BGetPoint

ブロック図形の点要素の座標を取得

alpha.BGetPoint( blockname, [color=全色, bDel=0] ) : Array

引数
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] );	//点の座標を表示
  }
}

BGetPointId

ブロック図形の点の要素番号を取得

alpha.BGetPointId( blockname, [color=全色] ) : Array

引数
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] );	//点の要素番号を表示
  }
}

BlockHidden

ブロック図形の陰線処理をする

alpha.BlockHidden( UnderBlock, OverBlock, [nFlag=0, iro=削除, style=削除, layer=削除 )

引数
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"で陰線処理

BlockHidden2

ブロック図形を多角形で陰線処理する

alpha.BlockHidden2( blockname, arryX, arryY, [nFlag=0, iro=削除, style=削除, layer=削除 )

引数
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)で陰線処理

BlockTakakuTrim

ブロック図形を多角形でトリミングする

alpha.BlockTakakuTrim( blockname, arryX, arryY, [nFlag=0, iro=削除, style=削除, layer=削除 )

引数
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)でトリミング

DelEntys_Attr

指定属性の要素を削除

alpha.DelEntys_Attr( name1, idx1, [name2, idx2,・・・] ) : Integer

引数
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 );	//削除した数

GetTakakuRect

多角形の面積と最小矩形を取り出す

alpha.GetTakakuRect( arryX, arryY, [u=0.0, v=0.0] ) : Array

引数
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
}

MakeDir

ディレクトリを作成

alpha.MakeDir( dirpath )

引数
dirpath : String
作成するディレクトリのパス名
返値
なし
解説
指定したパス(dirpath)にフォルダが存在しなければ、新しくフォルダを作成します。
var alpha = Cmd$.Library( "CADalpha" );
alpha.MakeDir( "D:\\AAA" );	//"D:\AAA"フォルダを作成

StrBunkai

図形内の記事を置換・計算して図形要素にする

alpha.StrBunkai( FromText, ToText, [bCulc=1] )

引数
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 );

StrChg

図形内の記事を置換・計算する

alpha.StrChg( FromText, ToText, [bFlag=0, bCulc=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 );

StrFontChg

図形内のフォントを変更する

alpha.StrFontChg( FromFont, ToFont, [bFlag=0] )

引数
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" );

デバッグ

デバッグを行う時に用いるコマンドです。

DebugVarS

実行時の変数登録状態をリスト表示

DebugVarS( )

引数
なし
返値
なし
解説
このコマンドを実行時の変数の登録状態をリストアップし、ダイアログで表示します。(下図)


<各部説明>
①変数の一覧表
    このコマンドを実行時の変数の登録状態を表示します。左から「変数名」、「G/L」、「値」を表示しています。 「G/L」はそれぞれグローバル変数/ローカル変数を意味します。 シートもグローバル変数として、一覧表に載ります。
②確認
    変数の一覧表からマウス左クリックで変数を選択後、「確認」ボタンを押すと下側へ(②-1)、変数の内容が表示されます。 変数の内容をコピー&ペーストして利用することが可能です。
③探索変数名
    変数の一覧表を絞り込み表示することができます。 変数が大量に登録されている場合、目的の変数を探すときに便利です。 例えば「a」と入力すると、変数名の先頭が"a"から始まる変数のみ一覧表示します。 変数名は大文字、小文字を区別しますので、ご注意下さい。
④OK
    ダイアログを閉じます。
グローバル変数a,b,cを宣言し、関数funcA()内でDebugVarSコマンドを実行します。
関数funcA()内からSheet2シートの関数funcB()へ移り、DebugVarSコマンドを実行します。