同时在多个图层画图
请问大大,我需要在多个图层画一图元,用lisp 怎么写,是在其中一图层画好图元后在复制到其它图层,还是直接打开多个图层画图呢?选择单个图层或多个图层的选项应该用哪个函数啊? 本帖最后由 llsheng_73 于 2014-5-27 17:30 编辑(SETQ P(GETPOINT))(FOREACH X '("0" "DGX")
(command"layer""M" x "")
(command "POINT" p ""))
(SETQ P(GETPOINT))
(mapcar'(lambda(x)(entmake(list'(0 . "point")(cons 8 x)(cons 10 p))))'("0" "DGX"))
(SETQ P(GETPOINT))
(FOREACH X '("0" "DGX")
(IF(NULL (TBLOBJNAME"LAYER"x))
(entmake (list'(0 . "LAYER")'(100 . "AcDbSymbolTableRecord")'(100 . "AcDbLayerTableRecord")
'(70 . 0)(cons 2 x))))
(ENTMAKE (LIST'(0 . "POINT")(CONS 8 X)(CONS 10 P))))
(SETQ P(GETPOINT))
(FOREACH X '(("0"1)("DGX" 3))
(IF(NULL (TBLOBJNAME"LAYER"(CAR X)))
(entmake (list'(0 . "LAYER")'(100 . "AcDbSymbolTableRecord")'(100 . "AcDbLayerTableRecord")
'(70 . 0)(cons 2 (CAR X)))))
(ENTMAKE (LIST'(0 . "POINT")(CONS 8 (CAR X))(CONS 62 (LAST X))(CONS 10 P))))
直接先画好图,然后复制几份,分别指定图层就好 提示:在一个图层绘图,copy到其他图层即可 用entmake 直接指定图层 llsheng_73 发表于 2014-5-27 07:46 static/image/common/back.gif
(SETQ P(GETPOINT))
(apply'entmake(mapcar'(lambda(x)(list'(0 . "point")(cons 8 x)(cons 10 p)))'("0" "DGX")))
这个不可以吧.... 本帖最后由 llsheng_73 于 2014-5-27 17:30 编辑
q3_2006 发表于 2014-5-27 16:36 static/image/common/back.gif
(SETQ P(GETPOINT))
(apply'entmake(mapcar'(lambda(x)(list'(0 . "point")(cons 8 x)(cons 10 p)))'("0 ...
是不行,得改成(mapcar'(lambda(x)(entmake(list'(0 . "point")(cons 8 x)(cons 10 p))))'("0" "DGX"))
并且后边列表里边的图层都存在 llsheng_73 发表于 2014-5-27 07:46 static/image/common/back.gif
L大喜欢用大写?? vormittag 发表于 2014-5-27 09:20 static/image/common/back.gif
用entmake 直接指定图层
这个正解啊。。。。复制都太慢了~~~
给定几个必需的变量
直接MAKE几次就好了
快多了
发表于 昨天 07:46 |只看该作者
本帖最后由 llsheng_73 于 2014-5-27 17:30 编辑
普通浏览复制代码
01.(SETQ P(GETPOINT))(FOREACH X '("0" "DGX")
02.(command"layer""M" x "")
03.(command "POINT" p ""))
普通浏览复制代码
01.(SETQ P(GETPOINT))
02.(mapcar'(lambda(x)(entmake(list'(0 . "point")(cons 8 x)(cons 10 p))))'("0" "DGX"))
普通浏览复制代码
01.(SETQ P(GETPOINT))
02.(FOREACH X '("0" "DGX")
03. (IF(NULL (TBLOBJNAME"LAYER"x))
04. (entmake (list'(0 . "LAYER")'(100 . "AcDbSymbolTableRecord")'(100 . "AcDbLayerTableRecord")
05. '(70 . 0)(cons 2 x))))
06.(ENTMAKE (LIST'(0 . "POINT")(CONS 8 X)(CONS 10 P))))
普通浏览复制代码
01.(SETQ P(GETPOINT))
02.(FOREACH X '(("0"1)("DGX" 3))
03.(IF(NULL (TBLOBJNAME"LAYER"(CAR X)))
04. (entmake (list'(0 . "LAYER")'(100 . "AcDbSymbolTableRecord")'(100 . "AcDbLayerTableRecord")
05. '(70 . 0)(cons 2 (CAR X)))))
06.(ENTMAKE (LIST'(0 . "POINT")(CONS 8 (CAR X))(CONS 62 (LAST X))(CONS 10 P))))
学习了,那我想同在“DGX","DGX1","DGX2"3个图层同时画图,每个图层的颜色不一样,应该怎么写啊
页:
[1]
2