求一条多段线顶点到另一条多段线的最短距离,然后导出到excel,程序
求一条多段线顶点到另一条多段线的最短距离,两条多段线不相交,然后将每个顶点对应的最小距离依照顺序导出到excel.每个顶点都求一次,太麻烦了.在此谢过拉. <p>有高手晓得吗.这里我提供些我知道的资料</p><p><br/>好象VLISP中有VLAX-CURVE-GETCLOSEDPOINTTO<br/>这么一个函数直接返回点到曲线的最短距离.....</p><p></p><p></p><p><br/> </p> <p>时间问题,呵,有时间也许帮你坐坐</p> huhu.没有人啊.哪个高人帮我解决下呀. <p>帮帮忙啊 .555</p> 我的集成工具中“轴线至边线距离(平面)”可实现该功能,但得分两步,第一步,运用工具中桩号标注,将折点桩号标出,并形成数据文件,第二步,然后将数据文件中折点桩号列入EXCEL中,将鼠标点在首桩号,然后运行轴线至边线距离,可求得指定桩号的点到另一线的距离,但限于平面。 高手在哪里呢 路过...未能理出编程所需的具体素材来
上个图再加以说明会好些 请试试这个函数,是到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]