绘制道路视距三角区,测试笔记~~~
;头大啊~实在编不出来了,继续不下去了,求高手帮忙~~~;目前这个测试成功,但是只能针对两条线相交的十字路口,;视距三角区测试,目前仅适用于俩线相交的十字路口
;还需要加入1.三条或四条线相交的十字路口.
; 2.三条或四条线相交的T字Y字路口.
(defun c:tt()
(setq vvlst '((100 160)(80 100)(60 70)(50 60)(40 40)(30 30)(20 20)));设计车速与停车视距表
(setq pt (getpoint "\n选择道路交点:")
ss (ssget "C" pt pt '((0 . "*POLYLINE,LINE") (8 . "DL_道路中线")))
)
(setq obj0 (vlax-ename->vla-object (ssname ss 0))
vv (atoi (vlax-ldata-get obj0 "设计车速"))
dis (cadr(assoc vv vvlst))
)
(setq dd (vlax-curve-getDistAtPoint obj0 pt)
pt1 (vlax-curve-getPointAtDist obj0 (+ dd dis))
pt2 (vlax-curve-getPointAtDist obj0 (-dd dis))
)
(setq obj1 (vlax-ename->vla-object (ssname ss 1))
vv (atoi (vlax-ldata-get obj1 "设计车速"))
dis (cadr(assoc vv vvlst))
)
(setq dd (vlax-curve-getDistAtPoint obj1 pt)
pt3 (vlax-curve-getPointAtDist obj1 (+ dd dis))
pt4 (vlax-curve-getPointAtDist obj1 (- dd dis))
)
(setq ptlst(list pt1 pt3 pt2 pt4 pt1))
(make-lwpolyline ptlst)
)
欢迎大家测试,求高手帮忙改进~
哦,对了,程序开始时,忘记设定交点OSMODE 32了~ 同行啊 支持下!!!!
页:
[1]