前两天介绍了填充图案和比例相关的一些问题和技巧,今天再给大家介绍一下填充另外一个要素:边界相关的问题和操作技巧。
边界规定了填充的范围,CAD提供了多种方式来定义填充边界,边界线的形状和复杂程度千差万别,而且有些边界CAD会提示我们无法创建填充,下面就将填充边界设置的相关技巧和问题简单总结一下。
一、定义填充边界的方式
根据构成填充边界的图形不同,我么可以采用不同的方式来定义边界,在CAD定义边界方式有下面三种:
1、选择对象
如果填充的边界是一个完整的封闭图形,例如圆、椭圆、矩形、封闭多段线以及样条线时,可以直接选择边界对象来创建填充。
虽然我们通常选择封闭的边界线进行填充,其实CAD是可以支持选择不封闭的边界线填充的,只是选择这类边界填充的时候,填充图案都有可能显示很奇怪,如下图所示。
2、拾取点
如果填充区域是由多个图形组成的,可以使用拾取点的方式。在填充区域中拾取一个点的时候,CAD软件会向外搜索一个封闭的填充区域,同时会向内搜索封闭区域(孤岛),然后根据孤岛检测设置来确定如何生成填充。
上面的截图只是高版本CAD填充预览的效果,真正填充时还会继续向孤岛内搜索封闭区域,如果孤岛检测采用普通方式,填充效果如下图所示。
无论是选择对象还是拾取点,都可以选择多个独立的区域进行填充,默认状态下,一次创建的填充就是一个整体,当然也可以设置:创建独立的图案填充,让每个区域都是一个单独的填充对象。
CAD填充对话框中”创建独立的图案填充”是什么意思?
3、直接绘制边界
使用填充的命令行方式可以直接绘制填充边界。在填充命令或快捷键前输入一个横杠,如-H,就可以调用填充的命令行模式,其中有一个选项:绘制边界(W),输入W后就可以像画多段线一样自己绘制一条边界线,如下图所示。
关于选择对象、拾取点或创建无边界的填充的详细介绍可以看之前发布的文章:
CAD图案填充拾取点和选择对象的有什么区别?
在CAD中怎么创建无边界的图案填充
1、调整关联的边界线
无论采用选择对象还是拾取点的芳芳是,填充默认都是与边界关联的,也就是在调整边界线的时候填充会自动跟随变化,如下图所示。
2、直接调整填充的夹点
在CAD低版本只能通过关联边界来调整填充的边界,如果填充没有关联边界时,必须双击填充进入填充对话框重新生成边界。到了高版本后,不仅可以直接在右键菜单中选择生成边界,就算不生成边界,也可以通过填充的夹点来调整填充的边界,如下图所示。
3、利用线来修剪填充
填充也可以像普通的线性图形一样被修剪TR,如下图所示。
三、什么是边界集
如果你用的是CAD低版本,估计你在拾取点进行填充的时候经常会看到下面的提示:正在选择所有可见对象,有时还会提示我们对象过多是否继续。某些版本还会弹出对话框,例如AUTOCAD 2007会弹出一个对话框提示已经选定对象超过10000个,是否继续,如下图所示。
这是什么意思呢?
这就是告诉我们当前视图中所有的图形都会参与填充计算,当对象很多时填充边界的搜索计算很复杂,可能会需要较长的时间。
到高版本CAD优化了填充边界的搜索,性能提升了,不会出现上图所示的提示对话框或命令行提示。但CAD要处理计算的仍然是视口内的所有对象。
CAD计算填充边界的时候之所以要计算当前视图内所有对象,这就是由于边界集的默认设置是“当前视口”。
如果在CAD中直接拾取点时感觉比较慢或低版本弹出相关提示对话框时有两种处理方法:
1、放大视图,减少当前视图中显示的图形数量,这样就减少了参与计算的图形数量。
2、单击“边界集”中的新建按钮,将围成填充区域的图形对象框选出来,建立一个更小的边界集,只让少数对象来参与计算。多框选几个图形没有关系,肯定要比整个视图内的图形要少得多。
在低版本CAD中合理定义边界集将可以极大提高复杂图形中的填充速度,在高版本有时也可以用。
四、为什么有些边界提示错误
在填充的时候经常会遇到拾取点后,CAD提示无法填充的情况,有时会明确告诉你边界不封闭,我们就需要去找什么地方有间隙,有时情况不明确,CAD会弹出一个提示对话框,对话框完全展开后会告诉我们无法填充可能的原因和解决办法,如下图所示。
高版本CAD会判断并在边界可能有问题的地方显示一个小红圈,我们可以检查这些区域是否封闭或存在细小的交叉现象。如果你用的是低版本CAD,就只能一点一点地去找问题在什么地方了。
如果出现类似现象,自己可以根据提示找找原因,详细讲解请参看之前的文章:CAD为什么不能填充?
如果填充区域是由多个相交的图形构成,而且图形边界比较复杂,而且还嵌套关系不明确,这种边界和孤岛的计算和处理很复杂的,即使是AUTOCAD最新版本也不能保证所有区域填充正确。对于一些复杂的交叉图形,不同CAD版本对孤岛的处理不尽相同。
上面是AUTOCAD 2018的处理结果,但其他CAD版本可能不是这样。实际绘图中这样的区域还是比较少见的,如果有类似的特殊情况,CAD内部在嵌套区域中填充效果并不是我们需要的,可以调整一下孤岛检测方式,比如使用外部方式,然后多次拾取需要填充的区域就好了。