用于重命名Ordnce Su的脚本
大家好,我的第一个帖子在这里,所以我会尽量不露面!
当我们购买数字地形测量图时,图层名称如下所示。。
G801001
G8010004
G8010007
G8010008
G8010009
然而,这些是军械测量局的内部图层名称,每个编号对应一个特定的描述,可以在网上找到,例如。。。se以下。。。
我想知道是否有人写过一个lisp例程,它会自动重命名所有层,使它们读起来像这样。。。
G801001-建筑轮廓
G8010004-建筑轮廓(架空)
G8010007-民事教区或社区边界
G8010008-伦敦行政区或统一管理局边界
G8010009-县边界
等
等
等
层名称描述联机类型或文本字体线权重颜色块名称G8010001建筑大纲Continuous2Polylinered G8010004建筑大纲(架空)DASHED2POLYLINERED G8010007土木教区或社区边界Continuous2Polylinemagenta G8010008伦敦区或统一机构边界Continuous2Polylinemagenta G8010009县边界Continuous2Polylinemagenta 我忘了提一下,这是完整的AutoCAD 由于您似乎正在寻找LISP,我将您的线程转移到AutoLISP、Visual LISP&DCL论坛。 欢迎来到CADTutor。
听起来像是LAYTRANS命令的作业。
干杯 可以在脚本(或宏)中使用RENAME命令
-Rename;LAyer;G8010001;G8010001 - Building Outline;
等等
每次都一样吗?每个dwg都有每个层吗?
您可能首先需要添加层,否则,如果该层不存在,则rename命令将出错(与layer命令相反,在尝试创建已存在的层时,layer命令不会出错)
-Layer;New;G8010001;New;G8010002;;
等等
然后编写脚本,将每个原件重命名为每个最终版本。
如果图形中已存在任何最终图层名称,则脚本选项将很困难。 请看这里:-
(defun c:test ()
(command "-linetype" "_Load" "Dashed" "acad.lin" "" "")
(vlax-for item (vla-get-layers (vla-get-activedocument (vlax-get-acad-object)))
(vl-some '(lambda (x)
(if (eq (car x) (vla-get-name item))
(progn
(vla-put-name item (strcat (car x) " - " (cadr x)))
(vla-put-description item (cadr x))
(vla-put-linetype item (caddr x))
(vla-put-lineweight item (cadddr x))
(vla-put-color item (last x))
)
)
)
'(("G8010001" "Building outline" "CONTINUOUS" "200" 1)
("G8010004" "Building outline (overhead)" "DASHED" "200" 1)
("G8010007" "Civil parish or community boundary" "CONTINUOUS" "200" 6)
("G8010008" "District London borough or unitary authority undary" "CONTINUOUS" "200" 6)
("G8010009" "County boundary" "CONTINUOUS" "200" 6))
)
)
(princ)
) 我喜欢satishrajdev,但我会阅读CSV或文本文件,比lsp代码更容易添加。
this is space delimited data text file
0 7 Continuous
ABUTMENT 1 Continuous
ALUMINIUM PLUG 1 Continuous
ARROW 1 Continuous
(while (setq layercode (read-line fname))
(setqJ(strlen layercode))
(setq ans "")
(setq Lname (substr layercode 1 22))
(setq Laycol (substr layercode 23 1)) ; color is only 1 character
(setq Laylt (substr layercode 25 J))
.......
如果从CSV导入层,这可能有用。。。。
http://www.cadtutor.net/forum/showthread.php?57570-Layer Creater Lisp例程问题&p=390543&viewfull=1#post390543
干杯
页:
[1]