明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2567|回复: 6

[提问] grread 函数可以捕捉,还有极轴的函数有吗?

[复制链接]
发表于 2014-7-20 15:37:32 | 显示全部楼层 |阅读模式
grread 函数可以捕捉,还有极轴的函数有吗?有的话给我分享个!找了好久都没找到!


该贴已经同步到 Sring的微博
 楼主| 发表于 2014-7-20 19:45:56 | 显示全部楼层
ysq101 发表于 2014-7-20 19:25
能告诉我极轴和对象追踪由哪两个系统变量控制吗?

别的网站找的,grread 函数可以捕捉,感觉没【Gu_xl】的好用,极轴的没找到

http://fushouyin.blog.163.com/blog/static/18898719200942105834598/

  1. ;;;=================================================================*
  2. ;;;功能:计算在当前对象捕捉设置情况下,指定点的对象捕捉点位         *
  3. ;;;思路:获取当前的对象捕捉模式;                                   *
  4. ;;;      逐个使用osnap来尝试获取点位;                              *
  5. ;;;      比较点位距离指定点的距离,最近的即为结果。                 *
  6. ;;;返回:(捕捉到的点位   捕捉模式)                                  *
  7. ;;;      捕捉模式为0表示,不捕捉。                                  *
  8. (defun GET-OSPOINT (PT / LST_JG OS N PT_NEW)
  9.   (setq        LST_JG '()
  10.         OS     (getvar "osmode")
  11.   )
  12.   (if (< 0 OS 16384)
  13.     (foreach N (reverse *LST*)
  14.       (if (and (= (logand OS (car N)) (car N))
  15.                (setq PT_NEW (osnap PT (cadr N)))
  16.           )
  17.         (setq LST_JG (cons (list (distance PT_NEW PT) PT_NEW (car N))
  18.                            LST_JG
  19.                      )
  20.         )
  21.       )
  22.     )
  23.     (setq LST_JG (list (list 0 PT 0)))
  24.   )
  25.   ;;根据距离大小排序
  26.   (if (> (length LST_JG) 1)
  27.     (setq LST_JG
  28.            (vl-sort LST_JG
  29.                     (function (lambda (E1 E2) (< (car E1) (car E2))))
  30.            )
  31.     )
  32.   )
  33.   ;;返回 ;;;
  34.   (print LST_JG)
  35.   (cdr (car LST_JG))
  36. )
  37. ;;;=================================================================*
  38. ;;;功能:在指定点  绘制  指定的靶标                                 *
  39. ;;;参数:PT -----要绘制的位置                                       *
  40. ;;;      I  -----捕捉模式单项值。例如:1 or 2 or 4 ...              *
  41. (defun DRAW-ATPOINT (PT I / SIZE COLOR MATRIX LST)
  42.   (foreach REAL        '(-0.5 0 0.5)
  43.     (setq SIZE        (* (+ (read (getenv "AutoSnapSize")) REAL)
  44.                    (/ (getvar "VIEWSIZE") (cadr (getvar "SCREENSIZE")))
  45.                 )
  46.           COLOR        (read (getenv "AutoSnapColor"))
  47.     )
  48.     (setq MATRIX (list (list SIZE 0.0 0.0 (car PT))
  49.                        (list 0.0 SIZE 0.0 (cadr PT))
  50.                        (list 0.0 0.0 1.0 0.0)
  51.                        (list 0.0 0.0 0.0 1.0)
  52.                  )
  53.     )
  54.     (and (setq LST (cddr (assoc I *LST*)))
  55.          (setq LST (mapcar (function (lambda (X) (cons COLOR X))) LST))
  56.          (setq LST (apply 'append LST))
  57.          (grvecs LST MATRIX)
  58.     )
  59.   )
  60. )
  61. ;;;=================================================================*
  62. (defun C:TT ()
  63.   ;;;支持对象捕捉的grread ;;;代码源自fools ;;;zml84 修改于 2009-05-20
  64. (setq *LST* '((1
  65.                "_end"
  66.                ((-1 1) (-1 -1))
  67.                ((-1 -1) (1 -1))
  68.                ((1 -1) (1 1))
  69.                ((1 1) (-1 1))
  70.               )
  71.               (2
  72.                "_mid"
  73.                ((0 1.414) (-1.225 -0.707))
  74.                ((-1.225 -0.707) (1.225 -0.707))
  75.                ((1.225 -0.707) (0 1.414))
  76.               )
  77.               (4
  78.                "_cen"
  79.                ((0 1) (-0.707 0.707))
  80.                ((-0.707 0.707) (-1 0))
  81.                ((-1 0) (-0.707 -0.707))
  82.                ((-0.707 -0.707) (0 -1))
  83.                ((0 -1) (0.707 -0.707))
  84.                ((0.707 -0.707) (1 0))
  85.                ((1 0) (0.707 0.707))
  86.                ((0.707 0.707) (0 1))
  87.               )
  88.               (8
  89.                "_nod"
  90.                ((0 1) (-0.707 0.707))
  91.                ((-0.707 0.707) (-1 0))
  92.                ((-1 0) (-0.707 -0.707))
  93.                ((-0.707 -0.707) (0 -1))
  94.                ((0 -1) (0.707 -0.707))
  95.                ((0.707 -0.707) (1 0))
  96.                ((1 0) (0.707 0.707))
  97.                ((0.707 0.707) (0 1))
  98.                ((-1 1) (1 -1))
  99.                ((-1 -1) (1 1))
  100.               )
  101.               (16
  102.                "_qua"
  103.                ((0 1.414) (-1.414 0))
  104.                ((-1.414 0) (0 -1.414))
  105.                ((0 -1.414) (1.414 0))
  106.                ((1.414 0) (0 1.414))
  107.               )
  108.               (32
  109.                "_int"
  110.                ((-1 1) (1 -1))
  111.                ((-1 -1) (1 1))
  112.                ((1 0.859) (-0.859 -1))
  113.                ((-1 0.859) (0.859 -1))
  114.                ((0.859 1) (-1 -0.859))
  115.                ((-0.859 1) (1 -0.859))
  116.               )
  117.               (64
  118.                "_ins"
  119.                ((-1 1) (-1 -0.1))
  120.                ((-1 -0.1) (0 -0.1))
  121.                ((0 -0.1) (0 -1.0))
  122.                ((0 -1.0) (1 -1))
  123.                ((1 -1) (1 0.1))
  124.                ((1 0.1) (0 0.1))
  125.                ((0 0.1) (0 1.0))
  126.                ((0 1.0) (-1 1))
  127.               )
  128.               (128
  129.                "_per"
  130.                ((-1 1) (-1 -1))
  131.                ((-1 -1) (1 -1))
  132.                ((0 -1) (0 0))
  133.                ((0 0) (-1 0))
  134.               )
  135.               (256
  136.                "_tan"
  137.                ((0 1) (-0.707 0.707))
  138.                ((-0.707 0.707) (-1 0))
  139.                ((-1 0) (-0.707 -0.707))
  140.                ((-0.707 -0.707) (0 -1))
  141.                ((0 -1) (0.707 -0.707))
  142.                ((0.707 -0.707) (1 0))
  143.                ((1 0) (0.707 0.707))
  144.                ((0.707 0.707) (0 1))
  145.                ((1 1) (-1 1))
  146.               )
  147.               (512
  148.                "_nea"
  149.                ((-1 1) (1 -1))
  150.                ((1 -1) (-1 -1))
  151.                ((-1 -1) (1 1))
  152.                ((1 1) (-1 1))
  153.               )
  154.               (1024 "_qui")
  155.               (2048
  156.                "_app"
  157.                ((-1 1) (-1 -1))
  158.                ((-1 -1) (1 -1))
  159.                ((1 -1) (1 1))
  160.                ((1 1) (-1 1))
  161.                ((-1 1) (1 -1))
  162.                ((-1 -1) (1 1))
  163.               )
  164.               (4096
  165.                "_ext"
  166.                ((0.1 0) (0.13 0))
  167.                ((0.2 0) (0.23 0))
  168.                ((0.3 0) (0.33 0))
  169.               )
  170.               (8192 "_par" ((0 1) (-1 -1)) ((1 1) (0 -1)))
  171.              )
  172. )
  173.   (setq TEST t)  
  174.   (while TEST
  175. ;;;
  176.     (setq TMP (grread t 1 1))
  177.     (setq TMP (grread t))
  178. ;;;
  179.     (print TMP)
  180.     (setq MODE (car TMP)
  181.           PT   (cadr TMP)
  182.     )
  183.     (cond
  184.       ;;按下了F3
  185.       ((equal TMP '(2 6))
  186.        (if (< (getvar "OSMODE") 16384)
  187.          (setvar "OSMODE" (+ (getvar "OSMODE") 16384))
  188.          (setvar "OSMODE" (- (getvar "OSMODE") 16384))
  189.        )
  190.       )
  191.       ;;按下了F8
  192.       ((equal TMP '(2 15))
  193.        (if (= (getvar "ORTHOMODE") 0)
  194.          (setvar "ORTHOMODE" 1)
  195.          (setvar "ORTHOMODE" 0)
  196.        )
  197.       )
  198.       ((= MODE 3)
  199.        (if (setq TMP (GET-OSPOINT PT))
  200.          (print TMP)
  201.        )
  202.        (redraw)
  203.        (setq TEST NIL)
  204.       )
  205.       ((= MODE 5)
  206.        (if (setq TMP (GET-OSPOINT PT))
  207.          (progn
  208. ;;;
  209.            (print TMP)
  210.            (redraw)
  211.            (apply 'DRAW-ATPOINT TMP)
  212.            t
  213.          )
  214.          (redraw)
  215.        )
  216.       )
  217.     )
  218.   )
  219. )
回复 支持 0 反对 1

使用道具 举报

发表于 2014-7-20 17:50:46 来自手机 | 显示全部楼层
没有,只有你自已写了
发表于 2014-7-20 17:52:06 来自手机 | 显示全部楼层
G版有个帖子可参考
 楼主| 发表于 2014-7-20 17:55:28 | 显示全部楼层
自贡黄明儒 发表于 2014-7-20 17:50
没有,只有你自已写了

grread 函数可以捕捉,这个好像有,要发10个贴才能下载,我不想发水贴,能帮我下个分享个吗!
发我邮件里也可以csyqh3@sina.com
发表于 2014-7-20 19:25:44 | 显示全部楼层
自贡黄明儒 发表于 2014-7-20 17:50
没有,只有你自已写了

能告诉我极轴和对象追踪由哪两个系统变量控制吗?
发表于 2016-10-22 17:33:42 | 显示全部楼层
想看看正交或者极轴的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-20 05:42 , Processed in 0.158194 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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