|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Замена одного блока другим
Бат-Ям
Регистрация: 14.06.2009
Сообщений: 295
|
||
Просмотров: 38648
|
|
||||
Инженер дорожник Регистрация: 22.10.2007
Израиль
Сообщений: 1,855
|
Продолжим здесь, здесь даже лучше не искажается код. Нужно пороробовать. Вижу тут есть окно DCL.
P.s.В окне DCL есть три строки. Набор блоков на замену и масштаб. Но нужно выбрать блок на чертеже который заменить. С эти не понятно. Вот прилагаю растр. я перед эти запускал программу в пустом чертеже, в чертеже с набором блоков открывается список блоков чертежа. Но по моему программа заменит все выбранные блоки данного типа на другой тип блока? Последний раз редактировалось Valery Brelovsky, 13.06.2010 в 07:06. |
|||
![]() |
|
||||
Регистрация: 14.06.2009
Бат-Ям
Сообщений: 295
|
Ух ты. Давно не заглядывал сюда. Запуск b2b. В первой колонке выбираем имя блока который хотим заменить. Во второй колонке выбираем имя блока на который хотим заменить. Жмём OK и выбираем блоки которые хотим заменить. Или выбираем весь чертёж, выберутся только блоки с указаным именем.
|
|||
![]() |
|
||||
Цитата:
Ошибка Команда: _appload Replace block.LSP успешно загружено. Команда: ; ошибка: no function definition: B_IN |
||||
![]() |
|
||||
Наверное поторопился с ответом что работает (то есть до этого запустил окошко и закрыл дальше не проверял) .
Сегодня как раз нужно было заменить блоки на другие. Делаю так Запуск b2b. В первой колонке выбираем имя блока который хотим заменить. Во второй колонке выбираем имя блока на который хотим заменить. Жмём OK и выбираем блоки которые хотим заменить. В итоге он не выбирает блоки. Команда: b2b _.undo Текущие настройки: Авто = Вкл, Управление = Все, Объединить = Есть, Слой = Есть Количество отменяемых операций или [Авто/Управление/Начало/Конец/Метка/Обратно] <1>: _begin Команда: Выберите объекты: найдено: 0 Выберите объекты: Противоположный угол: найдено: 0, всего: 0 Выберите объекты: Противоположный угол: найдено: 0, всего: 0 Выберите объекты: Противоположный угол: найдено: 0, всего: 0 Выберите объекты: _.undo Текущие настройки: Авто = Вкл, Управление = Все, Объединить = Есть, Слой = Есть Количество отменяемых операций или [Авто/Управление/Начало/Конец/Метка/Обратно] <1>: _end Команда: nil |
||||
![]() |
|
||||
Инженер-строитель Регистрация: 09.07.2010
Санкт-Петербург
Сообщений: 1,994
|
Цитата:
![]() Последний раз редактировалось crosandr, 02.03.2012 в 14:45. |
|||
![]() |
|
||||
А можно сделать что бы работало с массивом блоков (minsert)? Массив блоков - блоки, вставленные minsert а не insert, с расстоянием между рядами и колонками
>>Как заготовка - m2m. "2"-входящий, "M4402"-исходящий. Поставьте свои названия блоков. Не работает, разбираться неуспеваю, нужен готовый лисп, наподобие blockreplace из expresstools (у меня они не установлены просто) Последний раз редактировалось baaba, 20.06.2012 в 17:34. |
||||
![]() |
|
||||
Выкладываю пример. Блок s1 вставлен коммандой minsert. Надо всё заменить на s2. Вашей программой получается в результате один блок s2, вместо массива блоков 3х3, что обидно. Впрочем я установил экспресы, теперь всё заработало (ExpressTools > blockreplace)
|
||||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Оле, Называется это drag-and-drop. Альтернатива - команда _appload. Загрузка lisp файла В твоем случае vlx и lsp файл одно и то же
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Регистрация: 12.06.2010
Сообщений: 1
|
Может кому поможет?
;;; Автор новой редакции старейшей программки ;;; Филимонов Г.Н. hennic@mail.ru ;;; Замена одного блока другим во всем рисунке ;;; или на указанном слое (defun C:BBA (/ s1 s2 la ss st vt) (setq s1 (getstring "\nЗамена блока на блок. \nЗадай имя заменяемого блока...: ")) (setq s2 (getstring "\nЗадай имя нужного блока...: ")) (setq la (getstring "\nСлой, где заменить блок или <На всех слоях>: ")) (if (/= la "") (setq ss (ssget "x" (list (cons 2 s1) (cons 8 la)))) (setq ss (ssget "x" (list (cons 2 s1)))) ) (setq st (ssname ss 0)) (while st (setq ss (ssdel st ss)) (setq vt (entget st)) (setq vt (subst (cons 2 s2) (assoc 2 vt) vt)) (entmod vt) (setq st (ssname ss 0)) ) (setq ss nil) (prin1) ) Имеется и пакетная замена одной группы простейших блоков на другую группу. |
|||
![]() |
|
||||
Offtop: И чего Victor парился, диалоги составлял какие-то? Фигней вы тут страдаете, товарищи. Вот Hennic в 20 строчек кода уложился! Вот так надо! Ничего лишнего! У вас русский автокад? Это ваши проблемы! Эскейп? Не, не слышал. Initget? Для чайников! Вы не помните названий блоков в чертеже наизусть? Тренируйте память и не морочьте голову программисту!
К чему я это? Почитайте http://forum.dwg.ru/announcement.php?f=29&a=3 Добро пожаловать на dwg.ru ![]() |
||||
![]() |
|
||||
Регистрация: 14.06.2009
Бат-Ям
Сообщений: 295
|
Да ладно. У меня это тоже была проба пера. В нашем мире такая прога совершенно бесполезная, ввиду отсутствия безатрибутных блоков. Делал другую, т.к. задачи другие: 1 атрибут в 6, 2 в 1, и.т.п.
__________________
... а Автокад то - голый |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
Практически гарантирую: кавардак с точками вставки блоков.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
Почему "безнадежно"? Исправь базовые точки в новых блоках - вот и все.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Регистрация: 22.03.2012
Сообщений: 1
|
У кого-нибудь работает данный LISP (FRTO) в 2017-ом автокаде?
Беда, неожиданно перестал работать данный лисп. Пишет: Цитата:
Последний раз редактировалось alkrymov, 19.08.2016 в 17:26. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Меняется масштаб блока при копировании с одного чертежа на другой. | Jeriko | AutoCAD | 23 | 28.12.2016 16:09 |
LISP: Переименование одного из вхождений блока | Кочетков Андрей | Готовые программы | 23 | 13.02.2015 09:12 |
Замена цвета блока или блока на блок | maximator | Программирование | 25 | 24.09.2009 16:02 |
Замена простого блока на динамический | Vova | Программирование | 5 | 11.05.2009 22:02 |
Несущие стены или колонны? Приимущества одного перед другим? | Wlady | Конструкции зданий и сооружений | 23 | 17.01.2009 07:26 |