求USER2128 大师或路过的高手修改下,标注好的坐标输出txt文件
原贴位置:http://bbs.mjtd.com/thread-99227-1-1.html
原程序已经很好用,但是加上如下两个就非常完美了~~~
1、修改内容,在引线端头位置,在图上标上编号
2、输出样式修改如下:
X Y
1,2887794317,452867597
2,2887800389,452875288
这个前面的序号与图上标注的编号是一样的。。。。麻烦了谢谢
;;; 标注好的坐标输出TXT格式:
;;; 输出样式:
;;; X值 Y值
;;; 1, 87753.815, 52860.248
;;; 2, 2887765.655, 452850.981
(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 info (vl-sort info '(lambda (x y) (< (caarx) (caary)))))
(setq info (vl-sort info '(lambda (x y) (< (cadar x) (cadar y)))))
(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 n 0)
(setq f_op (open f_n "w"))
(princ " X 值 Y 值\n" f_op)
(mapcar '(lambda(x)
(princ (strcat (itoa (setq n (1+ n))) ", ") f_op)
(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)
)
大师麻烦帮我更改成原来的排序。。不好意思。。原来的排序更好~~~ 大师编号能不能标在图纸上啊麻烦了 原程序是无序的,还是有些不妥。标至图中,等我下班后帮弄 谢谢兄弟了 本帖最后由 USER2128 于 2012-11-21 16:06 编辑
;;; 标注好的坐标输出到: 与DWG文件同目录、同名的TXT文件中;
;;; 输出样式:
;;; X值 Y值
;;; 1, 87753.815, 52860.248
;;; 2, 2887765.655, 452850.981
;;; .
;;; .
;;; .
;;;
;;; 将编号1、2、... 写到图中.
;;;
为表示点辛苦费,附件要收1个明经币(抱歉)
谢谢 USER2128 老大。。这程序真的太强大了谢谢~ USER2128 发表于 2012-11-21 16:03 static/image/common/back.gif
;;; 标注好的坐标输出到: 与DWG文件同目录、同名的TXT文件中;
;;; 输出样式:
;;; X值 Y值
下载了,在04版运行
错误 : 参数类型错误: lentityp nil
为什么?
页:
[1]