明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: flytoday

请问为什么隐显对象对象有时行有时不行

  [复制链接]
发表于 2012-4-1 10:43:07 | 显示全部楼层
  1. ;隐藏或显示部分图形
  2. ;作者wujimmy 来自:http://www.wujimmy.com
  3. ;修改自XIAXIANG 明经通道
  4. (setq wjm_hide_lst nil)
  5. (defun c:ee( / es es1 es2 bz)
  6. (setq index_num (getint "图形组编号:"))
  7. (princ "\n选择要显示或隐藏的图形:")
  8. (initget "Z F ")
  9. (setq bz (getkword "\n正向选择-Z/反向选择-F<Z>:"))
  10.   (cond

  11. ((= bz "F")
  12. (setq es (ssget ))
  13. )

  14.   (T
  15.   (setq es1 (ssget))
  16.   (setq es2 (ssget "_x"))
  17.   (command "_.select" ES1 "a" ES2 "r" ES1 "")
  18.   (setq es (ssget "P"))
  19.   )
  20. );end cond
  21. (if es
  22. (progn

  23. (if (assoc index_num wjm_hide_lst)
  24. (progn
  25. (if (null(caddr(assoc index_num wjm_hide_lst))) (wjm_show_hide index_num) );_如果原来图层是关着的,就打开显示.
  26. (setq wjm_hide_lst (subst (list index_num es t)(assoc index_num wjm_hide_lst) wjm_hide_lst )))
  27. (setq wjm_hide_lst (append wjm_hide_lst (list (list index_num es t))))
  28. )
  29. (eval (read (strcat"(defun c:" (rtos index_num 2 0)"() (wjm_show_hide "(rtos index_num 2 0) "))")))
  30. )
  31. )
  32. )

  33. (defun wjm_show_hide(index_num / i% es index_num mid isShow )
  34. ;(setq index_num 1)
  35. (setq mid (assoc index_num wjm_hide_lst))
  36. (setq es (cadr mid))
  37. (setq isShow (null (caddr mid)))
  38. (setq wjm_hide_lst (subst (list index_num es isShow)(assoc index_num wjm_hide_lst) wjm_hide_lst ))
  39. (setq i% 0)
  40. (repeat (sslength es)
  41. (if isShow
  42. (redraw (ssname es i%) 1)
  43. (redraw (ssname es i%) 2)
  44. )
  45. (setq i% (1+ i%))
  46. )
  47. (if isShow
  48. (princ "\n已经全部显示!")
  49. (princ "\n已经全部隐藏!")
  50. )
  51. (princ)
  52. )
  53. (princ "\n ******* 显示隐藏编号程序已加载。命令: EE ************\n")
  54. (princ)

回复

使用道具 举报

发表于 2012-4-1 11:59:18 | 显示全部楼层
我觉得还要加个显示出隐藏实体的窗体就好,在窗体内选择已经隐藏的实体,再次打开操作。
不知G版的功能怎样,看看。

点评

你可以自己完善!  发表于 2012-4-1 12:07
回复

使用道具 举报

 楼主| 发表于 2012-4-1 12:20:29 | 显示全部楼层
G版兄弟太好了好人啊谢谢
回复

使用道具 举报

 楼主| 发表于 2012-4-1 12:31:23 | 显示全部楼层
G版这个应列入明经出书的光盘源码。。这个太好了
回复

使用道具 举报

发表于 2012-4-3 23:06:56 | 显示全部楼层
本帖最后由 1993063 于 2012-4-3 22:04 编辑

g版总是那么热心!
回复

使用道具 举报

发表于 2012-4-3 23:30:46 | 显示全部楼层
看看,怎么研究
回复

使用道具 举报

发表于 2012-4-4 04:49:03 | 显示全部楼层
G版的程序一定要看
回复

使用道具 举报

发表于 2012-4-4 10:44:06 | 显示全部楼层
看看G版
回复

使用道具 举报

发表于 2012-4-4 16:06:27 | 显示全部楼层
flytoday 发表于 2012-3-31 15:21
严哥这个在天正中多选择对象直接CAD崩溃,。卡住退出了哦。。不过也是很感谢

;看看这个怎么样
(defun c:ocu (/ sel_vis cant_vis cont_vis sel_ocu cant_ocu cont_ocu obj_ocu vlobj_ocu ocu obj_vis vlobj_vis vis)
   (vl-load-com)
   (setq sel_vis (ssget))
   (setq cant_vis (sslength sel_vis))
   (setq cont_vis 0)

   (setq sel_ocu (ssget "_X"))
   (setq cant_ocu (sslength sel_ocu))
   (setq cont_ocu 0)
   (repeat cant_ocu
      (setq obj_ocu (ssname sel_ocu cont_ocu))
      (setq vlobj_ocu (vlax-ename->vla-object obj_ocu))
      (setq ocu (vla-get-visible vlobj_ocu))
      (if (= ocu :vlax-true)
         (vla-put-visible vlobj_ocu 0)
         (vla-put-visible vlobj_ocu -1)
      )
      (setq cont_ocu (1+ cont_ocu))
   )
   (repeat cant_vis
      (setq obj_vis (ssname sel_vis cont_vis))
      (setq vlobj_vis (vlax-ename->vla-object obj_vis))
      (setq vis (vla-get-visible vlobj_vis))
      (if (= vis :vlax-false)
         (vla-put-visible vlobj_vis -1)
         (vla-put-visible vlobj_vis 0)
      )
      (setq cont_vis (1+ cont_vis))
   )
   (prin1)
)
回复

使用道具 举报

 楼主| 发表于 2012-4-8 12:41:26 | 显示全部楼层
G版的对天正对象还是会
; 错误: Automation 错误。未提供说明。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-21 01:28 , Processed in 0.177768 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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