找回密码
 立即注册

QQ登录

只需一步,快速开始

帖子
查看: 3323|回复: 0
打印 上一主题 下一主题
收起左侧

LISP代码

[复制链接]
跳转到指定楼层
楼主
ID:59583 发表于 2014-3-15 02:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
做了隐藏和显示两个命令.我编写的简单,功能不太全.你看着用吧复制下列代码,创建acad.lsp.放在在CAD安装目录第一层文件夹下,可自动加载啊:;在命令行输入该命令hidsel,然后选择图元,结果没选的被改到隐藏层(defun C:hidsel(/ all;所有图元      xs;非隐藏图元      yc;隐藏图元      n nam dat)  (setvar "CMDECHO" 0);关闭命令回显  (command "_layer" "n" "临时隐藏图层" "")(command "_layer" "off" "临时隐藏图层" "")  (setvar "CMDECHO" 1)  (setq all (ssget "x"));选择所有  (setq xs (ssget));选择非隐藏图元    (setq n -1 yc all);运算隐藏图元  (repeat (sslength xs)    (setq n (+ n 1))    (setq nam (ssname xs n));返回第N个图元的名称    (setq yc (ssdel nam yc))    )    (setq N -1);隐藏  (repeat (sslength yc)    (setq N (+ n 1))    (setq nam (ssname yc n));返回第N个图元的名称    (setq dat (entget nam));DAT储存第N个图元数据    (entmod (subst (cons 8 "临时隐藏图层") (Assoc 8 dat) dat));将yc集合隐藏    )  (setq all nil xs nil yc nil n nil nam nil dat nil);清除数据占用内存  (princ));显示所有图元(defun c:shoal(/ all n nam dat)  (setq all (ssget "x"));选择所有  (setq N -1);隐藏  (repeat (sslength all)    (setq N (+ n 1))    (setq nam (ssname all n));返回第N个图元的名称    (setq dat (entget nam));DAT储存第N个图元数据    (entmod (subst (cons 8 "0") (Assoc 8 dat) dat));将yc集合隐藏    )  (setvar "CMDECHO" 0)  (COMMAND "PURGE" "LA" "临时隐藏图层" "Y" "Y" "")  (setvar "CMDECHO" 1)  (setq all nil n nil nam nil dat nil);清除数据占用内存  (princ)  )
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

举报

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

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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