求别人标注好的坐标输出TXT格式
输出样式:
X值 Y值
87753.815,52860.248
测试文件
麻烦各位大侠了谢谢~~~~~~~~~~~~~~
(defun c:tt ()
(setvar "CMDECHO" 0)
(if (setq ss (ssget '((0 . "TEXT") (1 . "X=*,Y=*")))) (progn
(setq i 0 dll (list))
(repeat (sslength ss)
(setq ent (entget(ssname ss i))
i (1+ i)
dll (cons (cons (cdr(assoc 10 ent)) (cdr(assoc 1 ent))) dll))
)
(setq dll (reverse dll))
(setq sdll (vl-sort dll '(lambda (x y) (< (caar x) (caar y)))))
(setq sdll (vl-sort sdll '(lambda (x y) (< (cadar x) (cadar y)))))
(setq fn (if fn fn ""))
(if (setq fn (getfiled "输出文件名" fn "txt" 1)) (progn
(setq fp (open fn "w"))
(setq ppt T)
(princ "X值 Y值" fp)
(foreach x sdll
(if ppt
(princ (strcat "\n" (substr (cdr x) 3)) fp)
(princ (strcat "" (substr (cdr x) 3)) fp)
)
(setq ppt (not ppt))
)
(close fp)
(startapp "notepad" fn)
))
))
(princ)
)
手动选取,还是框选啊,如果手动选取的话,应该不难! 版主可真快,刚准备上传,版主的已弄好了!佩服! 本帖最后由 USER2128 于 2012-11-20 20:59 编辑
我还是上传吧! (defun c:tt ( / ss n info ent txt pt t_h tmp tmp1 tmp2 f_n f_op)
(setq ss (ssget '((0 . "TEXT") (1 . "X=*,x=*"))))
(setq n 0)
(setq info '())
(repeat (if ss (sslength ss) 0)
(setq ent (entget (ssname ss n))
txt (cdr (assoc 1 ent))
pt(cdr (assoc 10 ent))
t_h (cdr (assoc 40 ent))
)
(setq info (append info (list (list pt txt t_h))))
(setq n (1+ n))
)
(command "_.zoom" "_e")
(setq info (mapcar '(lambda(x)
(progn (setq tmp (car x))
(setq tmp1 (mapcar '(lambda(y) (- y (caddr x))) tmp)
tmp2 (mapcar '(lambda(y) (+ y (caddr x))) tmp))
(and (setq ss_tmp (ssget "c" tmp1 tmp2 '((0 . "TEXT") (1 . "Y=*,y=*"))))
(setq tmp (cdr (assoc 1 (entget (ssname ss_tmp 0)))))
(setq x (list (car x) (cadr x) tmp))
)
x)) info))
(setq f_n(getvar "DWGname")
f_n(strcat (substr f_n 1 (- (strlen f_n) 4)) ".txt")
f_n(strcat (getvar "DWGPREFIX") f_n)
)
(setq f_op (open f_n "w"))
(princ " X 值 Y 值\n" f_op)
(mapcar '(lambda(x)
(princ (substr (cadrx) 3) f_op)
(princ ", " f_op)
(princ (substr (caddr x) 3) f_op)
(princ "\n" f_op)
) info)
(close f_op)
(princ)
)
谢谢Z版。。如果能在引线端加入编号就非常好了。。
输出的时候是这样样子的
输出样式:
X值 Y值
1,87753.815,52860.248
逗号也要最好。。不知道Z版老大能不能出手下谢谢~ 本帖最后由 USER2128 于 2012-11-20 21:09 编辑
USER2128 发表于 2012-11-20 20:55 http://bbs.mjtd.com/static/image/common/back.gif
我还是上传吧!
在引线端加入编号,程序很容易改的,就留与你自己做作业吧。 输出文件与DWG文件同目录,文件名也相同 哦………这个没注意看……后来发现Z版那个……提取的如果能以X.坐标最小的那组坐标从小到大排列最好哈……… 我猜,到头来你还是会用我的程序,只是想排序的话加上排序就行了。原因吗,你就仔细查看一下你的输出结果吧。
页:
[1]
2