明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5806|回复: 12

[求助]如何用VBA删去CAD中的重复块

  [复制链接]
发表于 2007-11-12 14:37:00 | 显示全部楼层 |阅读模式
如何用VBA去掉CAD中重复的块,(条件:块名相同、插入点坐标相同、比例相同、旋转角度相同),有没有什么方法可以去掉呀,请大侠指教!先谢谢了!
发表于 2007-11-12 16:46:00 | 显示全部楼层

我觉得这个用VBA不好做,还是用LISP方便,因为用LISP可以比例两个图元的表,去掉图元名及图元句柄后,如果两个表还相等,证明它们在同一位置,这不仅是对块,对其它对象也一样。

 楼主| 发表于 2007-11-12 16:52:00 | 显示全部楼层
谢谢2楼, 但我不会Lisp
发表于 2007-11-12 17:55:00 | 显示全部楼层
选择所有块,取到块的(块名、插入点坐标、比例、旋转角度),逐一判断,相同的删除。
发表于 2007-11-12 18:56:00 | 显示全部楼层

不知道你是要自己用还是要做到程序里面去,如果要做到程序里面,用VBA,也只能像楼上说的那样每项做比较了,但如果只想自己用,我可以用LISP作一个,供你参考,而且,如果你只会VBA而不会LISP,有很多问题将很难解决,VBA与LISP各有各的长处,有的用LISP做很难,但用VBA却很轻松,但有的却是相反的。

发表于 2007-11-12 20:19:00 | 显示全部楼层
块名能相同吗???????????????
发表于 2007-11-13 08:11:00 | 显示全部楼层
怎么不能相同呀,一个块多插入几次,块名称肯定相同呀
 楼主| 发表于 2007-11-13 09:05:00 | 显示全部楼层

块的信息我已提取在附件中,就是在排序这个问题上怎么办才好呢

我的想法是先对名称排序--然后对X排序--再对Y进行排序……对角度排序

我是先将名称写入数组中,然后对其排序,并将数据库中的内容和排序后的组比较,想同的重新写入,但是当对X排序时,整个数据又全部重排了,这个问题怎么办呀

本帖子中包含更多资源

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

x
发表于 2007-11-14 11:56:00 | 显示全部楼层

不排序也行呀,直接取得每个块的信息,用循环嵌套,进行比较每个块信息,相同的就直接删除。

只不过运行的慢些

发表于 2007-11-16 10:18:00 | 显示全部楼层

将要比较的属性自定义成一个数据类型,

type Blkinfo

name as string

inspt(2) as double

Xscale as double

Yscale as double

Zscale as double

Rot as double

end type

用选择集循环块名选块参照,读取时写到上面的自定义数组中并比较

有一样的,就把当前读的块参照删除,,没有加入判断对列中

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

本版积分规则

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

GMT+8, 2024-11-26 12:27 , Processed in 0.175649 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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