mandala 发表于 2010-12-12 12:57

请教:如何画可带圆弧的双线?

[测绘制图,画围墙时需要用双线,两条线的线型不同。要求是一路画过去,可以自由选择下一步是用直线还是圆弧。用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 编辑 ]

mandala 发表于 2010-12-12 13:02

如果不直接用(command "pline" ),而是设置输入点P1、P2后制作循环,用(command "pline"p1 p2 )这种方式来画线,再用polar的确可以做到封闭头尾,但问题是这样做的话,无法在画线的过程中自由选择下一步是用直线还是圆弧。

Jacies 发表于 2010-12-13 06:41

恩恩 这个也是初级问题可我不会加油啦兄弟
页: [1]
查看完整版本: 请教:如何画可带圆弧的双线?