尘缘一生 发表于 2019-4-30 09:24:27

【求】查询平行线间距代码

这个问题好像不复杂,PKPM查询有这个功能,这个经常需要查询,
要求:LINELWPOLYLINE 都支持

伪书虫86 发表于 2019-4-30 16:08:39

在其中一根上任取一点,获取该点至另一条的距离即可

13648893846 发表于 2019-4-30 17:21:47

;;[功能]点到曲线的垂直距离 ;;[用法](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)    ) )

13648893846 发表于 2019-4-30 17:22:35

自己根据需要修改一下即可

尘缘一生 发表于 2019-5-2 18:14:54

;;;==查询线线间距==========================================*
(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)
)
;;;==查询线线间距==========================================*

cghdy 发表于 2019-10-8 10:21:25

尘缘一生 发表于 2019-5-2 18:14
;;;==查询线线间距==========================================*
(defun c:lx (/ spname1 spname2 pt1 cur ...

误差在百分位,不精准

cghdy 发表于 2019-10-8 10:21:39

尘缘一生 发表于 2019-5-2 18:14
;;;==查询线线间距==========================================*
(defun c:lx (/ spname1 spname2 pt1 cur ...
误差在百分位,不够精准

cghdy 发表于 2019-10-9 09:06:31

程序不会判断是否平行。点选使用不方便,要是改成一次性框选两直线使用起来会好很多。
页: [1]
查看完整版本: 【求】查询平行线间距代码