CAD操作ブロックテーブル(COMインターフェイスウェブ上)に

A.は、すべてのタイルを取得します

以下のコード、各記録ブロックテーブルを介して、次いで得られたブロック名は、JSは、以下:

VaRのデータベース= mxOcx.GetDatabase()。
VAR blkTab = database.GetBlockTable()。
VAR ITER = blkTab.NewIterator()。
以下のための(!; iter.Step(); iter.Done())
{
     blkRec = iter.GetRecordは();
    警告(blkRec.Name)。
  
}

指定されたブロック名は、現在のデータベースを解析B.

VaRのデータベース= mxOcx.GetDatabase()。
 
VAR sBlkName = "木" もし(database.GetBlockTable()。(sBlkName)HAS)
{
 
    アラート(「ブロック名が指定された」);
     //が挿入されている。
}
 {
    アラート(「ブロック名を指定していません」
}

C.は、1名のタイルの下にすべてのエンティティをトラバース

 

VaRのデータベース= mxOcx.GetDatabase();
 VAR sBlkName = "木" ;
 VAR blkRec = database.GetBlockTable()GetAt機能(sBlkName);.
 VAR ITER = blkRec.NewIterator();
 IF(ITER == nullのリターン;
 VAR INUM = 0 ;
 // すべてのエンティティによるサイクル
のために(;!iter.Done(); iter.Step(trueにfalseに))
{
    // 取得し、現在のエンティティトラバーサー
    VAR ENT = iter.GetEntity();
    警告(ent.ObjectName)。
 
    ノブ ++ ;
}
警告(iNum.ToString());

D.は、すべてのエンティティの現在のスペースを取得します

現在のブロックテーブルレコードを取得し、各オブジェクトを取るために、ブロックテーブルのレコードを横断する方法を次のコードに示すように、オブジェクトの種類を決定し、オブジェクト属性データを得ます。

だっ mxUtility = mxOcx.NewUtilityは、
 
// 現在のペーパー空間の取得
VAR blkRec = )(mxOcx.GetDatabase()CurrentSpaceを;
 
//は現在のトラバーストラバース描画するためのスペースを作成
VAR ITER = ; blkRec.NewIterator()
 IF(ITER == nullのリターンを
 
// エンティティのすべてのID配列。
VAR aryIdは=   新しい新しい配列を();
 
VAR iLineNum = 0 ;
 // すべてのエンティティによってサイクル
 
(;!iter.Done(); iter.Step())
{
    // 現在のエンティティトラバーサーの取得
    VAR ENT = iter.GetEntityを();
     IF(ENT == nullの続行
 
    // 取得したIDエンティティ
    aryId.push(ent.ObjectID)。
 
 
    VAR C = aryId.length。
    console.log(C);
 
    もし(ent.ObjectName == "McDbLine" 
    {
        // 現在のエンティティは、まっすぐである
        VARライン= ENT。
        LINENUM ++ ;
    }
それ以外の 場合(ent.ObjectName == "McDbBlockReference" 
    {
        // 現在のエンティティは、参照ブロックである
        VAR blkRef = ENT;
         のためのVAR J = 0; J <blkRef.AttributeCount; J ++ 
        {
            // 取得し、すべての属性参照ブロック
            VAR Attribに= blkRef.AttributeItem(J)。
            mxUtility.Prompt( "n個のタグ:" + attrib.Tag + "テキスト:" + attrib.TextString)。
        }
    }
}
 
だったSTは、
ST = + iLineNum + "直線" + aryId.length + "を含むエンティティを、" "発見" 
警告(ST);

 

おすすめ

転載: www.cnblogs.com/yzy0224/p/12011595.html