tengte 发表于 2016-2-26 17:25:28

请教高手:用程序如何复制外部参照中的图元到当前文档?

  现需要通过选择提取块内文字(包括外部参照的情况),复制到当前文档。
  用entmake不支持天正文字,而用CopyObjects能复制块内对象,但对外部参照无效,会提示:“Automation 错误。 对象不在数据库中”。
  不知道有没有高手解决了这个问题?

tengte 发表于 2016-2-29 10:05:39

求助高手!!!

Gu_xl 发表于 2016-2-29 14:27:05

(defun c:tt ()
(vla-open
    (setq doc (vla-GetInterfaceObject
                (vlax-get-acad-object)
                (if (< (setq acVer (atoi (getvar "ACADVER"))) 16)
                  "ObjectDBX.AxDbDocument"
                  (strcat "ObjectDBX.AxDbDocument." (itoa acVer))
                )
              )
    )
    (findfile
      (strcat
        (cdr
          (assoc 2
               (entget
                   (last (last (setq e (nentsel "选择参照块内对象:"))))
               )
          )
        )
        ".dwg"
      )
    )
)
(vlax-invoke
    doc
    'CopyObjects
    (list
      (vla-HandleToObject doc (cdr (assoc 5 (entget (car e)))))
    )
    (vla-get-ModelSpace
      (vla-get-ActiveDocument (vlax-get-acad-object))
    )
)
(princ)
)

tengte 发表于 2016-3-1 11:47:04

Gu_xl 发表于 2016-2-29 14:27 static/image/common/back.gif


谢谢Gu_xl大侠!经测试可行(第一次出错,后面都正常)!
另外,想问一下,用vla-open打开的外部参照文件,在命令执行完成后,是否需要关闭?如果不关闭是否有负面影响?

尘缘一生 发表于 2021-8-24 00:05:26

Gu_xl 发表于 2016-2-29 14:27


这段程序,我测试不成功怎么?

wgij007 发表于 2021-8-26 08:01:45

是的,出现。 命令: tt ; 错误: ActiveX 服务器返回错误: 非选择性的参数。
页: [1]
查看完整版本: 请教高手:用程序如何复制外部参照中的图元到当前文档?