| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
17.07.2015, 07:51 | #1 | |
Autolisp внесение дополнений в дескриптер файла
Регистрация: 24.06.2009
Сообщений: 94
|
||
Просмотров: 2185
|
|
||||
Регистрация: 17.06.2010
Сообщений: 438
|
Работа с неактивным документом
http://autolisp.ru/2010/04/08/procee...tive-document/ ObjectDBX Wrapper http://www.lee-mac.com/odbxbase.html |
|||
|
||||
Регистрация: 24.06.2009
Сообщений: 94
|
Цитата:
|
|||
|
||||
Регистрация: 17.06.2010
Сообщений: 438
|
Забудьте про дескриптор - в autolisp он нужен только для простых операций с файлом типа считать/записать строку, для работы с документом dwg он абсолютно не подходит. В ссылках выше указано, как работать с неактивным документом через odbx и vla-объект документа. Что можно сделать с этим объектом и как через него работать с примитивами чертежа читайте в Autocad ActiveX Reference.
Насчет переменных. Lisp приложение всегда выполняется в контексте активного документа, соответственно, все переменные будут определены только в нем. Чтобы переносить переменные и данные между активными документами, надо использовать функции vla-bb-set, vla-bb-ref - эти переменные будут доступны, пока не будет закрыт сам Autocad. |
|||
|
||||
Регистрация: 24.06.2009
Сообщений: 94
|
Цитата:
----- добавлено через ~5 ч. ----- Цитата:
Открываю автокад с пустым файлом (setq papka3 (getstring T "\n Введите путь к папке3")) ;вводим путь папки шаблонов U:\Автоматизация проекта\Шаблоны форматов (vl-bb-set 'papka4 papka3) ;даем новое значение для работы в других файлах (command "_sdi" 1) (setq Ch1 (command "_open" "_no" (strcat papka1 "\\01-00.00.000 СБ-Опорные элементы.dwg") (strcat papka1 "\\01-01.00.002-Косынка.dwg"))) ;открывается файл косынки и становиться активным (setq papka5 (vl-bb-ref 'papka4)) ;считываю путь папки и задаю новую ей переменную (command "_layout" "_template" (strcat papka5 "\\A4v-1.dwt") "A4") а вот тут все встает, он определяет этот путь но ничего не делает, наверное из за того что при открытие этого файла первоначальный принудительно закрылся. Попробывал иначе: Открываю автокад с пустым файлом (setq papka3 (getstring T "\n Введите путь к папке3")) ;вводим путь папки шаблонов U:\Автоматизация проекта\Шаблоны форматов (vl-bb-set 'papka4 papka3) ;даем новое значение для работы в других файлах (command "_sdi" 0) (setq Ch1 (vla-open (vla-get-Documents (vlax-get-acad-object)) (strcat papka1 "\\01-01.00.002-Косынка.dwg") :vlax-false " ")) ;открывается файл косынки но не становится активным (setq papka5 (vl-bb-ref 'papka4)) ;считываю путь папки и задаю новую ей переменную (command "_layout" "_template" (strcat papka5 "\\A4v-1.dwt") "A4") и снова не то, он этот шаблон ставит в активный файл. Подскажите что не так? |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
DENBASS2004, тэги code зачем существуют, как думаешь?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Найди отличия:
(setq papka3 (getstring T "\n Введите путь к папке3")) ;вводим путь папки шаблонов U:\Автоматизация проекта\Шаблоны форматов Код:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 24.06.2009
Сообщений: 94
|
понятно, просто уж описал как смог, далее постараюсь вводить код отдельно описание отдельно но не обещаю в цветах
Последний раз редактировалось Кулик Алексей aka kpblc, 18.07.2015 в 18:38. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Цитирую свой ответ без обработки тэгов:
Найди отличия: (setq papka3 (getstring T "\n Введите путь к папке3")) ;вводим путь папки шаблонов U:\Автоматизация проекта\Шаблоны форматов [code](setq papka3 (getstring T "\n Введите путь к папке3")) ;вводим путь папки шаблонов U:\Автоматизация проекта\Шаблоны форматов[/code] [code][lisp](setq papka3 (getstring T "\n Введите путь к папке3")) ;вводим путь папки шаблонов U:\Автоматизация проекта\Шаблоны форматов[/lisp][/code] Какой из трех кусков читать проще?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Autolisp. Как вставить блок из файла? | riddler | LISP | 3 | 07.04.2014 15:18 |
MS Word Нужен скрипт для копирования с одновременной заменой части текста | Солидворкер | Прочее. Программное обеспечение | 27 | 27.11.2012 15:52 |
структурированный список | Holon | Программирование | 22 | 11.09.2007 14:09 |