层Lisp
我不太流利的lisp,所以我希望有人可以帮助我创建一个层更新lisp。我们有旧的图纸,有旧的图层,我们在新的项目中使用它们。我想创建一个lisp,可以将具有相同线宽、颜色和线型的旧图层重命名为较新的名称。我想我需要一些if语句,如果那些较新的层已经存在,或者如果任何较旧的层不存在,它就会创建新层。任何帮助都将不胜感激。 看这里李 嗨,这正是我一直在寻找的。我是lisp的新手,我们正在尝试制作一个模板。我认为lsip例程是一条出路。我有点理解你的链接,但你能解释一下吗?我只想找一个新的图层部分,我想它应该是洋红类型的?我有点困惑,是哪一部分创建了图层,是哪一部分将旧图层更改为新图层。
谢谢 我的代码只会使用子功能“MkLay”创建新图层,它会获取图层名称、颜色、线型、线宽以及图层是否可打印,它不会修改现有图层。
我在主函数中使用mapcar在层名称/颜色/线宽等列表中迭代子函数。这是一个旧代码,但很可能编写得更好。 这很有效。
我想知道每个层名称和各自的颜色代码、线型等之间的间距——是否有一个特定的数字,或者只要它们在相对列中彼此下面就好吗??
我只是用记事本做编辑。。。。 LISP不关心空格,所以任何空格都可以-唯一的限制条件是它们在列表中的顺序。 嘿,Lee,我填充了lisp来创建一个特定的layerset。我的问题:
如何设置所有图层特性?我有颜色、LT、LW、可打印,但我可以将图层设置为冻结/解冻、打开/关闭、锁定吗?
我可以输入层描述吗?
...非常感谢!我实际上在学习。。。。一点。。。 这是很旧的代码,
也许可以试试这个:
(defun MakeLayer ( name colour linetype lineweight willplot bitflag description )
;; © Lee Mac 2010
(or (tblsearch "LAYER" name)
(entmake
(append
(list
(cons 0 "LAYER")
(cons 100 "AcDbSymbolTableRecord")
(cons 100 "AcDbLayerTableRecord")
(cons 2name)
(cons 70 bitflag)
(cons 290 (if willplot 1 0))
(cons 6
(if (and linetype (tblsearch "LTYPE" linetype))
linetype "CONTINUOUS"
)
)
(cons 62 (if (and colour (< 0 (abs colour) 256)) colour 7))
(cons 370
(fix
(* 100
(if (and lineweight (<= 0.0 lineweight 2.11)) lineweight 0.0)
)
)
)
)
(if description
(list
(list -3
(list "AcAecLayerStandard" (cons 1000 "") (cons 1000 description))
)
)
)
)
)
)
)
(defun c:MakeLayers ( )
;; © Lee Mac 2010
(
(lambda ( lst )
(mapcar 'cons (car lst) (apply 'mapcar (cons 'MakeLayer lst)))
)
'(
( "CEN" "DIMS" "HAT""HID" "LOGO" "OBJ""PAPER" "PHAN" "TITLE" "TXT" ); Layer Name [ STR ]
( 6 -1 3 4 176 -2 5 6 176 7 ); Layer Colour (-ve for layer off) [ INT ]
("CENTER"nil nil"HIDDEN" nil nil"PHANTOM" "PHANTOM" nil nil); Layer LineType [ STR ]
(0.18 0.18 0.18 0.15 0.09 0.40 nil 0.18 nil nil); Layer LineWeight [ REAL]
( T T T T T T nil T T T ); Plot? (T or nil) [ BOOLE ]
( 0 1 5 0 0 3 6 0 1 0 ); Bit Flag (0 = None, 1=Frozen, 2=Frozen in Vp, 4=Locked) [ INT ]
(nil "Dimensions" nil "Hidden""For Logo" nil nil nil"For Title"nil ); Description (nil for none) [ STR ]
)
)
) 哈哈哈-非常好。。。我想我已经迷失在我最初的思路中了,谢谢艾伦。 看起来更简单,我也试试
页:
[1]
2