想问一下lisp读取CAD中数据到excel如何不依赖数据的坐标而人为的实现数据换行?

本人lisp初学者,上次看网上的程序有lisp读取CAD中的数据到excel中,想问一下如果不依赖CAD中数据的坐标值人为的控制哪条数据换行哪条数据不换行,例如在点选数据... 本人lisp初学者,上次看网上的程序有lisp读取CAD中的数据到excel中,想问一下如果不依赖CAD中数据的坐标值人为的控制哪条数据换行哪条数据不换行,例如在点选数据时按某个键盘上的按键实现换行操作,或者类似的操作,能否实现?望大神指教。 展开
 我来答
司马刀剑
高粉答主

2019-03-05 · 每个回答都超有意思的
知道顶级答主
回答量:4.6万
采纳率:93%
帮助的人:7582万
展开全部
(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

提交
取消

辅 助

模 式