乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 127|回复: 8

求助:删除图层的问题

[复制链接]

4

主题

12

帖子

2

银币

初来乍到

Rank: 1

铜币
28
发表于 2004-4-6 13:55:00 | 显示全部楼层 |阅读模式
我现在的图中有好多图层,分别是数字命名的,如:1002 ,1003,2001
如何用lisp写一段程序删除,以1,或者2开头的图层那??
谢谢
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-4-6 15:07:00 | 显示全部楼层
(defun c:test( / lay name)
         (setq lay nil)
         (setvar "cmdecho" 0)
         (while (setq lay (tblnext "layer" (not lay)))
                         (setq name (cdr (assoc 2 lay)))
                         (if (or (= (substr name 1 1) "1") (= (substr name 1 1) "2"))
                                         (command "_.PURGE" "la" name "n")
                         )
         )
         (princ)
)
回复

使用道具 举报

19

主题

62

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
138
发表于 2004-4-6 16:40:00 | 显示全部楼层
如果删除的层不是很多,命令行直接输入这个也可以
(command "erase"         (ssget "x" '((8 . "1003"))) "")
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-4-6 16:44:00 | 显示全部楼层

这样能删除图层???你用的是什么系统?我从R12用到了2005,还从来没有发现这样也可以
回复

使用道具 举报

4

主题

12

帖子

2

银币

初来乍到

Rank: 1

铜币
28
发表于 2004-4-6 16:47:00 | 显示全部楼层
谢谢了
No unreferenced layers found.
怎么包这个啊,好像图层也没有删除调那?
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-4-6 17:15:00 | 显示全部楼层
回复

使用道具 举报

19

主题

62

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
138
发表于 2004-4-6 17:30:00 | 显示全部楼层
哦,你是想光删图层啊?!
我以为是删除图层里的图了,呵呵~误会了
回复

使用道具 举报

14

主题

53

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
109
发表于 2004-4-7 00:26:00 | 显示全部楼层
存在对象的图层是不能直接用purge删除的.请试试以下程序:
(defun c:dellay(/ laye dellay_obj dellay_obj_len ans)
         (setvar "cmdecho" 0)
         (command "._layer" "t" 0 "on" 0 "u" 0 ""
                         "._clayer" 0)
         (setq laye (getstring "\n请输入需删除的层码:"))
         (if (= (tblsearch "layer" laye) nil) (progn (princ (strcat "\n本文件不存在  层,请确认!")) (exit)))
         (command "._layer" "t" laye "u" laye "")
         (setq dellay_obj (ssget "x" (list (cons 8 laye))))
         (if (/= dellay_obj nil)
                         (progn
                                         (setq dellay_obj_len (sslength dellay_obj))
                                         (princ (strcat "\n  层存在" (itoa dellay_obj_len) "个对象!"))
                                         (initget "Yes No")
                                         (setq ans (getkword "继续Yes / 取消No :"))
                                         (if (null ans) (setq ans "No"))
                                         (if (= ans "No") (exit))
                                         (command "._erase" "p" ""
                                                         "._purge" "la" laye "n"))
                         (command "._purge" "la" laye "n")
                         )
         (prompt (strcat "\n  层已删除!"))
         (prompt "\n程序版次: V1.0                         开发人员:wjm3                         完成日期:2004年03月01日")
         (prin1)
         )         ;;;end file
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-4-7 09:50:00 | 显示全部楼层
我想楼主既然想删掉这些层,肯定这些层里已经没有东西了,而且如楼上的,要一个一个地输入层名,那还要程序做什么?LAYER命令已经相当方便了
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-8-15 20:04 , Processed in 2.334018 second(s), 71 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表