求个将数据导出到EXCEL的AutoLISP

RT,求一个能批量将CAD中选中文本按一定顺序导入到EXCEL的lisp,各位大大求帮助!... RT,求一个能批量将CAD中选中文本按一定顺序导入到EXCEL的lisp,各位大大求帮助! 展开
 我来答
朱06CAD
推荐于2017-12-16 · 知道合伙人软件行家
朱06CAD
知道合伙人软件行家
采纳数:4172 获赞数:18068
高中,熟悉AutoCAD。会autolisp及VBA程序。

向TA提问 私信TA
展开全部
(defun C:WZ ( / n ss &kw L ff %k %k1 %k2 %k3 %k4 %k5 %k6);批量选择文字到
 (setvar "cmdecho" 0) ;;关闭变量
 (setvar "blipmode" 0);;关闭控制点
 (vl-load-com)        ;;加载vlax扩展函数
 (setq n 0 ss '())    ;;取得一个空表
 (princ "\n请选择文字")
 (setq &kw (ssget '((0 . "TEXT,MTEXT"))));选择文字
 (if (/= &kw nil);;如果有选择了文字
  (progn
   (setq L (sslength &kw)
         ff (open "d://文字到TXT.xls" "w");建立表格
   );;
   (repeat L
    (setq &kw1 (entget (ssname &kw n))
          %k1 (cdr (assoc 10 &kw1))  ;;取得文字坐标
          %k2 (cdr (assoc 1 &kw1))   ;;取得文字内容
          ss (cons (list %k1 %k2) ss);;加入选择集
          n (+ n 1)
    )
   )
   (setq ss (vl-sort ss (function (lambda (x y)(< (fix (caar x)) (fix (caar y)))))));;X排序从左到右
   (setq ss (vl-sort ss (function (lambda (x y)(> (fix (cadar x)) (fix (cadar y)))))));;Y排序从上到下
   (setq &kw1 (nth 0 ss)
         %k1 (caar &kw1);;第一个元素的第一个对象
         %k2 (cadar &kw1);;第一个元素的第二个对象
         %k3 (cadr &kw1);;第二个元素
         n 1
   )
   (repeat (- L 1)
    (setq &kw2 (nth n ss)
          %k4 (caar &kw2)
          %k5 (cadar &kw2)
          %k6 (cadr &kw2)
          %k (- %k2 %k5)
          n (+ n 1)
    )
    (if (> %k 20)
     (progn
      (princ %k3 ff)
      (princ "\n" ff);;不在同一行换行
      (setq %k1 %k4 %k2 %k5 %k3 %k6)
     )
    )
    (if (and (<= %k 20) (< %k1 %k4))
     (progn
      (princ %k3 ff)
      (princ "\t" ff);;同一行不换行;换一个位置
      (setq %k1 %k4 %k2 %k5 %k3 %k6)
     )
    )
    (if (and (<= %k 20) (> %k1 %k4))
     (progn
      (princ %k6 ff)
      (princ "\t" ff)
     )
    )
   )
   (princ %k3 ff)
   (close ff);;关闭文本
  )
 )
 (prin1);;结束
);;文字复制到记事本,以后缀(.lsp)命名如(wz.lsp);加载到autocad就可以使用。

 表格在D盘,打开D盘就可以看到。

如在cad里面有文字,如图排列:

输入命令:WZ;选择对象后,打开D盘,就可以看到表格:

打开表格就是一样的排列:

如果要记事本的内容导入表格的话,打开表格,直接导入即可,表格有这个功能的。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式