★★问题不断,如何求多段线上水平等距点的坐标★★
画渠道又碰到另一个问题了,渠道纵剖面还要对每隔一定水平长度的地面线求坐标,网上有很多求定距坐标的,但都是按多段线长度来求的,不是按水平距来求的,继续恳请各位英雄大侠帮帮忙解决。最简单的方式,临时产生一条竖直射线,求交点 有图无码:
本帖最后由 Sylvanas 于 2016-9-29 15:04 编辑
(defun c:tt ()
(setq ptlst nil)
(setq ent (car (entsel "\n选择要定距等分的对象:")))
(if (= (cdr (assoc 0 (setq data (entget ent)))) "LWPOLYLINE")
(progn (setq obj (vlax-ename->vla-object ent)
;totallen (vla-get-length obj)
dis (getdist "\n指定线段长度:")
pts (vlax-curve-getStartPoint obj)
pte (vlax-curve-getEndPoint obj)
totallen (abs (- (car pts) (car pte)))
k 1
)
(while (<= (* k dis) totallen)
(setq dislast (* k dis))
(setq pt (list (+ (car pts) dislast) (cadr pts)))
(setq
ptlst (cons (vlax-curve-getClosestPointToProjection obj pt '(0 1 0))
;(vlax-curve-getPointAtDist obj dislast)
ptlst)
)
(setq k (1+ k))
)
)
)
(reverse ptlst)
)
用你给的代码改的,试一下 Sylvanas侠的代码正是我需要的,没想到这么快就有结果了,非常惊喜,非常感谢!! 谢谢大家的关注,尤其感谢贡献源码的大侠!! 能将各点坐标在对应上点用text文本写出来吗?不只是在命令行显示,如果能将终点坐标写出来就更好了!! 好学的妹纸, 上面有源码了 ,改改就可以了 wanhongron 发表于 2016-9-29 16:49
能将各点坐标在对应上点用text文本写出来吗?不只是在命令行显示,如果能将终点坐标写出来就更好了!!
已有点表ptlst,foreach+entmake应该不是什么难事吧? 好的,见笑了,目前还停留在抄袭的水平,非常感谢!!
页:
[1]