乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 54|回复: 19

[编程交流] 将图层标准添加到多维

[复制链接]

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 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

4

主题

182

帖子

178

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 11:55:11 | 显示全部楼层
我可以问一下,在所有图形中包含不包含任何实体的图层有什么意义?
回复

使用道具 举报

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 11:57:44 | 显示全部楼层
有多方面的原因,但最重要的是,我们已经指示所有的图纸符合我们的cad标准,无论实体存在。
回复

使用道具 举报

NBC

4

主题

182

帖子

178

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 12:00:54 | 显示全部楼层
很公平,我只是想知道-谢谢你的更新
回复

使用道具 举报

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 12:06:33 | 显示全部楼层
300条腿的“简单”命令。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:09:22 | 显示全部楼层
我不久前写了这篇文章,它可能会帮助你:
 
  1. (defun c:DoLayers (/ MkLay LtLoad cm)
  2. (vl-load-com)
  3. (setq cm (getvar "CMDECHO"))
  4. (setvar "CMDECHO" 0)
  5. (vl-cmdf "_.-purge" "_LA" "*" "_N")
  6. (setq *doc* (vla-get-ActiveDocument (vlax-get-acad-object)))
  7. (defun MkLay (Nme Col lTyp lWgt Plt / lay)
  8.    (setq lay (vla-add (vla-get-layers *doc*) Nme))
  9.    
  10.    (and Col   (vla-put-Color lay Col))
  11.    (and lTyp  (lTload lTyp) (vla-put-Linetype lay lTyp))
  12.    (and lWgt  (vla-put-LineWeight lay (eval (read (strcat "acLnWt" lWgt)))))
  13.    (and (not Plt) (vla-put-Plottable lay :vlax-false)))
  14. (defun lTload (lTyp)
  15.    (or (tblsearch "LTYPE" lTyp)
  16.        (vla-load (vla-get-Linetypes *doc*) lTyp "acad.lin")) t)
  17. (mapcar 'MkLay
  18.          
  19.          '( "CEN"   "DIMS" "HAT"  "HID"   "LOGO" "OBJ"  "PAPER"   "PHAN"   "TITLE" "TXT")  ; Name [str]
  20.          '(   6       1      3      4       176    2       5         6       176     7  )  ; Colours [int]
  21.          '("CENTER"  nil    nil  "HIDDEN"   nil   nil  "PHANTOM" "PHANTOM"   nil    nil )  ; LineType [str]
  22.          '( "018"   "018"  "018"  "015"    "009" "040"    nil      "018"     nil    nil )  ; LineWeight [str] 0.18 = "018"
  23.          '(   T       T      T      T        T     T      nil        T        T      T  )) ; Plottable (T or nil)
  24. (setvar "CMDECHO" cm)
  25. (princ))

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

使用道具 举报

0

主题

7

帖子

7

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 12:12:59 | 显示全部楼层
 
我也有同样的问题,如何将图层复制到多个图形-只要一个命令,我尝试在我的系统中应用Dolayers,但它似乎是错误的参数
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:13:26 | 显示全部楼层
 
这对我来说似乎很管用。
 
你在给它添加什么参数列表?
回复

使用道具 举报

0

主题

7

帖子

7

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 12:17:28 | 显示全部楼层
当我加载这个时,会出现这样的错误
 
“错误的参数类型:numberp:nil”
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:19:47 | 显示全部楼层
你确定要复制整个代码吗?
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-3 09:00 , Processed in 1.046209 second(s), 74 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表