利用AutoCAD绘制圆柱面相贯线展开曲线研究论文_张力

(山西焦煤汾西矿业(集团)有限责任公司高阳煤矿)

摘要:本文首先推导出两圆柱面在空间中相交的相贯线展开方程,然后使用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

标签:;  ;  ;  ;  ;  ;  ;  ;  

利用AutoCAD绘制圆柱面相贯线展开曲线研究论文_张力
下载Doc文档

猜你喜欢