找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1258|回复: 10

[求助] [求助]:这种动态效果是怎么做出来的。

[复制链接]
发表于 2006-10-13 19:44:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
想仿造做个X形的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-10-14 13:45:10 | 显示全部楼层
這個很簡單,你可以去了解一下grdraw函數功能,加上grread完全可以達到
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-14 13:54:14 | 显示全部楼层
如下:

  1. (defun C:test1(/ p0 p2)
  2. (setq p0 (getpoint "1")
  3. p2 (getpoint "2")
  4. )
  5. (grdraw p0 p2 1)
  6. )


但是单击点一后,单击二之前没有捕获鼠标动作动态显示啊。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-10-14 14:02:47 | 显示全部楼层
“舟自横”已经告诉你了,要“GRDRAW"+"GRREAD"结合使用。可参见签名下的动态标高程序。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-10-14 14:15:18 | 显示全部楼层
隨便剛寫了一個,
試一下這個的效果,可以作為參考,其他迎刃而解.
(defun c:test1 (/ p1 loop_id pt)
  (setq p1 (getpoint))
  (setq loop_id T)
  (setq PT (grread t 4 0))
  (while loop_id
    (setq PT (grread t 4 0))
    (redraw)
    (grdraw p1 (cadr pt) 2 1)
    (if        (= 3 (car PT))
      (setq loop_id nil)
    )
  )
  (redraw)
  (vl-cmdf "._line" p1 (cadr pt) "")
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-14 14:19:30 | 显示全部楼层
谢谢,试运行了下,正是这个效果。

改为:(defun c:test1 (/ p1 loop_id)后
实际测试了一下,

命令: rec

指定第一个角点或 [基准(B)/高(H)/中心点(C)] <对话框(DI)>: 0,0

指定第二个角点或 [整个基准(F)/一半基准(H)] <整个基准(F)>: 10,10

命令: test1 T

命令: !pt
(3 (9.96601 9.91595 0.0))
因此,(cadr pt)返回第二个元素,也就是坐标点,因选取点返回3,
故点选后
(car PT) 返回的3令跳出循环。
(redraw)用于重画当前视图。

grread 函数返回一个表,其中第一个元素说明输入类型的代码,第二个元素既可能是整数,又可能是点,这取决于输入的类型。其返回值列表如下:

grread 函数的返回值

第一个元素        第二个元素
值        输入类型        值        说明
2        键盘输入        各种        字符代码
3        选定点        三维点        点坐标

有个疑问,有可能实现选取pt点时采用捕捉吗?
比如,下面这个程序。

  1. (DEFUN C:test2(/ temppt1 loop_id pt)
  2.         (setq loop_id T)
  3.         (setq PT (grread t 4 0))
  4.         (prompt "\n 水平辅助线")
  5.         (while loop_id
  6.                 (setq PT (grread t 4 0))
  7.                 (redraw)
  8.                 (grdraw (polar (cadr pt) pi 5000) (polar (cadr pt) 0 5000) 2 1)               
  9.                 (if (= 3 (car PT))
  10.                 (setq loop_id nil)
  11.                 )               
  12.         )
  13.         (setq temppt1 (cadr pt))
  14.         (vl-cmdf "XLINE" "H" temppt1 "")
  15.         (redraw)       
  16. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-10-15 11:15:10 | 显示全部楼层
应该是可行的,我自己试了一下,完成下面的练习
不知道这样算是吗?
但有各疑问就是 grread 之前不支援 INITGET 命令操作
我用了下面的方法但还是觉得不好用有方法改变吗
[PHP]
(defun C:repkey ()
(print "选取物件/右键输入/K键输入")
(setq key (grread))
(anskey key)
)
   
(defun anskey ( key /)
(cond
((= (car key) 3) (print "滑鼠点到点位置"))
((= (CAR key) 2)
(SETQ bigwd (STRCASE (CHR (CADR key))))
(IF (= bigwd "K")
(PRINT "按键K输入")
(PROGN
    (PRINT "未支援此关键命令,请重新输入命令")
    (C:repkey)
)
)
)
((= (CAR key) 25) (print "滑鼠按到右键"))
(t
(print "您的输入,没有任何反应!!!")
)
)
)
[/PHP]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6个

财富等级: 恭喜发财

发表于 2006-10-15 12:29:18 | 显示全部楼层
6楼的加上捕捉后的代码:

  1. (DEFUN C:test2 (/ temppt1 loop_id pt)
  2.   (setq loop_id T)
  3.   (setq PT (grread t 4 0))
  4.   (prompt "\n 水平辅助线")
  5.   (while loop_id
  6.     (setq PT (grread t 4 0))
  7.     (setq p (grreadosnap (cadr pt)))        ;<这行是捕捉>[url]http://www.xdcad.net/forum/showthread.php?threadid=595948[/url]
  8.     ;;(redraw)
  9.     (grdraw (polar p pi 5000)
  10.             (polar p 0 5000)
  11.             2
  12.             1
  13.     )
  14.     (if        (= 3 (car PT))
  15.       (setq loop_id nil)
  16.     )
  17.   )
  18.   (setq temppt1 p)
  19.   (vl-cmdf "XLINE" "H" temppt1 "")
  20.   (redraw)
  21. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-15 13:06:16 | 显示全部楼层
加载grreadosnap.fas后可以使用,
如果能处理成捕捉象限点,交点等有对应的捕捉图标就更好了,
现在的情况是都只能显示端点捕捉图标,且无法透明使用捕捉设置。
这样如果没有选择圆心捕捉,命令执行后必须退出设置为圆心捕捉再执行命令。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6个

财富等级: 恭喜发财

发表于 2006-10-15 13:14:47 | 显示全部楼层
见例子中的:
((equal gr '(2 6))                ;F3可设置捕捉值
  (command "_+dsettings" 2)
)
你在可以在你的程序加一些代码就可以设置捕捉值了

"对应的捕捉图标"这个东东想过
不过做起来很烦琐就没去做了
~那位老大有兴趣的做吧
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-15 13:35:53 | 显示全部楼层
动画上传不成功,
原因是:
系统检测到你在该主题上个帖子传过的附件大小没有接近论坛附件大小限值500kb

如果要继续传附件,请用WINRAR 3.0以上版本重新处理(包括上个附件)成多卷压缩文件,

每个附件大小设置为500kb,编辑上面的帖子,重新依次上传附件,谢谢!

所以下午我会将动画传到qq群上。

是一个用ggg制作gif动画的例子。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-18 06:15 , Processed in 0.397794 second(s), 52 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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