|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
1 | | #1 |
Как узнать номер параметра в динамическом блоке?
Инженер-конструктор
Москва
Регистрация: 25.12.2015
Сообщений: 77
|
||
Просмотров: 6075
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Возможно, он на самом деле 6, просто с другой стороны списка?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Тогда пример файла и код получения в студию.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Идеи кончились. Пробовал фильтровать по типу данных, видимости - все мимо. Лично у меня решения нет. Возможно, кто-то еще заинтересуется, с удовольствием посмотрю на решение. Просто из интересу.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер-конструктор Регистрация: 25.12.2015
Москва
Сообщений: 77
|
Цитата:
Думаю стоит попробовать обратиться к эффективному имени блока, и проверить, какие там номера у параметров...... Как считаете? |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Не уверен, что вариант сработает. Можно, конечно, попробовать - но проблема (как мне кажется) в том, что дин.параметры просто так не получить. В свое время Supermax пытался разработать программу, реализовывающую несколько параметров видимостей, но потом Autodesk что-то там поменял и софт работает, кажется, только до ACAD2016 - в последующих уже не срабатывает. На сайте Полещука, по-моему, даже был разбор кода.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611
|
Так, чисто для справки, в выложенном файле, в первом сообщении, динамического параметра с именем "Длина", просто нет.... "Длина_стержня", "Длина отгиба", "Длина_распределения", "Длина лапки", "Длина полки" вот это всё есть , а "Длина" нет. Продолжаем гадать по фотографии...
А вот аттрибут "Длина" есть, и у него как раз индекс 6 (начиная с 0). Соответственно, думаю ТС просто путает теплое и мягкое. |
|||
![]() |
|
||||
недопечатал тс, но поле в теме и в примере ссылается именно на длину_стержня. так что гадание по фото отменяется)
|
||||
![]() |
|
||||
это или очередная автокадская замануха или нужно копать глубже. если посмотреть на dxf этого примера в разделе описания динамического блока, то можно найти искомый параметр с групповым номером 91
Код:
|
||||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
кстати, похоже) Но поскольку это все в недокументированных DXF кодах - то вполне реально может повториться
|
|||
![]() |
|
||||
Инженер-конструктор Регистрация: 25.12.2015
Москва
Сообщений: 77
|
Это уже интересно. А как вы до этого докопались? Я через ArxDbg не смог найти(((
|
|||
![]() |
|
||||
absolutely)))
ну вот так навскидку можно нарыть параметры дистанции динамических свойств Код:
пробовал на своём блоке, а на темном надо опять ковырять |
||||
![]() |
|
||||
Инженер-конструктор Регистрация: 25.12.2015
Москва
Сообщений: 77
|
Нашел что-то похожее у LeeMac
Код:
В расширенной библиотеке "ACAD_ENHANCEDBLOCK" нашел коды через ArxDbg. (ArxDbg->Entity info->Extension Dict->AppDataCache). Теперь глупый вопрос, прошу не пинать, как зная имя entity, например 15fd19f0, посмотреть его через entget? ----- добавлено через ~1 мин. ----- Спасибо! Я пошел другим путем и видимо не туда) |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Имя или хендл? Если у тебя оно отображается как <Ename: 15fd19f0>, то прямо на него и делай entget. Если это строка - то handent и вперед.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер-конструктор Регистрация: 25.12.2015
Москва
Сообщений: 77
|
Цитата:
Т.е. мне нужно строку "<Entity name: 115fc8ac0>" превратить в entity. Код:
<Entity name: 115fc8ac0> Код:
Как заставить работать конструкцию Код:
Последний раз редактировалось tsetse, 02.03.2020 в 12:51. |
|||
![]() |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611
|
AndruxaZ, Вам почти удалось..
Но лучше вот так: ![]() Handel: 283 Это искомый параметр, у него в XData указано, что он 3 по порядку, и в общем списке имеет индекс в коллекции 6, дополнительно посмотрел по "Привязка_распределения" handel 27E, который по индексу в коллекции 1, по порядку 2 и равен 1500. и если в текст вставить %<\AcObjProp Object(%<\_ObjId 165450432>%).Parameter(1).UpdatedDistance \f "%lu2%pr0">%, то получится 1500. Все сходится. Откуда взялась 6 теперь понятно... а вот как ее достать в Лисп... не знаю. |
|||
![]() |
|
||||
tsetse,
а если так: Код:
Код:
Последний раз редактировалось koMon, 02.03.2020 в 15:34. |
||||
![]() |
|
||||
Инженер-конструктор Регистрация: 25.12.2015
Москва
Сообщений: 77
|
Спасибо большое! Отлично работает! Основное изменение от предыдущего, как я понял заключается в том, что поиск параметров идет в расширенном словаре блока "ACAD_ENHANCEDBLOCK". Надеюсь этот код в дальнейшем поможет кому-либо еще. В ближаешее время модифицирую (если вы это не сделаете раньше), чтобы выводилось конкретное значение для конкретного параметра например (test "Длина_стержня") -> 6.
Теперь объясню, зачем мне это нужно. На планах армирования в большом количестви присутствуют данные блоки. Некоторые коллеги (неопытные), часто сбивают этот аттрибут. Вот и пришла в голову мысль, восстановить. Просто вписать значение проблем не вызывает, задача была именно сделать поле. Еще раз спасибо! ----- добавлено через ~1 ч. ----- Оформленный как функция Запуск (get-param_number (car(entsel)) "Длина_стержня") Код:
Последний раз редактировалось tsetse, 03.03.2020 в 14:03. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Большое количество полей почти гарантированно затормозит обработку чертежа. Я бы, наверное, воспользовался не полями, а отдельной командой, которая "проставит" значения обычными выносками или чем-нибудь наподобие (кстати, в качестве аннотации для выноски можно и блоки использовать). А всю маркировку поместить на отдельный слой. Ну что-нибудь такого типа.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер-конструктор Регистрация: 25.12.2015
Москва
Сообщений: 77
|
Цитата:
|
|||
![]() |
|
||||
|
||||
![]() |
|
||||
|
||||
![]() |
|
||||
Регистрация: 15.04.2019
Сообщений: 60
|
Большое спасибо ТС и всем, кто ему помогал в создании функции! Мне она очень пригодилась)
Только вот кучу времени убил, пока разбирался, от чего же код (в шапке который) работает через пень-колоду))))) Но нашёл) В локальных переменных пропустили (не объявили) dyn_param_found ![]() Цитата:
Шапку, наверное, стоит поправить ![]() Ещё раз благодарю коллективного автора этой функции за неоценимую помощь в моей работе! ![]() |
|||
![]() |
|
||||
Инженер-конструктор Регистрация: 25.12.2015
Москва
Сообщений: 77
|
Готово! Спасибо за замечание!
Цитата:
|
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Установка параметра видимости в блоке случайным образом | Volodich | Программирование | 11 | 01.02.2023 09:20 |
Ограничение линейного перемещения в динамическом блоке | nimberlink | Динамические блоки | 1 | 20.12.2016 10:49 |
Массивы в динамическом блоке | valerik88 | Динамические блоки | 3 | 13.12.2016 09:34 |
Помогите узнать номер строки в котрой произошла ошибка в программе на VBA | МишаИнженер | Программирование | 3 | 27.05.2012 23:27 |