Однако, если ваше приложение осуществляет новые классы объекта базы данных, вы будете нуждаться в более глубоком понимании объектной записи в файл. См. главу 12, “ Происходящий от AcDbObject. ”
Dwg - и dxf - префиксы указывают два существенно различных формата данных, первый типично используемый в письменной форме к и от DWG файлов, и второй прежде всего для DXF файлов и AutoLISP entget, entmake, и функций entmod. Первичное различие между двумя форматами - то, что для DWG регистраторов (объект, который записывает, данные к файлу), данные явно не отмечены.
DXF регистраторы, напротив, присоединяют код группы данных с каждым элементом данных в изданном формате данных (см. главу 12, “ Происходящий от AcDbObject ”).
Глава 6. Примитивы
Эта глава описывает примитивы — объекты базы данных с графическим представлением. Это перечисляет свойства и операции, все примитивы имеют в общем{*обычном*}. Примеры показывают, как создать блоки, вставки, и комплексные примитивы, и как выбирать и высветить подпримитивы.
- Определенные Примитивы Монопольное использование Примитива Выпуск AutoCAD 12 Примитивов Общие{*обычные*} Свойства Примитива Общие{*обычные*} Функции Примитива Создание Образцов Примитивов AutoCAD Комплексные Примитивы Доступ Системы координат Функции Кривой Связывающиеся Гиперсвязи с Примитивами
Определенные Примитивы
Примитив в базе данных имеет графическое представление. Примеры примитивов включают строки, круги, дуги, текст, solids, области{*регионы*}, сплайны, и эллипсы. AcDbEntity класс получен из AcDbObject.
С несколькими исключениями, примитивы содержат всю необходимую информацию относительно их геометрии. Несколько примитивов содержат другие объекты, которые проводят{*держат*} их геометрическую информацию или атрибуты. Сложные примитивы включают следующее:
- AcDb2dPolyline, который имеет объекты AcDb2dPolylineVertex AcDb3dPolyline, который имеет объекты AcDb3dPolylineVertex AcDbPolygonMesh, который имеет объекты AcDbPolygonMeshVertex AcDbPolyFaceMesh, который имеет объекты AcDbPolyFaceMeshVertex и объекты AcDbFaceRecord AcDbBlockReference, который имеет объекты AcDbAttribute AcDbMInsertBlock, который имеет объекты AcDbAttribute
Примеры создания и выполнения итераций через сложные примитивы обеспечиваются в “ Сложные Примитивы ” на странице 134.
Монопольное использование Примитива
Примитивы в базе данных обычно принадлежат AcDbBlockTableRecord. Блочная таблица в недавно созданной базе данных имеет три предопределенных отчета{*записи*}, *MODEL_SPACE, *PAPER_SPACE, и *PAPER_SPACE0, которые представляют образцовое пространство{*пробел*} и два предопределенных бумажных пространственных размещения. Дополнительные записи добавлены всякий раз, когда пользователь создает новые блоки (блочные записи), типично, издавая БЛОК, ШТРИХОВКУ, или команду DIMENSION.
Структура монопольного использования для примитивов базы данных следующие:


Примитивы AutoCAD 12
Следующие примитивы были включены в Выпуск AutoCAD 12 и объявлены в dbents. h файле. Вы не можете безопасно получать новые классы из следующего
Выпустите 12 примитивов:
N AcDb2dPolyline
N AcDb3dPolyline
N AcDbPolygonMesh
N AcDbPolyFaceMesh
N AcDbSequenceEnd
N AcDbBlockBegin
N AcDbBlockEnd
N AcDbVertex
N AcDbFaceRecord
N AcDb2dVertex
N AcDb3dPolylineVertex
N AcDbPolygonMeshVertex
N AcDbPolyFaceMeshVertex
N AcDbMInsertBlock
Общие Свойства Примитива
Все примитивы имеют множество общих{*обычных*} свойств и включают функции члена для установки и получения их значений. Эти свойства, которые могут также быть установлены в соответствии с директивами пользователя, являются следующим:
- Цвет Linetype Linetype масштаб Видимость Уровень вес Строки Графическое название{*имя*} стиля
Когда Вы добавляете примитив к блочному отчету{*записи*} таблицы, AutoCAD автоматически вызывает AcDbEntity:: setDatabaseDefaults () функция, которая устанавливает свойства в их значения по умолчанию, если Вы явно не установили их.
AcDbViewport приобретает параметры настройки текущего графического окна.
Если свойство было явно не определено для примитива, текущее значение базы данных для того свойства используется. См. главу 4, “ Операции Базы данных, ” для описания функций члена, используемых для установки и получения текущих значений свойства, связанных с базой данных.
Цвет примитива
Цвет Примитива может быть установлен и читать как числовые индексные значения в пределах от от 0 до 256, или образцами AcCmColor, который обеспечивается для будущего использования расширенной цветовой моделью. В настоящее время, цвет использований AutoCAD индексирует только. Правильный цветной индекс может быть получен от образца AcCmColor использование AcCmColor:: getColorIndex () функция члена.
Цвет индексирует 1 до 7, используются для стандартных цветов, как показано в следующей таблице:
Color Number | Color Name |
1 | Red |
2 | Yellow |
3 | Green |
4 | Cyan |
5 | Blue |
6 | Magenta |
7 | White or Black |
Цвета 8 до 255 определены устройством отображения.
Следующие индексные значения имеют специальные значения:
0 Определяет BYBLOCK. Примитивы наследуют цвет текущей блочной ссылки{*справочников*}, которая указывает на блочный отчет{*запись*} таблицы, что примитив постоянно находится в, или черный / белый, если примитив постоянно находится непосредственно в образцовом пространственном или бумажном пространственном блочном отчете{*записи*} таблицы.
256 Определяет BYLAYER. Примитивы принимают цвет связанного уровня примитива.
257 Никаких цвета. Только подарок{*настоящее*} со времени, примитив является первым instantiated до его цвета, установлен в значение между 0 и 256, или примитив добавлен к базе данных и принимает текущий цветной индекс базы данных.
Если номер цвета определен для примитива, текущий номер цвета значения по умолчанию базы данных игнорируется. Используйте следующие функции, чтобы устанавливать и сделать запрос цвета примитива:
virtual Acad::ErrorStatus
AcDbEntity::setColorIndex(Adesk::UInt16 color);
Adesk::UInt16
AcDbEntity::colorIndex() const;
Linetype примитива
Значение linetype указывает на вход таблицы идентификаторов, который определяет ряд точек и подчеркивает штриховой линией используемый для рисунка строк. Когда примитив - instantiated, его linetype установлен в NULL. Когда примитив добавлен к базе данных, если linetype не был определен для примитива, linetype установлен в поток базы данных linetype значение. Это значение по умолчанию сохранено в CELTYPE системной переменной.
Linetype может быть определен по имени, строкой, или объектом ID AcDbLineTypeTableRecord в целевой базе данных примитива.
Специальные linetype входы следующие:
CONTINUOUS - Значение по умолчанию linetype, который автоматически создан в linetype таблице идентификаторов
BYLAYER Linetype значение уровня примитива
BYBLOCK Linetype значение примитива окружающий блочный поток определения блокирует ссылку{*справочники*}
Если значение linetype определено для примитива, текущее значение по умолчанию базы данных linetype значение игнорируется.
Следующие функции дают возможность Вам установить linetype для примитива, или по имени или объектом ID:
virtual Acad::ErrorStatus
AcDbEntity::setLinetype(const char* newVal);
virtual Acad::ErrorStatus
AcDbEntity::setLinetype(AcDbObjectId newVal);
Эта функция возвращает название{*имя*} текущего примитива linetype:
char* AcDbEntity::linetype() const;
Эта функция возвращает объект ID для отчета{*записи*} таблицы идентификаторов определение linetype:
AcDbObjectId AcDbEntity::linetypeId() const;
Примитив Linetype Масштаб
Когда примитив - первый instantiated, его масштаб linetype инициализирован к недопустимому значению. Когда примитив добавлен к базе данных, если масштаб linetype не был определен для примитива, это установлено в поток базы данных linetype значение масштаба. Это значение по умолчанию базы данных сохранено в CELTSCALE системной переменной.
Linetype Масштаб, указанный В Примитив
Если значение масштаба linetype определено для примитива, текущее значение по умолчанию базы данных linetype значение масштаба игнорируется.
Следующие функции позволяют Вам устанавливать и запрашивать масштаб linetype относительно примитива:
Acad::ErrorStatus
AcDbEntity::setLinetypeScale(double newVal);
double
AcDbEntity::linetypeScale() const;
Регенерация Рисунка
Когда примитив восстановлен, его эффективный масштаб linetype - изделие{*программа*} и, примитива linetype масштаб и глобальная база данных linetype масштаб. Для небумажных пространственных примитивов, масштаб linetype рассчитан следующим образом:
effltscale = ent->linetypeScale() * ent->database()->ltscale();
Если PSLTSCALE - 1, эффективный масштаб linetype тогда применяется к появлению{*виду*} образцового пространственного примитива когда рассматривается в бумажном пространстве{*пробеле*}. Если PSLTSCALE - 0, то все масштабирование linetype выполнено относительно образцовых пространственных представлений{*видов*}. См. Руководство программиста AutoCAD для дальнейшего объяснения масштабов linetype.
Видимость Примитива
Если Вы определяете, что примитив невидим, это будет невидимо независимо от других параметров настройки в базе данных. Другие коэффициенты{*факторы*} могут также заставлять примитив быть невидимыми.
Например, примитив не будет отображен, если его уровень выключен или закрепляется.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 |


