找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1765|回复: 6

[求助] [求助]:请教:在CAD中动态拖动物体的LISP的方法

[复制链接]
发表于 2002-10-31 20:15:47 | 显示全部楼层 |阅读模式

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

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

×
哪位高手能告诉我:在CAD中动态拖动物体的LISP的方法,就MOVE和STRETCH命令那样。
本人想用于一个程序中(想完美一些)!望赐教。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-11-1 00:48:33 | 显示全部楼层
XDRX_API啦,

看看2002下面的“自由拷贝、移动、缩放”的工具。可以实现任何的拖动,让LISP可以使用ARX的底层拖动机制。

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

使用道具 举报

发表于 2002-11-1 21:35:24 | 显示全部楼层
用grread 呀
我以前也问过类似的问题
xxxd回答后 我再编的lisp
都是动态显示啦
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-11-2 19:34:36 | 显示全部楼层
LXF—YSY:给个样板看看效果是怎样的!能否?我想用在所标注的坐标的动态放置上!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-11-3 23:39:04 | 显示全部楼层

我是这样用vlisp实现动态显示的

  1. [FONT=courier new]
  2. ......
  3.   (setq pt (cadr (grread 1)));获取当前鼠标所在点
  4.   (setq ss nil)
  5.   (setq ss (my_draw pt ss....));画所要画的东东 并加到选择集ss
  6.   (while (not pick)
  7.     (setq l (grread t))
  8.     (setq ip (car l))
  9.     (setq pt (cadr l))
  10.     (if (= ip 5)
  11.       (setq ss (my_draw pt ss...))   
  12.       );end if
  13.     (setq pick (= 3 ip))
  14.     );end while          
  15. .....

  16.   (defun my_draw (pt ss ..... / l-new.....)
  17.     (以pt 为变量求取所画东东的点.....)
  18.     (if (not ss) (画所要画的东东 并加到选择集ss))
  19.     (将生成的相关点坐标及对应组码及其在ss中的位置加到 l-new)
  20.     (my_vd  ss l-new)
  21.     (setq ss ss)
  22.     );end my_draw

  23.   (defun my_vd ss l-new /.....)
  24.     (将ss中相关东东的点用l-new中的替换并entmod)
  25.   );end my_vd
  26. [/FONT]


  其它平面实体比较好弄,lwpolyline麻烦点.另外实时stretch我
  没想到好方法 就麻烦晓东吧
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-11-4 00:18:58 | 显示全部楼层

Re: 我是这样用vlisp实现动态显示的

最初由 lxf-ysy 发布
......
  (setq pt (cadr (grread 1)));获取当前鼠标所在点


XDRX_API提供了两个函数,一个是获得实体的STRECH点,一个是移动实体的STRETCH点,通过这两个函数,在LISP里面写一些程序非常方便了,不用考虑复杂的组码,比如伸缩尺寸界线等功能,晓东工具箱里面的“尺寸伸缩”三合一,就使用了这两个函数。

大家觉得ACAD的STRETCH功能很好,希望LISP程序实现,就用下面的函数吧。


  1. [FONT=courier new]
  2. xdrx_entity_getStretchPoint

  3. 功能:获得实体的拉伸点

  4. 调用格式:(xdrx_entity_getStretchPoint <实体名>)

  5. 返回值:点表


  6. xdrx_entity_moveStretchPoint

  7. 功能:拉伸(移动)实体的拉伸点

  8. 调用格式:(xdrx_entity_moveStretchPoint <实体名> <移动向量> <p1>..[pn])

  9. 说明:用LISP实现ARX的拉伸实体操作
  10.       p1...pn是实体当前的各拉伸点,可以多输入。
  11.       移动向量(相对位移,X,Y,Z),把上面参数P1拉伸。
  12.       
  13. 返回值:成功T,否NIL      
  14. [/FONT]
复制代码


大家看看用XDRX_API拖放函数写的LISP程序的效果:

自由缩放


下载地址:http://www.xdcad.net/tech/XDTB_XSCALE.swf

<embed src=http://www.xdcad.net/tech/XDTB_XSCALE.swf quality=high width=512 height=482 loop=true type="application/x-shockwave-flash">
</embed>

序号标注,拖动中任意变换数字,大小...

下载地址:http://www.xdcad.net/tech/XDTB_SYMBOL1.swf

<embed src=http://www.xdcad.net/tech/XDTB_SYMBOL1.swf quality=high width=512 height=482 loop=true type="application/x-shockwave-flash">
</embed>


自由移动、自由拷贝,实现拖动过程中自由变换拖动实体的显示。


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

使用道具 举报

 楼主| 发表于 2002-11-5 13:23:20 | 显示全部楼层
谢谢,明白了。多谢指点!
通过捕捉鼠标点有坐标来更新数据库中相关有坐标值:)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-26 05:16 , Processed in 0.460423 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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