关于CADLISP问题 条件:任意两点A(x,y,z),B(x,y,z) 求距离A(x,y)和B(x,y)的距离,Z的差

关于CADLISP问题 条件:任意两点A(x,y,z),B(x,y,z) 求距离A(x,y)和B(x,y)的距离,Z的差值
采用LISP程序解决,本人不知道怎么去提去属性值,只知道采用Distance命令可以看到x、y、z的差值。本人设想如果能够提取x、y的差值便可得到平面距离,Z差值便可得到高差。希望回答问题的人能够有一个较详细的说明,以便学习。当然在这个问题实现后,再生成一个TEXT文件。
(defun c:pjgc ()
(setq p1(getpoint"第一点:"))
(setq p2(getpoint"第二点:"))
(setq x1(car p1))
(setq Y1(cadr p1))
(setq Z1(caddr p1))
(setq x2(car p2))
(setq Y2(cadr p2))
(setq Z2(caddr p2))
(setq D((sqrt ((+(*(- x1 x2) (- x1 x2)) (*(- y1 y2) (- y1 y2)))))"平距:"))
(prin1 D)
(setq H((- z2 z1)"高差:"))
(prin1 H)
)
为什么不行呢?
hopese 1年前 已收到2个回答 举报

rong195 幼苗

共回答了13个问题采纳率:84.6% 举报

(setq D((sqrt ((+(*(- x1 x2) (- x1 x2)) (*(- y1 y2) (- y1 y2)))))"平距:"))这个不对吧
(defun C:pjgc ()
(setq p1(getpoint "n 第一点:"))
(setq p2(getpoint "n 第二点:"))
(setq x1(car p1))
(setq Y1(cadr p1))
(setq Z1(caddr p1))
(setq x2(car p2))
(setq Y2(cadr p2))
(setq Z2(caddr p2))
(setq D(sqrt (+ (expt (- x1 x2) 2) (expt (- y1 y2) 2))))
(setq H(- z2 z1))
(princ "n 平距:" )
(prin1 D)
(princ "n 高差:" )
(prin1 H)
)

1年前

2

aslkdjglkawrgsrt 幼苗

共回答了13个问题采纳率:84.6% 举报

输出 加上会好些
(setq D0 (rtos D 2 4)
H0 (rtos H 2 4))
(defun C:pjgc ()
(setq p1(getpoint "n 第一点:"))
(setq p2(getpoint "n 第二点:"))
(setq x1(car p1))
(setq Y1(cad...

1年前

2
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.035 s. - webmaster@yulucn.com