二维CAD CAD > CAD技巧
+

AutoCAD VBA二次开发(4)

2011/12/6    作者:未知    来源:网络文摘    阅读:6222

 应用VBA程序绘制样条曲线的方法为:AddSpline(PointsArray, StartTangent, EndTangent),其中,PointsArray为样条曲线(渐开线)拟合点的3维坐标组成的列表(即数组,必须为3的倍数),StartTangentEndTangent为样条曲线的起点和终点切向向量(必需为3元素列表,切向必需与曲线的走向一致)[8]。起点的切向竖直向上[7]181-183,可取(0, 1, 0);根据式(2)可知终点的切向为AutoCAD_VBA二次开发

可根据精度要求将所绘渐开线的展角上限AutoCAD_VBA二次开发等分为J个区间(程序中取J=10),应用ForNext循环计算拟合点的坐标。首先按下式计算展角:

AutoCAD_VBA二次开发AutoCAD_VBA二次开发 (j=0, 1, 2, , J)                                    (3)

再用式(1)计算点K的坐标(xKj, yKj)

AutoCAD_VBA二次开发

18  绘制渐开线的窗体

绘制渐开线及基圆的窗体如图18所示,程序如下:

Private Sub cmdOK_Click()

  ThisDrawing.Application.Documents.Add

  pi = 4 * Atn(1)                   ’ 定义常数π

  Dim rb As Double                ’ 定义基圆半径

  Dim theta0 As Double             ’ 定义渐开线展角

  Dim InvPoint(0 To 32) As Double    ’ 定义拟合点坐标

  Dim SPtan(0 To 2) As Double       ’ 定义起点切线方向

  Dim EPtan(0 To 2) As Double       ’ 定义终点切线方向

  Dim InvObj As AcadSpline         ’ 定义Spline对象

  rb = txtRb.Text

  theta0 = txtTheta0.Text * pi / 180     ’ 将角度转换为弧度

  delta_theta = theta0 / 10

  For j = 0 To 10

     theta = j * delta_theta

     InvPoint(j * 3) = rb * (Sin(theta) - theta * Cos(theta))

     InvPoint(j * 3 + 1) = rb * (Cos(theta) + theta * Sin(theta))

     InvPoint(j * 3 + 2) = 0

  Next j

  SPtan(0) = 0: SPtan(1) = 1: SPtan(2) = 0

  EPtan(0) = 1: EPtan(1) = 1 / Tan(theta0): EPtan(2) = 0

  ’ 设置Spline对象

  Set InvObj = ThisDrawing.ModelSpace.AddSpline(InvPoint, SPtan, EPtan)

 

  ’ 绘制基圆

  Dim CirObj As AcadCircle       ’ 定义Circle对象

  Dim CenPoint(0 To 2) As Double  ’ 定义圆心坐标

  CenPoint(0) = 0: CenPoint(1) = 0: CenPoint(2) = 0

  ’ 设置Circle对象

  Set CirObj = ThisDrawing.ModelSpace.AddCircle(CenPoint, rb)

  ThisDrawing.SaveAs (“D:\Draw_Inv.dwg”)

End Sub 

 

参考文献

 

[1] 宋宪一. 计算机辅助工程绘图[M]. 北京: 机械工业出版社, 2002.

[2] 姜勇. AutoCAD中文版机械制图基础培训教程[M]. 北京: 人民邮电出版社, 2005.

[3] 谢泽学, 吴京霞, 谢婧. AutoCAD2004简明教程[M]. 北京: 科学出版社, 2006.

[4] 刘力, 王冰. 机械制图[M]. 北京: 高等教育出版社, 2000.

[5] 刘小年, 刘振魁. 机械制图[M]. 北京: 高等教育出版社, 2000.

[6] 李凤华. AutoCAD 2002/2000 VBA开发指南[M]. 北京: 清华大学出版社, 2001.

[7] 孙桓, 傅则绍. 机械原理[M]. 4. 北京: 高等教育出版社, 1993.

[8] 车林仙, 何兵. 基于AutoCAD的摆线型转子泵实体参数化造型[J]. 现代制造工程, 2005(8): 94-96.


[1] VBAVisual Basic for Application的缩写。AutoCAD中的VBA是指必须依赖于已有的AutoCAD应用程序才能运行的Visual Basic程序。

[2] 宏是一个可执行的应用子程序,每个VBA工程至少包含一个宏。

[3] IDEIntegrated development environment的缩写,即集成开发环境。

  • 相关文章
  • 热门文章
免责申明:天天CAD教程网旨在相互学习交流,是一个完全免费的网站,部分原创作品,欢迎转载,部分内容来自互联网,如果侵犯了您的权利请尽快通知我们!邮箱:qm198794@gmail.com天天CAD教程网湘ICP备17006802号
【回到顶部】