一、使用自定义箭头块所遇问题

用户在使用AutoCAD绘制尺寸线时,经常使用自定义箭头块(BLOCK)来绘制尺寸线。例如,我们经常用一段首尾等宽的粗线条来代替AutoCAD本身提供的箭头与斜杠。(为了说明问题方便,本人在本文中将使用具体例子来说明问题。本文中对于含有PLINE组线的块,其块插入点均为PLINE组线中心点,如果不特殊说明,本文尺寸变量均使用AutoCAD R14初始变量)。

 

当进入AutoCAD R14后,绘制一段PLINE组线,如图1中自定义块图形。然后将图1中PLINE组线定义一个块,在进行块定义结束后,使用OOPS命令来恢复上述组线。现在我们绘制一第一尺寸延伸线起点坐标为(10,10),第二尺寸延伸线起点坐标为(25,10),尺寸线位置坐标为(25,15)的一水平尺寸线。按照设想应该出现图1中希望尺寸线的图形,但出现的却是图1中实际尺寸线的图形。与我们设想绘制的尺寸图形有两个明显的区别:

     

1.绘制的自定义箭头块尺寸线其尺寸线与两条尺寸延伸线之间有空隙。

    

2.该尺寸线中的自定义箭头块形状,即“组线”比我们定义的块,即图1中的自定义块形状明显放大。

     

而且当我们对尺寸线爆破后,使用LIST命令可以证明该尺寸线中尺寸线与两条尺寸延伸线之间空隙的距离恰好等于尺寸变量DIMASZ,尺寸线中自定义箭头块与原先定义的块其缩放比例因子也恰好等于DIMASZ。由于DIMASZ是尺寸线绘制中,控制箭头尺寸箭头大小的参数,从这一点来进行分析,自定义箭头块尺寸与箭头尺寸之间应存在着联系。所以在分析出现这种情况的原因之前,我们先来分析箭头尺寸构造原理。

     

二、箭头尺寸构造原理分析

   

现在我们在图2中绘制一个箭头尺寸,如图2中名为原始尺寸图的一箭头尺寸。当我们使用COPY命令对其拷贝,并选择合适的基准点与位移的第二点,拷贝至图2中原始尺寸分解示意图位置,并对拷贝后的尺寸线进行爆破,我们将爆破后的尺寸线中其箭头上移个3图形单位,如图2中的原始尺寸分解示意图。

 

从图2中原始尺寸分解示意图,我们发现尺寸线与两条尺寸延伸线之间也存在空隙,而且两端空隙距离也恰好等于DIMASZ。我们还可以多举几个例子,我们会发现自定义箭头块尺寸线中, 以及箭头尺寸线中其尺寸线与两条尺寸延伸线之间的空隙距离均等于DIMASZ。因此我们可以证明箭头与自定义箭头块尺寸线中,其尺寸线与两条尺寸延伸线之间的空隙是受DIMASZ控制的。

    

我们对图2中分解后的箭头尺寸的箭头用LIST命令查看后,发现箭头实际上是一个其长度与其末端宽度成3:1的SOLID区域。在图2中,箭头参数示意图可清楚地表明这一点。现在,我们可以清楚地分析出,箭头尺寸与自定义箭头块尺寸线之间区别只在于,箭头尺寸是用SOLID区域作为箭头,而自定义箭头块尺寸是用自定义块替换箭头放在相应的位置上。要注意的一点是,该自定义块在被作为箭头块插入时,在尺寸线与第一尺寸延伸线的交点作为插入点时,其插入角度为180°,而不是0,而在尺寸线与第二尺寸延伸线交点处,插入自定义块其插入角度为0°。本人推测在AutoCAD在绘制尺寸线中之所以存在空隙的原因,即AutoCAD没有将尺寸线延伸到两条尺寸延伸线,是因为这样做好处是可以减少计算量,从而可以加快计算机处理速度。

    

三、消除自定义箭头块尺寸线中尺寸线与两条尺寸延伸线之间的空隙

当我们知道自定义箭头块尺寸线中,其尺寸线与两条尺寸延伸线之间有空隙是由于AutoCAD在绘制自定义箭头块尺寸线时,只是将SOLID区域变成缩放比例因子为DIMASZ的自定义块,而其它方面完全相同而造成的。所以要消除尺寸线与两条尺寸延伸线之间的空隙需要自己在自定义块中绘制一段直线来弥补上述空隙,我们假设该直线的长度为L。由于尺寸线在将自定义块插入时,在尺寸线与第二尺寸延伸线其插入角度为0°,因此在绘制直线时,其起始点为自定义块中块的插入点,位移第二点为起始点相对坐标@-L,0位移第二点相对于起始点,相对坐标为>@-L,0 的长度为L的一段直线。根据空隙距离=DIMASZ>,而又由于空隙距离=DIMASZ*L,即DIMASZ=DIMASZ*L,所以,L=1,因此,我们需要绘制的直线长度为1。在这里,我们没有考虑该长度为1的直线与我们自定义的箭头块是否存在重叠情况,但从方便与实用的情况考虑,可不去考虑重叠或重叠多少情况。

 

在上文中,本文计算出弥补空隙的直线其长度L=1,因此所绘直线其起始点为自定义块插入点,位移第二点为起始点相对坐标@-1,0">位移第二点相对于起始点,相对坐标为@-1,0。在上文中已经说明自定义箭头块的插入角度问题,所以该块所绘制的直线需为图3中块1的形状,而不能为图3中块2的形状,否则所绘制的尺寸线为图3中尺寸2的形状。在这里我们可以发现一个巧妙而有趣的现象,由于旋转的缘故,在尺寸线与第二尺寸延伸线交点处,由于自定义箭头块其插入角度为0°,我们弥补空隙所绘直线弥补了空隙,而尺寸线与第一尺寸延伸线交点处,由于逆时针旋转180°,所以弥补空隙所绘的直线也恰好弥补了空隙,同时,由于我们定义的箭头块由于首尾宽度相同,又由于逆时针旋转角度为180°,所以在旋转后,我们定义的箭头块中的PLINE组线在尺寸线两端看上去像是“拷贝”一样,与我们所要求的“带有宽度的斜杠尺寸线”完全符合。由于这一种方法的巧妙性,所以我们可以方便地绘制出“带有宽度的斜杠尺寸”。为了说明尺寸线中的“宽斜杠”,即PLINE组线是由于旋转后与旋转前效果相同,而并非“拷贝”所致,我们将自定义箭头块定义为图3中块3的形状,从中我们可以清楚地看出我们特别加上的文字“A”与“B”在尺寸线与第一尺寸延伸线交点处,围绕插入点逆时针旋转了180°,而PLINE组线由于在逆时针旋转了180°后,其图形与未旋转角度时,图形完全一样。因此我们只需在定义块中加上一长度为1的直线,并可使我们绘制出带有宽度的“斜杠”尺寸线。

四、使用自定义箭头块绘制“宽斜杠”尺寸线

在上文中通过计算得出要消除自定义箭头块尺寸线中,尺寸线与两条尺寸延伸线之间的空隙,只需在自定义箭头块中绘制一段长度为1的直线即可,由于自定义块在被作为箭头块插入时,其缩放比例因子为DIMASZ,如果我们需要将自定义块按1:1比例绘制在尺寸线中,只需将DIMASZ设为1即可。在下文中本人将DIMASZ设为1。如果要绘制一单一尺寸线,而且,在绘制中,如果我们要绘制“DIMDLE”尺寸变量不为0的“宽斜杠”尺寸,只需在图4中将自定义块定义为图4中块1形状即可,其中块1中从PLINE组线中心点向右的直线其长度为尺寸

 

变量“DIMDLE”,使用尺寸命令即可绘制图4中尺寸1图形。如果在尺寸线中尺寸线末端与两条尺寸延伸线之间的距离不同,即左“DIMDLE”与右“DIMDLE”长度不同,在定义箭头块时,只需定义左右两个尺寸箭头块即可。

如图4中将左右两个箭头块定义为图4中块1与块2的形状即可。