明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 12236|回复: 21

[【风之影】] [源码]动态粗糙度核心函数注释

    [复制链接]
发表于 2011-11-27 20:30:51 | 显示全部楼层 |阅读模式
本帖最后由 cabinsummer 于 2016-12-24 15:10 编辑

核心函数是grreadosnapentmod三个函数。在grread状态下,不能采用捕捉设置,所以必须用osnap函数解决。如果图形的插入点周边有块的其它图元,则直接osnap会发生图形跳动,解决办法就是先删除插入的块,取得osnap捕捉点后再恢复被删除的块。最后根据捕捉点与grread读取点的关系计算角度,更新图块数据。
  1. (setq ename (entlast))                  ;;;插入图块的图元名
  2. (setq entdb (entget ename))             ;;;获得图元的数据
  3. (prompt "选择插入点")
  4. (setq tag T)                            ;;;设定跳出while循环的标志
  5. (while tag
  6.   (setq code (grread T 8))              ;;;读取输入
  7.   (setq mod (car code))                 ;;;取得输入模式
  8.   (cond
  9.     ((or (= mod 5)(= mod 3))
  10.      (if (= mod 3)(setq tag nil))       ;;;如果鼠标左键点击,则设定while循环结束
  11.      (setq snappt (cadr code))          ;;;取得鼠标当前坐标
  12.      (entdel ename)                     ;;;删除插入的图块
  13.      (setq nearpt (osnap snappt "nea")) ;;;取得最近的捕捉点
  14.      (entdel ename)                     ;;;恢复刚才删除的图块
  15.      (if nearpt                         ;;;判断捕捉点
  16.        (progn                           ;;;如果有捕捉点,执行下面的程序
  17.          ;;;
  18.          (entmod entdb)                 ;;;更新图元数据
  19.        )
  20.        (progn                           ;;;如果没有捕捉点,执行下面的程序
  21.          ;;;
  22.          (entmod entdb)                 ;;;更新图元数据
  23.        )
  24.      )
  25.     )
  26.     ((= mod 2)                          ;;;处理键盘
  27.       ;;;
  28.     )
  29.     (T                                  ;;;处理其它情况
  30.       ;;;
  31.     )
  32.   )
  33. )

不带动态的粗糙度源码请到下面链接的帖子中下载
http://bbs.mjtd.com/thread-89324-1-1.html

评分

参与人数 2明经币 +2 收起 理由
crazylsp + 1 神马都是浮云
yjr111 + 1 赞一个!

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下

本帖被以下淘专辑推荐:

发表于 2022-7-20 00:06:41 | 显示全部楼层
cabinsummer 发表于 2011-12-7 07:06
动态不止能干这个,这还是简单的了。

一旦重新设定坐标原点,这个粗糙度就跑位了,还需大师改改。
发表于 2019-11-14 23:18:23 | 显示全部楼层
谢谢老大,最近刚学到这个地方,网上找不到任何资料,只有这边的资料整理的最好,谢谢分享
发表于 2024-9-25 09:42:53 | 显示全部楼层
顶一个顶一个顶一个顶一个顶一个
发表于 2011-11-27 22:00:40 | 显示全部楼层
LZ都写了一部分,不如干脆来个完善的
 楼主| 发表于 2011-11-27 22:14:21 | 显示全部楼层
Jack_PC 发表于 2011-11-27 22:00
LZ都写了一部分,不如干脆来个完善的

我给出了不带动态的源码链接,如果你要有兴趣学习,可以自己组合。网上动态的粗糙度很多,可是没有给出源码的。我看到不少人希望源码,所以才放出核心部分并解释。如果你连这一点都不肯做,可见你并不想学习,还是下载那些收费的加密动态粗糙度吧。
发表于 2011-11-27 23:13:02 | 显示全部楼层
cabinsummer 发表于 2011-11-27 22:14
我给出了不带动态的源码链接,如果你要有兴趣学习,可以自己组合。网上动态的粗糙度很多,可是没有给出源 ...

不是不肯做,而是不会做
发表于 2011-11-28 00:29:54 | 显示全部楼层
根据lz的解释和网上的代码,再搜集一些grread的用法,写一个这样的代码确实没多少难度!
 楼主| 发表于 2011-11-28 07:32:43 | 显示全部楼层
Jack_PC 发表于 2011-11-27 23:13
不是不肯做,而是不会做

如果你仅仅是一个使用者,为什么还要源码呢?源码是给学习者用的
发表于 2011-11-28 19:42:28 | 显示全部楼层
本帖最后由 Jack_PC 于 2011-11-28 19:43 编辑

正是不会才希望有源代码可以学习,看来自己还得加油向各位学习了,不知什么时候自己才可以写出这种程序
发表于 2011-12-6 21:28:11 | 显示全部楼层
好高学问,还不知道能利用在哪里呢

点评

楼下就是一个动态粗糙度的录制,这是最简单的插入块的动态了  发表于 2011-12-7 07:07
 楼主| 发表于 2011-12-7 07:06:15 | 显示全部楼层
动态不止能干这个,这还是简单的了。

本帖子中包含更多资源

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

x
发表于 2011-12-19 12:37:18 | 显示全部楼层
太好了,现在不懂,我会学的。刚开始学习中。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-23 04:19 , Processed in 0.225383 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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