坐标、块和文本
我正在寻找一个lisp,它将按层导出组成多段线、直线、块、文本弧和其他数据的所有点的笛卡尔坐标到csv文件中。有没有人有这样的Lisp程序或者知道我在哪里能找到?
提前感谢! 当你说“所有点”。。。。如果你真的是指“所有点”,那么会有无穷多个点 或者,Lee Mac,我们如何用lisp-rutine将点插入到多段线的所有顶点?
......
然后导出点….:
http://www.cadtutor.net/forum/showpost.php?p=22581&postcount=4 是的,我相信这是可以做到的——我看看有没有时间。 嘿,谢谢你的建议。实际上,我要找的大部分内容都包含在。dxf文件。然而,我想知道是否有一种有效的方法可以格式化dxf数据或将其发送到数据库? 这应该将点插入并导出到csv或txt文件中。
[颜色=#990099];;Lee McDonnell 26.07.2009导出的多段线点
(defunc:ptExp(/doc spc ss file sel pts)
(vl load com)
(setqdoc(vla get ActiveDocument
(vlax get Acad Object))
spc(如果(zerop(doc b])
(如果(=((doc b][color=RE
(vla get modelspacedoc)
(vla get paperspacedoc))
(vla get modelspacedoc))
(如果(和((([#009900]0“*折线”
(setq文件
(getfield“输出文件”
(if*load*load)9[color=RED
(progn
(setq*加载文件(打开文件“a”
(vlax forObj(setqsel b](doc b])
(setqpts
[颜色=红色](vlax列表->3D点
(vlax getObj'坐标)
(cond(eq(Obj) [颜色=红色]
(mapcar
(功能
(lambda(x)
(写入行
(strcat
(rtos(carx)2(]44
(rtos(cadrx22chr900]44
(rtos(caddrx2
(vla addPointspc(vlax-3D-pointx
(princ
(strcat“\n>”)
(关闭文件)
(vla删除sel))
(princ))
(defunvlax列表->3D点(lst x/oLst)
(而lst
(setqoLst
(cons(list)([如果x0.0(caddrlst)))
lst((如果xcddrcdddrlst
oLst
李·麦克
我做错什么了吗?!
看看这个样本。
在lisp例程中,“提升”不会写入txt文件。
我假设多段线在0,0。
但我可以纠正它。 试试这个:
;; Polyline Point Exported, by Lee McDonnell 26.07.2009
(defun c:ptExp (/ 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"))) Obj))
(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<< Points from "
(itoa (vla-get-Count sel)) " Polylines written to file >>"))
(close file)
(vla-delete sel)))
(princ))
(defun vlax-list->3D-point (lst x Obj / oLst)
(while lst
(setq oLst
(cons (list (car lst) (cadr lst)
(if x (vla-get-Elevation Obj) (caddr lst))) oLst)
lst ((if x cddr cdddr) lst)))
oLst)
谢谢,但它给了我以下错误消息:
错误:输入时虚线对中有额外的CDR
此外,这只会抓取多段线吗?我的画有几条线、几条弧和一点文字。我需要的大部分信息都在。dxf文件。。。有没有一种好方法可以将这些信息直接从AutoCAD导出到数据库?
页:
[1]
2