【求】查询平行线间距代码
这个问题好像不复杂,PKPM查询有这个功能,这个经常需要查询,要求:LINELWPOLYLINE 都支持
在其中一根上任取一点,获取该点至另一条的距离即可 ;;[功能]点到曲线的垂直距离 ;;[用法](LC:point>curveFoot-dist (car(entsel "\n 请选择曲线:")) (getpoint "\n 请选择线外一点:")) ;;[作者]BY 老仓测绘上班记 (defun LC:point>curveFoot-dist (EN PT / CURVEFOOT CURVEDIST) (setq curveFoot (vlax-curve-getClosestPointTo (vlax-ename->vla-object en) pt);垂点 curvedist (distance curveFoot pt) ) ) 自己根据需要修改一下即可 ;;;==查询线线间距==========================================*
(defun c:lx (/ spname1 spname2 pt1 curveFoot dis)
(vl-load-com)
(setq spname1 (car (entsel "\n请选择第一条平行线或曲线:")))
(setq spname2 (car (entsel "\n请选择平行线第二条:")))
(if (= "LINE" (cdr (assoc 0 (entget spname2))))
(setq pt1 (cdr (assoc 10 (entget spname2))))
)
(if (= "LWPOLYLINE" (cdr (assoc 0 (entget spname2))))
(setq pt1 (vlax-curve-getstartpoint spname2)) ; 对象的起点
)
(setq curveFoot (vlax-curve-getClosestPointTo (vlax-ename->vla-object spname1) pt1));垂点
(setq dis (distance pt1 curveFoot))
(princ "\n 平行线间距为")(princ dis)
)
;;;==查询线线间距==========================================*
尘缘一生 发表于 2019-5-2 18:14
;;;==查询线线间距==========================================*
(defun c:lx (/ spname1 spname2 pt1 cur ...
误差在百分位,不精准 尘缘一生 发表于 2019-5-2 18:14
;;;==查询线线间距==========================================*
(defun c:lx (/ spname1 spname2 pt1 cur ...
误差在百分位,不够精准 程序不会判断是否平行。点选使用不方便,要是改成一次性框选两直线使用起来会好很多。
页:
[1]