基于VBA的Autocad中实现参数化标准零件的绘图

来源 :科技致富向导 | 被引量 : 0次 | 上传用户:jj1385173
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘要】探讨了在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
   .Fields("b") = txtb.Text
   .Update
  End With
  Exit Sub
  ……
  通过创建数据库,可以调用出相应型号的标准件图,将不同的标准件组合在一起就可以得到需要的组合零件图。
  1.2用VBA编写程序绘图
  用VBA语言绘制零件图时,需要确定画图的基准位,即定位基点,并以此作为参考点绘制整个零件图。通常基点的输入通过以下命令实现,即
  Dim ptbase As Variant
  ptbase = ThisDrawing.Utility.GetPoint(, "输入起点:")
  绘制图形需要用到函数调用,可以在模块中建立绘制图形的函数。在绘制标准件图时,需要根据参考基点来定义标准件不同部位点的坐标。当标准件呈现对称结构时,可以只绘制出对称轴的一边,另一边通过命令mirror进行镜像实现,这样可以很快地画出对称部分的图形。在二维中,定义镜像需要的两个坐标端点如下所示:Dim mirrorObj1(0 To 2) As Double,Dim mirrorObj2(0 To 2) As Double。
  根据开槽圆柱头螺钉的特点,画图时需要分成两种情况:无螺纹部分杆径约等于中径, 无螺纹部分杆径等于螺纹大径,因此在模块中需要定义两个绘图函数,讨论两种情况,即l>b和l  Public Sub DrawLD1(d1 As Double, n1 As Double, t1 As Double, dk1 As Double, k1 As Double, b1 As Double, l1 As Double)
  ……
  Public Sub DrawLD2(d2 As Double, n2 As Double, t2 As Double, dk2 As Double, k2 As Double, b2 As Double, l2 As Double)
  ……
  在螺钉的主函数中,通过Call DrawLD1, Call DrawLD2语句调用在模块中定义的螺钉函数绘图。
  1.3运行程序及输出结果
  运行程序,在弹出的对话框中输入需要螺钉规格的代号,以及在文本框中输入合理的参数值l,点击确定按扭,回到Autocad界面,用鼠标点击绘图基点,此时一个标准件就绘制成功。根据实际情况,可能出现两种绘图效果:
  当l>b时,运行结果如图3所示
  图3
  当l  图4
  根据此思想可以绘制其他的标准件,用到的关键技术是标准件数据库的创建与参数输入的连接。
  2.结论
  利用AutocadVBA 技术开发出的标准件的参数化绘制程序, 以实现参数化标准零件的绘图。在绘制大型零件图、装配图时利用参数化设计思想可以简化制图的复杂性, 这样极大地缩短了设计周期,提高了设计效率,改善了设计质量,减少人工查表和计算的工作量,也减少人为的错误,用户可以按照自己的设计需求调用零件图。因此在Autocad中利用VBA以及结合数据库创建进行参数化标准件的绘图开发,仍然在机械领域中占有非常重要的地位。通过这样的方法同样可以开发其他产品的设计与绘图系统,以满足设计着的不同需求。■
  
  【参考文献】
  [1]任玉伟.基于VBA 的AutoCAD 二次开发[J].科技情报开发与经济,2008,18(33):140-141.
  [2]吴海锋.AutoCAD VBA 在工程制图中的应用[J].交通科技与经济,2009,2:36-38.
其他文献
本文通过对荣华二采区10
新课标明确提出:学生是学习的主体,教师是学习活动的组织者、引领者和亲密的伙伴。这就要求教师从传统角色中走出来,改变旧有的师生关系模式,以全新的角色定位从事全新的教育事业。根據小学思想品德课的教学实践,我们大体可以归纳出在探究式学习中教师角色的几点表现。    一、教师是提示者    小学思品课的教材中有很多内容值得教师和学生一起进行探究式学习,即发现问题、提出问题、解决问题。这样的学习方式可以促进
和谐的班级气氛,是学生生动活泼和主动地进行学习的前提之一,也是学生获得愉快的情感体验的重要因素。运用情感、关爱、共同目标来营造和谐的班级氛围,使学生在生活、学习中获得
认知冲突情境法属于情境式教学模式的变式。这一教学方法,是指教师根据学生原有的知识和能力水平,通过创设认知冲突情境,引起学生由于新旧知识和经验相矛盾而产生“认知不平衡”,從而激发学生化解认知冲突的内驱力,引导学生自主构建新的认知体系,实现学习能力的螺旋式提高。    一、提前诊断认知冲突,思考可预设的认知冲突的最佳呈现方式    在《高中政治新课程标准》中明确指出:“本课程要立足于学生现实的生活经验
本文通过对荣华二采区10
现代手段在高中语文教学中能够发挥积极的作用,主要可以在激发学生语文学习兴趣、丰富语文课堂教学信息、营造浓厚教学情感意境以及拓展语文自主学习空间等方面为教学活动提
师生间的和谐互动,和谐教育环境的形成,有利于教师对幼儿的教育开发,能增强民主氛围,使幼儿的发散思维和创新精神得到培养。创设和谐的育人环境,是开展幼儿园教育之本。  一、和
一、探究主题的引入    课伊始,我左手拿石头,右手拿鸡蛋,并做好准备拿鸡蛋碰石头的动作,问:“会怎样?”学生说:“当然鸡蛋破呀!”  于是我边拿着鸡蛋去碰石头边说:“鸡蛋碰石头,不自量力。”  学生会意地笑了。  根据这实验我先复习“牛顿第三定律”(分析鸡蛋和石头受到的相互作用力大小相等)。接着我问:“如果鸡蛋碰鸡蛋,大家想想看,是哪个破呀?下面有哪位同学愿意上台来试一试。”学生纷纷举手。  本
本文通过对荣华二采区10
根据新课程标准中内容的明确提出,“语文课程作为人类交际工具的重要学科之一,人类文化进步中不可或缺的重要部分,是能够真正的帮助和培养新一代人是发挥着重要作用的,因此,