明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1730|回复: 6

如何将复制某层的图元,而且使得所复制的图元的位置与原图元一致

[复制链接]
发表于 2011-1-1 20:11:33 | 显示全部楼层 |阅读模式
问题的提出:
      单位现在推行协同设计,就是使用外部参照。我们设备专业只能参照建筑专业的图纸,而无修改所引用的外部参照文件的权限。这样就造成了一个问题,建筑图上的某些图元和我们设备专业的图元重叠,比如房间名称等。未协同设计之前,我们可以自己把它移开,现在不行了。我想有没有办法将房间名称这个图层的图元一模一样的复制,然后另存到一个图层中。冻结建筑图中的房间名称的这个层,就可以使用自己建的那个层。
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2011-1-2 07:19:00 | 显示全部楼层
既然是:我想有没有办法将房间名称这个图层的图元一模一样的复制,然后另存到一个图层中。冻结建筑图中的房间名称的这个层,就可以使用自己建的那个层。
那你在复制前先将自己的这个图层的图元转为另一个图层,再插入,然后冻结建筑图中的房间名称的这个层,不就行了?
 楼主| 发表于 2011-1-2 19:17:41 | 显示全部楼层
我的想法和二楼的一样,可是我自己不知道如何复制那个图层图元,且保存一模一样
发表于 2011-1-2 19:35:52 | 显示全部楼层
tjuzkj 发表于 2011-1-2 19:17
我的想法和二楼的一样,可是我自己不知道如何复制那个图层图元,且保存一模一样

选择图元,采取同基点复制
发表于 2011-1-2 20:41:17 | 显示全部楼层
;;;下面的程序对复制参照中的text图元有效!
  1. ;测试 (tt (car (entsel)) "01注记" "newLay")
  2. ;参数 en 块参照引用 la 块参照引用中要复制文本的图层,层名不含块参照名 NewLa 复制后新建图层
  3. (defun tt (en la newla / DBXDOC enl blkrefname inspt blockref obj objlst enlst e n ss)
  4.   (setq enl (entget en)
  5.         blkrefname (cdr (assoc 2 enl))
  6.         inspt (cdr (assoc 10 enl))
  7.         n 0
  8.         ss (ssadd)
  9.         )
  10.   (command "layer" "m" newla "")
  11.   (setq blockref (vla-item (vla-get-blocks(vla-get-ActiveDocument (vlax-get-acad-object))) blkrefname))
  12.   (vlax-for obj blockref
  13.     ;;;判断块引用中是否为 la 图层中的文本
  14.     (if (and (= (strcase (vla-get-layer obj)) (strcase (strcat blkrefname "|" la)))
  15.              (= "AcDbText" (vla-get-ObjectName obj))
  16.              )
  17.       (progn
  18.         (setq objlst (cons obj objlst))
  19.         
  20.         )
  21.       )
  22.     )
  23. (if objlst (setq enlst1 (mapcar 'vlax-vla-object->ename objlst)))
  24.   (foreach en enlst1
  25.     (setq enl (entget en))
  26.     (setq enl (vl-remove-if '(lambda (x) (or (= 5 (car x)) (= -1 (car x)) (= 330 (car x)) (= 8 (car x)))) enl))
  27.     (setq enl (append  enl (list (cons 8 newla))))
  28.     (setq e (entmake enl))
  29.     (if e (ssadd (entlast) ss))
  30.     )
  31.   (if ss (command "move" ss "" '(0 0 0) inspt))
  32.   )
发表于 2011-4-2 01:07:56 | 显示全部楼层
2009有这功能
发表于 2011-4-5 21:29:28 | 显示全部楼层
vla-copy ob
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-6-10 13:21 , Processed in 0.247051 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表