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

给写个lisp程序,要求:鼠标点击cad空间两点,然后在excel中输出这两点的距离值……,第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)

)

只做了起点的,终点的自己手动减一下或读出长度减去这个值输出来吧

(princ "\n************************\n查询点到线段起点的距离小程序,快捷键cc")

(defun c:cc( / str)

(setq str(vlax-curve-getDistAtPoint (vlax-ename->vla-object (nth 0 (entsel "\n选择线段:"))) (getpoint "\n选择点:\n")))

(princ "该点到线段起点距离为:")

(princ str)

(princ)

)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11316673.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存