以下のコード、その結果、選択された図形内のエンティティ、次いで図に固体ブロック化し、その後挿入されています。
jsのコードは次のよう:
//は、フィルタ構成の選択されたセットをインスタンス化し、クラスが選択ハンドラーのセットをカプセル化します。 VAR SS = mxOcx.NewSelectionSet(); // フィルタされたリストの構築 VAR spFilte = mxOcx.NewResbuf(); // ユーザが選択をユーザGETエンティティによって選択されたオブジェクト ss.Select2(8、NULL、NULL、NULL 、spFilte)。 VAR aryId = 新しいアレイ(); 以下のために(VAR ; I <ss.Count、私は0を= I ++ ) { VAR ENT = ss.Item(I); もし(ENT!= nullの) { aryId.push(ent.ObjectID)。 ent.Close(); } } // コントロール・データベース・オブジェクトを返し VARを curDatabase = mxOcx.GetDatabase(); VAR dMinX = 0、0 = dMinY、dMaxX = 0、dMaxY = 0 ; VAR isFirstEnt = trueに、 ため(VARの L = 0; L <aryId.length ; L ++ ) { VAR POBJ = curDatabase.ObjectIdToObject(aryId [L])。 もし(POBJ == nullの) 継続。 VARペント= POBJ。 もし(ペンタ== nullの) 継続。 VaRの 点= pEnt.GetBoundingBox2()。 VAR minPt = points.Item(0 )。 VAR MAXPT = points.Item(1 )。 もし(minPt!= nullの && MAXPT!= nullの) { もし(isFirstEnt) { dMinX = minPt.x。 dMinY = minPt.y。 dMaxX = maxPt.x。 dMaxY = maxPt.y。 isFirstEnt = 偽; } 他 { もし(dMinX> minPt.x) dMinX = minPt.x。 もし(dMinY> minPt.y) dMinY = minPt.y。 もし(dMaxX < maxPt.x) dMaxX = maxPt.x。 もし(dMaxY < maxPt.y) dMaxY = maxPt.y。 } } } もし(isFirstEnt) { // 物理的な リターンません。 } VAR POS = mxOcx.NewPoint()。 pos.x = dMinX +(dMaxX - dMinX)/ 2.0 。 pos.y = dMinY +(dMaxY - dMinY)/ 2.0 。 // 現在のデータベースに既に存在するかどうか、新しく作成されたブロック名を確認してください。 VAR blkTable = curDatabase.GetBlockTable()。 VAR curSpace = curDatabase.CurrentSpace()。 だっsNewBlakNameは、 VAR blkNewRec = blkTable.Add( "" ); sNewBlakName = blkNewRec.Name。 blkNewRec.Origin = POS; 用(VARは L = 0、L <aryId.length; L ++ ) { blkNewRec.AddCloneEntity(aryId [L])。 // 前のエンティティを削除します。 VAR POBJ = curDatabase.ObjectIdToObject(aryId [L]); IF(POBJ == NULL ) 続けます。 pObj.Erase(); } もし(blkNewRec!= nullの) { VAR blkRef = curSpace.InsertBlock(pos.x、pos.y、sNewBlakName、1.0、0.0 )。 VAR ATTRIB = blkRef.AppendAttribute()。 attrib.Position = POS; attrib.AlignmentPoint = POS; attrib.Oblique = 0.0 。 attrib.Rotation = 0.0 。 attrib.Height = 2.0 。 attrib.TextString =「これはテスト用テキスト属性です」。 attrib.Tag = "TestTag" 。 attrib.IsInvisible = 偽; blkRef.Position = blkRef.Position。 } リターン ;