|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
![]() |
Поиск в этой теме |
![]() |
#1 | |
LISP. Помогите с лиспом по переименованию нескольких вхождений динамического блока в значение его атрибута.
Регистрация: 01.09.2015
Сообщений: 13
|
||
Просмотров: 10366
|
|
||||
Регистрация: 01.09.2015
Сообщений: 13
|
Спасибо большое, за ответ.
При выполнении вашего кода вылетает из автокада, если выбрать следующий блок с таким же значением аттрибута, как предыдущий. Прилагаю файл в котором вылетает. У меня в чертеже имеется несколько одинаковых по параметрам динамических блоков с одинаковым значением атрибута. Хотелось бы, чтобы команда работала не только с одним вхождением, а выделить нужные для переименования блоки в большом колличестве. Например я имею в чертеже 100 блоков с именем "стойка" Из них 70 с атрибутом "ИМЯ_001" - со значением "СТ-1", И 30 с атрибутом "ИМЯ_001" - со значением "СТ-2", После ввода команды выделяю нужные для изменения блоки, и создается 70 блоков с именем "СТ-1" и 30 блоков "СТ-2", с сохранением их динамических свойств. Последний раз редактировалось kirillwu, 04.06.2018 в 16:22. |
|||
![]() |
|
||||
Шаражпроектхалтурмонтаж Регистрация: 29.10.2004
Талды-Париж
Сообщений: 5,940
|
Переименовать массово все анонимные вхождения одного блока я не знаю как.
Предлагаю первым переименованным заменить заранее выбранные остальные с помощью этого лиспа: Код:
Последний раз редактировалось Nike, 05.06.2018 в 11:20. |
|||
![]() |
|
||||
Регистрация: 01.09.2015
Сообщений: 13
|
Дело в том, что у меня на работе главный конструктор очень консервативен в автокаде. Когда в автокаде проявились динамические блоки, у меня в компании был придуман стандарт оформления, в котором каждый блок спецификации должен быть назван по своей маркировке. Всем крайне не удобно работать с моим файлом. Спецификации привыкли проверять командой "выбрать подобные", которая с моими блоками не работает корректно. На команду "найти" никто не хочет переходить.
Возможно проще написать лисп, аналог команды "выбрать подобные"? Только выделяющую блоки не только по одинаковому именю, слою и т.д. А еще учитывающая разность в атрибутах? Последний раз редактировалось kirillwu, 05.06.2018 в 08:51. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,350
|
Пускай изучат команду _.dataextraction
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 01.09.2015
Сообщений: 13
|
Изучена! Главный конструктор теряет визуальный интерфейс без команды "выбрать подобные", к сожалению ничего не могу с этим поделать(
----- добавлено через ~16 мин. ----- Выдает ошибку "слишком мало аргументов" Последний раз редактировалось kirillwu, 05.06.2018 в 08:50. |
|||
![]() |
|
||||
Шаражпроектхалтурмонтаж Регистрация: 29.10.2004
Талды-Париж
Сообщений: 5,940
|
исправил
----- добавлено через ~6 мин. ----- Цитата:
Выбор блоков по значению атрибутов. Код:
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 10,577
|
Динамические блоки сами по себе неплохо засоряют чертеж промежуточными анонимными блоками) Так что определением блока больше/меньше в чертеже - в данном случае уже особой роли не играет, имхо.
|
|||
![]() |
|
||||
Мой вариант
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 10.06.2018 в 11:17. Причина: Добавлена функция mip-conv-to-str |
||||
![]() |
|
||||
Регистрация: 01.09.2015
Сообщений: 13
|
Попробовал у себя. Подскажите, пожалуйста: правильно ли я понял: Ввёл команду, выделил шесть блоков в кружочке "оригинал". На месте одного из них создался новый блок, с именем, совпадающим с значения атрибута того блока, на котором создался. Ноо с пустым атрибутом и только один. Получается для получения нужного мне результата нужно вызвать команду, нажать на каждый блок, который нужно переименовать по отдельности. А затем скопировать значения атрибута "ИМЯ_001"на каждый из созданный блоков в ручную?
Хотелось бы между "Оригиналом" и "Результатом" - выполнить одно применение вашего лиспа. Огромное вам спасибо за ответы в этой теме!! |
|||
![]() |
|
||||
Цитата:
kirillwu, проверил на другой машине. Автокад 2013x64, W7x64 Команда вводится 1 раз, блоки создаются по имени атрибута и копируются их значения
__________________
Как использовать код на Лиспе читаем здесь |
||||
![]() |
|
||||
Регистрация: 01.09.2015
Сообщений: 13
|
Цитата:
Забыл упомянуть, если выделять блоки массово в командной строке вылезает эта надпись |
|||
![]() |
|
||||
обновил #14. Перезагрузи лисп
__________________
Как использовать код на Лиспе читаем здесь |
||||
![]() |
|
||||
Регистрация: 01.09.2015
Сообщений: 13
|
Приветствую! Не могли бы вы еще чуть помочь. После выполнения лиспа в #14 аттрибуты, являющиеся многострочными становятся однострочными. Возможно ли это убрать?
Тестовый файл в вложении Последний раз редактировалось kirillwu, 26.06.2018 в 14:56. |
|||
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Значение атрибута в текстовое поле динамического блока | zekatyumen | Динамические блоки | 19 | 28.01.2023 09:26 |
Мои динамические блоки [2] | Кулик Алексей aka kpblc | Динамические блоки | 4334 | 22.04.2019 09:16 |
C# .net переопределение динамического блока из внешнего файла | bargool | .NET | 35 | 18.10.2011 16:03 |
Редактирование вхождения динамического блока из командной строки. | Alexey_BH | Динамические блоки | 2 | 26.09.2010 13:13 |
При растягивании/поворачивании грисп динамического блока перестало показывать значение параметра | Red Nova | Динамические блоки | 2 | 02.10.2008 14:57 |