明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 759|回复: 7

[提问] 求教一个关于getpoint的技术难题

[复制链接]
发表于 2022-10-3 08:20:34 | 显示全部楼层 |阅读模式
  1. (defun c:tt ()
  2.   (setvar "ORTHOMODE" 1);开启正交
  3.   (setq pt1 (getpoint"\n指定第一点:"))
  4.   (setq pt2 (getpoint pt1 "\n移动光标确定方向并输入距离:"))
  5.   (if pt2
  6.     (progn
  7.       (setq ang (angle pt1 pt2))
  8.       (setq d (distance pt1 pt2))
  9.     )
  10.     (progn
  11.       ;怎么搞能根据当前光标的位置、获取正交的方向
  12.     )
  13.   )
  14. )
请教论坛内的各位大佬一个问题、就是getpoint可以用pt1加一个距离来确定第二点。

那有没有办法在我开启正交以后、不输入距离、直接空格、
就能得出当前光标相对于pt1的方向是0度还是90度等正交角度
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2022-10-3 09:51:12 | 显示全部楼层
xiaocainiao 发表于 2022-10-3 09:24
谢谢、已经搞出来了

你是用的啥方法?
回复 支持 0 反对 1

使用道具 举报

 楼主| 发表于 2022-10-3 10:05:27 | 显示全部楼层
guosheyang 发表于 2022-10-3 09:51
你是用的啥方法?

(GRREAD 1) 用的这个、然后算角度来确定方向
回复 支持 0 反对 1

使用道具 举报

发表于 2022-10-3 08:38:51 来自手机 | 显示全部楼层
方位角就可以了
 楼主| 发表于 2022-10-3 08:40:45 | 显示全部楼层
wzg356 发表于 2022-10-3 08:38
方位角就可以了

我是小白、能详细说明一下吗、就是用哪个函数可以获取、谢谢
发表于 2022-10-3 09:20:08 | 显示全部楼层
本帖最后由 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))) ))
     )
  )
)
 楼主| 发表于 2022-10-3 09:24:12 | 显示全部楼层
guosheyang 发表于 2022-10-3 09:20
(defun c:tt ()
  ;(setvar "ORTHOMODE" 1);开启正交
  (setq pt1 (getpoint"\n指定第一点:"))

谢谢、已经搞出来了
发表于 2022-10-3 13:07:00 | 显示全部楼层
LSP的方法不错。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-15 22:58 , Processed in 0.180552 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表