清风明月名字 发表于 2014-1-11 21:05:26

求一次性输入多条多线的等分点坐标

请高手帮助写一个代码。
我希望一次性取得这些多线的等分点坐标,等分距为固定的0.1m。输入到CSV格式文件中,每条多线编号,例如L1、L2、L3....Ln。输出格式为:线的编号占一列,X占一列,Y占一列。用晓东函数库或学院派函数库均可。
那些多段线是不能打断的,只是提取等分点坐标。

q3_2006 发表于 2014-1-11 21:05:27

(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)
        )

q3_2006 发表于 2014-1-12 06:54:25

E派导入表格函数我总是不能正确使用...多了几句费话....因为cvs对行数是有限制的,所以改存TXT文件,你也可以改成*.CVS
你分段太密集,超过CVS行数限制了.....用TXT没有....

q3_2006 发表于 2014-2-27 15:31:39

需要E派支持....

vladimirputin 发表于 2016-10-20 09:04:01

这个程序很好,正需要啊。谢谢楼主分享。

vladimirputin 发表于 2016-10-26 13:47:44

不错的资料, 谢谢楼主分享啊。
页: [1]
查看完整版本: 求一次性输入多条多线的等分点坐标