CAD сделал на блоке объекта выбора блока таблицы (COM интерфейсы на веб-сайте)

Код ниже, так что с выбранным объектом в рисунке, а затем превращают в твердый блок, и затем вставляется в фиг.

JS код следующим образом:

// создать экземпляр выбранного набора конфигурации фильтра, а класс инкапсулирует набор обработчика выбора. 
вар СС = mxOcx.NewSelectionSet ();
 // Построить отфильтрованный список 
вар spFilte = mxOcx.NewResbuf ();
 // пользователь выбирает объект , выбранный пользователем GET сущности 
ss.Select2 (. 8, NULL , NULL , NULL , spFilte); 
  
вар = aryId новый новый в Array ();
 для ( вар я = 0; I <ss.Count; I ++ ) 
{ 
    вар лор = ss.Item (I);
     IF (ENT =! нуль ) 
    { 
        aryId.push (ent.ObjectID); 
        ent.Close (); 
    }
} 
// возвращает управление объект базы данных 
уаг curDatabase = mxOcx.GetDatabase ();
 переменная dMinX = 0, dMinY = 0, 0 = dMaxX, dMaxY = 0 ;
 вар isFirstEnt = истина ;
 для ( вар L = 0, L <aryId. длина, L ++ ) 
{ 
    вар PObj = curDatabase.ObjectIdToObject (aryId [L]);
     ЕСЛИ (PObj == NULL )
         Продолжить ;
     вар PENT = PObj;
     ЕСЛИ (пент == NULL )
         Продолжить ;
     VAR   Очки =pEnt.GetBoundingBox2 (); 
  
    вар minPt = points.Item (0 );
    вар maxPt = points.Item (1 ); 
  
    если (minPt =! нуль && 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) 
{ 
    // 没有实体
    возврата ; 
} 
Вар поз = mxOcx.NewPoint (); 
pos.x = dMinX + (dMaxX - dMinX) / 2,0 ; 
pos.yDMinY + = (dMaxY - dMinY) / 2,0 ; 
  
// . Проверьте имя вновь созданного блока, уже существует в текущей базе данных 
  
вар blkTable = curDatabase.GetBlockTable ();
 уаг curSpace = curDatabase.CurrentSpace (); 
  
уаг sNewBlakName; 
  
уаг blkNewRec blkTable.Add = ( "" ); 
sNewBlakName = blkNewRec.Name; 
  
blkNewRec.Origin = POS; 
  
для ( вар L = 0; L <aryId.length, L ++ ) 
{ 
  
    blkNewRec.AddCloneEntity (aryId [L]); 
    // пут до того, как объект будет удален. 
    вар PObj = curDatabase.ObjectIdToObject (aryId [L]);
     ЕСЛИ(PObj == NULL )
         Продолжить ; 
    pObj.Erase (); 
} 
ЕСЛИ (blkNewRec =! Нуль ) 
{ 
    вар blkRef = curSpace.InsertBlock (pos.x, pos.y, sNewBlakName, 1.0, 0.0 );
     вар 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; 
  
} 
  
Возврата ;

 

рекомендация

отwww.cnblogs.com/yzy0224/p/12012104.html