DxfExtract
説明
DXFファイルから指定した情報を抽出し、2次元配列に返します。
書式
Object.DxfExtract(retCount,ExtractArray,SectionName,TableName,ObjectName,GroupList,[DxfFullPath]) As Boolean
引数 | 説明 |
---|---|
retCount | 抽出されたオブジェクトの数を返す変数を指定します。 |
ExtractArray | 抽出結果が2次元の配列で返されます。 |
SectionName | セクション名(HEADER,TABLES,BLOCKS,ENTITIES等)を指定します。 |
TableName | テーブル名(LAYER,LTYPE等)を指定します。 |
ObjectName | 抽出したいオブジェクト名(TEXT,LINE等)を指定します。オブジェクト名にはワイルドカード(*)等のパターン文字を含めることが出来ます。 |
GroupList | 抽出したい複数のグループコードをパイプ文字で区切って指定します。 |
DxfFullPath | 省略可能です。省略するとWindowsテンポラリフォルダ内のAcadRemocon.dxfになります。 |
戻り値
戻り値 | 説明 |
---|---|
True | 正常終了しました。 |
False | 異常終了しました。エラーの詳しい内容はShowErrorメソッドで確認出来ます。 |
説明
例えば、3個のTEXTオブジェクトを含むDXFファイルに対して、下記のような引数を与えて実行した場合
Object.DxfExtract retCount,ExtractArray,"ENTITIES","","TEXT","1|10|20"
2次元配列 ExtractArray(X,Y) は、下記のような構造になります。
配列の添字 | (0,Y) | (1,Y) | (2,Y) | (3,Y) |
---|---|---|---|---|
(X,1) | 文字1のオブジェクト名"TEXT" | 文字1のグループコード1の内容 | 文字1のグループコード10の内容 | 文字1のグループコード20の内容 |
(X,2) | 文字2のオブジェクト名"TEXT" | 文字2のグループコード1の内容 | 文字2のグループコード10の内容 | 文字2のグループコード20の内容 |
(X,3) | 文字3のオブジェクト名"TEXT" | 文字3のグループコード1の内容 | 文字3のグループコード10の内容 | 文字3のグループコード20の内容 |
例えば文字3の内容は、ExtractArray(1,3)で得ることが出来ます。
高度な使い方
2次元配列 ExtractArray の通常的に使用するエリアは ExtractArray(1〜グループコードの種類,1〜抽出されたオブジェクト数) となりますが、それ以外にも下記の列が確保されています。
0列目・・・オブジェクト名が格納されています。ここを空白に変更後、DxfUpdateメソッドを実行すると、そのオブジェクトはDXFファイルから削除されます。
マイナスn列目・・・n番目のグループコードのDXFファイル内での位置が格納されています。そのオブジェクトに該当するグループコードがなかった場合は0が格納されています。-1に変更後、DxfUpdateメソッドを実行すると、新たなグループコードとしてDXFファイルに追加されます。
使用例(VBScript)
Dim Acad
'Acad変数はErサブルーチンでも使うのでここで宣言 |
参考資料
0
: Entity,Table entityの開始、またはファイルセパレータ、これに続くテキスト値でentityタイプを指定。
1 : Entityのテキスト値
2 : 属性タグ、Blockの名前など
3 - 4 : その他の文字列、名前の値
5 : Entityハンドル(16進数文字列)
6 : 線種名
7 : テキストスタイル名
8 : レイヤ名
9 : 変数名(DXFのHEADERセクションでのみ使用)
10 : プライマリX座標値(この後にY値,Z値の20,30が続く)
11-18 : その他のX座標値(この後にY値,Z値の21-28,31-38が続く)
20 : プライマリY座標値
21-28 : その他のY座標値
30 : プライマリZ座標値
31-37 : その他のZ座標値
38 : AutoCAD R11以前のみ、高さ(0でない場合)
39 : Entityの厚さ
40-48 : 浮動小数点値(テキスト高さ、スケールファクタなど)
49 : 繰返し値
50-58 : 角度
62 : 色番号