将属性导出到txt(litle
我在论坛上找到了这个代码lisp(defun c:att2file ()
(setq File1 (getfiled "File name" "" "txt" 1))
(setq Fopen (open File1 "w"))
(princ "\nSelect blocks to write att coords: ")
(setq BlockSet (ssget '((0 . "INSERT") (66 . 1))))
(setq Ecount 0)
(repeat (sslength BlockSet)
(setq Bname (ssname BlockSet Ecount))
(setq Blabel (cdr (assoc 2 (entget Bname))))
(setq AttName (entnext Bname))
(setq AttData (entget AttName))
(setq TxtIns (cdr (assoc 10 AttData)))
(setq Xtxt (rtos (car TxtIns) 2 4))
(setq ytxt (rtos (cadr TxtIns) 2 4))
(setq XY_Txt (strcat Blabel " " xtxt "," ytxt))
(write-line XY_Txt Fopen)
(setq Ecount (1+ Ecount))
)
(close Fopen)
(princ)
)
当我导出坐标时,会得到这样的txt文件
问题是我需要一个文件
这是我的街区。
这可能吗?
谢谢
指向图纸 如果您对例程感到满意,只需从例程中删除突出显示的代码。
我把它们去掉,但现在结果不是P,X,Y,只有X,Y。我需要P,X,Y。
(defun c:att2file ()
(setq File1 (getfiled "File name" "" "txt" 1))
(setq Fopen (open File1 "w"))
(princ "\nSelect blocks to write att coords: ")
(setq BlockSet (ssget '((0 . "INSERT") (66 . 1))))
(setq Ecount 0)
(repeat (sslength BlockSet)
(setq Bname (ssname BlockSet Ecount))
(setq AttName (entnext Bname))
(setq AttData (entget AttName))
(setq TxtIns (cdr (assoc 10 AttData)))
(setq Xtxt (rtos (car TxtIns) 2 4))
(setq ytxt (rtos (cadr TxtIns) 2 4))
(setq XY_Txt (strcat " " xtxt "," ytxt))
(write-line XY_Txt Fopen)
(setq Ecount (1+ Ecount))
)
(close Fopen)
(princ)
)
我发现,坐标不正确!!有什么想法吗 你说的P,X,Y是什么意思? P、 点的个数,1,2,3,k1,s1,t1任意 这是我观点的一个例子。
我最好将导出更新为
P、 X,Y,Z
1, 58.262 ,191.538 ,100
.
.
.
S1,80.776194.665,99.23
.
.
.
测试。图纸 试试这个新的程序。。
(defun c:Test (/ f ss o i n sn pt e p)
;; Tharwat 11.08.2013 ;;
(if (and (setq f (getfiled "File name" "" "txt" 1))
(setq ss (ssget '((0 . "INSERT") (66 . 1))))
(setq o (open f "w"))
)
(progn
(repeat (setq i (sslength ss))
(setq n(entnext (setq sn (ssname ss (setq i (1- i)))))
pt (cdr (assoc 10 (entget sn)))
)
(while (not (eq (cdr (assoc 0 (setq e (entget n)))) "SEQEND"))
(if (and (eq (cdr (assoc 0 e)) "ATTRIB")
(eq (strcase (cdr (assoc 2 e))) "POINT")
)
(setq p (cdr (assoc 1 e)))
)
(setq n (entnext n))
)
(if p
(write-line
(strcat p
","
(rtos (car pt) 2)
","
(rtos (cadr pt) 2)
","
(rtos (caddr pt) 2)
)
o
)
)
)
(close o)
)
)
(princ)
)
塔尔****,
您可以为带有描述的导出制作一个类似但不同的Lisp,并让它使用点#、北距(Y)、东距(X)、高程(Z)和描述吗?
谢谢
预计起飞时间
为什么? 我不知道为什么会这样?我把你的全名打成了塔瓦。
页:
[1]
2