找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: On_the_way

[求助] 显隐一命令?

[复制链接]

已领礼包: 1268个

财富等级: 财源广进

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

使用道具 举报

发表于 2013-8-30 21:38:13 | 显示全部楼层
  1. (defun c:tt (/ ss)
  2.   (if (setq ss (ssget "x" '((60 . 1))))
  3.     (xdrx_entity_setvisible ss t)
  4.   )
  5.   (princ  "\n选择要隐藏实体....")
  6.   (if (setq ss (ssget))
  7.     (xdrx_entity_setvisible ss nil)
  8.   )
  9.   (princ)
  10. )

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

使用道具 举报

 楼主| 发表于 2013-8-31 15:23:52 | 显示全部楼层
本帖最后由 On_the_way 于 2013-8-31 15:27 编辑
牢固 发表于 2013-8-30 19:32
这个完全可以满足你的需求:

大侠 还是没达到我想要的效果,我是要选择隐藏对象后,在运行就是显示刚刚隐藏的,在运行就是再次隐藏刚刚那个对象,就是选择后隐藏/显示/隐藏/显示/。。。。不断的切换,而不是选择隐藏/显示  再选择隐藏/显示  大侠的代码多了个选择的步骤.                                                                               如果想换个显示隐藏的对像就运行另外一个命令重新选择 简单的说我就是要一个选择后,能够不断切换显示隐藏的lsp
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 344个

财富等级: 日进斗金

发表于 2013-8-31 15:59:41 | 显示全部楼层
本帖最后由 牢固 于 2013-8-31 16:01 编辑
On_the_way 发表于 2013-8-31 15:23
大侠 还是没达到我想要的效果,我是要选择隐藏对象后,在运行就是显示刚刚隐藏的,在运行就是再次隐藏刚 ...
要学会举一反三才会有进步,我给的代码作下简单修改即可实现:
  1. ;;隐藏或显示对象 By Gu_xl
  2. (defun c:SSSH (/ DATA EN LAYERS LAYER OBJ LAYERSTAUS)
  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
  11.        (vla-get-layers
  12.          (vla-get-ActiveDocument
  13.            (vlax-get-acad-object)
  14.          )
  15.        )
  16.       )
  17.       (if  (or (= :vlax-true
  18.            (vla-get-Lock
  19.        (setq
  20.          layer
  21.           (vla-item layers

  22.               (vla-get-layer
  23.           (setq obj (vlax-ename->vla-object en))
  24.               )
  25.           )
  26.        )
  27.            )
  28.         )
  29.         (= :vlax-true (vla-get-Freeze layer))
  30.     )
  31.         (progn (setq LayerStaus
  32.           (cons (list  layer
  33.           (vla-get-Lock layer)
  34.           (vla-get-Freeze layer)
  35.           )
  36.           LayerStaus
  37.           )
  38.          ) ;_ 保存图层状态
  39.          (vla-put-lock layer :vlax-false) ;_ 解锁
  40.          (vla-put-lock layer :vlax-false) ;_ 解冻
  41.         )
  42.       )
  43.       (if  (equal :vlax-true (vla-get-Visible obj))
  44.         (vla-put-Visible obj :vlax-false) ;_ 隐藏
  45.         (vla-put-Visible obj :vlax-true) ;_ 显示
  46.       )
  47.     )
  48.   )
  49.       )
  50.       (if LayerStaus
  51.   (foreach la LayerStaus
  52.     (vla-put-lock (car la) (cadr la))
  53.     (vla-put-Freeze (car la) (caddr la))
  54.   )
  55.       )
  56.     )
  57.     ;;否则创建隐藏对象
  58.     (progn
  59.             (princ "\n**选择要隐藏的对象**")
  60.       (setq ss (ssget))
  61.       (if ss
  62.   (progn
  63.     (setq
  64.       layers (vla-get-layers
  65.          (vla-get-ActiveDocument (vlax-get-acad-object))
  66.        )
  67.     )
  68.     (repeat (setq n (sslength ss))
  69.       (if  (= :vlax-true
  70.        (vla-get-Lock
  71.          (setq layer
  72.           (vla-item layers
  73.               (vla-get-layer
  74.           (setq obj (vlax-ename->vla-object
  75.                 (ssname ss (setq n (1- n)))
  76.               )
  77.           )
  78.               )
  79.           )
  80.          )
  81.        )
  82.     )
  83.         (progn (setq LayerStaus
  84.           (cons (list layer (vla-get-Lock layer))
  85.           LayerStaus
  86.           )
  87.          ) ;_ 保存图层状态
  88.          (vla-put-lock layer :vlax-false) ;_ 解锁
  89.         )
  90.       )
  91.       (vla-put-Visible obj :vlax-false)
  92.       (setq data (cons (vla-get-Handle obj) data))
  93.     )
  94.     (VLAX-LDATA-PUT
  95.       "隐藏对象"
  96.       "隐藏对象数据"
  97.       (append (VLAX-LDATA-get "隐藏对象" "隐藏对象数据") Data)
  98.     )
  99.     ;;恢复图层
  100.     (if LayerStaus
  101.       (foreach la LayerStaus (vla-put-lock (car la) (cadr la)))
  102.     )
  103.   )
  104.       )
  105.       )
  106.   )
  107.   (princ)
  108. )
  109. ;;创建新的隐藏对象
  110. (defun c:ssshn (/ DATA EN LAYERS LAYER OBJ LAYERSTAUS SS N)
  111.   (vl-load-com)
  112.   (setq data (VLAX-LDATA-get "隐藏对象" "隐藏对象数据"))
  113.   (if data
  114.     ;;删除原隐藏对象
  115.     (progn
  116.       (foreach hand data
  117.   (if (setq en (handent hand))
  118.     (progn
  119.       (setq layers
  120.        (vla-get-layers
  121.          (vla-get-ActiveDocument
  122.            (vlax-get-acad-object)
  123.          )
  124.        )
  125.       )
  126.       (if  (or (= :vlax-true
  127.            (vla-get-Lock
  128.        (setq
  129.          layer
  130.           (vla-item layers

  131.               (vla-get-layer
  132.           (setq obj (vlax-ename->vla-object en))
  133.               )
  134.           )
  135.        )
  136.            )
  137.         )
  138.         (= :vlax-true (vla-get-Freeze layer))
  139.     )
  140.         (progn (setq LayerStaus
  141.           (cons (list  layer
  142.           (vla-get-Lock layer)
  143.           (vla-get-Freeze layer)
  144.           )
  145.           LayerStaus
  146.           )
  147.          ) ;_ 保存图层状态
  148.          (vla-put-lock layer :vlax-false) ;_ 解锁
  149.          (vla-put-lock layer :vlax-false) ;_ 解冻
  150.         )
  151.       )
  152.       (if  (equal :vlax-false (vla-get-Visible obj))
  153.         (vla-put-Visible obj :vlax-true) ;_ 显示
  154.       )
  155.     )
  156.   )
  157.       )
  158.       (VLAX-LDATA-delete "隐藏对象" "隐藏对象数据")
  159.       (if LayerStaus
  160.   (foreach la LayerStaus
  161.     (vla-put-lock (car la) (cadr la))
  162.     (vla-put-Freeze (car la) (caddr la))
  163.   )
  164.       )
  165.     )
  166.     )
  167.   (setq data nil)
  168.   ;;创建新的隐藏对象
  169.       (princ "\n**选择要隐藏的对象**")
  170.       (setq ss (ssget))
  171.       (if ss
  172.   (progn
  173.     (setq
  174.       layers (vla-get-layers
  175.          (vla-get-ActiveDocument (vlax-get-acad-object))
  176.        )
  177.     )
  178.     (repeat (setq n (sslength ss))
  179.       (if  (= :vlax-true
  180.        (vla-get-Lock
  181.          (setq layer
  182.           (vla-item layers
  183.               (vla-get-layer
  184.           (setq obj (vlax-ename->vla-object
  185.                 (ssname ss (setq n (1- n)))
  186.               )
  187.           )
  188.               )
  189.           )
  190.          )
  191.        )
  192.     )
  193.         (progn (setq LayerStaus
  194.           (cons (list layer (vla-get-Lock layer))
  195.           LayerStaus
  196.           )
  197.          ) ;_ 保存图层状态
  198.          (vla-put-lock layer :vlax-false) ;_ 解锁
  199.         )
  200.       )
  201.       (vla-put-Visible obj :vlax-false)
  202.       (setq data (cons (vla-get-Handle obj) data))
  203.     )
  204.     (VLAX-LDATA-PUT
  205.       "隐藏对象"
  206.       "隐藏对象数据"
  207.       (append (VLAX-LDATA-get "隐藏对象" "隐藏对象数据") Data)
  208.     )
  209.     ;;恢复图层
  210.     (if LayerStaus
  211.       (foreach la LayerStaus (vla-put-lock (car la) (cadr la)))
  212.     )
  213.   )
  214.       )
  215.   (princ)
  216.   )

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

使用道具 举报

发表于 2013-8-31 16:20:02 | 显示全部楼层
  1. (defun c:tt ()
  2.   (if **GlobleHidess**
  3.     (progn
  4.       (xdrx_entity_setvisible **GlobleHidess** **GlobleHidemod**)
  5.       (if **GlobleHidemod**
  6.         (setq **GlobleHidemod** nil)
  7.         (setq **GlobleHidemod** t)
  8.       )
  9.     )
  10.     (progn
  11.       (setq **GlobleHidess** (ssget))
  12.       (xdrx_entity_setvisible **GlobleHidess** **GlobleHidemod**)
  13.       (setq **GlobleHidemod** t)
  14.     )
  15.   )
  16.   (princ)
  17. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 11:34 , Processed in 0.254978 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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