- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于VBAAutocad中实现参数化标准零件绘图
基于VBAAutocad中实现参数化标准零件绘图
【摘要】探讨了在Autocad的二次开发中,采用面向对象的VBA语言实现参数化标准零件绘图的原理,并通过实例绘制开槽圆柱头螺钉,说明VBA在Autocad中实现参数化标准零件绘图的重要性。
【关键词】VBA;参数化设计;二次开发;标准零件
0.前言
Autocad 在计算机辅助绘图和辅助设计领域中占有非常重要的地位,它具有开放式的体系结构,允许用户和开发者对其进行扩充和修改,以最大限度的满足用户的各种需求,而Autocad所支持的高级语言则成为最强有力的扩充手段。在Autocad二次开发的进程中主要用到Visual Lisp 语言和VBA 语言,而使用Visual Lisp语言绘图,代码量比较大,查找错误不方便,VBA 语言代码量相对较少, 查找错误很方便,语法简单、功能强大、易于掌握的特点,突出特点是它的可视化开发环境,具有强大的窗体创建功能,用户能够方便的进行可视化操作,人机界面设计简单美观[1]。因此在二次开发工作中,程序设计主要运用VBA语言进行图形绘制。
1.参数化绘图程序设计思想及设计过程
在机械设计绘图中,需要大量用到标准件,如果将相同的零件不停的重复绘制,会降低制图效率,因此块的产生很好的解决了这个问题。将不同的标准零件储存为块的形式,需要时直接调用块就可得到相应的标准件图。然而相同的标准件根据国家标准,具有不同的型号,如果将每个型号的零件图都储存为块的形式,会占用大量的系统资源,给绘图带来不便,因此引入参数化设计的标准零件图绘制。
本文利用VBA实现参数化标准零件开槽圆柱头螺钉的绘图设计,设计的主要流程如图1所示:
图1绘图流程图
通过查询机械设计手册,根据国标GB/T-65-2000可知,开槽圆柱头螺纹规格以及参数如表1所示[2]:
表1
1.1用户界面设计
在Autocad 中使用内嵌的VBA在Autocad应用程序环境中,通过下列的方法实现Autocad到VBA之间的切换:单击“工具”菜单“宏”子菜单中的“VBA 编辑器”命令进入编辑状态。
这部分主要包括两个内容,第一,用户窗体的创建;第二,程序中数据库的调用[1]。
首先,用户窗体的创建。参数的设置,需要根据绘制具体的图形分析,根据表1分析可以设计绘制螺纹的窗体如图2所示:
图2
当用户点击打开文件,弹出对话框,提示用户,输入需要的螺纹规格的型号,输入完毕,在窗体右侧的文本框中显示各个参数的对应值,这时通过确定的参数值,用户输入合理的l值,单击确定,此时一种规格的标准件创建完毕。
其次,数据库的调用。打开文件即是一个数据库调用过程,这是实现绘制图形的关键所在。 通过标准数据库创建与参数输入连接,可以把标准参数调用到程序绘图中。通过保存文件也可以添加没有的参数到数据库中,这样可以扩展数据库的记录范围。
VBA 作为一种内嵌式的开发工具,具备了完善的数据访问和管理功能,因此可以通过DAO(数据访问对象)、数据控件对Access数据库或其它的FoxPro、Betrieve等外部数据库进行访问和管理,还可以使用SQL 语句对数据库进行检索[2]。在螺钉的绘制中建立数据库“螺钉.mdb”表的方法如下:
Public luoding As String
Dim adoConAs Connection
Dim adoRs As Recordset
Dim entry As AcadLineType
Dim found As Boolean
‘打开数据库查询所需数据
……
Dim i As Integer
i = InputBox(请输入公称直径d的代号:M3-0;M4-1;M5-2;M6-3;M8-4;M10-5, 输入代号)
If i = -1 Then Exit Sub
If i = adoRs.RecordCount - 1 Then
adoRs.MoveFirst
adoRs.Move i
End If
ExchangeData False
End Sub
……
‘保存文件,记录数据库中没有的数据
On Error GoTo errHandle
With adoRs
.AddNew
.Fields(d) = txtd.Text
.Fields(n) = txtn.Text
.Fields(t) = txtt.Text
.Fields(dk) = txtdk.Text
.Fields(k) = txtk.Text
.
文档评论(0)