乐筑天下

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

[编程交流] 用于重命名Ordnce Su的脚本

[复制链接]

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 18:05:51 | 显示全部楼层 |阅读模式
大家好,
 
 
我的第一个帖子在这里,所以我会尽量不露面!
当我们购买数字地形测量图时,图层名称如下所示。。
G801001
G8010004
G8010007
G8010008
G8010009
然而,这些是军械测量局的内部图层名称,每个编号对应一个特定的描述,可以在网上找到,例如。。。se以下。。。
我想知道是否有人写过一个lisp例程,它会自动重命名所有层,使它们读起来像这样。。。
G801001-建筑轮廓
G8010004-建筑轮廓(架空)
G8010007-民事教区或社区边界
G8010008-伦敦行政区或统一管理局边界
G8010009-县边界



 
 
层名称描述联机类型或文本字体线权重颜色块名称G8010001建筑大纲Continuous2Polylinered G8010004建筑大纲(架空)DASHED2POLYLINERED G8010007土木教区或社区边界Continuous2Polylinemagenta G8010008伦敦区或统一机构边界Continuous2Polylinemagenta G8010009县边界Continuous2Polylinemagenta
回复

使用道具 举报

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 18:16:58 | 显示全部楼层
我忘了提一下,这是完整的AutoCAD
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-5 18:26:16 | 显示全部楼层
由于您似乎正在寻找LISP,我将您的线程转移到AutoLISP、Visual LISP&DCL论坛。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-5 18:39:46 | 显示全部楼层
欢迎来到CADTutor。
 
听起来像是LAYTRANS命令的作业。
 
 
干杯
回复

使用道具 举报

YZ

27

主题

232

帖子

205

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
135
发表于 2022-7-5 18:47:44 | 显示全部楼层
可以在脚本(或宏)中使用RENAME命令
 
  1. -Rename;LAyer;G8010001;G8010001 - Building Outline;

 
等等
 
每次都一样吗?每个dwg都有每个层吗?
 
您可能首先需要添加层,否则,如果该层不存在,则rename命令将出错(与layer命令相反,在尝试创建已存在的层时,layer命令不会出错)
 
  1. -Layer;New;G8010001;New;G8010002;;

 
等等
 
然后编写脚本,将每个原件重命名为每个最终版本。
 
如果图形中已存在任何最终图层名称,则脚本选项将很困难。
回复

使用道具 举报

55

主题

402

帖子

357

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
274
发表于 2022-7-5 18:57:08 | 显示全部楼层
请看这里:-
 
  1. (defun c:test ()
  2. (command "-linetype" "_Load" "Dashed" "acad.lin" "" "")
  3. (vlax-for item (vla-get-layers (vla-get-activedocument (vlax-get-acad-object)))
  4.    (vl-some '(lambda (x)
  5.         (if (eq (car x) (vla-get-name item))
  6.           (progn
  7.             (vla-put-name item (strcat (car x) " - " (cadr x)))
  8.             (vla-put-description item (cadr x))
  9.             (vla-put-linetype item (caddr x))
  10.             (vla-put-lineweight item (cadddr x))
  11.             (vla-put-color item (last x))
  12.             )
  13.           )
  14.         )
  15.      '(("G8010001" "Building outline" "CONTINUOUS" "200" 1)
  16.        ("G8010004" "Building outline (overhead)" "DASHED" "200" 1)
  17.        ("G8010007" "Civil parish or community boundary" "CONTINUOUS" "200" 6)
  18.        ("G8010008" "District London borough or unitary authority undary" "CONTINUOUS" "200" 6)
  19.        ("G8010009" "County boundary" "CONTINUOUS" "200" 6))
  20. )
  21. )
  22. (princ)
  23. )
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 19:04:32 | 显示全部楼层
我喜欢satishrajdev,但我会阅读CSV或文本文件,比lsp代码更容易添加。
 
  1. this is space delimited data text file
  2. 0                     7 Continuous
  3. ABUTMENT              1 Continuous
  4. ALUMINIUM PLUG        1 Continuous
  5. ARROW                 1 Continuous
  6. (while (setq layercode (read-line fname))
  7. (setq  J  (strlen layercode))
  8. (setq ans "")
  9. (setq Lname (substr layercode 1 22))
  10. (setq Laycol (substr layercode 23 1)) ; color is only 1 character
  11. (setq Laylt (substr layercode 25 J))
  12. .......
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-5 19:13:10 | 显示全部楼层
如果从CSV导入层,这可能有用。。。。
 
http://www.cadtutor.net/forum/showthread.php?57570-Layer Creater Lisp例程问题&p=390543&viewfull=1#post390543
 
 
 
 
干杯
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 00:51 , Processed in 0.401891 second(s), 68 queries .

© 2020-2025 乐筑天下

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