tarnoki 发表于 2022-7-6 11:51:00

将图层标准添加到多维

我有300多张图纸需要应用标准cad图层集。我们开发了一个cad标准,包括24个总层,其中定义了层名称、描述、开/关状态、颜色和线型。目前,300多个图形仅包含这24个图层中的一个子集,仅在对象所在的位置。(例如,一些图形有A-FURN层,而其他图形没有)。
 
最终目标是使所有300多个图形具有相同的24层名称。
 
我不是lisp专家,但确实为其他打印例程安装了多批处理。
 
有一个简单的例程,lisp或多批处理命令,我可以运行,基本上说。。。
-针对这些特定的300个图形文件名运行(例如A1.dwg、B1.dwg)
-如果DWG中不存在图层名1-24,请将图层名1-24添加到每个DWG中
 
谢谢
史蒂夫

NBC 发表于 2022-7-6 11:55:11

我可以问一下,在所有图形中包含不包含任何实体的图层有什么意义?

tarnoki 发表于 2022-7-6 11:57:44

有多方面的原因,但最重要的是,我们已经指示所有的图纸符合我们的cad标准,无论实体存在。

NBC 发表于 2022-7-6 12:00:54

很公平,我只是想知道-谢谢你的更新

tarnoki 发表于 2022-7-6 12:06:33

300条腿的“简单”命令。

Lee Mac 发表于 2022-7-6 12:09:22

我不久前写了这篇文章,它可能会帮助你:
 

(defun c:DoLayers (/ MkLay LtLoad cm)
(vl-load-com)
(setq cm (getvar "CMDECHO"))
(setvar "CMDECHO" 0)
(vl-cmdf "_.-purge" "_LA" "*" "_N")

(setq *doc* (vla-get-ActiveDocument (vlax-get-acad-object)))

(defun MkLay (Nme Col lTyp lWgt Plt / lay)
   (setq lay (vla-add (vla-get-layers *doc*) Nme))
   
   (and Col   (vla-put-Color lay Col))
   (and lTyp(lTload lTyp) (vla-put-Linetype lay lTyp))
   (and lWgt(vla-put-LineWeight lay (eval (read (strcat "acLnWt" lWgt)))))
   (and (not Plt) (vla-put-Plottable lay :vlax-false)))

(defun lTload (lTyp)
   (or (tblsearch "LTYPE" lTyp)
       (vla-load (vla-get-Linetypes *doc*) lTyp "acad.lin")) t)

(mapcar 'MkLay
         
         '( "CEN"   "DIMS" "HAT""HID"   "LOGO" "OBJ""PAPER"   "PHAN"   "TITLE" "TXT"); Name
         '(   6       1      3      4       176    2       5         6       176   7); Colours
         '("CENTER"nil    nil"HIDDEN"   nil   nil"PHANTOM" "PHANTOM"   nil    nil ); LineType
         '( "018"   "018""018""015"    "009" "040"    nil      "018"   nil    nil ); LineWeight 0.18 = "018"
         '(   T       T      T      T      T   T      nil      T      T      T)) ; Plottable (T or nil)

(setvar "CMDECHO" cm)
(princ))

 
只要根据需要更改“表”。

otil 发表于 2022-7-6 12:12:59

 
我也有同样的问题,如何将图层复制到多个图形-只要一个命令,我尝试在我的系统中应用Dolayers,但它似乎是错误的参数

Lee Mac 发表于 2022-7-6 12:13:26

 
这对我来说似乎很管用。
 
你在给它添加什么参数列表?

otil 发表于 2022-7-6 12:17:28

当我加载这个时,会出现这样的错误
 
“错误的参数类型:numberp:nil”

Lee Mac 发表于 2022-7-6 12:19:47

你确定要复制整个代码吗?
页: [1] 2
查看完整版本: 将图层标准添加到多维