威尔 发表于 2024-12-13 18:14:01

有没有什么插件或者方法,能从CAD里复制的图到新的CAD里放在指定图层

有没有什么插件或者方法,能从CAD里复制的图到新的CAD里放在指定图层,或者0层的。每次粘图过来后,会带着很多新的图层,很杂乱,求各位大佬指点。

ssyfeng 发表于 2024-12-13 19:43:34

先在原图上复制对象,修改好图层,再拷贝过去

你有种再说一遍 发表于 2024-12-13 21:55:50

这个功能确实好,我居然没想过,只是想到了合并.
流程如果是:记录一次本图全图图层,然后粘贴过来之后把全部改为0,再删除多余图层.那么,深度克隆会拷贝字典过来,会直接删除图层失败.
然后方案改为CAD官方的,
先把块拷贝到临时文件,改临时文件全部为0层,再粘贴.

sniper1111 发表于 2024-12-16 08:46:53

不知道用dbx能行不。

小王在学lisp 发表于 2024-12-16 09:34:54

可以写个插件,复制一遍选择集,将其改为0层,再剪切就OK了

小王在学lisp 发表于 2024-12-16 09:42:16

本帖最后由 小王在学lisp 于 2024-12-17 11:30 编辑

D1选中对象复制到剪切板D2到其他位置粘贴到0层
(defun c:D1 (/ SS )
(setq SS (SSGET))
(command "COPY" SS "" "0,0" "0,0")
(command "chprop" SS "" "la" "0" "")
(command "_cutclip" SS "")
)

(defun c:D2 ( )
(command "_pasteclip")
)

chslwj521 发表于 2024-12-16 16:51:57

感觉是问题没描述清楚,最简单的理解就是,选择要复制的内容,归0,打块,W另存到指定位置用指定名,另一个文档可插入指位置下的指定文件及内容,插入到指定点,再归层,结束。

怕怕吓一跳 发表于 2024-12-17 10:42:38

基本可用,但没有考虑图块、属性块的情况,见笑:(defun c:fzcl( / ss i len ent)
(vl-load-com)
(setq ss (ssget))
(if ss
    (progn
        (setq i 0)
        (setq len (sslength ss))
      (repeat len
      (setq ent (vlax-ename->vla-object (ssname ss i)))
      (vla-put-layer ent "0") ;到0层
           (setq i (+ 1 i))
      )
      (princ "改为0层已完成。")
       (command "_copyclip" "p" "")
       (princ (strcat "已复制"(itoa len)"个对象到剪贴板。"))
    )
    (princ "没有选择对象。")
)
(princ)
)

小王在学lisp 发表于 2024-12-17 11:33:09

本帖最后由 小王在学lisp 于 2025-1-13 19:39 编辑

学的多就会的多

威尔 发表于 2024-12-19 12:11:02

小王在学lisp 发表于 2024-12-16 09:42
D1选中对象复制到剪切板D2到其他位置粘贴到0层
(defun c:D1 (/ SS )
(setq SS (SSGET))


谢谢大哥,我试试
页: [1] 2
查看完整版本: 有没有什么插件或者方法,能从CAD里复制的图到新的CAD里放在指定图层