xiaoquansb 发表于 2018-3-26 19:24:04

求助,关于vla-CopyObjects

本帖最后由 xiaoquansb 于 2018-3-27 12:35 编辑

      (defun CopyBlock (DwgName BlkName / blocks dbxDoc);插入其他DWG里的图块
                (setq *acad* (vlax-get-acad-object))
                (setq blocks (vla-get-blocks (vla-get-ActiveDocument *acad*)))
                (setq dbxDoc (vla-GetInterfaceObject *acad* (strcat "ObjectDBX.AxDbDocument." (itoa (atoi (getvar "AcadVer" ))))))
                (vla-open dbxDoc DwgName)
                (vla-CopyObjects
                        dbxDoc
                        (vlax-safearray-fill
                              (vlax-make-safearray vlax-vbObject '(0 . 0))
                              (list (vla-item (vla-get-blocks dbxDoc) BlkName))
                        );end vlax-safearray-fill
                        blocks
                );end vla-CopyObjects
                (vlax-release-object dbxDoc)
                (vla-item blocks BlkName)
      );end defun
上面是不开图从其他图里拷贝图块的代码,一般图块都没有问题,可以遇到有wipeout的就出问题了
比如,Copy过来是这样的

但实际上应该是这样的

遮挡的次序乱套了
请问有哪位前辈有遇到过类似的情况吗,有没有解决的办法,谢谢
函数用法举例:
(CopyBlock "D:\\螺栓.dwg" "HEX.BOLT - M12x120 - COM")




H-浩浩-H 发表于 2018-3-26 21:55:40

pengfei2010 发表于 2018-3-27 08:04:28

乍一看还以为是vlisp,原来是 objectdbx ,这个还真没接触过

LPACMQ 发表于 2018-3-27 09:22:08

楼主请上DWG

xiaoquansb 发表于 2018-3-27 12:36:54

LPACMQ 发表于 2018-3-27 09:22
楼主请上DWG

已传上,请帮忙看看:handshake

xiaoquansb 发表于 2018-3-28 12:33:10

自己顶起:P

LPACMQ 发表于 2018-3-28 16:11:52

本帖最后由 LPACMQ 于 2018-3-28 16:55 编辑

你动态块里面包含遮罩图元,显示问题regen刷新一下就一样了。

xiaoquansb 发表于 2018-3-28 23:29:06

regen也没什么变化啊,进去编辑也是被遮罩盖住了,是什么情况下regen呢

xiaoquansb 发表于 2018-4-6 10:13:57

最后还是用insert代替了,真是无奈
页: [1]
查看完整版本: 求助,关于vla-CopyObjects