需要Lisp程序导出Le
嗨,兄弟们,我需要一个Lisp程序将带有坐标的导出级别和代码导出到Excel文件
例子:
东距,北距,代码,电平
附加的文件
调查数据。图纸 为什么你没有一个观点或任何定义它们的东西?我假设文本的东、北坐标和其中的标高是快照?
您是否考虑过使用AutoCad的内置数据提取? 在这种情况下,数据提取将不起作用,因为两个文本实体没有连接,但它们具有相同的插入点。图形中也没有点,所以我认为您希望文本的插入点作为坐标。此示例图形中的所有文字图元的Z值都为0.0,是否始终如此?如果是这样,可以省略Z值。
但在其他方面,编写LISP例程是一项相当简单的工作。你看过李的网站了吗?他有很多Lisp程序的例程,也许有一个可以做你想做的。
http://www.lee-mac.com/index.html 试试这个
(defun c:NE2CSV( / ofl i e data j k lst coord)
(vl-load-com)
(if (and (= 1 (getvar 'DwgTitled))
(setq data nil ss (ssget '((0 . "TEXT")))))
(progn
(setq fl(Strcat (getvar 'Dwgprefix)
(cadr (fnsplitl (getvar 'Dwgname)))
".csv")
ofl (open fl "w"))
(repeat (setq i (sslength ss))
(setq e (vlax-ename->vla-object (ssname ss (setq i (1- i)))))
(setq data (cons
(mapcar '(lambda (d)
(vlax-get e d))
'("TextString" "TextAlignmentPoint")) data)))
(setq data (vl-sortdata
'(lambda (a b)
(setq a (cadr a) b (cadr b))
(cond
((> (cadr a) (cadr b)) T)
((equal (cadr a) (cadr b) 0.1) (< (car a) (car b)))
)
)
))
(while (and (setq j (car data))
(setq k (cdr data)))
(setq lst (list j (car k))
lst (if (numberp
(read (caar lst))) lst (reverse lst))
coord (cadar lst))
(write-line (strcat (rtos (cadr coord))
"," (rtos (car coord))
"," (caadr lst)
"," (caar lst))
ofl)
(setq data (cdr k))
)
(close ofl)
)
)
(princ)
)
一旦将数据输入Excel,快速排序将使其能够匹配坐标、标高和代码。
但我不确定AutoCAD的哪个版本首先进行了数据提取
非常正确的eldon,但正如pBe用他的Lisp程序例程演示的那样,这一切都是一下子完成的。不错的一个pBe 精彩的Pbe。。。。。。。
你救了我。。。。
你创建的很棒的lisp程序
非常感谢你
实际上,数据提取是在AutoCAD 2008中引入的。
我的观点是OP不需要lisp,因为该命令已经存在。然而,如果您不想让人们知道普通AutoCAD是如何工作的,请继续使用lisps。
我不知道数据提取是什么时候引入的,谢谢你的信息。你说的“我的观点是OP不需要lisp”是对的,但有时,对于经验不足的用户来说,使用lisp例程更“舒适”。我很乐意让用户知道普通AutoCAD的工作原理,但我的经验是,普通用户对普通AutoCAD的工作原理不感兴趣。一个悲伤的事实,但却是真实的。你的贡献很有价值,我从来没有批评的意思。扔掉你的链条,如果你作为一个测量员知道我的意思。
很高兴为您服务。
干杯
谢谢你,小家伙。
继续编码
页:
[1]