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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Как в Lisp-е переопределить блок?

Как в Lisp-е переопределить блок?

Ответ
Поиск в этой теме
Непрочитано 24.03.2008, 15:02 #1
Как в Lisp-е переопределить блок?
elena_k
 
Регистрация: 15.02.2008
Сообщений: 32

Подскажите, пожалуйста, как в LISP-e переопределить блок. Указываю точный путь, но переопределения не происходит, вставляется старый. В диалоговом режиме - все работает, в программном - нет. Помогите, пожалуйста, а то поменялся логотип предприятия, нужно открывать сотни чертежей. Заранее спасибо.
Просмотров: 6468
 
Непрочитано 24.03.2008, 15:27
#2
Alaspher


 
Регистрация: 11.10.2004
e•burg
Сообщений: 755


В простейшем варианте:
Код:
[Выделить все]
(vl-cmdf "_.-insert" "blockname=c:/path/filename.dwg" "_y")(vl-cmdf)
Alaspher вне форума  
 
Автор темы   Непрочитано 24.03.2008, 15:39
#3
elena_k


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


Увы....Переопределения не происходит, вставляется старый блок
elena_k вне форума  
 
Непрочитано 24.03.2008, 15:49
#4
Alaspher


 
Регистрация: 11.10.2004
e•burg
Сообщений: 755


Он, при такой конструкции, вообще не должен вставляться... Проверь имена и пути - слэши нужны именно такие, как в примере, а не обратные.
Alaspher вне форума  
 
Автор темы   Непрочитано 24.03.2008, 16:39
#5
elena_k


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


Все проверила, но блок не обновляется. Заблудилась в трех соснах. Где тут может быть ошибка, ума не приложу. Когда удаляю блок из чертежа, делаю PURGE, новый блок появляется в списке блоков. А при наличии старого- переопределение не происходит. ЧТО-ЖЕ ТАКИ ДЕЛАТЬ?

Последний раз редактировалось elena_k, 24.03.2008 в 16:57.
elena_k вне форума  
 
Непрочитано 24.03.2008, 16:59
#6
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Распакуй приложенный архив, и выполни инструкцию в файле "Чертеж в котором надо заменить блоки.dwg". Может так будет понятней.
Вложения
Тип файла: zip pack.zip (23.9 Кб, 161 просмотров)
Makswell вне форума  
 
Непрочитано 24.03.2008, 17:44
#7
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,840


Ну как вариант - вначале старый удалять?
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 24.03.2008, 19:31
#8
Alaspher


 
Регистрация: 11.10.2004
e•burg
Сообщений: 755


Цитата:
Сообщение от elena_k Посмотреть сообщение
ЧТО-ЖЕ ТАКИ ДЕЛАТЬ?
Начать с выкладывания кода в форум...
Alaspher вне форума  
 
Автор темы   Непрочитано 25.03.2008, 09:00
#9
elena_k


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


Спасибо, все получилось, имя старого блока набила с .dwg. Ужас какой! Понедельник был как понедельник. Большое спасибо всем за участие и терпение.
elena_k вне форума  
 
Непрочитано 03.04.2008, 15:36
#10
Shoorup


 
Регистрация: 16.09.2006
Минск
Сообщений: 1,587
<phrase 1= Отправить сообщение для Shoorup с помощью Skype™


Столкнулся с тойже проблемой но только с динамическими блоками.
В выложеном примере потренировался - все отлично происходит а когда тоже самое проделываю с динамическими блоками выдает ошибку что блок ссылается сам на себя. Даже если название блока сделать не таким как файл всеравно выдает ту же ошибку.
Выкладываю пример своего блока и то что я пишу в командной строке
Вложения
Тип файла: rar Sh.rar (56.4 Кб, 113 просмотров)
__________________
Поезд который устал от ржавого здравомыслия рельсов...
Shoorup вне форума  
 
Непрочитано 04.04.2008, 15:14
#11
Alaspher


 
Регистрация: 11.10.2004
e•burg
Сообщений: 755


Цитата:
Сообщение от Shoorup Посмотреть сообщение
Столкнулся с тойже проблемой но только с динамическими блоками.
От "динамичности" это не зависит (вроде бы). В твоём случае, это будет так (варианты):
Код:
[Выделить все]
(vl-cmdf "_.-insert" "блок=" "_y")(vl-cmdf)
(vl-cmdf "_.-insert" "блок=./блок.dwg" "_y")(vl-cmdf)
(vl-cmdf "_.-insert" "блок=полный_путь/блок.dwg" "_y")(vl-cmdf)

Последний раз редактировалось Alaspher, 04.04.2008 в 15:20.
Alaspher вне форума  
 
Непрочитано 04.04.2008, 18:07
#12
Shoorup


 
Регистрация: 16.09.2006
Минск
Сообщений: 1,587
<phrase 1= Отправить сообщение для Shoorup с помощью Skype™


Alaspher, не работает (вроде бы)
__________________
Поезд который устал от ржавого здравомыслия рельсов...
Shoorup вне форума  
 
Непрочитано 07.04.2008, 07:44
#13
Alaspher


 
Регистрация: 11.10.2004
e•burg
Сообщений: 755


Первый вариант переопределяет блок, который имеет одинаковое имя с файлом, который автокад находит по путям поддержки или в текущей директории (обычно - директория редактируемого файла, но без гарантии).
Второй вариант переопределяет файлом, который находится в текущей директории (имя файла может быть любым).
Третий вариант переопределяет блок произвольным файлом расположенным в произвольном месте.

Обрати внимание на то, какие слэши используются в путях. Все варианты предварительно проверены, все - работают, по крайней мере в 2008-ом.
Alaspher вне форума  
 
Непрочитано 22.05.2008, 09:50
#14
Shoorup


 
Регистрация: 16.09.2006
Минск
Сообщений: 1,587
<phrase 1= Отправить сообщение для Shoorup с помощью Skype™


Для полного счастья мне не хватает только кнопки, которая будет из моей папки с динамическими блоками (постоянно изменяемыми) переобпределять в любом моем чертеже д.блоки. Как сделать такую кнопку?
В папке содержиться куча файлов с динамическими блоками. В чертеже эти блоки вставлены. Лисп должен проанализировать какие блоки вставлены, найти их в этой папке и заменить вхождение блока в чертеже.
__________________
Поезд который устал от ржавого здравомыслия рельсов...
Shoorup вне форума  
 
Непрочитано 22.05.2008, 09:59
#15
Кулик Алексей aka kpblc
Moderator

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


Ни себе фига задачка... Пиши в ПМ, пообщаемся.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 14.05.2009, 12:51
#16
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Меня тоже заинтересовала задача из поста 14.

Shoorup, Алексей, получилось ли общение в ПМ плодотворным?
Makswell вне форума  
 
Непрочитано 17.09.2011, 01:09
#17
Eddicordo

КИП и А
 
Регистрация: 28.04.2010
Киев
Сообщений: 101
<phrase 1=


Всем привет
Shoorup, Кулик Алексей aka kpblc,
Ну что как лисп по 14 посту получился? Аж самого заинтересовало
Eddicordo вне форума  
 
Непрочитано 17.09.2011, 01:42
#18
Кулик Алексей aka kpblc
Moderator

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


Если честно, то чем закончилось - не помню. В последних версиях AutoCAD уже есть функция обновления блока (правда, через палитру инструментов). Так какой смысл писать программу, которая уже есть?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 20.09.2011, 01:23
#19
Eddicordo

КИП и А
 
Регистрация: 28.04.2010
Киев
Сообщений: 101
<phrase 1=


Кулик Алексей aka kpblc,
Разговор шел не про обновлении ОДНОГО блока, а переопределить сразу всех блоки исходя из оригинала (шаблона).
Шаблон с блоками - это файл dwt или dwg с большим количеством дин блоков.
А через палитру можно обновить по одному блоку и это долго если у человека много чертежей, которые требуют обновления всех блоков. А если не все блоки надо обновлять то еще надо знать какие имеенно блоки переопределять.
Вот и говорили про то, чтобы одной кнопкой указать исходиники с блоками или дин блоками, и согласно источника обновить все блоки на рабочий чертеж.
Вот это понесло меня в 00:00 ночи )))
Eddicordo вне форума  
 
Непрочитано 13.08.2019, 16:37
#20
allar8


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Если честно, то чем закончилось - не помню. В последних версиях AutoCAD уже есть функция обновления блока (правда, через палитру инструментов). Так какой смысл писать программу, которая уже есть?
Хотелось бы не через палитру а через командную строку, чтоб в макрос закинуть
allar8 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Как в Lisp-е переопределить блок?

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Мониторы LCD CRT Разное 94 17.06.2008 10:51
Как повесить блок вентиляции float Конструкции зданий и сооружений 12 23.01.2008 16:59
БРЕД СИВОЙ КОБЫЛЫ Kryaker Разное 1876 29.12.2006 23:41
Как програмно запихнуть в блок все примитивы Хотабыч Программирование 4 06.05.2006 21:03
Как создать блок с подвижным элементом? Pave1 Динамические блоки 10 21.04.2006 15:51