找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3795|回复: 27

[原创]:新写了一个增强的图案填充程序,提高边界搜索的成功率

[复制链接]
发表于 2003-4-10 23:26:18 | 显示全部楼层 |阅读模式

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

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

×
Designed for AutoCAD 2000/2000i/2002/2004
不支持AutoCAD R14

首先,说明一点,只有在使用AutoCAD标准填充命令找不到边界的时候再使用这个程序。这个程序效率是比较低的。

这个程序对图形中的边界处理了一下,有几点说明:
1. 边界可能只是视觉上正确。不是很精确的。
2. 只能生成非关联填充,并且也会导致图中原有的填充丢失关联性
3. 只能一定程度地提高成功率

加载方法:
命令:appload
选附件中的qfhatch.vlx加载之

加载后,新增3个AutoCAD命令:
ConvertToPline  ……………… 用折线pline拟合曲线
QFHATCH  ……………………增强Hatch填充命令
QFBOUNDARY  ………………增强Boundary生成边界命令
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-4-11 08:50:59 | 显示全部楼层
与标准AutoCAD命令Bhatch的比较演示:(GIF动画)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-4-11 14:15:45 | 显示全部楼层
以前我在填充复杂图形时,以曲线的拐点把填充区域分割一下并且每每有效的!
有了你这个程序后就更方便了!
我想知道用qfhatch的时候那个允许偏离值的有什么含义,住哪偏移,毕竟,hatch与面积统计是有关联的!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-4-11 21:39:13 | 显示全部楼层
qfhatch偏离值的含义与qfboundary中偏离值的含义是一样的。
用qfboundary生成一下边界,放大DWG图形看看与原来的边界有什么不同即知。

一般来说,默认值是根据屏幕显示计算出来的,满足大部分要求。这个值设得太低,即要求很高的精度的话计算速度会很慢。偏移方向不定,视曲线的拐向。一句话,就是以折线代替曲线提高计算成功率。

如果愿意的话,可以用converttopline命令直接转化曲线,这样就无需使用qfhatch与qfboundary,直接用Bhatch或boundary命令即可。这也是为什么提供convertToPline这个命令的原因。

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

使用道具 举报

发表于 2003-4-11 22:16:04 | 显示全部楼层
还是请qf谈谈解决问题的思路,我想对大家更有帮助。
趁此东风,我建议大家总结归纳下填充不成功的原因,便于开拓思路,完善程序。
大家如果有填充不成功的例子也可发些代表性的上来,众弟兄一起会诊。
填充不成功的最大原因是不完全闭合,秋枫你的程序对这个问题是如何解决的?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-4-11 22:25:22 | 显示全部楼层
我前面说得比较清楚了。我注意到复杂曲线的填充成功率很低。即使是闭合的。
比如,pline线中有圆弧段,特别是连续多个弧段
所以,这个程序的思路是这样的:
模拟所有的复杂曲线(arc, circle, spline, pline)用折线模拟,填充完后再恢复现场
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-4-11 23:15:12 | 显示全部楼层
秋枫 说:
我注意到复杂曲线的填充成功率很低。即使是闭合的。
江南.云天 说:
分析到什么了么?
秋枫 说:
所以,这个程序的思路是这样的:模拟所有的复杂曲线
arc, circle, spline, pline用折线模拟,填充完后再恢复现场
江南.云天 说:

秋枫 说:
所以效率低,而且不处理图块
江南.云天 说:
慢,是么
江南.云天 说:
略过图块?
秋枫 说:
是的
秋枫 说:
处理图块就更慢了。
江南.云天 说:
我以前用r14,r2002的时候,发现2002填充成功率比14高,有的在14下不能填充,在2002下可以
但是还是有很多不能的
秋枫 说:
我是在画图时碰到,才起意写这个程序的。:
江南.云天 说:
对了,你的程序对不完全闭合区域的情况做了什么处理了么?能解决么?
秋枫 说:
这个没有处理。
江南.云天 说:
我以前写过一个,对不完全闭合进行处理的,叫模糊boundary.不过也是略过图块
秋枫 说:
思路是什么?
江南.云天 说:
已经发在程序库了
江南.云天 说:
在线段终点以一定的范围搜索另外的线条端点
江南.云天 说:
然后联线
秋枫 说:
这个写程序麻烦
秋枫 说:
可以用autocad2002的命令pedit
江南.云天 说:
但是要选啊
秋枫 说:
模糊距离join
江南.云天 说:
要手动选
秋枫 说:
在程序中选
秋枫 说:
自己写算法太麻烦了。
江南.云天 说:
呵呵
江南.云天 说:
pe有个缺点,就是破坏原来的线
秋枫 说:
我是用entdel删除原来的线的
秋枫 说:
恢复现场的时候再用entdel恢复。
江南.云天 说:
有时闭合区域是不同层不同性质的线,如住宅,道路边,要是把他们pe了,就不好了
秋枫 说:
没关系
江南.云天 说:
有时某段边界本身是一个闭合线,这时用pe也不灵光
秋枫 说:
我的意思是自己描一遍
秋枫 说:
对自己创建的物体pe
江南.云天 说:
只有先拷贝一份,处理完后在删除
秋枫 说:
对。
江南.云天 说:
还有一个,
用cad转到max时,有自交角的闭合曲线不能正确拉伸,在cad中extrude也不行,你的程序偏移一定程度上可以解决这个问题
江南.云天 说:
但是
江南.云天 说:
最好加个判定,偏移生成后的是否还有自交角
秋枫 说:
这个比较困难。
江南.云天 说:
ConvertToPline ……………… 用折线pline拟合曲线
QFHATCH ……………………增强Hatch填充命令
QFBOUNDARY ………………增强Boundary生成边界命令
江南.云天 说:
后两个程序是不是在第一个程序的基础上集成调用了bhatch,和bo?
秋枫 说:
是的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-4-11 23:19:02 | 显示全部楼层
各位可以用这个文件来试试(2002格式)。

至今我还是搞不清楚为什么明明是闭合的区域bhatch命令就是填不上。
至少,我用QFHatch可以填充成功了。呵呵。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2003-4-12 21:15:22 | 显示全部楼层
抱歉了,借借宝地,问一个小小的问题,可用hatch命令填充的区域,如何计算它的面积??
谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-4-12 22:29:43 | 显示全部楼层
最初由 kukukuku 发布
[B]抱歉了,借借宝地,问一个小小的问题,可用hatch命令填充的区域,如何计算它的面积??
谢谢! [/B]


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

使用道具 举报

发表于 2003-4-26 15:59:04 | 显示全部楼层
最初由 kukukuku 发布
[B]抱歉了,借借宝地,问一个小小的问题,可用hatch命令填充的区域,如何计算它的面积??
谢谢! [/B]

很多方法啦!
第一,晓东工具!
第二,有一个很小的工具可以快速显示
http://www.xdcad.net/forum/showt ... d=241691#post241691
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-6-8 16:53:51 | 显示全部楼层
我也问一个问题,怎么样在cad启动的时候自动加载qfhatch.vlx,谢谢。。。。。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-6-9 16:34:50 | 显示全部楼层
请问Quelea :你这个工具怎样编辑,这三个命令太长了,我想把它改成缩写。(它们还真是好用)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-6-9 19:33:42 | 显示全部楼层
在PGP里面加入命令和简写就可以了啊。。。。。。。
哪位大侠解决我的问题??
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 20:19 , Processed in 0.516281 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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