Sorry, you have been blocked
This website is using a security service to protect itself from online attacks. The action you just performed triggered the security solution. There are several actions that could trigger this block including submitting a certain word or phrase, a SQL command or malformed data.
What can I do to resolve this?
You can email the site owner to let them know you were blocked. Please include what you were doing when this page came up and the Cloudflare Ray ID found at the bottom of this page.
Cloudflare Ray ID: 7c81f260d8a97891 • Your IP: Click to reveal 138.199.34.31 • Performance & security by Cloudflare
Вопросы и ответы. Как можно быстро заменить один блок на другой?
В AutoCAD Architecture and MEP toolsets можно быстро заменить один блок на другой. Для этого выполните следующие действия:
- Выберите вкладку «Инструменты отображения» панель «Определение блока» «Изменить блок»
. - Выберите блок для замены и нажмите клавишу ENTER.
- Введите имя блока, который будет использоваться.
Замена блоков в Автокаде
В статье «Особенности использования блоков в Автокаде» рассмотрено, как при редактировании описания блока все остальные его вхождения на чертеже автоматически изменяются. Бывают случаи, когда нужно не просто отредактировать исходный блок, а полностью его заменить. Чтобы при этом все вхождения на чертеже тоже изменились (или заменилась лишь конкретная часть вхождений определенного блока).
Задача нестандартная. Но иногда в AutoCAD замена блока является необходимым условием для корректного выполнения проекта. Есть несколько способов, как это можно сделать:
Замена блоков в Автокаде.
- Скачайте исходный файл AutoLISP-приложения «ЗАМЕНА.lsp» (после скачивания разархивируйте его).
- Переместите файл на своем компьютере в удобное место. Имейте в виду, что при загрузке этого файла в AutoCAD будет сохраняться путь, поэтому изменение его местоположения в последующем нежелательно.
- В Автокаде перейдите на вкладку «Управление» → панель «Приложения» → команда «Загрузить приложения».
Рис. 1. Инструмент AutoCAD «Загрузить приложение».
Откроется диалоговое окно, как показано на рис. 2. Далее находите ранее сохраненный файл «ЗАМЕНА.lsp» и нажимаете «Загрузить».

Рис. 2. Загрузка/выгрузка приложений AutoCAD.
ПРИМЕЧАНИЕ: Может появиться окно с предупреждением о том, что «обнаружен исполняемый файл вне указанных доверенных местоположений. Дальнейшие действия?». Нажмите «Загрузить».
Все готово. Для вызова команды достаточно прописать в командной строке «ЗАМЕНА» (см. рис. 3).

Рис. 3. Вызов команды AutoCAD «Замена».
Далее нужно выбрать объекты, которые следует заменить. Нажать Enter, после чего указать объект-образец (т.е. тот объект, на который мы хотим заменить). Данная команда работает не только с блоками, но и с другими объектами AutoCAD.
Чтобы заменить блок в Автокаде, пользуйтесь следующим алгоритмом:
- Выделите блок, который нужно заменить.
- Если вхождений данного блока на чертеже несколько, то нажмите ПКМ и выберите «Выбрать подобные». Все вхождения этого блока автоматически выделятся.
- В командной строке пропишите «ЗАМЕНА».
- С помощью мышки укажите в рабочем пространстве блок, на который нужно все заменить, т.е. объект-образец. Нажмите Enter.
ПРИМЕЧАНИЕ: Ознакомьтесь с видеоуроком, в котором я показываю, как можно быстро вызвать команду «Выбрать подобные». (см. урок «Псевдонимы команд AutoCAD»).
Замена одного блока на другой
Господа тут такая проблема в чертеже необходимо поменять часть условных обозначений на другое. Как это сделать. Удалять и вставлять по новой скучно (больше 100 шт). Т е. необходимо часть блоков (например "свая1") поменять на другой блок (например "свая2).
#2 Ответ от Leonid_01 26 апреля 2003г. 08:08:51
- На форуме с 13 февраля 2003г.
- Сообщений: 22
- Спасибо: 0
Re: Замена одного блока на другой
Если это у тебя блок, то необхродимо его отредактировать: Редактировать-Блоки и внешние ссылки-Редактирование вхождений. Выбираешь нужный блок, затем элементы, входящие в него и производишь необходимые изменения. После завершения нажимаешь на панели "Редактирование вхождений" кнопку "Сохранить изменения" — и у тебя автоматически заменятся все блоки.
#3 Ответ от MS 26 апреля 2003г. 13:24:11
- На форуме с 16 апреля 2003г.
- Сообщений: 35
- Спасибо: 0
Re: Замена одного блока на другой
Поменять блоки (и вообще любые свойства объектов по запросу) можно в Autocad Map'е
#4 Ответ от ABoltrushko 26 апреля 2003г. 13:25:07
- На форуме с 26 февраля 2003г.
- Сообщений: 366
- Спасибо: 1
Re: Замена одного блока на другой
Такие возможности есть в Express Tools
#5 Ответ от Vlad 26 апреля 2003г. 20:05:37
- На форуме с 28 февраля 2003г.
- Сообщений: 8
- Спасибо: 0
Re: Замена одного блока на другой
> Leonid
мне необходимо поменять не все блоки данного типа на другой, а только часть.
По поводу Express Tools меня почемуто скачаный с этого сайта не устанавливается(после установки нет файла меню в папке с Express-ом)
#6 Ответ от Oleg 26 апреля 2003г. 22:35:59
- На форуме с 21 июня 2002г.
- Сообщений: 50
- Спасибо: 0
Re: Замена одного блока на другой
Скопировать блок — запомнить точку привязки блока — разбить блок — отредактировать — создать блок с тем же именем и привязкой — переопределить!
#7 Ответ от Vlad 27 апреля 2003г. 15:34:08
- На форуме с 28 февраля 2003г.
- Сообщений: 8
- Спасибо: 0
Re: Замена одного блока на другой
> Oleg.
Перечисленные тобой операции можно провести с одним блоком, а не с сотней( ведь мне надо переопределить не все блоки данного типа, а только часть)
#8 Ответ от VH 27 апреля 2003г. 17:11:02
- На форуме с 14 июня 2001г.
- Сообщений: 1,381
- Спасибо: 7
Re: Замена одного блока на другой
(defun C:CHINSERT ()
(setq new_name (getstring "\nNew block name: "))
(if (tblsearch "BLOCK" new_name)
(while (setq e (car (entsel "\nSelect Block Reference: ")))
(if (= (cdr (assoc 0 (setq d (entget e)))) "INSERT")
(entmod (subst (cons 2 new_name)(assoc 2 d) d))
(prompt "\nThis is NOT Block Reference.")))
(prompt (strcat "\nBlock " new_name " NOT found.")))
(prin1)
)
Пока указываете на экземпляры блоков, они меняют имя и, соответственно, внешний вид.
#9 Ответ от Vova 27 апреля 2003г. 17:48:05
- На форуме с 12 июля 2002г.
- Сообщений: 636
- Спасибо: 9
Re: Замена одного блока на другой
VH> как решается вопрос с точкой вставки блока? Твоя программа вставляет новый блок вместо старого в ту же точку а помечается старый блок в любом месте? А как же с именами обоих блоков, ведь старый надо сохранить?
#10 Ответ от VH 28 апреля 2003г. 09:59:26
- На форуме с 14 июня 2001г.
- Сообщений: 1,381
- Спасибо: 7
Re: Замена одного блока на другой
Механизм блоков в AutoCADе устроен следующим образом: есть ОПИСАНИЕ блока (которое хранится в Таблице Блоков) и ЭКЗЕМПЛЯРЫ блока (которые являются графическими примитивами в чертеже). Экземпляр блока среди своих данных содержит имя блока, которое собственно и меняется (при этом внешний вид меняется соответственно). Так что программа не "вставляет новый блок вместо старого", а подменяет один другим (кстати, при этом Атрибуты остаются "старые"). Описание "старого" блока хранится в Таблице, ничуть не изменяется и может быть использовано для вставки Экземпляра в любой момент. Разрешите напомнить, что Описание сохраняется и при отсутствии Экземпляров (что приводит к "темной массе" в чертеже и множеству вопросов о том, как эту "массу" убить).
Так как сведения о точке вставки программой не меняются, разумеется, "новый" Экземпляр располагается в чертеже там же, где и "старый".
". помечается старый блок в любом месте. " — функция (entsel) не выбирает объекты, входящие в состав блока, и воспринимает Экземпляр блока как единое целое.
#11 Ответ от VladSh 28 апреля 2003г. 16:42:40
- На форуме с 14 ноября 2002г.
- Сообщений: 85
- Спасибо: 0
Re: Замена одного блока на другой
anita/pdm/etv1-9.exe
Команда "Replace block with another block".
Есть ещё прикольная "Convert block to &xref".
#12 Ответ от Vova 29 апреля 2003г. 05:34:01
- На форуме с 12 июля 2002г.
- Сообщений: 636
- Спасибо: 9
Re: Замена одного блока на другой
VH> Это новая требующая отладки программа или уже отработанная?
1. программа заменяет блок у его атрибутов (?) другим блоком, старые атрибуты принадлежат теперь новому блоку и располагаются поэтому в случайном месте, не привязанном к новой форме. Если новый блок имел свои атрибуты то они исчезают. По-видимому эта программа разработана для какого-то частного случая.
2. Почему команда UNDO убирает две последние операции а не одну? Или у меня глючит? Но именно с этой программой.
3. Для блоков без атрибутов работает четко, всего один щелчок и блок заменен, причем точки вставки сохраняются.
4. Можно сделать макрос с комбинацией insert+ erase, но это потребует двух щелчков на одну замену.
5. Все автокадовские команды по замене блока другим, как из Express, так и старая команда -Insert с опцией "=" заменяют блоки глобально, все сразу, поэтому Vlad'у надо работать либо вручную, либо программой VH.
#13 Ответ от VH 29 апреля 2003г. 09:33:20
- На форуме с 14 июня 2001г.
- Сообщений: 1,381
- Спасибо: 7
Re: Замена одного блока на другой
Уважаемый Vova, программа эта написана по вопросу Vlad и выполняет то, что ему и требуется — подменяет имя блока в указанном экземпляре (в вопросе про атрибуты ни слова нет).
Что такое "требующая отладки программа" я не понимаю, ибо структурное программирование утверждает, что программа пишется по шаблону языка программирования на основе спроектированоого алгоритма и либо содержит правильную запись алгоритма (и тогда она правильна), либо не содержит (и тогда ее надо не "отлаживать", а переписывать), правильность изложения алгоритма доказывается математически, а никак не тестированием.
1. Block Reference(INSERT) и Атрибуты(ATTRIB) представляют собой цепочку примитивов, которая завершается примитивом SEQEND. Следовательно, вся цепочка Атрибутов сохраняется. В принципе можно создавать Экземпляры того же самого блока с _различными_ наборами Атрибутов (независимыми от Определения блока). Атрибуты "нового блока" не исчезают, а просто не создаются (ибо задания на это в вопросе нет).
2. Вероятно, следует управление UNDO включить в программу (что-нибудь типа UNDO Group / UNDO End).
3. Что и требовалось.
4. Можно сделать другую программу (с одним щелчком) — сообщите, что требуется.
5. Полагаю, что Vlad пришлет сообщение.