找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2543|回复: 19

[求助] 显隐一命令?

[复制链接]
发表于 2013-8-30 10:23:07 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 On_the_way 于 2013-8-31 15:41 编辑

论坛里面很多实体隐藏 显示的源码。哪个高手能不能写个优化版整合显隐于同一个命令,用同一个命令进行显示/隐藏实体的切换,当需要重新选择时,使用其他命令清除之前选择的实体
简单的说一个命令选择对象(OR重新选择对象),另一个命令不断的对所选择的对象进行隐藏/显示/隐藏/显示 /隐藏/显示 简单的说我就是要一个选择后,能够不断切换显示隐藏的lsp
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-8-30 10:39:20 | 显示全部楼层
你意思是执行一次 隐藏, 在执行一次,恢复上次隐藏的?

点评

恩 是的 就是同一个命令进行隐藏/显示/隐藏/显示/。。。。。  详情 回复 发表于 2013-8-30 10:48
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-30 10:48:43 | 显示全部楼层
XDSoft 发表于 2013-8-30 10:39
你意思是执行一次 隐藏, 在执行一次,恢复上次隐藏的?

恩 是的 就是同一个命令进行隐藏/显示/隐藏/显示/。。。。。

点评

就是为了一个快捷键而重写一个程序??性价比不高啊  详情 回复 发表于 2013-8-30 19:45
那你隐藏后, 发现忘记选需要的了,还需要再选择,隐藏时候呢? 按你想法上次隐藏的就恢复了,你不觉的麻烦吗?  详情 回复 发表于 2013-8-30 11:00
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-8-30 11:00:45 | 显示全部楼层
On_the_way 发表于 2013-8-30 10:48
恩 是的 就是同一个命令进行隐藏/显示/隐藏/显示/。。。。。

那你隐藏后, 发现忘记选需要的了,还需要再选择,隐藏时候呢? 按你想法上次隐藏的就恢复了,你不觉的麻烦吗?

点评

因为我一般只需要选择一个实体,然后后面不断的进行显示隐藏的切换,所以才想要这个功能,我后面也写了再另外一个命令清除已选择的,重新选择  详情 回复 发表于 2013-8-30 11:10
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-30 11:10:48 | 显示全部楼层
newer 发表于 2013-8-30 11:00
那你隐藏后, 发现忘记选需要的了,还需要再选择,隐藏时候呢? 按你想法上次隐藏的就恢复了,你不觉的麻 ...

因为我一般只需要选择一个实体,然后后面不断的进行显示隐藏的切换,所以才想要这个功能,我后面也写了再另外一个命令清除已选择的,重新选择

点评

那同样的工具写两个了,浪费。  详情 回复 发表于 2013-8-30 11:20
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

发表于 2013-8-30 11:19:17 | 显示全部楼层
本帖最后由 /db_自贡黄明儒_ 于 2013-8-30 11:39 编辑

  1. (defun C:XD:HHBC (/ N SS)
  2.   (while (setq ss (ssget))   
  3.     (repeat (setq n (sslength ss))
  4.       (redraw (ssname ss (setq n (1- n))) 2)
  5.     )
  6.   )
  7.   (if n nil (command "REGEN"))
  8.   (princ "\n ***临时隐藏命令:HHBC 恢复命令:空选或RE***")
  9.   (princ)
  10. )

  11. ;;自贡黄明儒 时间2013.8.27
  12. (defun c:XD:HHBC  (/ EN I SS)
  13.   (while (setq ss (ssget))   
  14.     (repeat (setq I (sslength ss))
  15.       (setq EN (ssname ss (setq i (1- i))))
  16.       (entmod (cons (cons 60 1) (entget EN)))
  17.     )
  18.   )
  19.   (IF EN
  20.     nil
  21.     (if (setq ss (ssget "x" (LIST (cons 60 1))))
  22.            (repeat (SETq I (sslength ss))
  23.              (setq EN (entget (ssname ss (setq i (1- i)))))
  24.              (entmod (subst (cons 60 0) (assoc 60 EN) EN))            
  25.            )
  26.     )
  27.   )
  28.   (princ)
  29. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

发表于 2013-8-30 11:19:49 | 显示全部楼层
本帖最后由 /db_自贡黄明儒_ 于 2013-8-30 11:27 编辑

论坛速度慢,发重了!!

为什么这么慢呢???????????

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-8-30 11:20:14 | 显示全部楼层
On_the_way 发表于 2013-8-30 11:10
因为我一般只需要选择一个实体,然后后面不断的进行显示隐藏的切换,所以才想要这个功能,我后面也写了再 ...

那同样的工具写两个了,浪费。

点评

版主 帮我实现下吧 ,楼上那个不是我要的要求,他不能不断的切换,只能切换一次  详情 回复 发表于 2013-8-30 11:47
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-30 11:47:07 | 显示全部楼层
newer 发表于 2013-8-30 11:20
那同样的工具写两个了,浪费。

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-8-30 13:21:58 来自手机 | 显示全部楼层
xdapi可以保存九个选择集,这个是不是可以利用?

点评

9个选择集和隐藏实体开关有什么联系?  详情 回复 发表于 2013-8-30 14:24
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-8-30 14:24:36 | 显示全部楼层
st788796 发表于 2013-8-30 13:21
xdapi可以保存九个选择集,这个是不是可以利用?

9个选择集和隐藏实体开关有什么联系?

点评

呵呵,第一次运行提示选择,将选择集隐藏并存入一个api选择集,再次运行调出该选择并显示,提示再次选择,隐藏选择集并存入,如此循环  详情 回复 发表于 2013-8-30 19:17
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 862个

财富等级: 财运亨通

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-8-30 19:17:43 来自手机 | 显示全部楼层
newer 发表于 2013-8-30 14:24
9个选择集和隐藏实体开关有什么联系?

呵呵,第一次运行提示选择,将选择集隐藏并存入一个api选择集,再次运行调出该选择并显示,提示再次选择,隐藏选择集并存入,如此循环
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 344个

财富等级: 日进斗金

发表于 2013-8-30 19:32:24 | 显示全部楼层
这个完全可以满足你的需求:
  1. ;;隐藏或显示对象 By Gu_xl
  2. (defun c:SSSH ()
  3.   (vl-load-com)
  4.   (setq data (VLAX-LDATA-get "隐藏对象" "隐藏对象数据"))
  5.   (if data
  6.     (progn
  7.       (foreach hand  data
  8.   (if (setq en (handent hand))
  9.     (progn
  10.       (setq layers (vla-get-layers
  11.          (vla-get-ActiveDocument
  12.            (vlax-get-acad-object))))
  13.       (if  (or (= :vlax-true
  14.            (vla-get-Lock
  15.        (setq
  16.          layer (vla-item layers
  17.              (vla-get-layer
  18.                (setq obj
  19.                 (vlax-ename->vla-object
  20.                   en)))))))
  21.         (= :vlax-true (vla-get-Freeze layer))
  22.         )
  23.         (progn
  24.     (setq LayerStaus
  25.            (cons (list layer
  26.            (vla-get-Lock layer)
  27.            (vla-get-Freeze layer))
  28.            LayerStaus)) ;_ 保存图层状态
  29.     (vla-put-lock layer :vlax-false) ;_ 解锁
  30.     (vla-put-lock layer :vlax-false) ;_ 解冻
  31.     )
  32.         )

  33.       (vla-put-Visible obj :vlax-true) ;_ 显示
  34.       )
  35.     )
  36.   )
  37.       (VLAX-LDATA-delete "隐藏对象" "隐藏对象数据")
  38.       (if LayerStaus
  39.   (foreach la  LayerStaus
  40.     (vla-put-lock (car la) (cadr la))
  41.     (vla-put-Freeze (car la) (caddr la))
  42.     )
  43.   )
  44.       )
  45.   (progn
  46.     (princ "\n**选择要隐藏的对象**")
  47.     (setq ss (ssget))
  48.   (if ss
  49.     (progn
  50.       (setq layers (vla-get-layers
  51.          (vla-get-ActiveDocument
  52.            (vlax-get-acad-object))))
  53.       
  54.       (repeat (setq n (sslength ss))
  55.   (if  (= :vlax-true
  56.            (vla-get-Lock
  57.        (setq
  58.          layer (vla-item layers
  59.              (vla-get-layer
  60.                (setq  obj (vlax-ename->vla-object
  61.           (ssname ss (setq n (1- n))))))))))
  62.         (progn
  63.     (setq LayerStaus
  64.            (cons (list layer
  65.            (vla-get-Lock layer)
  66.            )
  67.            LayerStaus)) ;_ 保存图层状态
  68.     (vla-put-lock layer :vlax-false) ;_ 解锁
  69.     )
  70.         )
  71.   (vla-put-Visible obj :vlax-false)
  72.   (setq data (cons (vla-get-Handle obj) data))
  73.   )
  74.       (VLAX-LDATA-PUT
  75.   "隐藏对象"
  76.   "隐藏对象数据"
  77.   (append (VLAX-LDATA-get "隐藏对象" "隐藏对象数据") Data))
  78.       ;;恢复图层
  79.       (if LayerStaus
  80.   (foreach la  LayerStaus
  81.     (vla-put-lock (car la) (cadr la))
  82.     )
  83.   )
  84.       )
  85.     )
  86.     )
  87.     )
  88.   (princ)
  89.   
  90.   )


点评

大侠 还是没达到我想要的效果,我是要选择隐藏对象后,在运行就是显示刚刚隐藏的,在运行就是再次隐藏刚刚那个对象,就是选择后隐藏/显示/隐藏/显示/。。。。不断的切换,而不是选择隐藏/显示 再选择隐藏/显示 大  详情 回复 发表于 2013-8-31 15:23

评分

参与人数 1D豆 +2 收起 理由
/db_自贡黄明儒_ + 2 很给力!经验;技术要点;资料分享奖!

查看全部评分

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

使用道具 举报

已领礼包: 685个

财富等级: 财运亨通

发表于 2013-8-30 19:45:14 | 显示全部楼层
On_the_way 发表于 2013-8-30 10:48
恩 是的 就是同一个命令进行隐藏/显示/隐藏/显示/。。。。。

就是为了一个快捷键而重写一个程序??性价比不高啊

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 11:37 , Processed in 0.416299 second(s), 57 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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