Реклама i
Стань нашим партнером - зарабатывай с нами!
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > Lisp. Переименование блока

Lisp. Переименование блока

Ответ
Поиск в этой теме
Непрочитано 14.02.2023, 10:36 #1
Lisp. Переименование блока
[MTL]
 
Санкт-Петербург
Регистрация: 09.01.2018
Сообщений: 30

Всем доброго времени суток.
Не знаю кому как, но для меня одной из самых бесячих процедур (м.б. самой бесячей) в Autocad является переименование блока. Раздражает окно интерфейса, в котором необходимо вписывать старое имя блока.
Во вложении программа, которая данный недостаток исправляет.
Работает следующим образом:
1. Загружаете лисп. В командной строке "НОВОЕИМЯ2"
2. Выбираете блок. В появившемся окне вписываете новое имя. Указываете переименовать только выбранный или все вхождения. Нажимаете OK.

Версия 2.0:
3.03.23г. Работа с динамическими и анонимными блоками. Проверка некорректности имени блока.

Вложения
Тип файла: lsp НОВОЕ_ИМЯ_v.2.0.LSP (15.1 Кб, 117 просмотров)


Последний раз редактировалось [MTL], 03.03.2023 в 16:55. Причина: Новая версия программы
Просмотров: 4483
 
Непрочитано 14.02.2023, 11:14
#2
AMDen

Инженер-проектировщик
 
Регистрация: 07.07.2016
Санкт-Петербург
Сообщений: 723


Цитата:
Сообщение от [MTL] Посмотреть сообщение
в котором необходимо вписывать старое имя блока
Зачем вписывать? Достаточно выбрать из списка необходимый блок.
AMDen на форуме  
 
Автор темы   Непрочитано 14.02.2023, 11:50
#3
[MTL]


 
Регистрация: 09.01.2018
Санкт-Петербург
Сообщений: 30


AMDen, запомнить название, выбрать из длинного списка именно нужный.
[MTL] вне форума  
 
Непрочитано 14.02.2023, 14:17
#4
valerik88


 
Регистрация: 02.07.2016
Сообщений: 249


Я себе давно такую писал. Работает с любыми блоками.
https://forum.dwg.ru/showthread.php?t=144318
valerik88 вне форума  
 
Автор темы   Непрочитано 14.02.2023, 16:01
#5
[MTL]


 
Регистрация: 09.01.2018
Санкт-Петербург
Сообщений: 30


valerik88, понравилась. Но все вхождения переименовывает. Частенько бывает нужно только одно переименовать.
[MTL] вне форума  
 
Непрочитано 15.02.2023, 10:22
#6
Ingpro


 
Регистрация: 11.07.2022
Сообщений: 494


Цитата:
Сообщение от [MTL] Посмотреть сообщение
Указываете переименовать только выбранный
У переименованного блока точка вставки съезжает и блок улетает вверх-вправо в рус версии AutoCad 2015.
Пишет в командной строке
Команда: -ВСТАВИТЬ Имя блока или [?] <A$C46BC248E>: 26
Единицы: Безразмерный Преобразование: 1.0000
Точка вставки или [Базовая точка/Масштаб/X/Y/Z/ПОворот]:
Введите масштаб по оси X, укажите второй угол или [Угол/XYZ] <1>: 1.000000000000000 Масштаб по оси Y <равен масштабу по X>: 1.000000000000000
Угол поворота <0>: 0.000000000000000

А вообще, очень удобно, что можно переименовать только выбранный блок.
Кстати, если переименовывать все вхождения, то базовая точка остаётся на месте.
Миниатюры
Нажмите на изображение для увеличения
Название: Image 3.png
Просмотров: 56
Размер:	5.0 Кб
ID:	253391  

Последний раз редактировалось Ingpro, 15.02.2023 в 11:31.
Ingpro вне форума  
 
Непрочитано 15.02.2023, 11:51
#7
petro_f

Проектировщик
 
Регистрация: 06.10.2016
СПб
Сообщений: 303
Отправить сообщение для petro_f с помощью Skype™


Цитата:
Сообщение от Ingpro Посмотреть сообщение
У переименованного блока точка вставки съезжает и блок улетает вверх-вправо в рус версии AutoCad 2015.
Пишет в командной строке
Команда: -ВСТАВИТЬ Имя блока или [?] <A$C46BC248E>: 26
Единицы: Безразмерный Преобразование: 1.0000
Точка вставки или [Базовая точка/Масштаб/X/Y/Z/ПОворот]:
Введите масштаб по оси X, укажите второй угол или [Угол/XYZ] <1>: 1.000000000000000 Масштаб по оси Y <равен масштабу по X>: 1.000000000000000
Угол поворота <0>: 0.000000000000000

А вообще, очень удобно, что можно переименовать только выбранный блок.
Кстати, если переименовывать все вхождения, то базовая точка остаётся на месте.
Попробуйте этот лисп. Там есть всё что надо
Команды:
"CB" - Copy & Rename Block Reference.
"RB" - Rename Block Reference.
Вложения
Тип файла: lsp CopyRenameBlockV1-5.lsp (8.2 Кб, 51 просмотров)
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!
petro_f вне форума  
 
Непрочитано 15.02.2023, 12:30
#8
Ingpro


 
Регистрация: 11.07.2022
Сообщений: 494


Цитата:
Сообщение от petro_f Посмотреть сообщение
Попробуйте этот лисп
Спасибо, petro_f, знаю этот лисп, с динамическими тоже не работает. Вроде как переименовывает, но блок превращается в статический, что есть нехорошо.
Есть rename.lsp (автор valerik88, пост#4 ) переименовывает все блоки, сохраняет динамику, но не позволяет переименовать только один выбранный...
Ingpro вне форума  
 
Непрочитано 15.02.2023, 13:03
| 1 #9
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,831


Ingpro, тебе будет проще скопировать твой блок в пустой чертеж, там его переименовать и вставить обратно. Поверь, это будет значительно быстрее и проще.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 15.02.2023, 14:15
#10
Ingpro


 
Регистрация: 11.07.2022
Сообщений: 494


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Ingpro, тебе будет проще скопировать твой блок в пустой чертеж, там его переименовать и вставить обратно
Алексей, так и делаю! Но с лиспом удобнее (в одном чертеже), IMHO.
Считаем количество операций штатными средствами AutoCad:
1. Копируем блок в буфер обмена
2. Открываем новый файл
3. Вставляем блок из буфера
4. Переименовываем
5. Копируем блок с новым именем в буфер обмена
6. Вставляем блок из буфера в исходный файл
А если таких копий надо несколько... (бывает 3-5)

Если лиспом:
1. вызываем команду "Новое имя" (лисп)
2. выбираем блок
3. вводим новое имя - voilà
Просто хотелось обратить внимание автора на небольшой сбой... может это только в рус версии...

Последний раз редактировалось Ingpro, 15.02.2023 в 16:38.
Ingpro вне форума  
 
Автор темы   Непрочитано 15.02.2023, 14:31
#11
[MTL]


 
Регистрация: 09.01.2018
Санкт-Петербург
Сообщений: 30


Ingpro, спасибо
Я это исправил. У меня вроде работает. Проверьте, пожалуйста. Новая версия в заголовке темы.
[MTL] вне форума  
 
Непрочитано 15.02.2023, 15:00
#12
Ingpro


 
Регистрация: 11.07.2022
Сообщений: 494


Цитата:
Сообщение от [MTL] Посмотреть сообщение
Я это исправил. У меня вроде работает
У меня пока без изменений (блок съезжает), если интересно приложу файл с переименованным блоком
Вложения
Тип файла: dwg
DWG 2013
Переименованный.dwg (31.5 Кб, 13 просмотров)
Ingpro вне форума  
 
Непрочитано 16.02.2023, 08:43
#13
petro_f

Проектировщик
 
Регистрация: 06.10.2016
СПб
Сообщений: 303
Отправить сообщение для petro_f с помощью Skype™


Цитата:
Сообщение от Ingpro Посмотреть сообщение
Спасибо, petro_f, знаю этот лисп, с динамическими тоже не работает. Вроде как переименовывает, но блок превращается в статический, что есть нехорошо.
Есть rename.lsp (автор valerik88, пост#4 ) переименовывает все блоки, сохраняет динамику, но не позволяет переименовать только один выбранный...
Что то я в первый раз такое слышу. У меня все блоки переименовывает и они остаются динамическими.
Покажите как у Вас это получается? Что за такие волшебные блоки. Если можно, то дайте пример.
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!
petro_f вне форума  
 
Непрочитано 16.02.2023, 09:37
#14
Ingpro


 
Регистрация: 11.07.2022
Сообщений: 494


Цитата:
Сообщение от [MTL] Посмотреть сообщение
Ingpro
Я это исправил. У меня вроде работает. Проверьте, пожалуйста
[MTL], такая особенность. Только блоки, созданные лиспом mb.lsp "улетают" вправо-вверх.
Блоки, созданные командами AutoCad через буфер ведут себя правильно, т.е. остаются на месте после переименования,
значит ошибки в лиспе НОВОЕ_ИМЯ_v.1.1.LSP нет, а есть что-то некорректное в mb.lsp, который создаёт блоки из выбранных примитивов (лисп приложен). Лисп удобный, но просто не "дружит" с вашим.
Так что, [MTL], не ищите недочёты, и спасибо за программу.
PS. А почему в программе переименования блока фигурирует Точка вставки или Базовая точка,
может быть не должно быть этой зависимости, IMHO? И тогда не будет проблем?
Вложения
Тип файла: lsp mb.lsp (1.5 Кб, 19 просмотров)

Последний раз редактировалось Ingpro, 16.02.2023 в 10:09.
Ingpro вне форума  
 
Непрочитано 16.02.2023, 09:51
#15
Ingpro


 
Регистрация: 11.07.2022
Сообщений: 494


Цитата:
Сообщение от petro_f Посмотреть сообщение
Покажите как у Вас это получается? Что за такие волшебные блоки. Если можно, то дайте пример
В этом файле динамика сохранилась, но сдвинулся текст у переименованного (с помощью CopyRenameBlockV1-5.lsp) блока.
Вложения
Тип файла: dwg
DWG 2013
Волшебные блоки.dwg (701.7 Кб, 19 просмотров)
Ingpro вне форума  
 
Непрочитано 16.02.2023, 11:26
#16
gumel


 
Регистрация: 20.04.2011
Сообщений: 402


Вот, отличное решение, переименование блока по клику на него.
Макрос на кнопку: ^C^P-rename;_b;(vla-get-effectivename (vlax-ename->vla-object (car(entsel))));
gumel вне форума  
 
Непрочитано 16.02.2023, 11:35
#17
Ingpro


 
Регистрация: 11.07.2022
Сообщений: 494


Цитата:
Сообщение от gumel Посмотреть сообщение
Макрос на кнопку:
Спасибо, в виде лиспа ведь тоже можно записать (не пользуюсь кнопками, с клавиатуры удобнее)?
Ingpro вне форума  
 
Непрочитано 16.02.2023, 11:39
#18
petro_f

Проектировщик
 
Регистрация: 06.10.2016
СПб
Сообщений: 303
Отправить сообщение для petro_f с помощью Skype™


Цитата:
Сообщение от Ingpro Посмотреть сообщение
В этом файле динамика сохранилась, но сдвинулся текст у переименованного (с помощью CopyRenameBlockV1-5.lsp) блока.
А вызвать стандартную команду автокада (command "_ATTSYNC" "_select") не судьба? Это же стандартное поведение, при работе с блоками содержащие атрибуты
__________________
Если ты разговариваешь с идиотом - убедись что он не занят тем же!
petro_f вне форума  
 
Непрочитано 16.02.2023, 11:49
#19
Ingpro


 
Регистрация: 11.07.2022
Сообщений: 494


Цитата:
Сообщение от petro_f Посмотреть сообщение
А вызвать стандартную команду автокада (command "_ATTSYNC" "_select")
Спасибо, теперь буду знать. Раньше не было надобности в этой команде.
Ingpro вне форума  
 
Непрочитано 18.02.2023, 22:15
#20
Barmaley Bubusikin


 
Регистрация: 05.06.2014
Сообщений: 77


Программа не показывает текущее имя. Точнее показывает, что блок анонимный. Это так и должно быть?
Barmaley Bubusikin вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > Lisp. Переименование блока

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LISP. Создание выноски с атрибутом блока. DmitriyBastr LISP 26 17.01.2023 16:03
Lisp. Cтранное поведение блока после vla-put-Thickness sdv79 LISP 29 20.03.2015 16:32
Lisp. Как добраться до подсказки атрибута блока молодой человек LISP 8 25.11.2010 09:20
Переименование блока вместе с аттрибутами? Mikhail AutoCAD 5 05.08.2004 20:59
возможно ли переименование внутреннего блока? Visla AutoCAD 3 04.03.2004 18:58