明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1287|回复: 5

[提问] 各位大神帮忙看下,如图一个部分隐藏的功能,求大神增加如下功能

[复制链接]
发表于 2018-12-18 14:39 | 显示全部楼层 |阅读模式
本帖最后由 664571221 于 2018-12-18 14:50 编辑

输入tt,选中图元,回车后隐藏物体,如果继续回车,则显示隐藏的物体,如此循环,只要选中一次图元,然后就按空格键循环隐藏显示

;;部分隐藏
(defun C:BFYC (/ OBJ)
  (princ "【部分隐藏】")
  (obj_onf (ssget) :vlax-false)
  (princ)
)

;;快速隐藏物体
(vl-load-com)
;对象显示与隐藏
(defun obj_onf (ss mode)
  (if (= (type ss) 'PICKSET)
    (vlax-for OBJ (vla-get-activeselectionset
        (vla-get-activedocument (vlax-get-acad-object))
      )
      (if (/=(vla-get-visible OBJ) mode) (vla-put-visible OBJ mode))
    )
  )
)
;图层显示与隐藏
(defun lay_onf (LayName mode)
  (if (= (type LayName) 'STR)
    (vlax-for lay (vla-get-layers
        (vla-get-activedocument (vlax-get-acad-object))
      )
      (if (eq (strcase (vla-get-name lay)) (strcase LayName))
  (if(/=(vla-get-layeron lay) mode)
    (vla-put-layeron lay mode)
    )
  )
    )
  )
)

;;;把选择集的物体转化为Lisp 图元表
(defun S2L:ENT (ss / i l objs)
  (setq i -1 l (sslength ss) objs nil)
  (repeat l
    (setq objs (cons  (ssname ss (setq i (1+ i))) objs))
  )
)
;;;把选择集的物体转化为VLisp 图元表
(defun S2V:ENT (ss / i l objs)
  (setq i -1 l (sslength ss) objs nil)
  (repeat l
    (setq objs (cons  (vlax-ename->vla-object (ssname ss (setq i (1+ i)))) objs))
  )
)

发表于 2019-3-16 18:32 | 显示全部楼层

  1. ;; bfyc(部分隐藏)
  2. (defun c:bfyc ()
  3.   (princ "【部分隐藏】")
  4.   (if (setq ss (ssget))
  5.     (progn
  6.       (setq mode t  a 1)
  7.       (while mode
  8.         (setq ukw (Ukword 1 "1 2" "1-隐藏显示切换/2-退出" ukw))
  9.         (if (= ukw "2")
  10.           (setq mode nil)
  11.           (cond ((and (= ukw "1") (= a 1))
  12.                  (SS-VS ss :vlax-false)
  13.                  (setq a 0)
  14.                 )
  15.                 ((and (= ukw "1") (= a 0))
  16.                  (SS-VS ss :vlax-true)
  17.                  (setq a 1)
  18.                 )
  19.           )
  20.         )
  21.       )
  22.     )
  23.   )
  24.   (princ)
  25. )

  26. ;; 对象显示与隐藏
  27. (defun SS-VS (ss mode)
  28.   (if (= (type ss) 'PICKSET)
  29.     (vlax-for OBJ (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object)))
  30.       (if (/= (vla-get-visible OBJ) mode)
  31.         (vla-put-visible OBJ mode)
  32.       )
  33.     )
  34.   )
  35. )

本帖子中包含更多资源

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

x
发表于 2019-12-10 21:01 | 显示全部楼层
版主的程序是不是得 装你的 e派工具箱 才好使??
发表于 2020-2-28 09:16 | 显示全部楼层
Ukword是什么命令?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-27 01:50 , Processed in 0.241175 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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