如何获取多义线点并输出到EXCEL?
如何获取多义线点并输出到EXCEL?点击多义线后,能获得多义线上节点坐标,并按点号,X坐标,Y坐标,H坐标(标高)分列排列。跪求。
以前总是通过列表方式获得。
要是三维多段线也这样就更好咯
本帖最后由 xyp1964 于 2011-1-10 22:16 编辑
(defun c:tt ()
(setq s1(car (entsel "\n选择三维多段线: "))
ptn (xyp-get-Vertexs s1 0)
lst '("X坐标" "Y坐标" "Z坐标")
)
(foreach pt ptn
(setq plst (list (rtos (car pt) 2 3)
(rtos (cadr pt) 2 3)
(rtos (caddr pt) 2 3)
)
lst(append lst plst)
)
)
(xyp-List2Xls lst 3)
(princ)
) http://ljttjl.ys168.com20090805多段线上标注点号并提取坐标程序 (defun c:tt (/ doc spc ss file sel pts)
(vl-load-com)
(setq doc (vla-get-ActiveDocument
(vlax-get-Acad-Object)
)
spc (if (zerop (vla-get-activespace doc))
(if (= (vla-get-mspace doc) :vlax-true)
(vla-get-modelspace doc)
(vla-get-paperspace doc))
(vla-get-modelspace doc)))
(if (and (setq ss (ssget '((0 . "*POLYLINE"))))
(setq file
(getfiled "Output File"
(if *load *load "") "csv;txt" 9)
)
)
(progn
(setq *load file file (open file "a"))
(vlax-for Obj (setq sel (vla-get-ActiveSelectionSet doc))
(setq pts
(vlax-list->3D-point
(vlax-get Obj 'Coordinates)
(cond ((eq (vla-get-ObjectName Obj) "AcDbPolyline")))
)
)
(mapcar
(function
(lambda (x)
(write-line
(strcat
(rtos (car x) 2 2) (chr 44)
(rtos (cadr x) 2 2) (chr 44)
(rtos (caddr x) 2 2))
file
)
(vla-addPoint spc (vlax-3D-point x))
)
)
pts
)
)
(princ (strcat "\n<< 共有 " (itoa (vla-get-Count sel)) " Polylines 写入文件 >>"))
(close file)
(vla-delete sel)
)
)
(princ)
)
(defun vlax-list->3D-point (lst x / oLst)
(while lst
(setq oLst
(cons (list (car lst) (cadr lst) (if x 0.0 (caddr lst))) oLst)
lst ((if x cddr cdddr) lst)
)
)
oLst
) 经过我的应用,发现xyp1964 的不能应用,或许我没用对?ljttjl 的只能提取多段线的坐标,不能提取三维多段线的坐标,同时我觉得不需要将点号那个汉字“号”标出,只需将点号的序号标出即可。gzxl 的程序可以识别应用在多段线和三维多段线,但是提取的精度只有两位,要是可以变成三位的精度最好。而且也没有点号提取。望能改进之。
最后,也可以像ljttjl 那样提取到txt,dat格式文件中也可以。 ...变成三位的精度...
(strcat
(rtos (car x) 2 2) (chr 44)
(rtos (cadr x) 2 2) (chr 44)
(rtos (caddr x) 2 2))
file
)
===>Prec 对映所须的精度
(strcat
(rtos (car x) 2 Prec) (chr 44)
(rtos (cadr x) 2 Prec) (chr 44)
(rtos (caddr x) 2 Prec))
file
) gzbccy 发表于 2011-1-12 09:22 static/image/common/back.gif
经过我的应用,发现xyp1964 的不能应用,或许我没用对?ljttjl 的只能提取多段线的坐标,不能提取三维多段线 ...
你安装了学院派工具箱了吗? 不好意思,还没有安装学院派工具箱。不知道这个工具箱 6楼的将精度问题解决了,但是点号排列问题还是没有解决 gzbccy 发表于 2011-1-12 09:56 static/image/common/back.gif
不好意思,还没有安装学院派工具箱。不知道这个工具箱
2楼有下载地址