求一次性输入多条多线的等分点坐标
请高手帮助写一个代码。我希望一次性取得这些多线的等分点坐标,等分距为固定的0.1m。输入到CSV格式文件中,每条多线编号,例如L1、L2、L3....Ln。输出格式为:线的编号占一列,X占一列,Y占一列。用晓东函数库或学院派函数库均可。
那些多段线是不能打断的,只是提取等分点坐标。
(defun c:tt ( / e ff file i j lst lst0 lsta plst pt pts ss)
(setq ss (ssget '((0 . "*POLYLINE"))) i -1 j 1 lst0 '("编号" "X坐标" "Y坐标"))
(while (setq e (ssname ss (setq i (1+ i))))
(setq pts (xyp-Get-CurveDivEqualDist e 0.1)
lst (mapcar '(lambda(pt) (setq plst (list (strcat "L" (itoa j)) (rtos (car pt) 2 3) (rtos (cadr pt) 2 3)))) pts)
lsta (append lst lsta)
j (1+ j)
)
)
(setq lsta (append (list lst0) (reverse lsta));;因为cvs对行数是有限制的,所以改存TXT文件,你也可以改成*.CVS
file "d:\\多段线定距等分点.txt"
ff (open file "a")
)
(mapcar '(lambda(pt) (write-line (strcat (car pt) "," (cadr pt) "," (caddr pt)) ff)) lsta)
(close ff)
) E派导入表格函数我总是不能正确使用...多了几句费话....因为cvs对行数是有限制的,所以改存TXT文件,你也可以改成*.CVS
你分段太密集,超过CVS行数限制了.....用TXT没有.... 需要E派支持.... 这个程序很好,正需要啊。谢谢楼主分享。 不错的资料, 谢谢楼主分享啊。
页:
[1]