给写个lisp程序,要求:鼠标点击cad空间两点,然后在excel中输出这两点的距离值……

2024-11-28 07:48:29
推荐回答(2个)
回答1:

你好,我以前也遇到过这个问题,但是最后没有找到你说的那种方法,我最后也是用了一个lisp,但步骤是直接在CAD里测量所有的线,最后结果会写在一起,复制到excel中选择粘贴就是你要的效果了,比较麻烦,但总归还是解决了连续测线的长度的问题,也只是当时用用,所以后来我就没有再研究了,lisp的代码我放在下面,希望对你有用
(defun C:TT(/ a b zero x y pt i j)
(setq a (getpoint "选择原点:\n"))
(setq b (list 0 0 0))
(while (not (= b nil))
(setq b (getpoint "选择测端点:\n"))
(if (not (= b nil))
(setq x (abs (- (car a) (car b)))))
(if (not (= b nil))
(setq y (abs (- (cadr a) (cadr b)))))
(if (not (= b nil))
(setq pt (cons (list x y) pt))
)
)

(setq pt (reverse pt))
(princ"\n X方向的距离统计\n")
(setq i 0)
(repeat (length pt)
(princ (* 0.001 (nth 0 (nth i pt))))
(princ "\n")

(setq i (+ i 1))
)
(princ"\n Y方向的距离统计\n")
(setq j 0)
(repeat (length pt)
(princ (* 0.001 (nth 1 (nth j pt))))
(princ "\n")
(setq j (+ j 1))
)
(princ)
)

回答2:

想法很好,也能实现,不过我对lisp没研究。建议去askcad论坛里的CAD二次开发版块来提问。

另外:可以研究一下CAD工具里面的数据提取功能(Auto-CAD2008及以上的版本),对你的问题应该有帮助。