明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1277|回复: 11

求写一个删除指定图层的图元的程序,希望大家帮减轻负担。

  [复制链接]
发表于 2020-11-7 12:19 | 显示全部楼层 |阅读模式
20明经币
本帖最后由 ninja37 于 2020-11-8 20:31 编辑

求写一个删除指定图层的图元的程序,希望大家帮减轻负担。也不是想不劳而获,年纪也不小了,脑子也不太灵活 ,只能看懂最简单的程序。能用用就不错了。
1,要求输入命令,建立一个选择集,选择框选删除掉autocut这个图层的所有图元  。
2 ,不考虑当前图层   ,但是autocu图层一定要是打开的 ,最好是图层全开的  。否则看不到这个图层的图元也没法删除
3 ,最好是有判断的程序  如果当前图档没有autocut层 会生成一个.
4,要框选删除  而不是删除整个autocut层的图元,直接用erase命令的框选就可以了  原生的命令好用  不需要指定first point   ,secong poing之类的两个点。
这样的程序对大家来说很简单的  对我来说有难度  希望大家帮帮忙。

最佳答案

查看完整内容

(defun c:TT() (setvar "CMDECHO" 0) (setq old_lay (getvar "clayer")) (command "layer" "u" "*" "") (command "layer" "on" "*" "") (if (not (tblsearch "layer" "autocut")) (command "-layer" "m" "autocut" "c" "3" "" "")) (setvar "clayer" "0") (command "_.erase" (ssget ":s" '((8 . "autocut"))) "") (setvar "clayer" old_lay) (setvar "CMDECHO" 1) )
发表于 2020-11-7 12:19 | 显示全部楼层
本帖最后由 xj6019 于 2020-11-8 21:14 编辑

(defun c:TT()
(setvar "CMDECHO" 0)
(setq old_lay (getvar "clayer"))
  (command "layer" "u" "*" "")
  (command "layer" "on" "*" "")
  (if (not (tblsearch "layer" "autocut"))
    (command "-layer" "m" "autocut" "c" "3" "" ""))
(setvar "clayer" "0")
(command "_.erase" (ssget ":s"  '((8 . "autocut"))) "")
(setvar "clayer" old_lay)
(setvar "CMDECHO" 1)
)

点评

已经在用了,谢谢,  发表于 2020-11-10 11:41
回复

使用道具 举报

发表于 2020-11-8 21:04 | 显示全部楼层
(defun c:et (/ e)
  (if (not (tblsearch "layer" "autocut"))
    (entmake (list '(0 . "LAYER")
                   '(100 . "AcDbSymbolTableRecord")
                   '(100 . "AcDbLayerTableRecord")
                   '(70 . 0)
                   '(290 . 1)
                   (cons 2 "autocut")
             )
    )
  )
  (command "openalllayer")
  (setq e (ssget "" '((8 . "autocut"))))
  (command "erase" e "")
  (princ)
)

评分

参与人数 1明经币 +1 收起 理由
ninja37 + 1 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2020-11-8 21:08 | 显示全部楼层
直接发码就变成论坛表情了,试试这个

本帖子中包含更多资源

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

x

评分

参与人数 1明经币 +1 收起 理由
ninja37 + 1 赞一个!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2020-11-11 12:40 来自手机 | 显示全部楼层
xj6019 发表于 2020-11-8 21:08
(defun c:TT()
(setvar "CMDECHO" 0)
(setq old_lay (getvar "clayer"))

已经在用了,谢谢,程序很好用
回复

使用道具 举报

 楼主| 发表于 2020-11-11 12:44 来自手机 | 显示全部楼层
Yruz 发表于 2020-11-8 21:08
直接发码就变成论坛表情了,试试这个

你好 谢谢你帮忙写程序。这个程序能用,只是在cad2004下面会显示这几个字  e123a  openalllayer [未知命令openalllayer]
回复

使用道具 举报

发表于 2020-11-11 14:48 | 显示全部楼层
ninja37 发表于 2020-11-11 12:44
你好 谢谢你帮忙写程序。这个程序能用,只是在cad2004下面会显示这几个字  e123a  openalllayer [未知命 ...

04还没有 (command "openalllayer")
等效(command "layer" "on" "*" "")即可
回复

使用道具 举报

 楼主| 发表于 2020-11-12 17:55 | 显示全部楼层
Yruz 发表于 2020-11-11 14:48
04还没有 (command "openalllayer")
等效(command "layer" "on" "*" "")即可

谢谢 现在也可以用力  ,谢谢了
回复

使用道具 举报

发表于 2020-11-25 12:43 | 显示全部楼层
厉害厉害,,
回复

使用道具 举报

发表于 2022-3-28 20:22 | 显示全部楼层
留个脚印,看看学习一下。谢谢
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-5 10:14 , Processed in 0.391962 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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