qmqyqj 发表于 2017-9-5 10:17:37

lisp画线指定图层、线型和颜色

想用lisp实现画pline多段线,画的同时该图元归到设定的图层、颜色和线型,请教怎么写!

Andyhon 发表于 2017-9-6 10:28:26

想用lisp实现画pline多段线,画的同时该图元

简单的说吧
模板先建有该图层并指定所使用的颜色和线型
(备便引用)

画pline多段线前切换至该图层


建图层并指定所使用的颜色和线型
站内有前例直接套用

切换至该图层
(setvar "Clayer" 该图层)

当然加上错误处理会更好

qmqyqj 发表于 2017-9-9 08:32:44

Andyhon 发表于 2017-9-6 10:28
想用lisp实现画pline多段线,画的同时该图元

简单的说吧


不能不使用模版,直接在原始文件内直接做吗?

Andyhon 发表于 2017-9-9 09:31:13

模版,适用于自家用的新图

若是来自客户的图 or 旧图
则直接在原始文件内直接做
or
insert 至 新开启的模版后再行处理

water_system 发表于 2017-9-9 17:01:57

很简单!如果用entmake的方式创建多段线,则8对应图层,62对应颜色,6对应的是线型。直接写进去就行了。

比如这样子。
(defun        c:tt()
(setq lst (list (getpoint) (getpoint) (getpoint)))
(entmake (append
             (list (cons 0 "LWPOLYLINE")
                   (cons 100 "AcDbEntity")
                   (cons 100 "AcDbPolyline")
                   (cons 6 "ACAD_ISO05W100")        ;线型
                   (cons 8 "new")                ;图层
                   (cons 62 1)                        ;颜色
                   (cons 90 (length lst)))
             (mapcar ''((x) (cons 10 x)) lst)))
)

qmqyqj 发表于 2017-9-13 08:49:03

water_system 发表于 2017-9-9 17:01
很简单!如果用entmake的方式创建多段线,则8对应图层,62对应颜色,6对应的是线型。直接写进去就行了。

...

测试了下,出现了以下问题:1.画线必须要确定3个点才能生成线条(而且只能画3点构成的2条线);2.就是线型的问题,必须当前文件内加载了设置的线型才能用,如果当前文件内没有代码内设置的线型,则功能失效!

Andyhon 发表于 2017-9-13 10:18:04

建议您即尽早规范使用客制化模板

vladimirputin 发表于 2017-10-31 10:47:43

不错的资料,谢谢分享啊。

水仙的错 发表于 2019-9-15 14:49:28

谢谢分享,学习下

消失的天空 发表于 2019-11-1 17:26:09

http://bbs.mjtd.com/forum.php?mod=viewthread&tid=89742&highlight=%CD%BC%B2%E3
可以看一下G版。
页: [1]
查看完整版本: lisp画线指定图层、线型和颜色