(山西焦煤汾西矿业(集团)有限责任公司高阳煤矿)
摘要:本文首先推导出两圆柱面在空间中相交的相贯线展开方程,然后使用AutoCAD中VBA功能绘制高精度的相贯线展开曲线,将相贯线的展开方程与计算机绘图技术结合,探索一种快速获取高精度相贯线展开曲线的方法。
关键词:管道加工;相贯线展开;
一、相贯线方程的推导。
如图1所示,OO′是半径为r和半径为r′的两圆柱面轴线的公垂线段,其中OO′=e,r > r′+ e,z轴与大圆柱面的轴线重合,z′轴与小圆柱面的轴线重合,z轴与z′间的夹角为α,y轴y′轴经过OO′。
式中θ的含义为:从z′轴正向向负方向看,逆时针方向为正,起点为x′轴的正半轴。
假设空间中任意点A在坐标系O-xyz和坐标系O′-x′y′z′中的坐标分别为( x, y, z)和 (x′,y′,z′), 则它们之间的关系为:
式中θ的含义与(2)式中θ的含义相同。
二、使用AutoCad VBA功能自动获取相贯线展开曲线
AutoCAD 中内置的 VBA 工具能够使用户绘制较高精度的图纸,在对图纸精度有着较高要求的场合具有重要作用。下面介绍如何利用VBA工具绘制空间圆柱面相贯线展开曲线。
本实例使用AutoCad2004
第1步:在模型空间按快捷键Alt+F8,出现宏窗口
第2步:在宏名称中填写yangtiao,点“创建”、“确定”
第3步:在Sub yangtiao()和End Sub之间输入下面的代码。
第4步:回到模型空间,再次按Alt+F8,点击“运行”,根据脚本提示,输入相应数据即可获取相贯线的展开曲线。
通过以上脚本可以获取下面的实验结果
三、结论。
( 1)可以通过计算机软件编制圆柱面相贯线展开程序,快速、准确地得到相贯线展开曲线。
( 2) 展开软件得到结果迅速精确,可用于指导加工、下料等生产实践,提升工作效率,提高加工质量。
附代码:
Sub yangtiao()
Dim R As Double, rr As Double, e As Double, alfa As Double, PI As Double
PI = 3.1415926
'---------------------------输入圆柱直径,轴线距离等数据-------------------------------------------
inputError:
R = InputBox("大圆柱面直径", "初始数据输入", 100) / 2
rr = InputBox("小圆柱面直径", "初始数据输入", 80) / 2
e = InputBox("轴线距离", "初始数据输入", 0)
If R < rr + e Then
MsgBox "R应大于r r+ e !"
GoTo inputError
End If
'---------------------------输入两圆柱面轴线夹角-------------------------------------------
alfaError:
alfa = InputBox("轴线夹角(>0,<=90 )", "初始数据输入", 90)
If alfa > 90 Or alfa < 0 Then
MsgBox "角度输入错误,请输入大于0小于或等于90度的数值"
GoTo alfaError
End If
alfa = alfa / 180 * PI '角度值转换成弧度值
'---------------------------将相贯线分割成若干段小直线,循环画线-------------------------------------------
Dim StartPoint(0 To 2) As Double, EndPoint(0 To 2) As Double
Dim JingDu As Double '定义曲线绘制精度
JingDu = InputBox("请输入曲线精度(>0,<=0.1 )", "初始数据输入", 0.01)
For i = 0# To PI * 2 Step JingDu
EndPoint(0) = i * rr '获取横坐标
EndPoint(1) = (1 / Sin(alfa)) * (Sqr((R * R) - (rr * Sin(i) + e) ^ 2)) - (1 / Sin(alfa)) * rr * Cos(i) * Cos(alfa)
'获取纵坐标
If i > 0# Then ThisDrawing.ModelSpace.AddLine StartPoint, EndPoint '从第二个循环点开始绘制小线段。
StartPoint(0) = EndPoint(0) '保存坐标点横坐标
StartPoint(1) = EndPoint(1) '保存坐标点纵坐标
Next i
'---------------------------绘制最后一个点-------------------------------------------
i = PI * 2
EndPoint(0) = i * rr '获取横坐标
EndPoint(1) = (1 / Sin(alfa)) * (Sqr((R * R) - (rr * Sin(i) + e) ^ 2)) - (1 / Sin(alfa)) * rr * Cos(i) * Cos(alfa)
ThisDrawing.ModelSpace.AddLine StartPoint, EndPoint
ZoomAll '调整视图
MsgBox "相贯线绘制完成。" '绘制结束后提示。
End Sub
论文作者:张力
论文发表刊物:《电力设备》2016年第14期
论文发表时间:2016/10/14
标签:轴线论文; 曲线论文; 圆柱面论文; 数据论文; 横坐标论文; 圆柱论文; 夹角论文; 《电力设备》2016年第14期论文;