Re: Как вставить блок из файла?
> Олег(jr.)
У меня версия2002, но нужно под 2000, так как программа больше будет работать на 2000
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → LISP → Как вставить блок из файла?
Чтобы отправить ответ, вы должны войти или зарегистрироваться
> Олег(jr.)
У меня версия2002, но нужно под 2000, так как программа больше будет работать на 2000
> FSOL
Тогда замени в двух местах (надо было самому
предусмотреть, мня):
"ObjectDBX.AxDbDocument.16"
на:
"ObjectDBX.AxDbDocument.15"
и спробуй
До завтре
> Олег(jr.)
Не, спасибо за этот листинг, но это слишком для меня тяжело(в смысле понимания). Да и программа у меня готова, кроме вот этого одного "гвоздя". Программа огромная и придётся много "ломать".
Я использую процедуру "COPYBLOCK", приведенную VVI. Она открывает интересуемый файл, но как его же теперь закрыть? Функцией vla-close vla_file не получается, выдаёт ошибку, что-то не в порядке с её аргументом.
> FSOL
Извини право автора-священная корова
Сам объяснит
~'O'~
Вот код > VVI (2005-04-05 09:46:05) , добавил пару строк внизу
(defun COPYBLOCK ( name name_fil / ac docks doc1 doc2 blocks k) (setq ac(vlax-get-acad-object)) (setq docks (vla-get-Documents ac)) (setq doc1(vla-get-ActiveDocument ac)) (vlax-for n docks(if(=(vla-get-Name n)name_fil)(setq doc2 n))) (if(not doc2)(setq doc2(vla-open docks name_fil :vlax-true))) (setq blocks(vla-get-Blocks doc2)) (vlax-for n blocks(if(=(vla-get-Name n)name)(setq k t))) (if k (vla-CopyObjects doc2 (vlax-make-variant (vlax-safearray-fill (vlax-make-safearray vlax-vbObject '(0 . 0)) (list (vla-item (vla-get-blocks doc2) name)) ) ) (vla-get-Blocks doc1) ) (alert "Такой блок отсутствует") ) (if (not doc2) (progn (vla-close doc2 :vlax-false) (vlax-release-object doc2)) ) )
извиняюсь, в последнем if not не нужен
(if doc2
(progn....
> serzh
Всё. ПреМного благодарен! Всё заработало, как песня!!!
Только обязательно ли ставить условие "if doc2..."? На самом деле работает и без этого условия.
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → LISP → Как вставить блок из файла?
Форум работает на PunBB, при поддержке Informer Technologies, Inc