明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1595|回复: 3

[源码] 求:grread使用下的正交开关函数!

[复制链接]
发表于 2015-12-20 08:40:03 | 显示全部楼层 |阅读模式
如题:

不要扑捉,无用,只要正交。。。。

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2015-12-20 10:19:30 | 显示全部楼层
获得正交变量开关,通过基点与拖移点的角度关系返回正交点。
比如拖移点在0~45度或者,那么返回拖移的x坐标和基点的y坐标组合的点,即x正方向,
如果拖移点在45-135度,那么返回基点的x坐标和拖移的y坐标组合点,即Y正方式。
依次类推。。。。。

点评

恩,很对,不得编程吗,我不甚在行。  发表于 2015-12-31 10:05
发表于 2015-12-20 10:50:38 | 显示全部楼层
  1. (defun c:tt (/ ang gr p1 p2 prpt)
  2.   (if (setq p1 (getpoint "\basepoint: "))
  3.     (while (and (setq gr (grread t 15 0)) (/= (car gr) 3))
  4.       (redraw)
  5.       (cond
  6.         ((= (car gr) 5)
  7.          (setq prpt (cadr gr))
  8.          (setq ang (angle p1 prpt))
  9.          (if (= (getvar 'ORTHOMODE) 1)
  10.            (cond
  11.              ((or (and (> ang (* pi 0.25)) (< ang (* pi 0.75)))
  12.                   (and (> ang (* pi 1.25)) (< ang (* pi 1.75)))
  13.               )
  14.               (setq p2 (list (car p1) (cadr prpt)))
  15.              )
  16.              (t
  17.               (setq p2 (list (car prpt) (cadr p1)))
  18.              )
  19.            )
  20.            (setq p2 prpt)
  21.          )
  22.          (grdraw p1 p2 3)
  23.         )
  24.         ((equal gr '(2 15))
  25.          (if (= (getvar 'ORTHOMODE) 1)
  26.            (setvar 'ORTHOMODE 0)
  27.            (setvar 'ORTHOMODE 1)
  28.          )
  29.         )
  30.       )
  31.     )
  32.   )
  33. )

点评

运行验证失败,第一点几点,有一条线,这时候按正交开关失败,不起作用!  发表于 2015-12-20 13:12
 楼主| 发表于 2015-12-31 10:08:46 | 显示全部楼层
顶起来,没人解决啊。。。。。。,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-24 00:26 , Processed in 0.194472 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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