jonesy 发表于 2009-2-11 08:50:01

将外部参照的一部分复制到激活图形中

我曾经在Microstation中发现有用的一件事是能够通过使用“定位”将对象从参考文件复制到活动绘图文件(我认为......自从我启动那个特定的野兽以来已经很长一段时间了)所有这些都发生在不必离开活动文件的情况下。
有什么方法可以在AutoCAD中完成此操作吗?(原生或例行公事有人藏在某处)
提前致谢
T
**** Hidden Message *****

CAB 发表于 2009-2-11 09:22:56

找不到部分副本,但找到了以下内容:
http://www . the swamp . org/index . PHP?topic=8416.msg108349#msg108349

Gliderider 发表于 2009-2-11 11:11:59

您可以尝试Express tools的Ncopy...我从来没有太多的运气使用它

sinc 发表于 2009-2-11 11:16:08

我有一个类似的工具,但目前它只能在Civil 3D中使用。它非常有用,尽管如此,也许我应该试着把它分解成一些Autocad通用的东西...

ronjonp 发表于 2009-2-11 11:22:35

不久前我拼凑了这个...可能会改进,但它一直在为我工作。
(defun c:copyn (/ blk blks e i lst obj tm ss)
(setq        blks (vla-get-blocks
             (vla-get-activedocument (vlax-get-acad-object))
             )
        ss   (ssadd)
)
(while (and (setq e (nentselp "Select nested object to copy: "))
              (setq tm (caddr e))
              (setq blk (car (cadddr e)))
              (setq blk (vlax-ename->vla-object blk))
              (setq i (vla-item blks (vla-get-name blk)))
       )
    (if        (= (vla-get-isxref i) :vlax-false)
      (vlax-for        be i
        (if (and (setq e (entget (vlax-vla-object->ename be)))
               (not (cdr (assoc 102 e)))
               (setq obj (entmakex e))
               (setq obj (vlax-ename->vla-object obj))
          )
          (progn
          (vla-transformby obj (vlax-tmatrix tm))
          (setq lst (cons (list obj (vla-get-color obj)) lst))
          (vla-put-color obj 1)
          (vla-update obj)
          )
          (princ (strcat "\nComplex entity not created [ "
                       (cdr (assoc 0 e))
                       " ]"
               )
          )
        )
      )
      (progn
        (setq obj (vlax-ename->vla-object (entmakex (entget (car e)))))
        (vla-transformby obj (vlax-tmatrix tm))
        (setq lst (cons (list obj (vla-get-color obj)) lst))
        (vla-put-color obj 1)
        (vla-update obj)
      )
    )
)
(if lst
    (progn (foreach o lst
             ;;(vla-put-color (car o) (cadr o))
             (setq ss (ssadd (vlax-vla-object->ename (car o)) ss))
             (command ".draworder"
                      (vlax-vla-object->ename (car o))
                      ""
                      "front"
             )
           )
           (sssetfirst nil ss)
    )
)
(princ)
)

jonesy 发表于 2009-2-11 11:26:00

哦,谢谢伙计们,我明天会尝试代码。
这是我从Microstation上错过的唯一命令之一

wannabe 发表于 2009-2-12 13:54:37

Refedit不起作用吗?打开Refedit,选择项目,使用同一个基点复制两次,然后从工作集中删除?为了安全起见,取消对引用的所有更改?

wannabe 发表于 2009-2-12 14:44:25

哦,你可能对新的Microstation更感兴趣

danglar 发表于 2015-12-17 01:55:28

我从这里对例程做了一点修改:
http://www.theswamp.org/index.php?topic=27354.msg329179#msg329179
现在您可以复制嵌套块和/或其他实体并同时移动它(见附件lisp)
仍然存在一个“小”问题:当前绘图中的例程爆炸块...
是否可以修复它?

Escape 发表于 2016-8-20 20:56:44

ronjonp,非常感谢你鹅卵石铺成的例行公事 - 它太有用了,而且互联网上没有其他地方,我发现了类似的东西。
但我注意到了一些“小问题”。除了由 danglar 找到(在较高位置发布一条消息)之外,例程不能复制具有任何线型但为“连续”的对象,即使该线型定义在绘图中也是如此。太可惜了。例程以报告结束:“错误的参数类型:lentityp nil”。有人能给我一个最模糊的想法,为什么会发生这种情况吗?
页: [1]
查看完整版本: 将外部参照的一部分复制到激活图形中