Sweety 发表于 2022-7-6 08:02:19

匹配图层

大家好。。。
 
我需要紧急帮助,希望有人能帮我。
 
我有一个包含我的标准图层的图形(母图形),在其他图形中,我有相同的图层,但其中一些图层与相同的颜色、线宽和线型不匹配。
 
是否有lisp可以从(母图形)中拉出图层并相应地修改其他图形中的图层?
 
谢谢XXXXXXXX

BlackBox 发表于 2022-7-6 08:08:11

听起来您对使用绘图标准(.dws)感兴趣,或者您可能只是想从绘图中窃取。

Sweety 发表于 2022-7-6 08:16:32

对不起,那不是我现在需要的。
 
我想根据(母图)中的图层修改图层。

BlackBox 发表于 2022-7-6 08:20:50

正如我之前建议的那样,您应该考虑使用标准文件(.DWS)。。。从帮助中:
 
 
CAD标准概述
 
 
HTH公司

Stefan BMR 发表于 2022-7-6 08:28:32

打开“mother drawing”并另存为新的dwg。打开工作图,用ctrl+c组合键复制所有内容,切换到新创建的dwg并粘贴到原始坐标。。。

ReMark 发表于 2022-7-6 08:31:26

使用设计中心从“母亲”图纸中借用内容。

David Bethel 发表于 2022-7-6 08:40:23

下面是一些应该将图层表数据导出到lisp文件(mother.lsp)中的内容,该文件可以反复使用。它对线条宽度一无所知
 

;;;EXPORT LAYER TABLES IN LSP FORMAT
;;;IGNORES XREF LAYERS

(defun c:x-laylsp (/ wf td ln lt lc ls lf lz ll)

(setq wf (open "mother.lsp" "w"))
(write-line "(command \"_.LAYER\")" wf)

(while (setq td (tblnext "LAYER" (not td)))
      (setq ln (cdr (assoc 2 td))
            lt (cdr (assoc 6 td))
            lc (abs (cdr (assoc 62 td)))
            ls (if (minusp (cdr (assoc 62 td))) "_Off" "_On")
            lf (cdr (assoc 70 td))
            lz (if (= (logand lf 1) 1) "_Freeze" "_Thaw")
            ll (if (= (logand lf 4) 4) "_Lock" "_Unlock"))
         (if (/= (logand lf 16) 16)
             (progn
               (write-line (strcat "(if (not (tblsearch \"LAYER\" \"" ln "\"))") wf)
               (write-line (strcat "    (command \"_New\" \"" ln "\") (princ))") wf)
               (write-line (strcat "(if (tblsearch \"LTYPE\" \"" lt "\")") wf)
               (write-line (strcat "    (command \"_LTYPE\" \"" lt "\" \"" ln "\")")wf)
               (write-line (strcat "    (alert \"LINETYPE " lt " Does Not Exist In This Drawing\"))") wf)
               (write-line (strcat "(command \"_Color\" \"" (itoa lc) "\" \"" ln "\")") wf)
               (write-line (strcat "(command \"" ll "\" \"" ln "\")") wf)
               (write-line (strcat "(command \"" ls "\" \"" ln "\")") wf)
               (write-line (strcat "(command \"" lz "\" \"" ln "\")") wf)))
       )

(write-line "(command \"\")" wf)
(close wf)
(prin1))


 
在子图形中:
 
命令:(加载“MOTHER”)
 
 
-大卫

eldon 发表于 2022-7-6 08:42:47

也许我错了,但我认为如果你从母图创建了一个绘图模板。然后基于该模板开始一个新的图形,然后将给定的图形插入其中,然后所有具有类似名称的层都将具有母图形的属性。不需要lisp。

BlackBox 发表于 2022-7-6 08:46:13

 
实际上,插入的任何层(或所述层上的实体)都将继承接收图形层的层特性。
 
使用图形标准文件(.DWS)可以“管理”图形,使其符合给定的标准。这些标准文件可以是严格的,也可以是灵活的,例如,在这种情况下,仅标准化层。

irneb 发表于 2022-7-6 08:56:04

已经有很多方法了。图形标准是单向的(不是最快的,因为每次更改都需要单击)。
 
然后,saveas、erase all和copy-n-paste的想法已经过时了,但还不错——不幸的是,它没有考虑到纸空间选项卡和非图形化的东西,例如注册应用程序中的扩展数据(不总是需要的,但可能会导致插件/垂直应用程序出现问题)。或者,您可以使用Insert&Explode,基本上也是这样,但添加了所有非图形内容。对于选项卡,需要从另一个DWG(在选项卡的右键单击菜单上)导入它们。
 
至于设计中心。。。如果层还不存在,那就好了。但是,如果它有并且有一个非标准的颜色呢?不,不幸的是,对于这种情况,DC不是最好的。实际上,Lee的Steal和DC做的一样,它不会用导入的属性覆盖现有层,它只导入新层。
 
另一种方法可能是使用层状态。在母DWG中创建LS,并将其导出到LAS文件。然后导入并应用到其他文件中(甚至可以使用Lisp layerstate-*函数编写脚本,或者在较新版本的ACad中,LAYER命令还具有状态管理器)。
 
编辑:另一种方法是使用图层平移命令(LayTrans)。这样,您就不需要DWS,如果愿意,可以映射到DWG/DWT。然后只需单击地图相同按钮&平移。不幸的是,这无法在多个DWG上编写脚本。
页: [1] 2
查看完整版本: 匹配图层