明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 7806|回复: 32

[资源] 函数grreed 用法以及grreed的捕捉点方法

    [复制链接]
发表于 2011-7-9 18:01 | 显示全部楼层 |阅读模式
本帖最后由 qcw911 于 2011-7-13 11:15 编辑

非常感谢zhynt
grreed 这个函数很重要
  1. (defun sqr (x) (* x x))
  2. (defun grd ()
  3.   (grdraw pt5 pt6 8 0)
  4.   (grdraw pt6 pt7 8 0)
  5.   (grdraw pt7 pt8 8 0)
  6.   (grdraw pt8 pt5 8 0)
  7.   (grdraw pt9 pt10 8 0)
  8.   (grdraw pt10 pt11 8 0)
  9.   (grdraw pt11 pt12 8 0)
  10.   (grdraw pt12 pt9 8 0)
  11.   (grdraw pt5 pt7 8 0)
  12.   (grdraw pt6 pt8 8 0)
  13. ) ;_ end of defun
  14. (defun c:ddtt ()
  15.   (setq pt1 (getpoint "\n第一角点:"))
  16.   (prompt "\n第二角点:")
  17.   (while (= (car (setq ptn (grread T 4 0))) 5)
  18.     (setq pt3 (cadr ptn))
  19.     (redraw)
  20.     (cond
  21.       ((and (> (car pt3) (car pt1)) (> (cadr pt3) (cadr pt1)))
  22.        (setq pt2 (list (car pt3) (cadr pt1))
  23.        pt4 (list (car pt1) (cadr pt3))
  24.        ) ;_ end of setq
  25.        (setq a (distance pt1 pt2)
  26.        b (distance pt2 pt3)
  27.        ) ;_ end of setq
  28.        (setq pt8 (polar  pt4
  29.       (- (atan (/ b 24) (/ a 24)))
  30.       (sqrt (+ (sqr (/ b 24)) (sqr (/ a 24))))
  31.      ) ;_ end of polar
  32.        pt7 (polar  pt3
  33.       (+ (atan (/ b 24) (/ a 24)) pi)
  34.       (sqrt (+ (sqr (/ b 24)) (sqr (/ a 24))))
  35.      ) ;_ end of polar
  36.        pt5 (polar pt8 (angle pt4 pt1) (/ b 1.4))
  37.        pt6 (polar pt7 (angle pt4 pt1) (/ b 1.4))
  38.        ) ;_ end of setq
  39.        (setq pt9  (polar pt1
  40.        (atan (/ b 24) (/ a 6))
  41.        (sqrt (+ (sqr (/ b 24)) (sqr (/ a 6))))
  42.       ) ;_ end of polar
  43.        pt10 (polar pt9 (angle pt1 pt2) (/ a 1.5))
  44.        pt11 (polar pt10 (angle pt2 pt3) (/ b 12))
  45.        pt12 (polar pt9 (angle pt2 pt3) (/ b 12))
  46.        ) ;_ end of setq
  47.        (grd)
  48.       )
  49.       ((and (> (car pt3) (car pt1)) (< (cadr pt3) (cadr pt1)))
  50.        (setq pt2 (list (car pt1) (cadr pt3))
  51.        pt4 (list (car pt3) (cadr pt1))
  52.        ) ;_ end of setq
  53.        (setq a (distance pt1 pt4)
  54.        b (distance pt1 pt2)
  55.        ) ;_ end of setq
  56.        (setq pt8 (polar  pt3
  57.       (- pi (atan (/ b 24) (/ a 24)))
  58.       (sqrt (+ (sqr (/ b 24)) (sqr (/ a 24))))
  59.      ) ;_ end of polar
  60.        pt7 (polar  pt2
  61.       (atan (/ b 24) (/ a 24))
  62.       (sqrt (+ (sqr (/ b 24)) (sqr (/ a 24))))
  63.      ) ;_ end of polar
  64.        pt5 (polar pt8 (angle pt3 pt4) (/ b 1.4))
  65.        pt6 (polar pt7 (angle pt3 pt4) (/ b 1.4))
  66.        ) ;_ end of setq
  67.        (setq pt9  (polar pt4
  68.        (+ (atan (/ b 24) (/ a 6)) pi)
  69.        (sqrt (+ (sqr (/ b 24)) (sqr (/ a 6))))
  70.       ) ;_ end of polar
  71.        pt10 (polar pt9 (angle pt4 pt1) (/ a 1.5))
  72.        pt11 (polar pt10 (angle pt1 pt2) (/ b 12))
  73.        pt12 (polar pt9 (angle pt1 pt2) (/ b 12))
  74.        ) ;_ end of setq
  75.        (grd)
  76.       )
  77.       ((and (< (car pt3) (car pt1)) (< (cadr pt3) (cadr pt1)))
  78.        (setq pt2 (list (car pt3) (cadr pt1))
  79.        pt4 (list (car pt1) (cadr pt3))
  80.        ) ;_ end of setq
  81.        (setq a (distance pt3 pt4)
  82.        b (distance pt1 pt4)
  83.        ) ;_ end of setq
  84.        (setq pt8 (polar  pt3
  85.       (atan (/ b 24) (/ a 24))
  86.       (sqrt (+ (sqr (/ b 24)) (sqr (/ a 24))))
  87.      ) ;_ end of polar
  88.        pt7 (polar  pt4
  89.       (- pi (atan (/ b 24) (/ a 24)))
  90.       (sqrt (+ (sqr (/ b 24)) (sqr (/ a 24))))
  91.      ) ;_ end of polar
  92.        pt5 (polar pt8 (angle pt3 pt2) (/ b 1.4))
  93.        pt6 (polar pt7 (angle pt4 pt1) (/ b 1.4))
  94.        ) ;_ end of setq
  95.        (setq pt9  (polar pt1
  96.        (+ pi (atan (/ b 24) (/ a 6)))
  97.        (sqrt (+ (sqr (/ b 24)) (sqr (/ a 6))))
  98.       ) ;_ end of polar
  99.        pt10 (polar pt9 (angle pt1 pt2) (/ a 1.5))
  100.        pt11 (polar pt10 (angle pt1 pt4) (/ b 12))
  101.        pt12 (polar pt9 (angle pt1 pt4) (/ b 12))
  102.        ) ;_ end of setq
  103.        (grd)
  104.       )
  105.       ((and (< (car pt3) (car pt1)) (> (cadr pt3) (cadr pt1)))
  106.        (setq pt2 (list (car pt1) (cadr pt3))
  107.        pt4 (list (car pt3) (cadr pt1))
  108.        ) ;_ end of setq
  109.        (setq a (distance pt3 pt4)
  110.        b (distance pt1 pt4)
  111.        ) ;_ end of setq
  112.        (setq pt8 (polar  pt3
  113.       (+ (* 1.5 pi) (atan (/ b 24) (/ a 24)))
  114.       (sqrt (+ (sqr (/ b 24)) (sqr (/ a 24))))
  115.      ) ;_ end of polar
  116.        pt7 (polar  pt4
  117.       (- (* 0.5 pi) (atan (/ b 24) (/ a 24)))
  118.       (sqrt (+ (sqr (/ b 24)) (sqr (/ a 24))))
  119.      ) ;_ end of polar
  120.        pt5 (polar pt8 (angle pt4 pt1) (/ b 1.4))
  121.        pt6 (polar pt7 (angle pt4 pt1) (/ b 1.4))
  122.        ) ;_ end of setq
  123.        (setq pt9  (polar pt1
  124.        (+ (* 0.5 pi) (atan (/ b 24) (/ a 6)))
  125.        (sqrt (+ (sqr (/ b 24)) (sqr (/ a 6))))
  126.       ) ;_ end of polar
  127.        pt10 (polar pt9 (angle pt1 pt2) (/ a 1.5))
  128.        pt11 (polar pt10 (angle pt2 pt3) (/ b 12))
  129.        pt12 (polar pt9 (angle pt2 pt3) (/ b 12))
  130.        ) ;_ end of setq
  131.        (grd)
  132.       )
  133.     ) ;_ end of cond
  134.   ) ;_ end of while
  135.   (redraw)
  136.   (command "Line" "non"  pt5 "non" pt6 "non" pt7  "non" pt8 "non"  pt5
  137.      "non" pt7 "") ;_ end of command
  138.   (command "line" "non" pt8 "non" pt6 "")
  139.   (command "line" "non"  pt9 "non" pt10 "non" pt11 "non"  pt12 "non" pt9
  140.      "") ;_ end of command

  141. ) ;_ end of defun

  142. 感谢热心人提供的源码
  143. 但是第二点怎么获取呢?
  144. 请高手支招!

不要伪源码


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2023-5-27 21:46 | 显示全部楼层
本帖最后由 下文没句号。 于 2023-5-27 21:54 编辑

强烈关注,以备后用,楼主第二点加上了没?
发表于 2018-1-23 08:20 | 显示全部楼层
如果还支持追踪就更完美了。
发表于 2021-3-19 16:19 | 显示全部楼层
强烈关注,以备后用
发表于 2011-7-9 18:26 | 显示全部楼层
强烈关注一下!!
一定要顶起来!
发表于 2011-7-9 23:41 | 显示全部楼层
jig应该可以实现,就是自己做不到!
发表于 2011-7-10 06:38 | 显示全部楼层
用块,绘制结束后再炸天,不难实现。

点评

大哥 用块炸能出动态的效果吗?  发表于 2011-7-10 18:07
发表于 2011-7-10 14:14 | 显示全部楼层
昨天赶出来的,有点罗嗦,还有就是第二个捕捉不知怎么弄。还是和图示不一样。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2011-7-10 18:13 | 显示全部楼层
回复 zhynt 的帖子

挺好的,如果是家具填充,那么家具还要一点的一点画吗?
 楼主| 发表于 2011-7-11 11:59 | 显示全部楼层
怎么才能框选选到第二点呢?
发表于 2011-7-11 13:33 | 显示全部楼层
回复 zhynt 的帖子

Dear Sir,
nice lisp
add layer at lift
 楼主| 发表于 2011-7-11 15:42 | 显示全部楼层
本帖最后由 qcw911 于 2011-7-11 15:43 编辑

我在论坛里面找到的捕捉方法
我的技术有限 看不懂啊
请你(高手)帮忙看看


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2011-7-11 16:11 | 显示全部楼层
这是用块的:

  1. (defun c:ddtt ()
  2.   (setq pt (getpoint "\n插入点:"))
  3.   (command "insert" "dt" pt pause "")
  4. )

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-26 10:54 , Processed in 0.474871 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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