|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
Регистрация: 13.12.2007
Сообщений: 10
|
Profan, я сходил сюда: dwg.ru/art/2, но сюда по скрипту, который приводится там в качестве примера, вставляется внутренний библиотечный объект, а не фрагмент внешнего файла. Не подскажете с этого места поподробнее: как в окне скрипта кнопки прописать либо вставку из внешнего, созданного мной ранее файла с подписью, состоящей из линий, а не "отсканеной картинки", либо как добавить свою подпись в библиотеку autoCAD
|
|||
![]() |
|
||||
Инженер-теплотехник Регистрация: 17.08.2006
Смоленск
Сообщений: 308
|
>> Робин Бобин
Самый простой вариант макроса на кнопку: ^C^C_.-INSERT;<путь к файлу>;\1;1;0; Вместо пути поставить например "D:/Подпись/Робин Бобин.dwg" В файле должна быть только подпись, причем не блоком а линиями (сплайном или чем там еще) и больше ничего. Если все сделано правильно, в указанное место должен вставиться блок с именем = имени файла подписи. Как уже сказал Profan, посмотрите работу команды INSERT в режиме командной строки и раздел справки по макросам (например "macros, special character codes for commands, table of") Заодно задам знатокам интересующий меня вопрос. Допустим в отдельном файле есть куча блоков (библиотека блоков так сказать). Как можно программно (макрос на кнопке, лисп) вставить один из этих блоков в другой открытый файл не открывая библиотечного файла? Командой INSERT вставляется весь файл с блоками, приходится их потом удалять. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
"Втупую" и без проверок даже на правильность скобок:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер-теплотехник Регистрация: 17.08.2006
Смоленск
Сообщений: 308
|
>> Кулик Алексей aka kpblc
Да, примерно такую конструкцию я и использую. Только после неё приходится добавлять строчку (command "_.-PURGE" "_b" "*" "_n") и получать в комстроке сообщения о зачистке файла, что нежелательно, поскольку туда у меня выводится свой отчет (программа работает на автомате, отчет нужен для контроля правильности вставки блоков). CMDECHO=0 почему-то в этой ситуации не работает. Вот и появляется другой вопрос: как блокировать вывод сообщений в комстроку командой PURGE? |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
Не проверял, но для purge я б попробовал нечто типа
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
О! Между делом, поиграйся с nomutt
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер-теплотехник Регистрация: 17.08.2006
Смоленск
Сообщений: 308
|
Хм, замутили. Да собственно, программа эта и делалась чтобы подписи в штамп вставлять.
>> Кулик Алексей aka kpblc Хотелось бы обойтись без команд, но пока не знаю как сделать вставку блока из файла-библиотеки без INSERTa. По крайней мере это проще, чем через vla-функции. Вот что это за функция такая vla-purgeall. В книге по Auto- VisualLISPу сами знаете кого есть только коротенькое описание "удаление из рисунка неиспользуемых слоев, описаний блоков и т.п.". А подробнее, есть ли vla-purgewithfilter например? Хотя, есть список наименований блоков, наверное можно попробовать удалять их из таблицы описаний блоков. Кстати NOMUTT не помогло, сообщения "deleting block такой-то" продолжают появляться. Уже просто интересно становится, можно избавиться от них или нет. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
vla-purgeall - аналог (command "_.purge" "_a" <И далее по тексту>)
А если попробовать одновременно выставить и cmdecho в 0, и nomutt в 1, чего получится? Лично я вижу несколько вариантов вставки определенного блока из файла-библиотеки, но все они "не так просты, как хотелось бы" по сравнению с (command). Рассмотрю только лисповую их реализацию, поскольку VBA меня только запутает, боюсь. Вариант 1. Через (vla-InsertBlock) вставляется блоком вся библиотека в точку, например, '(0. 0. 0.). Вставленный блок тут же удаляется (но не очищается). Проход по всей коллекции блоков с исключением "нужного" имени блока и попыткой удаления всех остальных. Как вариант можно посмотреть http://jtbworld.com/lisp/purger.htm Вариант 2. Через ObjectDBX открывается файл библиотеки блоков, оттуда с помощью vla-CopyObjects копируется описание нужного блока, файл библиотеки закрывается. Код по работе с ObjectDBX Fatty показывал не раз и не два; насчет некоторых проблем, связанных с использованием ObjectDBX, я рассказывал здесь. purgewithfilter
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер-теплотехник Регистрация: 17.08.2006
Смоленск
Сообщений: 308
|
>> Кулик Алексей aka kpblc
Извини, что так поздно отвечаю, интернета в выходные практически нет. cmdecho=0 задается в начале программы, nomutt=1 ввел вручную до запуска программы - все равно выводятся сообщения о удалении блоков. Похоже внутри PURGE эхо устанавливается в 1, или вывод идет через princ. Спасибо за ссылку, ax ![]() Если вставлять через vla-InsertBlock именно библиотеку блоков (т.е. файл, в котором уже определены блоки с точно известными именами), то его можно будет не только удалить, но и зачистить. Ведь в файле останутся описания блоков, которые входили в большой блок-библиотеку. PS: Орригинальный прикол получился с программой (ax: purge-block). |
|||
![]() |
|
||||
архитектор Регистрация: 21.08.2003
Москва
Сообщений: 3,587
|
Комманду sketch попробуй.
Лично мне приятно ставить свою "живую" подпись на свои чертежи в любом количестве экземпляров. А директора тащат по всем чертежам и копиям только лохи. От него требуется подпись только на титульном листе и на листе генплана если таковой имеется в проекте. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Net. Создание и модификация материала | Павлюкас | Готовые программы | 27 | 08.12.2010 10:17 |
Подписи к объектам | Kotsar | AutoCAD | 4 | 12.04.2007 19:52 |
Владимир Свет "AutoCAD: язык макрокоманд и создание кно | niki | AutoCAD | 4 | 04.02.2005 14:51 |
Одна из целей: Создание экспертных систем на базе AutoCAD. | Сергей Юрьевич | Программирование | 9 | 01.01.2005 15:17 |