ObjectARX, AutoCAD. Среда программирования библиотеки C++

       

Расчленение примитивов


Некоторые примитивы могут взрываемся, или анализир{*расчленен*}, в набор более простых элементов.

Определенное поведение зависит от класса. Например, поля могут взрываемся в области{*регионы*}, затем выравнивают. Ломаные линии могут взрываемся в доли строки. Mtext примитив может вз в отдельный текстовый примитив для каждой строки первоначального объекта. Mline примитив может вз в индивидуальные строки. Когда Вы взрываете блочную ссылку{*справочники*}, AutoCAD копирует все примитивы в блочной ссылке{*справочниках*} и затем разбивает их на их компоненты.

Взрывающийся () функция создает массив объектов, полученных из AcDbEntity.

Следующая таблица показывает тому, что случается, когда Вы взрываете каждый примитив, когда это - отдельно и когда это находится в блочной вставке, которая неоднородно масштабируется.

 

Взрыв примитивов

Entity

By Itself

Nonuniform Scaling

(when in a block)

AcDb3dSolid

Regions,bodies

NA; can’t be exploded

AcDbBody

Regions, bodies

NA

Ac2dDbPolyline

Lines, arcs

Self/NA

Ac3dPolyline

Lines

Self

AcDbArc

Self

Ellipse

AcDbCircle

Self

Ellipse

AcDbDimension

Solids, lines, text,strings, points

NA

AcDbEllipse

Self

Self

AcDbLeader

Self

NA

AcDbLine

Self

Self

AcDbRay

Self

Self

AcDbSpline

Self

Self

AcDbXline

Self

Self

AcDbFace

Self

Self

AcDbMline

Lines

Self

AcDbMText

One text entity for each line

Self

AcDbPoint

Self

Self

AcDbPolyFaceMesh

AcDbFace

Self

AcDbPolygonMesh

Self

Self

AcDbRegion

Curves (splines, lines,

arcs, circles)

NA

AcDbShape

Self

Self

AcDbSolid

Self

Self

AcDbText

Self

Self

AcDbTrace

Self

Self

Explode()  - функция только для чтения, которая не изменяет первоначальный примитив. Это возвращает набор примитивов для приложения, чтобы обработать как желательно. Одно потенциальное использование этой функции должно взорвать сложный примитив, чтобы произвести более простые примитивы и затем работать на тех примитивах. Например, если Вы осуществляли intersectForPoints () функция для ломаной линии, могло бы быть проще имеет дело с индивидуальные части ломаной линии скорее чем законченный примитив.

Следующие инструкции истинны для команды EXPLODE (но не для функции explode ()):

§         Визуальное появление{*вид*} постоянный.

§         взрываемый примитив стерт от базы данных.

§         Одни или более новые примитивы созданы и добавлены в конец к базе данных.

 



Содержание раздела