利用PowerPoint绘制机械图样的几个难点及解决办法

来源:转载

众所周知,机械制图项目里对各种图线有比较复杂的要求,比如对于细虚线和点划线来说,要求这些线与别的线相交时必须以长划相交,但是,如果用Powerpoint里自带的直线工具来画,设置成虚线或者点划线时,往往在需要长划相交的地方恰好赶上断开的位置,或者小点的位置,不合乎国家标准。另外有的图形比较复杂,难以利用Powerpoint自带的工具直接画出,本文对这些内容分别提出实现方法。

一、对于直线段,可以用若干实线代替一段虚线。

如下图所示,左边是直接用点划线工具画的,右边是由三条长实线和两条短直线组合形成的。显然,右边的符合标准。

有时候,长划还不能都一样长,得根据需要适当调整,以“避让”有的地方。如下图,因为图靠下位置有一条横向的粗实线,所以,轴线的最下一道长划必须长一点,这就更得需要用实线进行组合了。

注意,除非是上述这种情形,一般来说,一幅图内的点划线,长划和短点的长度应该分别相等,各段线之间的距离也应该一致。下图给出设置对齐和间距一致的选项。

二、圆弧(例如环形中间的圆,见下左图中的红线)点划线的画法可以用VBA代码。

这是因为,Powerpoint的圆弧工具默认情况下只能用鼠标调整起点和终点(下右图),精度比较差,无法满足机械制图所需的规范性的要求。

为了画出来好看,画之前需要计算一下长弧、短弧和空隙的张角大小。根据点划线圆的周长或者其半径,我们决定用8条长弧和8个短弧组合在一起,另外显然还有16段空隙。如果以长弧的张角为X,短弧张角为Y,空隙张角为Z,则有8X+8Y+16Z=360。显然这一方程不止一组解,任意给出其中两个变量的值,可以求出第三个变量的值。如果要画的点划线圆比较小,我们还可以少画一些,比如只画4条长弧,另外有4个短弧和8个空隙。反之,如果要画的点划线圆比较大,我们还可以多画一些,比如画12条长弧,另外有12个短弧和24个空隙。

对于本例,假设长弧的张角为27度,但是我们不能把长弧线从0度画到27度,因为这样会使长弧的端点在横点划线上(图中绿线),不符合机械制图的要求。所以正确的画法是,第一条长划线从-13.5度画到13.5度,然后过若干度再画一条短弧,再过若干度画27度长弧,以后依次类推。画长弧的代码如下:

Public Sub DrawA() Dim s As Shape Set s = ActiveWindow.View.Slide.Shapes.AddShape(msoShapeArc, _ 5*28.35, 8*28.35,7*28.35,7*28.35) s.Adjustments.Item(1) = 13.5 '这一句和下一句改变弧线的端点,相当于用鼠标调整前面图的黄色方框

s.Adjustments.Item(2) = -13.5

End Sub

 

以上代码重点是第三句(set s = ...),其中划线部分意思是在当前Powerpoint窗口的当前页面上,绘制图形。其参数含义为:

  • 第一个参数——绘制一条弧线;
  • 第二三个参数——圆心位置,乘以28.25是把厘米转化为磅;
  • 第四五个参数——弧线直径,转换为磅。
  • 第四五句的意思是设置弧线的起点、终点角度。

绘制短弧线代码类似,只需要把第四五两句代码的角度变化一下即可。

可以用循环语句画全部八条长弧和短弧,也可以绘制一长一短以后再多次复制并旋转弧线,形成所需效果。值得一提的是,这些代码只需要在设计幻灯片时运行一次即可删掉,不影响以后的放映。这是因为用VBA语句绘制的图线,本质上和鼠标直接绘制的图线是一样的,只是以易用性换取精确性而已。

如果需要经常绘制虚线和点划线的圆弧,可以将上面的代码封装起来,用窗体设置弧线的半径和端点角度,界面如下:

 

三、一些特殊图形可以用逻辑运算进行绘制。

上述图形无法用Powerpoint自带的工具绘制,但是从2010版开始,Powerpont绘图工具增加了逻辑运算功能,使我们能够绘制以上内容。

 为使用相关功能,在Powepoint2010及以上版本中,打开PowerPoint选项对话框:

在最左边找到“自定义功能区”(位置1),然后位置2如图,从位置3找到图中的工具,单击“添加”按钮添加到工具选项卡(位置4)的绘图工具中去,图中是添加到用户自定义的“组合”组(位置5)了。

先画一圆形和一长方形,注意,长方形下面的边应该与圆的横向半径对齐,并在左右方向完全压住圆形(左右各伸出多少无所谓)。

然后,用鼠标选择圆形和长方形,单击前面添加的“形状交点”按钮,即可生成主视图的下半部分。就本例而言,选择圆形和长方形的顺序充其量只关系到图形的颜色,对形状本身没有影响。

接下来,再添加一个小一点的半圆,与上一步得到的图形适当对好位置,全选后,单击前面添加的“形状联合”按钮,即可得到前面所示的主视图。

左视图的画法类似,先绘制半圆,再在上面添加一个长方形,然后先选择半圆,再选择长方形(顺序不能错误),单击前面添加的“形状剪除”按钮即可。下图即是剪除前和剪除后的效果。

如果是更高版本,有更复杂和全面的绘图逻辑操作,而且可以通过VBA语言进行,这里不再多说了。

四、绘制特殊曲线,也可以用VBA代码。

以圆锥被平面所截形成的几何体三视图为例,其截面本身和截面的视图都可能是线段、圆或椭圆、抛物线、双曲线(的一支)等形状。其中后两者无法利用Powerpoint本身的绘图工具实现。但是两者还是有区别的,抛物线可以用VBA代码精确地绘制,而双曲线不能,只能进行拟合。

对于如果抛物线的顶点坐标为(0,0),两个端点为(-x1,y1)、(x1,y1),则其绘制语句为:

 

Public Sub DrawB() Dim B( 1 to 4 , 1 to 2 ) As Single    B(1,1)= - x1 : B(1,2)= y1     B(2,1)= - x1/3 : B(2,2)= - y1/3    B(3,1)= x1/3 : B(3,2)= - y1/3    B(4,1)= x1 : B(4,2)= y1    ActiveWindow.View.Slide.Shapes.AddCurve BEnd Sub

 

注意画线部分和前面有所不同,另外这一句的参数是具有两个下标的数组,表示四个点的坐标,其中起点、终点坐标如前面所给的值(请注意代码中的四组坐标和所给条件的关系,而中间两点坐标的值不是抛物线上的点。由于所有抛物线都可以看作是同一条抛物线长宽方向经过不同比例缩放得到的,所以上面的各个坐标可以代入任意值,然后缩放到合适大小。

对于双曲线等更复杂的曲线来说,如果经过的一系列点坐标为(x0,y0)(x1,y1)(x2,y2)...(xn,yn),绘制语句为:

Public Sub DrawL()

Dim L( 1 to n , 1 to 2 ) As Single    '其中的n是具体数字

'对数组L()进行赋值,具体语句略

ActiveWindow.View.Slide.Shapes.AddPolyline L

End Sub

绘制完成后可以将其移动到合适的位置。

和前面所说的相同,如果需要经常制作这类曲线,或者是多边形(包括绘制实验仪器),也可以制作一个ppa工具,界面如图所示(具体代码略):

以上绘制的结果,在低版本PowerPoint上同样能正常观看。如果是更高版本,有更复杂和全面的绘图逻辑操作,而且可以通过VBA语言进行,这里不再多说了。

本文未涉及部分,如第三部分中的双点划线、俯视图中的鼓形等等,可以根据本文内容举一反三。

分享给朋友:
您可能感兴趣的文章:
随机阅读: