|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Почему функция entmod не обновляет стиль размеров?
Регистрация: 14.12.2008
Сообщений: 1,134
|
||
Просмотров: 1640
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
С чего ты взял что не работает? А vla-update генерирует ошибку потому, что ему нужен в качестве параметра другой тип аргумента. Ты вообще отладчиком пользуешься?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 14.12.2008
Сообщений: 1,134
|
Конечно пользуюсь! Не могу добраться до выполнения функции (vla-update VlaObj). На предыдущей строке не конвертируется объект DimStyle (с обновленным списком) во Vla объект в строке (vlax-ename->vla-object DimStyle). Ну и далее выполнение останавливается.
Вроде понял почему: функции vlax-ename->vla-object надо задавать параметр в виде <Entity name: 7ef8bf68> а у меня список после функции (entget: DimStyle Как можно превратить список DimStyle в объект типа <Entity name: 7ef8bf68>? Последний раз редактировалось МишаИнженер, 21.12.2022 в 08:57. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
Включаем голову... у тебя dimstyle - уже список. Который ты получил через entget. А entget'у ты подсовываешь что? Правильно, ename-указатель на размерный стиль. Который получен как? Правильно, преобразованием vlax-vla-object->ename. Дальше продолжать?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 14.12.2008
Сообщений: 1,134
|
Да, список получен через entget, но потом этот список модифицирован. Теперь надо обновить базу данных чертежа, чтобы эти изменения отобразились в чертеже.
Обновляет базу данных функция vla-update, но она работает не со списком, а указателем на VLA-объект. А у меня сейчас есть только список (это как запись карандашом в блокноте). Этот список пока ничего не значит, пока он не внедрен в чертеж. Как мне внедрить этот список в чертеж? Может быть надо обновлять список не устаревшей функцией subst, а какой-то новой функцией Vla? Есть такая функция Vla аналог subst? Желающие проверить ошибку на практике скачайте прикрепленные файлы lsp и dcl (Кстати, почему файлы dcl на нелегальном пожении? Почему их нельзя отдельно прикреплять как файлы lsp?) Последний раз редактировалось МишаИнженер, 21.12.2022 в 09:31. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
М-да, придется продолжать...
Цитата:
----- добавлено через ~1 мин. ----- Это не ошибка языка, это - ошибка разработчика. Который вместо одного подсовывает другое. Напоминает анекдот про суровых сибирских лесорубов и японскую пилораму...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 14.12.2008
Сообщений: 1,134
|
Цитата:
Используя Handle я должен заменить список чертежа на отредактированный список. Какая функция это делает? |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
https://images.autodesk.com/adsk/fil...erence_enu.pdf > ENTITIES Section, Common Group Codes for Entities
Читай, изучай, смотри на значения своих переменных.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
Цитата:
Читаем очень внимательно: Retrieves an object's (entity's) definition data. Return Values An association list containing the entity definition of ename. If you specify the optional applist argument, entget also returns the extended data associated with the specified applications. Objects in the list are assigned AutoCAD DXF™ group codes for each part of the entity data. Note that the DXF group codes used by AutoLISP differ slightly from the group codes in a DXF file. И где ты тут видишь упоминание о том, "из чего" получен результирующий список? Если ты получил хендл объекта, то преобразовать это в объект (хрен с ним, использую твою терминологию) - вопрос трех секунд гугления (если в документацию и литературу принципиально не заглядывать). Offtop: Подсказок уже мама не горюй, а все едино.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 14.12.2008
Сообщений: 1,134
|
Исправил модификацию существующего стиля размеров только на обновление масштабных коэффициентов с кодами 40 и 144
Код:
Естественно чертеж не изменяется при таком обновлении стиля размеров. Чертеж начинает меняться когда "неверная модификация Override" удаляется из списка стилей размеров. Получается для полноценного обновления стиля надо на ЛИСП удалить модификацию Override для этого стиля. Как на ЛИСП удалить все Overrides стиля размеров? |
|||
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
При повторном запуске кода, функция SSGET возвращает nil. Почему? | vladimirr_b | Программирование | 3 | 25.11.2015 03:41 |
Почему не активна функция ветер/снег 2Д/3Д в нагрузках? | ФАХВЕРК | Robot | 6 | 02.10.2015 10:06 |
Невидимые объекты в блоке или почему блок нереальных размеров | zekatyumen | Динамические блоки | 4 | 26.06.2015 07:21 |
Почему, когда я ввожу текст после определенной буквы меняется стиль текста? | ai_karamba | AutoCAD | 3 | 03.06.2014 08:44 |
Почему не работает нормально концептуальный стиль для 3Д модели | Niko777 | AutoCAD | 4 | 29.11.2013 15:10 |