Re: Как вставить блок из файла?

> Олег(jr.)
У меня версия2002, но нужно под 2000, так как программа больше будет работать на 2000

Re: Как вставить блок из файла?

> FSOL
Тогда замени в двух местах (надо было самому
предусмотреть, мня):
"ObjectDBX.AxDbDocument.16"
на:
"ObjectDBX.AxDbDocument.15"
и спробуй
До завтре

Re: Как вставить блок из файла?

> Олег(jr.)
Не, спасибо за этот листинг, но это слишком для меня тяжело(в смысле понимания). Да и программа у меня готова, кроме вот этого одного "гвоздя". Программа огромная и придётся много "ломать".
Я использую процедуру "COPYBLOCK", приведенную VVI. Она открывает интересуемый файл, но как его же теперь закрыть?  Функцией vla-close vla_file не получается, выдаёт ошибку, что-то не в порядке с её аргументом.

Re: Как вставить блок из файла?

> FSOL
Извини право автора-священная корова
Сам объяснит
~'O'~

Re: Как вставить блок из файла?

Вот код > 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))
    )
)

Re: Как вставить блок из файла?

извиняюсь, в последнем if not не нужен
(if doc2
   (progn....

Re: Как вставить блок из файла?

> serzh
Всё. ПреМного благодарен! Всё заработало, как песня!!!
Только обязательно ли ставить условие "if doc2..."? На самом деле работает и без этого условия.