|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
ООО Предприятие "Ирбис" Регистрация: 02.02.2009
Екатеринбург
Сообщений: 45
|
Кулик Алексей aka kpblc, по крайней мере извлечение до сих пор необходимой мне информации (в основном атибуты блоков и, собственно, имен примитивов для построения спецификаций) не представляло проблем, потому что информация эта находилась во вполне ожидаемых местах и в необходимом объеме. Функцию для вытаскивания атрибутов при почти полном отсутствии опыта программирования в лисп написал и отладил за 15 минут. Проблемой было определить местоположение этой информации, так как справочник ввиду его специфичности удалось приобрести много позже.
Если кому интересно выкладываю код функции. Сразу оговорюсь - атрибуты в блоке для удобства имеют вид "Dy 50" "L 150" Код:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844
|
Мой слегка переделанный вариант:
Код:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
ООО Предприятие "Ирбис" Регистрация: 02.02.2009
Екатеринбург
Сообщений: 45
|
Кулик Алексей aka kpblc, "слегка", говоришь? как говорил один великий человек - учиться, учиться и еще раз учиться... до activex я еще не дошел, так что многое здесь мне непонятно. Придется форсировать свое обучение. Найти бы время на все это...
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844
|
Под "слегка" имелась в виду переделка того, что у меня самого используется. Почему я предпочитаю получать указатели на атрибуты: если понадобится, можно будет "легким движением" поменять слой, цвет, тип, вес линии, стиль и еще до дури параметров
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844
|
Так там же все написано. Есть объект, есть у него запрашиваемое свойство. Например, у текста - значение строки. Для получения в свою программу вызываем (setq text (_dwgru-property-get (car (entsel)) 'textstring)) и дальше используется уже значение переменной text
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Наконец, нашел время на программу вставки блока с одновременным поворотом, вокруг произвольной оси...
Сама программа, выполнена в формате библиотечной функции: Код:
Код:
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны. /Сунь Цзы/ Последний раз редактировалось Елпанов Евгений, 14.02.2009 в 23:31. |
||||
|
||||
Проектировщик СС Регистрация: 24.06.2008
Минск
Сообщений: 134
|
|
|||
|
||||
Проектировщик СС Регистрация: 24.06.2008
Минск
Сообщений: 134
|
|
|||
|
||||
ООО Предприятие "Ирбис" Регистрация: 02.02.2009
Екатеринбург
Сообщений: 45
|
Подскажите в чем проблема:
В свойствах блока, вставляемого из файла, код 10 содержит координаты базовой точки, иначе точку начала координат в СК блока. Вроде так? На скрине показан такой блок с измененными кодами 10, 50 и 210. код 10 блока содержит координаты (10 -129.273 91.8469 0.0), а на рисунке базовая точка находится в точке 0.0 -129.273 91.846. Как такое может быть? До этого у блока менялись коды 50 и 210. Может быть в результате этого произошло смещение СК блока? Заранее спасибо! P.S., догадался, вошел в режим редактирования блока, посомотрел - там все как было, все на месте В общем почему-то координаты точки в группе 10 отображаются со смещением - вместо X показывает Y, вместо Y - Z, соответственно вместо Z - X. Последний раз редактировалось eugen81, 14.02.2009 в 16:48. |
|||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Во первых в начале проверь соответствие UCS (ПСК), все dxf коды возвращаються в мировой системе (для перевода используй (trans...)), во вторых, как в твеом случае, у тебя вероятно изменен 210 атрибут, вместо (0 0 1) показывает (1 0 0) - а 210 это простыми словами единичный вектор направления оси Z вхождения блока относительно мировой системы координат, кстати если его изменяешь не обязательно приравнивать к единице автокад и так проглатывает.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
Это не именно "1000", а просто 1000.
Если не нравится 1000, замените на другое число, например 38...
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны. /Сунь Цзы/ |
||||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Конструирование в 3D | Serz | AutoCAD | 87 | 28.10.2014 10:40 |
Lisp Как поставить диаметр отверстия на 3D solidе | P4s8x | LISP | 4 | 06.11.2008 19:31 |
Как тело построенное 3D Face превратить в 3D Solid? | Bdod | AutoCAD | 37 | 03.08.2006 11:36 |
загрузка DOS прог через LISP | Gaa | LISP | 15 | 12.08.2005 19:19 |