xiaxiang
发表于 2012-4-1 10:43:07
;隐藏或显示部分图形
;作者wujimmy 来自:http://www.wujimmy.com
;修改自XIAXIANG 明经通道
(setq wjm_hide_lst nil)
(defun c:ee( / es es1 es2 bz)
(setq index_num (getint "图形组编号:"))
(princ "\n选择要显示或隐藏的图形:")
(initget "Z F ")
(setq bz (getkword "\n正向选择-Z/反向选择-F<Z>:"))
(cond
((= bz "F")
(setq es (ssget ))
)
(T
(setq es1 (ssget))
(setq es2 (ssget "_x"))
(command "_.select" ES1 "a" ES2 "r" ES1 "")
(setq es (ssget "P"))
)
);end cond
(if es
(progn
(if (assoc index_num wjm_hide_lst)
(progn
(if (null(caddr(assoc index_num wjm_hide_lst))) (wjm_show_hide index_num) );_如果原来图层是关着的,就打开显示.
(setq wjm_hide_lst (subst (list index_num es t)(assoc index_num wjm_hide_lst) wjm_hide_lst )))
(setq wjm_hide_lst (append wjm_hide_lst (list (list index_num es t))))
)
(eval (read (strcat"(defun c:" (rtos index_num 2 0)"() (wjm_show_hide "(rtos index_num 2 0) "))")))
)
)
)
(defun wjm_show_hide(index_num / i% es index_num mid isShow )
;(setq index_num 1)
(setq mid (assoc index_num wjm_hide_lst))
(setq es (cadr mid))
(setq isShow (null (caddr mid)))
(setq wjm_hide_lst (subst (list index_num es isShow)(assoc index_num wjm_hide_lst) wjm_hide_lst ))
(setq i% 0)
(repeat (sslength es)
(if isShow
(redraw (ssname es i%) 1)
(redraw (ssname es i%) 2)
)
(setq i% (1+ i%))
)
(if isShow
(princ "\n已经全部显示!")
(princ "\n已经全部隐藏!")
)
(princ)
)
(princ "\n ******* 显示隐藏编号程序已加载。命令: EE ************\n")
(princ)
xgr
发表于 2012-4-1 11:59:18
我觉得还要加个显示出隐藏实体的窗体就好,在窗体内选择已经隐藏的实体,再次打开操作。
不知G版的功能怎样,看看。
flytoday
发表于 2012-4-1 12:20:29
G版兄弟太好了好人啊谢谢
flytoday
发表于 2012-4-1 12:31:23
G版这个应列入明经出书的光盘源码。。这个太好了
1993063
发表于 2012-4-3 23:06:56
本帖最后由 1993063 于 2012-4-3 22:04 编辑
g版总是那么热心!
功夫佬
发表于 2012-4-3 23:30:46
看看,怎么研究
lz123456
发表于 2012-4-4 04:49:03
G版的程序一定要看
CTC
发表于 2012-4-4 10:44:06
看看G版
1993063
发表于 2012-4-4 16:06:27
flytoday 发表于 2012-3-31 15:21 static/image/common/back.gif
严哥这个在天正中多选择对象直接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)
)
flytoday
发表于 2012-4-8 12:41:26
G版的对天正对象还是会
; 错误: Automation 错误。未提供说明。
页:
1
[2]
3
4
5
6
7
8
9
10
11