shalei021647 发表于 2011-12-8 20:23:12

如何实现删除图框外的所有东西

本帖最后由 shalei021647 于 2011-12-11 00:59 编辑

求助各位高手,现我手中有一批图纸,要实现下面的功能,请问一下,如何用lisp语言编个命令啊
这个图纸中有若干个图框,这些图框可能是多段线,也可能是个块,图框外面有一些不需要的图形,如何实现,把图框外的这些不要的图形全部删掉啊。请高手帮帮忙啊,用lisp语言怎么写命令啊

【KAIXIN】 发表于 2011-12-9 08:09:02

我整个最简单的,删除未选取对象;删除未选取对象功能
(defun c:KK ()
(princ "\n选择要保留的范围 : ")
(setq    SS (ssget)
    ss1 (ssget "X")
)
(command "erase" ss1 "r" ss "")
)

shalei021647 发表于 2011-12-9 09:11:44

【KAIXIN】 发表于 2011-12-9 08:09 static/image/common/back.gif
我整个最简单的,删除未选取对象

兄台,我的目的是自动实现。不要进行手动选择。

【KAIXIN】 发表于 2011-12-9 09:23:12

shalei021647 发表于 2011-12-9 09:11 static/image/common/back.gif
兄台,我的目的是自动实现。不要进行手动选择。

期待自动的....

自贡黄明儒 发表于 2011-12-9 09:30:27

如果是多段线,你可以用下面的程序改一下,满足你的要求
http://bbs.mjtd.com/thread-90698-1-2.html

Gu_xl 发表于 2011-12-9 09:43:16

给你个思路:
1、将图形放到最大,打开所有图层
2、选择所有图框,并计算每个图框的坐标范围,
3、依次选择每个图框范围内的图形,添加到选择集SS
4、采用二楼的方法删除其他图形!
5、批处理可以编辑一个scr文件来批量处理!

shalei021647 发表于 2011-12-9 12:47:16

Gu_xl 发表于 2011-12-9 09:43 static/image/common/back.gif
给你个思路:
1、将图形放到最大,打开所有图层
2、选择所有图框,并计算每个图框的坐标范围,


感谢版主的回答,这个思路确实很好,可是我不大知道第二部跟第三部怎么做啊“2、选择所有图框,并计算每个图框的坐标范围,
3、依次选择每个图框范围内的图形,添加到选择集SS
”这个选择所有图框,并计算每个图框的坐标范围我不会哦,其实我也就是想知道那些批量打印程序是怎么识别图框的,最好用lisp语言编写的哦。因为我仅仅是刚看了一点点关于lisp的东西,很多函数听都没有听过,还望版主帮忙哦。

Andyhon 发表于 2011-12-9 13:17:07

请上传个图纸作样本呗

shalei021647 发表于 2011-12-9 20:37:34

Andyhon 发表于 2011-12-9 13:17 static/image/common/back.gif
请上传个图纸作样本呗

我需要的是通用性,不要求针对某个图纸,简单的说就是在一个dwg文件中有若干个四方形的图框,图框和图框内的东西是需要保留的,并且这些图框可能是块,可能是多段线,甚至可能就是四边封闭的直线。如果是块,可能块名也不完全相同。还有一点就是图框也可能并不全在一个层上面。这些图框之外有一些不需要的图形,首先一点肯定的是这些不需要的图形中没有封闭的四边形或是类似于四边形的块。也就是说如果能选择上这个dwg文件中的图框块或是图框多段线里面的内容,再反选一下,然后删除就可以了。问题就出在,如果实现能选中这些图框及其中的内容。

Andyhon 发表于 2011-12-9 21:02:01

...选中这些图框及其中的内容...

站内搜寻 与 acet-ent-geomextents 相关的讨论帖
页: [1] 2 3 4 5
查看完整版本: 如何实现删除图框外的所有东西