求教一个关于getpoint的技术难题
(defun c:tt ()(setvar "ORTHOMODE" 1);开启正交
(setq pt1 (getpoint"\n指定第一点:"))
(setq pt2 (getpoint pt1 "\n移动光标确定方向并输入距离:"))
(if pt2
(progn
(setq ang (angle pt1 pt2))
(setq d (distance pt1 pt2))
)
(progn
;怎么搞能根据当前光标的位置、获取正交的方向
)
)
)请教论坛内的各位大佬一个问题、就是getpoint可以用pt1加一个距离来确定第二点。
那有没有办法在我开启正交以后、不输入距离、直接空格、
就能得出当前光标相对于pt1的方向是0度还是90度等正交角度
xiaocainiao 发表于 2022-10-3 09:24
谢谢、已经搞出来了
你是用的啥方法? guosheyang 发表于 2022-10-3 09:51
你是用的啥方法?
(GRREAD 1) 用的这个、然后算角度来确定方向 方位角就可以了 wzg356 发表于 2022-10-3 08:38
方位角就可以了
我是小白、能详细说明一下吗、就是用哪个函数可以获取、谢谢 本帖最后由 guosheyang 于 2022-10-3 14:38 编辑
直接空格返回正交角度和 正交坐标
(defun c:tt( )
(setvar "ORTHOMODE" 1);开启正交
(setq pt1 (getpoint"\n指定第一点:"))
(setq pt2 (getpoint pt1 "\n移动光标确定方向并输入距离:"))
(if(not pt2)
(progn(setq wz(CADR (GRREAD 1)))
(setq zhi(/ (angle pt1 wz)(* 0.5 pi)))
(setq jd(* 90
(if(>(- zhi(fix zhi))0.5)
(1+ (fix zhi))
(fix zhi)
)))
(if(or(= jd 0)(= jd 180)(= jd 360))(list jd (setq zb(list(car wz)(cadr pt1))) )
(list jd(setq zb(list(car pt1) (cadr wz))) ))
)
(progn
(setq zhi(/ (angle pt1 pt2)(* 0.5 pi)))
(setq jd(* 90
(if(>(- zhi(fix zhi))0.5)
(1+ (fix zhi))
(fix zhi)
)))
(if(or(= jd 0)(= jd 180)(= jd 360))(list jd (setq zb(list(car pt2)(cadr pt1))) )
(list jd (setq zb(list(car pt1) (cadr pt2))) ))
)
)
)
guosheyang 发表于 2022-10-3 09:20
(defun c:tt ()
;(setvar "ORTHOMODE" 1);开启正交
(setq pt1 (getpoint"\n指定第一点:"))
谢谢、已经搞出来了 LSP的方法不错。
页:
[1]