Lisp获取偏置后对象的坐标点_已知A B两点的长度,怎么用lisp获取CD两点的位置?...

这是一个LISP程序,用于根据用户输入的A、B两点坐标,计算并输出偏置距离后的C、D两点坐标。用户可以指定B到C的距离,程序将自动计算方位角并画出ABCD四点间的连线。最后,程序会显示C、D点的精确坐标值。
摘要由CSDN通过智能技术生成

展开全部

;确定C、D点位置

(defun c:CDwz()

(vl-load-com)

(setq cmd (getvar "cmdecho"))

(setq osm (getvar "osmode"))

(setvar "cmdecho" 0)

(command "_undo" "be")

(setvar "osmode" 33)

(while (setq pa (getpoint "\n请指定A点:"))

(if (setq pb (getpoint pa "\n请指定B点:"))

(progn

;给定B点到C点,直接回车为默认值10

(if (= (setq Dbc (getreal "\n请给定B点到C点的距离<10>=")) nil)

(setq Dbc 10.0)

)

(setq dist (distance pa pb)) ;A点到B点的距离

(setq ang  (angle pa pb))    ;A点到B点的方位角

(setq pd   (polar pa (+ ang (* 0.5 pi)) Dbc)) ;计算出D点的位置

(setq pc   (polar pb (+ ang (* 0.5 pi)) Dbc)) ;计算出D点的位置

;画出A、B、C、D四点之间的连接线

(setvar "osmode" 0)

(command "_pline" pa pb pc pd "c")

;显示出C、D点的位置坐标

(princ (strcat "\nC点位置(X=" (rtos (car pc) 2 3)  ", Y=" (rtos (cadr pc) 2 3) ")"

62616964757a686964616fe4b893e5b19e31333436316336       "\nD点位置(X=" (rtos (car pd) 2 3)  ", Y=" (rtos (cadr pd) 2 3) ")"

)

)

(setvar "osmode" 33)

)

(princ "\n没有指定B点,不能确定C、D两点!")

)

)

(command "_undo" "e")

(setvar "osmode" osm)

(setvar "cmdecho" cmd)

(princ)

)

c3be445a42f71f7d0a3af3bfcce7566b.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值