请教:如何画可带圆弧的双线?
[测绘制图,画围墙时需要用双线,两条线的线型不同。要求是一路画过去,可以自由选择下一步是用直线还是圆弧。用mline的话就无法画圆弧了,我打算象下边这样用平行线来解决,但总觉得不满意:(DEFUN C:test()
;指定第一条线的层和线型:
(setvar "clayer""wall")(setvar "celtype" "wq2012")
;输入宽度:
(setq th (getreal "输入墙厚度:(默认为0.5):"))
;先画一条边线:
(command "pline" )
;判断是否还处于pline中:
(while (= (getvar "CMDACTIVE") 1) (command pause))
;作平行线,如果前边th没有输入则默认为0.5:
(setq a (vlax-ename->vla-object (entlast)))
(if (= nil th) (vla-offset a -0.5) (vla-offset a (- th)))
;选择刚做好的平行线,然后更改线型:
(setq b (entlast))
(command "chprop" b "" "lt" "continuous" "")
)
现在问题还有两个:第一是,我希望第一条线,就是用pline做的那条线是打散的,不知道做好了平行线之后,该如何回头去选择这条线;第二个问题是我如何封闭这两条平行线的头和尾呢?是否要调用lastpoint和lastangle这两个参数,但不知道如何去弄。小弟刚开始学lisp,纯属菜鸟,请大家帮帮忙。
[ 本帖最后由 mandala 于 2010-12-12 13:04 编辑 ] 如果不直接用(command "pline" ),而是设置输入点P1、P2后制作循环,用(command "pline"p1 p2 )这种方式来画线,再用polar的确可以做到封闭头尾,但问题是这样做的话,无法在画线的过程中自由选择下一步是用直线还是圆弧。 恩恩 这个也是初级问题可我不会加油啦兄弟
页:
[1]