明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3748|回复: 13

实用!输出已编号的圆心坐标到EXCELL(转载源码BY lyt0623 )

  [复制链接]
发表于 2011-10-18 23:42:18 | 显示全部楼层 |阅读模式
已有大量圆,已经编号序号,应用此程序,可以按照图上编号在EXCELL中生成一一对应的坐标表,方便。先要在E盘建个名为”123“的文件夹。然后确定CAD上的圆有编号。转载的LYT06的作品!源码在下面。
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2011-10-18 23:44:45 | 显示全部楼层
(defun c:yxsc()
;;; 在图中向文件E:\\123\\2.xls输出选中字体角点坐标程序
  (VL-LOAD-COM)
  (setq AcadObject(vlax-get-acad-object)
        AcadDocument(vla-get-ActiveDocument AcadObject)
        mSpace(vla-get-ModelSpace AcadDocument)
  )
  (setq fp1(open "E:\\123\\2.xls" "w"))
  (setq p1(getpoint "\n请输入第一点:"))
  (setq p2(getpoint "\n请输入第二点:"))
  (setq ss(ssget "W" P1 p2))
  (SETQ t1 "text=")
  (setq a1 0)
  (setq tt1(cdr(assoc 1 (entget(ssname ss a1)))))
  (setq d1(cdr(assoc 10 (entget(ssname ss a1)))))
  (princ "\t" fp1)  (princ tt1 fp1)
  (princ "\t" fp1)  (princ "x=" fp1)  
    (princ "\t" fp1)  (princ (cadr d1) fp1)
   (princ "\t" fp1)  (princ "y=" fp1)
  (princ "\t" fp1)  (princ (car d1) fp1)
  (while  (ssname ss (+ a1 1))
    (setq a1 (+ a1 1))
    (setq tt1 (cdr (assoc 1 (entget(ssname ss a1)))))
     (setq d1 (cdr (assoc 10 (entget(ssname ss a1)))))
    (print t1 fp1)
      (princ "\t" fp1)  (princ tt1 fp1)
  (princ "\t" fp1)  (princ "x=" fp1)
       (princ "\t" fp1)  (princ (cadr d1) fp1)
   (princ "\t" fp1)  (princ "y=" fp1)
  (princ "\t" fp1)  (princ (car d1) fp1)
    )
  (close fp1)
  
)
也是刚使用,觉着好,就翻出来贴上了。大家一起讨论一下有无问题?
发表于 2011-10-19 00:38:13 | 显示全部楼层
无聊,小改了一下,可以自选输出目录和文件名,改用鼠标框选,增加出错时关闭文档,免得被cad锁定文档
  1. (defun c:xxx()
  2.    (setq olderror *error*)
  3.      (setq *error* zxx_err)
  4.   (if (not currdir)
  5.          (setq currdir "d:\")
  6.      )

  7.     (setq of(getfiled "输出文件名" currdir "xls" 1))
  8.   
  9.   (setq currdir (strcat (vl-filename-directory of) "\"))  ;记忆本次的路径
  10.   (setq ss(ssget '((-4 . "<or")(0 . "text")(0 . "mtext")(-4 . "or>"))) )
  11.   (SETQ t1 "text=")
  12.   (setq a1 0)
  13.   (setq tt1(cdr(assoc 1 (entget(ssname ss a1)))))
  14.   (setq d1(cdr(assoc 10 (entget(ssname ss a1)))))
  15.   (setq fp1(open of "w"))
  16.   (princ "\t" fp1)  (princ tt1 fp1)
  17.   (princ "\t" fp1)  (princ "x=" fp1)  
  18.     (princ "\t" fp1)  (princ (cadr d1) fp1)
  19.    (princ "\t" fp1)  (princ "y=" fp1)
  20.   (princ "\t" fp1)  (princ (car d1) fp1)
  21.   (while  (ssname ss (+ a1 1))
  22.     (setq a1 (+ a1 1))
  23.     (setq tt1 (cdr (assoc 1 (entget(ssname ss a1)))))
  24.      (setq d1 (cdr (assoc 10 (entget(ssname ss a1)))))
  25.     (print t1 fp1)
  26.       (princ "\t" fp1)  (princ tt1 fp1)
  27.   (princ "\t" fp1)  (princ "x=" fp1)
  28.        (princ "\t" fp1)  (princ (cadr d1) fp1)
  29.    (princ "\t" fp1)  (princ "y=" fp1)
  30.   (princ "\t" fp1)  (princ (car d1) fp1)
  31.     )
  32.   (close fp1)
  33.   (princ)
  34.   
  35. )


  36. (defun zxx_err(msg)

  37. (setq *error* olderror)

  38. ( if fp1
  39.      (close fp1)
  40. )

  41. (princ)
  42. )
 楼主| 发表于 2011-10-19 21:33:41 | 显示全部楼层
坐标要小数点后保留4位,在哪里改改?
发表于 2011-10-19 23:42:20 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2011-10-20 10:58:12 | 显示全部楼层
改了一下,保留小数点后四位
  1. (defun c:xxx()
  2.    (setq olderror *error*)
  3.      (setq *error* zxx_err)
  4.   (if (not currdir)
  5.          (setq currdir "d:\")
  6.      )
  7.     (setq of(getfiled "输出文件名" currdir "xls" 1))
  8.   
  9.   (setq currdir (strcat (vl-filename-directory of) "\"))  ;记忆本次的路径
  10.   (setq ss(ssget '((-4 . "<or")(0 . "text")(0 . "mtext")(-4 . "or>"))) )
  11.   (SETQ t1 "text=")
  12.   (setq a1 0)
  13.   (setq nnn(sslength ss))  
  14.   (repeat nnn
  15.     (setq tt1 (cdr (assoc 1 (entget(ssname ss a1)))))
  16.     (setq d1 (cdr (assoc 10 (entget(ssname ss a1)))))
  17.     (print t1 fp1)
  18.     (princ "\t" fp1)  (princ tt1 fp1)
  19.     (princ "\t" fp1)  (princ "x=" fp1)
  20.     (princ "\t" fp1)  (princ (rtos(cadr d1)2 4) fp1)
  21.     (princ "\t" fp1)  (princ "y=" fp1)
  22.     (princ "\t" fp1)  (princ (rtos(car d1)2 4) fp1)
  23.     (setq a1(+ a1 1))
  24.    )
  25.    (close fp1)
  26.    
  27.   (princ)
  28.   
  29. )

  30. (defun zxx_err(msg)

  31. (setq *error* olderror)
  32. ( if fp1
  33.      (close fp1)
  34. )
  35. (princ)
  36. )
 楼主| 发表于 2011-10-20 15:04:40 | 显示全部楼层
没法生成EXCELL表格了,是不是少了句(setq fp1(open of "w"))啊!?
发表于 2011-10-21 08:54:36 | 显示全部楼层
yfanzi 发表于 2011-10-20 15:04
没法生成EXCELL表格了,是不是少了句(setq fp1(open of "w"))啊!?

呵呵,改的时候不小心错删了,加上就行了!
 楼主| 发表于 2011-10-21 14:39:38 | 显示全部楼层
呵呵,感谢,这下好用多了!
发表于 2011-10-22 15:12:18 | 显示全部楼层
就这些?????
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-6-2 10:50 , Processed in 0.203495 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表