magicheno 发表于 2020-2-29 16:08:07

如何通过命令画出自定义线宽及图层后的PL线

想请教下大神们,我想通过一个命令,画出一条线宽为60,W-DIM图层的PL线,或者线宽为60,W-DIM图层颜色为红色的PL线    这样能实现吗?

cqu20104225 发表于 2020-2-29 20:01:04

应该不难
我的思路是先创建一个“W-DIM”的图层,图层颜色设置为红色,线宽为60
然后画一个PL线,并将PL线的图层设置为W-DIM
利用entmake函数可以实现上述功能,建议在论坛搜一下

magicheno 发表于 2020-2-29 20:15:58

cqu20104225 发表于 2020-2-29 20:01
应该不难
我的思路是先创建一个“W-DIM”的图层,图层颜色设置为红色,线宽为60
然后画一个PL线,并将PL ...

我只会看着怎么用用,或者局部改改,自己不会写,惭愧

cqu20104225 发表于 2020-2-29 22:36:08

本帖最后由 cqu20104225 于 2020-2-29 22:41 编辑

(defun c:ppl (/ ss oldlayer newlayer)
;;;创建图层
(if (= (tblobjname "layer" "W-DIM") nil)
    (entmake
      (list
      '(0 . "LAYER")
      '(100 . "AcDbSymbolTableRecord")
      '(100 . "AcDbLayerTableRecord")
      '(70 . 0)
         (cons 2 "W-DIM")
         (cons 62 1)
      )
    )
)
;;;绘制多段线并设置属性
(command "pline" pause "w" "60" "60" pause)
(setq ss (entget (entlast)))
(setq oldlayer (assoc 8 ss))
(setq newlayer (cons 8 "W-DIM"))
(setq ss (subst newlayer oldlayer ss))
(entmod ss)
(princ)
)

;;;弄了个粗糙的版本,如果用vlisp会更加简洁一些。

magicheno 发表于 2020-2-29 23:09:15

cqu20104225 发表于 2020-2-29 22:36
(defun c:ppl (/ ss oldlayer newlayer)
;;;创建图层
(if (= (tblobjname "layer" "W-DIM") nil)


可以用啊,益达大侠非常非常感谢,类似的功能如果我要画云线,手绘的矩形,或者任意形态的,同样在W-DIM图层,该怎么改改呢

magicheno 发表于 2020-3-2 13:23:09

magicheno 发表于 2020-2-29 23:09
可以用啊,益达大侠非常非常感谢,类似的功能如果我要画云线,手绘的矩形,或者任 ...

(defun c:tt5 (/ ss oldlayer newlayer)
;;;创建图层
(if (= (tblobjname "layer" "W-DIM") nil)
    (entmake
      (list
      '(0 . "LAYER")
      '(100 . "AcDbSymbolTableRecord")
      '(100 . "AcDbLayerTableRecord")
      '(70 . 0)
         (cons 2 "W-DIM")
         (cons 62 1)
      )
    )
)
;;;绘制多段线并设置属性
(command "revcloud" "s" "c"pause pause)
(setq ss (entget (entlast)))
(setq oldlayer (assoc 8 ss))
(setq newlayer (cons 8 "W-DIM"))
(setq ss (subst newlayer oldlayer ss))
(entmod ss)
(princ)
)

按你的版本修改了下,可以用的非常感谢哈
页: [1]
查看完整版本: 如何通过命令画出自定义线宽及图层后的PL线