找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3608|回复: 19

[原创] 本程序可以直接删除图块中的图元对象(比REFEDIT快捷)

[复制链接]
发表于 2013-5-19 11:11:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
  1. ;;;***************************************************************************************************************/*****************************
  2. ;;;[功能]:本程序可以直接删除图块中的图元对象(比REFEDIT快捷)                                                      启动命令:DBE                 
  3. ;;;***************************************************************************************************************/*****************************
  4. (defun C:DBE (/ *ERROR* E)
  5.   (defun *error* (msg)
  6.     (if        (or (= msg "function cancelled") (= msg "quit/exit abort"))
  7.       (princ)
  8.       (progn
  9.         (princ msg)
  10.         (setq *error* nil)
  11.         ;结束Undo命令编组
  12.         (command "_.undo" "_E")
  13.       )
  14.     )
  15.   )
  16.     ;;;关闭command 函数运行时 AutoCAD 回显提示和输入
  17.   (setvar "cmdecho" 0)
  18.   ;结束Undo命令编组
  19.   (command "_.undo" "_BE")
  20.   (write-line "\n<<本程序可以直接删除图块中的图元对象(比REFEDIT快捷)(命令:DBE)>>  开发者:张占锋")
  21.   (while (setq ent (nentsel "\选择要删除的图元你对象:"))
  22.     (vla-delete (vlax-ename->vla-object (car ent)))
  23.     (if (= (length ent) 4)
  24.       (mapcar 'entupd (last ent))
  25.     )
  26.   )
  27.   ;结束Undo命令编组
  28.   (command "_.undo" "_E")
  29. )

评分

参与人数 3D豆 +7 收起 理由
ScmTools + 1 出题引导交流奖!
XDSoft + 4 出题引导交流奖!
牢固 + 2 源码分享奖

查看全部评分

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

已领礼包: 1632个

财富等级: 堆金积玉

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

使用道具 举报

发表于 2013-5-19 13:37:29 | 显示全部楼层
谢谢楼主的分享,非常好用,收藏备用了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2013-5-19 17:22:50 | 显示全部楼层
谢谢楼主分享,有个地方没看懂
    (if (= (length ent) 4)
      (mapcar 'entupd (last ent))
    )
为什么要加个这个判断,直接entupd不行吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1742个

财富等级: 堆金积玉

发表于 2013-5-19 18:19:04 | 显示全部楼层
Lisphk 发表于 2013-5-19 17:22
谢谢楼主分享,有个地方没看懂
    (if (= (length ent) 4)
      (mapcar 'entupd (last ent))

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

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2013-5-19 18:57:06 | 显示全部楼层
炫翔 发表于 2013-5-19 18:19
mapcar  是将表中每一个项都进行entupd

测试个块

  1. 命令: (setq e  (nentsel))

  2. 选择对象: (<图元名: 7ef98428> (2532.82 593.646 0.0) ((1.0 0.0 0.0) (0.0 1.0 0.0) (0.0
  3. 0.0 1.0) (2286.18 932.577 0.0)) (<图元名: 7ef98438>))

  4. 命令: (length e)
  5. 4

  6. 命令: (last e)
  7. (<图元名: 7ef98438>)
斑竹,程序里面的ENT 长度有不是4的时候吗?  另外,(last ent) 什么时候长度不是1,而需要MAPCAR 去处理?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1742个

财富等级: 堆金积玉

发表于 2013-5-19 19:11:06 | 显示全部楼层
Lisphk 发表于 2013-5-19 18:57
测试个块斑竹,程序里面的ENT 长度有不是4的时候吗?  另外,(last ent) 什么时候长度不是1,而需要MAPCA ...

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

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2013-5-19 19:38:05 | 显示全部楼层
炫翔 发表于 2013-5-19 19:11
上面我只是说明  mapcar 的用法,
这个直接entupd  是可以的

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

使用道具 举报

已领礼包: 1742个

财富等级: 堆金积玉

发表于 2013-5-19 20:26:16 | 显示全部楼层
Lisphk 发表于 2013-5-19 19:38
看到楼主的程序那样写,感觉是不是有什么我还不知道的东西。

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

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

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

使用道具 举报

已领礼包: 50个

财富等级: 招财进宝

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

已领礼包: 1742个

财富等级: 堆金积玉

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

使用道具 举报

发表于 2013-10-2 14:07:30 | 显示全部楼层
还行,有点小建议,似乎有些问题,如果要删除块内的嵌套块,就没法把块内嵌套块给这个一次删除,只能删除嵌套块内的一个图元,导致意想不到的情况出现,另外最还能框选。现在只能一次点一个单位图元。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 05:31 , Processed in 0.291312 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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