| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
02.05.2019, 16:59 | #1 | |
Значение атрибута, задающее угол для параметра вращения в динамическом блоке
топограф, технолог
Москва
Регистрация: 24.05.2009
Сообщений: 3,031
|
||
Просмотров: 5863
|
|
||||
Отлавливать события - это совсем круто. Я думал только о запуске процедуры - передать значение угла из атрибута в угол поворота.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Если лисп, то вызовом лиспа. Без хитростев.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Цитата:
Дано: куча динблоков с вращаемым элементом и с атрибутом. Вопрос: как для всех таких блоков установить угол поворота элемента равным значению атрибута?
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,039
|
значения атрибутов каким образом инициализируется? Сама задача элементарная - считать значение атрибута соответствующего блока, перевести в число и присвоить соответствующему динпараметру поворота этого же блока.
|
|||
|
||||
Цитата:
Ну, да: считать из атрибута, и присвоить повороту. Ничего хитрого.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Отсутствие инструмента.
Нашел, наконец, тему с названием, полностью соответствующим моему вопросу: Как сделать так, чтобы параметр динамического блока принял значение аттрибута autocad В той теме динпараметр управляет диаметром окружности, а не поворотом. Но суть вопроса такая же.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
на лиспе решается на раз-два
|
||||
|
||||
Для тех, кто владеет лиспом - наверное.
Если в общем виде, чтобы для любого случая, то могло быть так: 1. Запрашивается название динпараметра. 2. Запрашивается название атрибута. 3. Выбор объектов. 4. Присваивается значение динпараметру. Или: 1. Выбрать объекты. 2. Выбрать из списка параметров динблоков нужный. (Ввести название нужного из выведенного списка). 3. Выбрать из списка атрибутов нужный. (Ввести название нужного из выведенного списка). 4. Присваивается значение динпараметру. Тогда пригодилось бы и для других тем и вопросов.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,039
|
инструмент - прямые руки из нужного места называется) Набросал по быстрому код (чистый функционал без всяких проверок под ваш файл примера), разбирайтесь:
Код:
Цитата:
|
|||
|
||||
Цитата:
Как это вызывать из Автокада?
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,039
|
А как обычно вызывают .Net код из акада? Скачать любую бесплатную студию по вкусу, подключить необходимые акадовские библиотеки в проект, вставить мой код и создать сборку. Потом загрузить через NetLoad. Все инструкции в инете есть - и на русском языке тоже)
|
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588
|
DynIN DynOUT, все уже написано... импортировать атрибуты и дин. свойства в ексель и там назначить дин свойству значение из атрибута (дин. свойства поворота, они в радианах). Экспортировать обратно. Собственно все.
|
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,039
|
Только зачем для операции, не требующей никаких вариантов преобразования/обработки данных, промежуточный костыль в виде экселя?
|
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588
|
Цитата:
Код, который Вы написали, годится только для блока имеющего атрибут с тегом "ROT" и дин. свойством "ROT", что прописано в коде и если в этом или другом блоке не будет этого тега атрибута или наименования дин. свойства, то Ваш код работать не будет, потребуется перекомпиляция под новые наименования, можно эти свойства вынести в отдельный файл настроек... но чем это будет по сути отличаться от dynIN_dynOUT ? Ну и преобразования данных все таки есть, из градусов в радианы lNewAngle = lNewAngle * Math.PI / 180; - это же Ваш код. С другой стороны, все нет времени дописать этот проект, добавить туда реализацию лисп функций, работу с полями и прочие плюшки, но это уже другая тема. Последний раз редактировалось Boxa, 03.05.2019 в 11:45. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,039
|
Цитата:
Цитата:
хотя бы тем - что не надо будет указывать, куда сохранять файл, затем идти туда, править файл и обратно загружать. И файл извлечения потом же остается на диске? И если посмотрите на мой код - меняет поворот только тех блоков, которые имеют различные значения атрибута и динпараметра поворота - зачем лишний раз дергать на изменение БД чертежа... |
|||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Diesel. Как передать значение атрибута? | DANZZ | Программирование | 2 | 21.12.2023 14:23 |
Вставка значения атрибута блока в поле в блоке | Prying | AutoCAD | 28 | 08.09.2020 17:51 |
Как присвоить тексту в блоке значение атрибута? | Engineer_Sergii | AutoCAD | 1 | 14.04.2015 18:48 |
Проблема при использовании в динамическом блоке атрибута | Даниил | Динамические блоки | 13 | 31.05.2013 09:16 |
Динамический блок и значение атрибута | _Andre_ | Динамические блоки | 15 | 08.12.2006 23:55 |