magicheno 发表于 2020-8-10 01:26:25

绘制多段线如何设置线段的线型比例

请教下大侠们,我先绘制一个有特定线宽线型的多段线,设定好了颜色,线型,图层,但是设置线性比例的时候发现怎么也设置不出来,下面常识两种方法都不行,组码48,设定了后还是不行,该如何修改呢,目标是绘制出一条线型比例为0.6的,6号色,PHANTOM2线型,100线宽,"WP_YY_CHG”图层的多段线
(defun c:tt5 (/ ss oldlayer newlayer)
;;;创建图层
(if (= (tblobjname "layer" "WP_YY_CHG") nil)
    (entmake
      (list
      '(0 . "LAYER")
      '(100 . "AcDbSymbolTableRecord")
      '(100 . "AcDbLayerTableRecord")
      '(70 . 0)
      '(48 . 0.5)
         (cons 2 "WP_YY_CHG")
         (cons 62 6)
         (cons 6 "PHANTOM2")
         (cons48 0.5)

      )
    )
)
;;;绘制多段线并设置属性
(command "pline" pause "w" "100" "100" pause)
(setq ss (entget (entlast)))
(setq oldlayer (assoc 8 ss))
(setq newlayer (cons 8 "WP_YY_CHG"))
(setq ss (subst newlayer oldlayer ss))
(entmod ss)
(setvar "Clayer" oldlay)
(princ)
)

----------------------------------------------------------
(defun c:tt5 (/ ss oldlayer newlayer)
;;;创建图层
(if (= (tblobjname "layer" "WP_YY_CHG") nil)
    (entmake
      (list
      '(0 . "LAYER")
      '(100 . "AcDbSymbolTableRecord")
      '(100 . "AcDbLayerTableRecord")
      '(70 . 0)
      '(48 . 0.5)
         (cons 2 "WP_YY_CHG")
         (cons 62 6)
         (cons 6 "PHANTOM2")
      (cons 48 0.6)

      )
    )
)
;;;绘制多段线并设置属性
(command "pline" pause "w" "100" "100" pause)
(setq ss (entget (entlast)))
(command "change" ss "" "p""S" "0.6" "")
(setq oldlayer (assoc 8 ss))
(setq newlayer (cons 8 "WP_YY_CHG"))
(setq ss (subst newlayer oldlayer ss))
(entmod ss)
(setvar "Clayer" oldlay)
(princ)
)


magicheno 发表于 2020-8-10 17:51:23

magicheno 发表于 2020-8-10 17:11
是这样么,好像不行呢
(command "pline" pause "w" "100" "100" pause)
(setq ss (entget ( ...
(defun c:tt5 (/ ss oldlayer newlayer)
;;;创建图层
(command "layer" "m" "WP_YY_CHG" "c" "6" "" "")
(if (= (tblobjname "layer" "WP_YY_CHG") nil)
    (entmake
      (list
      '(0 . "LAYER")
      '(100 . "AcDbSymbolTableRecord")
      '(100 . "AcDbLayerTableRecord")
      '(70 . 0)
         (cons 2 "WP_YY_CHG")
         (cons 62 6)
         (cons 6 "PHANTOM2")


      )
    )
)



;;;绘制多段线并设置属性
(command "pline" pause "w" "100" "100" pause)
(setq ss (entget (entlast)))
(setq oldlayer (assoc 8 ss))
(setq newlayer (cons 8 "WP_YY_CHG" ))
(setq newlayer (cons 48 0.6))
(setq ss (subst newlayer oldlayer ss))
(entmod ss)

(wufengduankai (cdr (assoc -1 ss)))

(defun wufengduankai (entname / w)
(setvar "PEDITACCEPT" 1)
(setq w (cdr (assoc 40 (entget entname))))         
(command "EXPLODE" entname "" "pedit" "m" "p" "" "w" w "")
(setvar "PEDITACCEPT" 0)
(princ)
)
(princ)
)

magicheno 发表于 2020-8-10 17:11:31

start4444 发表于 2020-8-10 16:49
在你代码最后一个括号前面加下面一段:

(wufengduankai (cdr (assoc -1 ss)))


是这样么,好像不行呢
(command "pline" pause "w" "100" "100" pause)
(setq ss (entget (entlast)))
(setq oldlayer (assoc 8 ss))
(setq newlayer (cons 8 "WP_YY_CHG" ))
(setq newlayer (cons 48 0.6))
(setq ss (subst newlayer oldlayer ss))
(entmod ss)

(wufengduankai (cdr (assoc -1 ss)))

(defun wufengduankai (entname / w)
(setvar "PEDITACCEPT" 1)
(setq w (cdr (assoc 40 (entget entname))))         
(command "EXPLODE" entname "" "pedit" "m" "p" "" "w" w "")
(setvar "PEDITACCEPT" 0)
(princ)
)
(princ)
)

magicheno 发表于 2020-8-10 14:40:54

start4444 发表于 2020-8-10 12:58
你的代码没有对新画线修改48码,在修改8码那里加上去就对了

大侠再请教下,如果我想绘制出来的是无缝断开的线段的话,该如何结合呢,下面是上次你帮忙写的,想两者结合一下,目的是我绘制出来的多段线是一段一段的
(defun c:tt5 (/ entname w)
(setvar "PEDITACCEPT" 1)
(setq entname (car (entsel "\n请选择对象:")) w (cdr (assoc 40 (entget entname))))         
(command "EXPLODE" entname "" "pedit" "m" "p" "" "w" w "")
(setvar "PEDITACCEPT" 0)
(princ)
)

czb203 发表于 2020-8-10 10:43:04


非常的牛逼啊,感谢大神分享

ZZXXQQ 发表于 2020-8-10 11:10:23

线型比例应该与总绘图比例有关联

magicheno 发表于 2020-8-10 11:28:20

ZZXXQQ 发表于 2020-8-10 11:10
线型比例应该与总绘图比例有关联

可否设置画出来线段的线型比例呢,默认是1的

start4444 发表于 2020-8-10 11:41:57

建新图层那里有错,要保证本图有 PHANTOM2 这个线型才行

ZZXXQQ 发表于 2020-8-10 11:45:13

magicheno 发表于 2020-8-10 11:28
可否设置画出来线段的线型比例呢,默认是1的

可以。一般对PHANTOM2设置总线型比例为绘图比例,线条的线型比例为默认值。

magicheno 发表于 2020-8-10 11:52:06

start4444 发表于 2020-8-10 11:41
建新图层那里有错,要保证本图有 PHANTOM2 这个线型才行

理正默认打开有这个线型的,就是设置线条的比例设置不出来

magicheno 发表于 2020-8-10 11:56:28

ZZXXQQ 发表于 2020-8-10 11:45
可以。一般对PHANTOM2设置总线型比例为绘图比例,线条的线型比例为默认值。

总线型理正有默认比例额的,就是新画出来的线条线型就设置不了了,相当于是想画出线之后,按CTRL+1,然后把线性比例1修改为0.6,

start4444 发表于 2020-8-10 12:58:34

你的代码没有对新画线修改48码,在修改8码那里加上去就对了

magicheno 发表于 2020-8-10 13:57:25

start4444 发表于 2020-8-10 12:58
你的代码没有对新画线修改48码,在修改8码那里加上去就对了

多谢指点大侠,加上这个设定真的就可以了(setq newlayer (cons 48 0.6))
页: [1] 2
查看完整版本: 绘制多段线如何设置线段的线型比例