找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1435|回复: 3

[分享]:一小段代码的妙用

[复制链接]
发表于 2002-11-13 14:42:58 | 显示全部楼层 |阅读模式

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

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

×
一小段代码的妙用:虽然道理很简单。
本来我用它来快速重画当前窗口实体(我图有地形图,regen太慢了)
后来发现两个意外的功能
1.可以切换重叠的两个实体 : 比按住CTRL好点
2.做透明命令用,在窗口局部放大时可以刷新窗口,REGEN 不可以作为透明命令用
注意: 当前窗口实体很多或者有大的外部引用和块时慎用。

代码如下


  1. [FONT=courier new]
  2. (defun c:rr ( / p h w p1 p2 s num ename alpha y x)
  3.   (princ "快速重画窗口图像……")
  4.   ;(princ "\n请选择请选择重画内容: ")
  5.   ;;获取屏幕范围坐标
  6.   (setq p (getvar "screensize"))
  7.    (setq h (/ (getvar "viewsize") 2))
  8.    (setq w (* h (/ (nth 0 p)  (nth 1 p) )))
  9.   (setq p (getvar "viewctr"))
  10. ;;;求坐标偏移
  11.    (setq alpha (- 0 (ucsorview)))
  12.   (setq  x (+ (* w (cos alpha)) ( * h (sin alpha))) )
  13.   (setq  y (- (* h (cos alpha)) ( * w (sin alpha))))
  14. ;;;
  15.   (setq p1 (list (+ (nth 0 p) x) (- (nth 1 p) y)))
  16.   (setq p2 (list (- (nth 0 p) x) (+ (nth 1 p) y)))
  17.   (setq        s (ssget "_c" p1 p2 ))
  18.   (setq num (sslength s))
  19.   (setq n 0)
  20.   (repeat num
  21.      (setq ename (ssname s n))
  22.      (entupd ename )
  23.      (setq n (+ 1 n))                     
  24.   )
  25. (setq s nil)
  26. (princ)
  27. )
  28.                                         ;
  29.                                         ;end}
  30. ;--------------------------------
  31.                                         ;{start
  32.                                         ;
  33. ;有选择的局部重画
  34. (defun c:rw ( / n s ename num )
  35.   (princ "局部重画")
  36.   (princ "\n请选择请选择重画内容: ")
  37.   (setq        s (ssget ))
  38.   (setq num (sslength s))
  39.   (setq n 0)
  40.   (repeat num
  41.      (setq ename (ssname s n))
  42.      (entupd ename )
  43.      (setq n (+ 1 n))                     
  44.   )
  45. (princ)
  46. )
  47.                                         ;
  48.                                         ;end}
  49. ;--------------------------------
  50. (defun ucsorview ( / lpoint2 tw)
  51. (if  (= 1 (getvar "worlducs")) (getvar "viewtwist")  0 )
  52. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2002-11-14 11:36:51 | 显示全部楼层
有选择的局部重画,MOVE一下就可以了
^C^C_SELECT;\_MOVE;P;;0,0;@
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 8个

财富等级: 恭喜发财

发表于 2002-11-14 12:10:51 | 显示全部楼层
ERASE后OOPS即可
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-11-14 12:18:04 | 显示全部楼层
但都不可以切换重叠实体和作为透明命令用啊
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-26 06:31 , Processed in 0.302029 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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