给写个lisp程序,要求:鼠标点击cad空间两点,然后在excel中输出这两点的距离值……
给写个lisp程序,要求:鼠标点击cad空间两点,然后在excel中输出这两点的距离值,而且,连续点击n对两点,在excel中横排相邻单元格输出这n对点的各个距离,直至e...
给写个lisp程序,要求:鼠标点击cad空间两点,然后在excel中输出这两点的距离值,而且,连续点击n对两点,在excel中横排相邻单元格输出这n对点的各个距离,直至esc终止(或其他方法终止)程序;当再次启动lisp程序时,输出的距离值紧接着在同一excel表中的相邻下一排列出.谢谢高手相助.
也可以用其他语言编写,像VBA等……(CAD中有个'查询'功能即:工具——查询——距离选项,可以查询空间任意两点的距离;或者di命令也可以查询空间任意两点间的距离,我就想让这个距离值写到excel里面.供编程高手参考,万分感谢。) 展开
也可以用其他语言编写,像VBA等……(CAD中有个'查询'功能即:工具——查询——距离选项,可以查询空间任意两点的距离;或者di命令也可以查询空间任意两点间的距离,我就想让这个距离值写到excel里面.供编程高手参考,万分感谢。) 展开
2个回答
展开全部
你好,我以前也遇到过这个问题,但是最后没有找到你说的那种方法,我最后也是用了一个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)
)
(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)
)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询