|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
DXF регион
инженер (КМ)
Красноярск
Регистрация: 30.10.2004
Сообщений: 3,837
|
||
Просмотров: 6212
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,408
|
Из справки:
70 : Dimension type: Values 0–6 are integer values that represent the dimension type. Values 32, 64, and 128 are bit values, which are added to the integer values (value 32 is always set in R13 and later releases) 0 = Rotated, horizontal, or vertical; 1 = Aligned 2 = Angular; 3 = Diameter; 4 = Radius 5 = Angular 3 point; 6 = Ordinate 32 = Indicates that the block reference (group code 2) is referenced by this dimension only 64 = Ordinate type. This is a bit value (bit 7) used only with integer value 6. If set, ordinate is X-type; if not set, ordinate is Y-type 128 = This is a bit value (bit 8) added to the other group 70 values if the dimension text has been positioned at a user-defined location rather than at the default location
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,408
|
Так там же написано, что числа с 0 по 6 - это целые числа, которые указывают на тип размера:
0 - повернутый (горизонтальный либо вертикальный) 1 - выравненный 2 - угловой 3 - диаметр 4 - радиус 5 - угловой по 3 точкам 6 - ординатный После R13 к ним добавляется бит: 32 - все время добавляется, указывает, что блок *D16 имеет отношение только к этому размеру (я так понял) 64 - тип поворота. Используется только если тип = 6. Если установлен, то ордината - X-тип, т.е., я так понимаю, расширенный. 128 - бит добавляется, если положение текста размера отредактировано пользователем, и оно отлично от позиции текста по умолчанию. Вроде как таким макаром...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Lisp/VBA/VB.NET Hobbyist Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367
|
Цитата:
Минимум для Rotated Dimension такой Код:
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,408
|
Честно говоря, никогда бы не стал этого делать через DXF. Попробуй преобразовать в vla-объект свой размер и устанавливай ему свойства.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Lisp/VBA/VB.NET Hobbyist Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367
|
Цитата:
~'J'~ |
|||
![]() |
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837
|
С ActiveX я пока не разобрался. Что-то пока кажется черезчур замудренно. Вот и выкручиваюсь как умею. Если не сложно, не могли бы подбросить функцию по отрисовке размерностей, тока чтобы в параметрах еще и указанные выше переменные встречались.
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,408
|
Ну как пример создания rotateddim (обработчик ошибок так вставил, для гарантии и по привычке):
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837
|
Поворачиваем ucs относительно оси X на 90град чертим 2D полилинию с координатами 0,0 и 0,100. По функции entget получаем следуещее:
Код:
Код:
Вообще как однозначно определить положение 2D полилинии в пространстве если она не лижит в плоскости параллельной XOY мировой системы координат? |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,408
|
По-моему, в списке по (entet) хранятся точки в системе координат объекта, а не в мировой. Мировая система - только в vla-представлении объекта.
Могу и ошибаться, с "повернутыми" системами координат очень мало работал.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,408
|
Ну тогда кроме как на ошибку вычислений AutoCAD'a ничего в голову не лезет... У меня для такого же варианта координаты нарисовались четкими, а вот нормаль полезла черт-те как (210-я группа) - третья координата тоже что-то около 2e-016, т.е. 2*10^-16.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,408
|
(trans point 1 0)
По-моему, так.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |