fjrj 发表于 2009-12-16 11:54:00

求一条多段线顶点到另一条多段线的最短距离,然后导出到excel,程序

求一条多段线顶点到另一条多段线的最短距离,两条多段线不相交,然后将每个顶点对应的最小距离依照顺序导出到excel.每个顶点都求一次,太麻烦了.在此谢过拉.

fjrj 发表于 2009-12-16 12:02:00

<p>有高手晓得吗.这里我提供些我知道的资料</p><p><br/>好象VLISP中有VLAX-CURVE-GETCLOSEDPOINTTO<br/>这么一个函数直接返回点到曲线的最短距离.....</p><p></p><p></p><p><br/>&nbsp;</p>

Hawking 发表于 2009-12-18 12:40:00

<p>时间问题,呵,有时间也许帮你坐坐</p>

fjrj 发表于 2009-12-21 09:59:00

huhu.没有人啊.哪个高人帮我解决下呀.

fjrj 发表于 2009-12-21 10:03:00

<p>帮帮忙啊 .555</p>

aceowen 发表于 2010-12-18 19:59:39

我的集成工具中“轴线至边线距离(平面)”可实现该功能,但得分两步,第一步,运用工具中桩号标注,将折点桩号标出,并形成数据文件,第二步,然后将数据文件中折点桩号列入EXCEL中,将鼠标点在首桩号,然后运行轴线至边线距离,可求得指定桩号的点到另一线的距离,但限于平面。

挂职网 发表于 2010-12-22 17:26:37

高手在哪里呢

Andyhon 发表于 2010-12-23 09:18:18

路过...
未能理出编程所需的具体素材来
上个图再加以说明会好些

Gu_xl 发表于 2010-12-23 13:41:03

请试试这个函数,是到CSV文件的。excel有点麻烦
;;;参数 SourcePoly 要计算的多段线图元名 TargetPoly 另一条多段线 CSVFile 输出文件名
(defun NearstPtoCSV (SourcePoly TargetPoly CSVFile)
(setq f (open CSVFile "a"))
(if (vlax-curve-isClosed SourcePoly)
    (setq n (fix(1- (vlax-curve-getEndParam SourcePoly))))
    (setq n (fix(vlax-curve-getEndParam SourcePoly)))
    )
(setq nn 0)
(repeat n
    (setq p (vlax-curve-getPointAtParam SourcePoly nn)
          p1 (vlax-curve-getClosestPointTo TargetPoly p)
          d (rtos (distance p p1) 2 3)
          rtn (cons d rtn)
          )
    (setq nn (1+ nn))
    )
(setq rtn (reverse rtn))
(setq str "" nn 0)
(repeat n
    (if (/= str "")
      (setq str (strcat str "," (nth nn rtn)))
      (setq str (nth nn rtn))
      )
    )
(write-line str f)
(close f)
str
)
页: [1]
查看完整版本: 求一条多段线顶点到另一条多段线的最短距离,然后导出到excel,程序