明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2541|回复: 9

[提问] 求一个选择特定图块的程序

[复制链接]
发表于 2014-4-18 23:08 | 显示全部楼层 |阅读模式
3明经币
最近发现一个很严重的问题:平时做块的时候,如果当前图层是不打印层,那么做出来的图块将无法打印出来!由于经常做块,而且当前图层为不打印层的时候比较多,很容易将块做成“不打印块”,我想要解决这个问题,除了平时小心之外,是不是能够做一个过滤选择器,选择出图中所有在不打印图层上的块,然后将它们亮显并统计个数?

最佳答案

查看完整内容

关键是选出来你想怎么办,是不要把它们改到可打印层
发表于 2014-4-18 23:08 | 显示全部楼层
本帖最后由 llsheng_73 于 2015-8-17 18:13 编辑

  1. (Defun STB(TAB / snl sll)
  2.   (SetQ snl '()sll (TblNext TAB T))
  3.   (While (SetQ snl (Cons (Cdr (Assoc 2 sll)) snl)sll (TblNext TAB nil)))snl)

  4. (defun c:tt(/ ss)
  5.   (sssetfirst'nil(setq ss(ssget"X"(list'(0 . "INSERT")(cons 8(apply 'strcat(vl-remove'nil(mapcar'(lambda(x)(if(equal(assoc 290(entget(TBLOBJNAME"layer"x)))'(290 . 0))(strcat","x)))(stb"layer")))))))));;把非打印层上的图块选中以便程序结束后进行自己想要的操作
  6. (sslength ss);;图块个数
  7.   )


关键是选出来你想怎么办,是不要把它们改到可打印层
回复

使用道具 举报

发表于 2014-4-18 23:13 来自手机 | 显示全部楼层
这个不难吧,找出不打印层,和该层上块的  码组,过滤即可
回复

使用道具 举报

 楼主| 发表于 2014-4-19 11:40 | 显示全部楼层
本帖最后由 theisland 于 2014-4-19 11:41 编辑

是的,是想改到打印层(图层名为“可打印”)上去,刚试了下,统计数量好像有点问题:结果总是1(不管有没有不打印块,不管不打印块有几个,结果都是1)

评分

参与人数 1明经币 +1 收起 理由
llsheng_73 + 1 是我不小心弄掉了一个空格,结果局部变量没.

查看全部评分

回复

使用道具 举报

发表于 2014-4-19 14:46 | 显示全部楼层
本帖最后由 llsheng_73 于 2014-4-19 15:04 编辑
theisland 发表于 2014-4-19 11:40
是的,是想改到打印层(图层名为“可打印”)上去,刚试了下,统计数量好像有点问题:结果总是1(不管 ...

我根本没有给你统计数量,只是把它们亮显了。。。
再说你要把他们改到可打印层去那关心它的个数做什么?
由于不明白你后续要进行什么样的操作,所以只是把它们亮显出来而没有进行任何处理
原来的改了一下,程序结束时会统计数量,并且非打印层上的图块处于被选中状态,可以进行人工处理
但人工处理它们有点麻烦的是人工不一定清楚哪些是可打印图层,因此还是应该让程序去修改它们
回复

使用道具 举报

 楼主| 发表于 2014-4-19 20:37 | 显示全部楼层
llsheng_73 发表于 2014-4-19 14:46
我根本没有给你统计数量,只是把它们亮显了。。。
再说你要把他们改到可打印层去那关心它的个数做什么? ...

你好!  CAD提示这个:错误: 参数太少
还有您说的“把非打印层上的图块选中以便程序结束后进行自己想要的操作”是不是需要我自己填程序呢?我不会这个,请您好人做到底啊,把选中的图块所在图层变到名为“可打印”的图层上就行了

评分

参与人数 1明经币 +1 收起 理由
llsheng_73 + 1 一直没注意到(defun c:tt(/ ss)这里少了个空.

查看全部评分

回复

使用道具 举报

发表于 2014-4-19 21:17 | 显示全部楼层
theisland 发表于 2014-4-19 20:37
你好!  CAD提示这个:错误: 参数太少
还有您说的“把非打印层上的图块选中以便程序结束后进行自己想要的 ...

那这样的话你根本不需要管它的个数,因此你可以把最后一句删掉

CAD提示这个:错误: 参数太少
是因为复制的时候,语句前边的空格等字符被弄成了别的,不是程序问题

也不需要再加语句了,你可以输入命令后,它会把非打印层上的图块选出来,跟你不用程序一个个去选择它们的结果是一样的,所以你可以自己把它们改到“可打印”层上去
回复

使用道具 举报

发表于 2014-4-19 22:03 | 显示全部楼层
本帖最后由 fire9527 于 2014-4-19 22:04 编辑
llsheng_73 发表于 2014-4-19 21:17
那这样的话你根本不需要管它的个数,因此你可以把最后一句删掉

CAD提示这个:错误: 参数太少

复制问题怎么解决呢?还在提示  错误: 参数太少

回复

使用道具 举报

发表于 2014-4-19 22:33 | 显示全部楼层
fire9527 发表于 2014-4-19 22:03
复制问题怎么解决呢?还在提示  错误: 参数太少

晕,不会把乱七八糟的去掉么
或者普通浏览再进行复制
回复

使用道具 举报

发表于 2014-4-20 22:35 | 显示全部楼层
谢谢分享,学习一下
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 23:09 , Processed in 0.644661 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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