flytoday 发表于 2012-11-21 00:59:34

求USER2128 大师或路过的高手修改下,标注好的坐标输出txt文件

原贴位置:
http://bbs.mjtd.com/thread-99227-1-1.html

原程序已经很好用,但是加上如下两个就非常完美了~~~

1、修改内容,在引线端头位置,在图上标上编号
2、输出样式修改如下:
                   X                  Y
          1,2887794317,452867597
          2,2887800389,452875288
这个前面的序号与图上标注的编号是一样的。。。。麻烦了谢谢

USER2128 发表于 2012-11-21 00:59:35

;;; 标注好的坐标输出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)
)

flytoday 发表于 2012-11-21 11:19:04

大师麻烦帮我更改成原来的排序。。不好意思。。原来的排序更好~~~

flytoday 发表于 2012-11-21 11:42:39

大师编号能不能标在图纸上啊麻烦了

USER2128 发表于 2012-11-21 11:55:20

原程序是无序的,还是有些不妥。标至图中,等我下班后帮弄

flytoday 发表于 2012-11-21 15:17:38

谢谢兄弟了

USER2128 发表于 2012-11-21 16:03:21

本帖最后由 USER2128 于 2012-11-21 16:06 编辑

;;; 标注好的坐标输出到: 与DWG文件同目录、同名的TXT文件中;
;;; 输出样式:
;;;    X值         Y值
;;; 1, 87753.815, 52860.248
;;; 2, 2887765.655, 452850.981
;;; .
;;; .
;;; .
;;;
;;; 将编号1、2、... 写到图中.
;;;

为表示点辛苦费,附件要收1个明经币(抱歉)

flytoday 发表于 2012-11-21 17:50:47

谢谢 USER2128 老大。。这程序真的太强大了谢谢~

香田里浪人 发表于 2013-8-25 07:47:35

USER2128 发表于 2012-11-21 16:03 static/image/common/back.gif
;;; 标注好的坐标输出到: 与DWG文件同目录、同名的TXT文件中;
;;; 输出样式:
;;;    X值         Y值


下载了,在04版运行
错误 : 参数类型错误: lentityp nil
为什么?
页: [1]
查看完整版本: 求USER2128 大师或路过的高手修改下,标注好的坐标输出txt文件