基于AutoCAD平台下的机床夹具的压板和压块的设计软件开发

上传人:1888****888 文档编号:37091216 上传时间:2021-11-02 格式:DOC 页数:33 大小:1.06MB
收藏 版权申诉 举报 下载
基于AutoCAD平台下的机床夹具的压板和压块的设计软件开发_第1页
第1页 / 共33页
基于AutoCAD平台下的机床夹具的压板和压块的设计软件开发_第2页
第2页 / 共33页
基于AutoCAD平台下的机床夹具的压板和压块的设计软件开发_第3页
第3页 / 共33页
资源描述:

《基于AutoCAD平台下的机床夹具的压板和压块的设计软件开发》由会员分享,可在线阅读,更多相关《基于AutoCAD平台下的机床夹具的压板和压块的设计软件开发(33页珍藏版)》请在装配图网上搜索。

1、 摘要该设计是在 AutoCAD 环境下利用CAD内嵌式编程语言 VBA(Visual Basic for Application)完成对压块和压板的形状选择、种类选择、参数选择并达到自动绘图的目的,利用solidworks绘制3维图形,建立幻灯片库,建立数据库,从而对软件的二次开发应用有所了解。【关键词】AutoCAD VBA 压块 压板目录摘要11、 绪论31.1 前言31.2 课题意义42、 AutoCAD与VBA52.1 AutoCAD在零件绘图设计中的应用52.2 AutoCAD二次开发技术52.3 用 VBA 进行 AutoCAD 的二次开发62.3.1 VBA 开发机理62.3.

2、2 建立VBA工程文件82.3.3 VBA 编程示例83、压块和压板软件设计总体介绍113.1 本次课题中的设计任务113.2总体设计思路114、绘制零件三维图124.1 GBT217791机床夹具零件及部件移动弯压板零件图:124.2 GBT218091机床夹具零件及部件鞍形压板134.3 GBT218091机床夹具零件及部件U行压板154.4 GBT217891机床夹具零件及部件转动弯压板164.5 GBT217991机床夹具零件及部件移动宽头压板零件图:174.6 GBT218091机床夹具零件及部件直压板195、压块与压板软件的程序设计235.1 VBA窗体235.1.1 Usefor

3、m窗体代码及运行结果235.2 编制机床夹具零件及部件程序代码255.3 软件操作说明306 总结31参 考 文 献32致 谢33 1、 绪论机床夹具设计是制造系统的重要组成部分,传统的夹具设计方式已成为企业中产品快速上市的瓶颈,所以需要提高夹具设计的效率。计算机辅助设计与制造正是为了适应这一要求而产生的,在此背景下,开发了实用性强的 CAD系统。AutoCAD 以其强大的交互功能和图形处理能力而成为工程技术人员最为喜爱的绘图软件,但其本身计算功能不强,无法解决一些设计计算和数据 处理等问题。传统的计算机辅助机械设计通常是采用高级语言进行设计计算,将结果存储为标准结构的数据文件(如 *DXF)

4、,再由 AutoCAD 调用该文件形成图形,其编程和调用过程复杂而效率低下。值得庆幸的是,Autodesk从 AutoCAD14开始提供了更为有效的二次开发工具VBA(Visual Basic for Application),它是内嵌于AutoCAD中的完全面向对象体系结构的一种二次开发编程语言,与 VB有着几乎一样的开发环境和语法,具有功能强大和易于掌握的特点。它驻留在主程序内部,使其结构精简,故代码运行效率非常高。它的出现弥补了AutoCAD计算功能不足的缺陷,使开发机械 CAD一体化系统成为可能。本论文从资料查阅工程文件的建立程序编写撰写论文历时三个月,具体流程如下所示:1、查阅资料。

5、2、参考机床夹具文献资料,绘制零件三维图。3、在VBA IDE环境下编写软件设计程序代码。4、撰写论文,翻译。1.1 前言本设计选用的是 AutoCAD 2007 软件,并应用其内嵌式语言 VBA,它的优点有以下两个方面:一、与VB有着几乎相同的开发环境和语法,具备功能强大和易掌握的特点。二、在于它的for Application功能,即它的针对性非常强。它驻留在主程序的内部,使其结构简洁,且代码运行效率非常高。总之,VBA适用于专业和非专业的开发人员使用。VBA的代码是在VBA编辑器中输入,VBA的功能与VB所能实现的功能几乎一样。从语言结构上讲,VBA是VB的一个子集,语法结构是一样的,虽

6、然外观上 VBA的控件功能不如VB多,但VBA具有不断往其工具箱中添加各种外部控件的能力。从理论上讲,VBA能实现VB和 AutoCAD的功能。VBA与VB本质上的不同在于VB是一个独立的开发工具,而VBA必须依附于其它应用程序如:Office、AutoCAD等,它没有自己独立的工作环境和编译、连接系统,离开主应用程序,VBA将不复存在。正是由于VBA与主应用程序的这种关系,使得它与主应用程序之间的切换变得简单而高效,VBA中的代码完全是在过程内执行,但它与 AutoCAD完全共享内存空间所以执行速度比用C语言开发的应用程序还要快。同时由于它是的VB子集,其语言结构十分简洁,主程序可根据自己的

7、需要在嵌入时安排VBA侧重点。1.2 课题意义机械零部件的设计是一项非常耗时的工程计算机的应用大大提高设计速度,AutoCAD 正是工程技术人员利用计算机及专业知识对工程进行绘图、分析计算、设计的软件。但是CAD中没有通用件图库,为了解决这个问题,我这次的设计任务就是对CAD进行二次开发,建立一个通用件偏心轮和铰链支座的图库及应用程序,为使用者在绘制偏心轮时和铰链支座时,只需直接调用图库,根据参数选择所需偏心轮,即节省了时间,又提高了设计速度与质量。 2、 AutoCAD与VBA2.1 AutoCAD在零件绘图设计中的应用AutoCAD 是目前国内工程界应用最为广泛的绘图软件。它不仅具有强大的

8、绘图功能与图形编辑功能,而且界面友好直观,容易学习和使用。此外,AutoCAD还具有开放的体系结构,用户可以对其进行二次开发,以满足自己的特殊需求。 通常我们在绘制一张零件图时,都会用到图纸边框、标题栏和粗糙度,对于装配图还要标序号,建立并填写明细表。图纸边框、标题栏、序号、粗糙度以及明细表格式都遵循一定的绘图标准,因而它们的格式一旦被确定往往不会改变。而AutoCAD没有提供这些常规项目的使用菜单,所以在实际使用中,用户往往将这些内容做成块文件而保存起来,在需要的时候根据指定的格式用insea命令插入到图形中。这样虽然可提高绘图速度,但智能化程度不高,使用起来具有相当大的局限性。利用 Aut

9、oCADVBA二次开发功能,将这些块文件添加到 AutoCAD 窗口菜单中,使用时在窗口菜单中直接选取即可。这样既可提高绘图效率和智能化程度,又利于统一标准。2.2 AutoCAD二次开发技术所谓“二次开发”是指由熟悉产品设计,同时又掌握计算机应用技术的人员在某一CAD软件平台上围绕产品设计的具体要求而对CAD软件进行的应用开发AutoCAD虽然功能强大,但它毕竟是一种通用的软件,很难满足各行业的行业标准。然而,AutoCAD 所具有的开放式结构及其所提供的多种开发工具,使用户能够完个摆脱 AutoCAD 的限制,根据自己的需要对其进行二次开发,这也是 AutoCAD广受人们青睐的主要原因之一

10、。迄今为止,AutoCAD 已经相继推出了五代二次升发工具:1、 AutoLISP语言;2、ADS开发工具;3、Objector; 4、VBA 5、VisualLISP。组件化是现代开发软件系统的重要特征。在AutoCADR 14.01(R14中文版)中VBA(Microsoft Visual Basic Application)成为软件的标准安装组件。VBA提供了一个基于对象的编程环境,具有丰富的开发功能,能直接在AutoCAD 内部执行,开发者能够方便地替换和添加 AutoCAD 系统内部的模块。在VBA 中, AutoCAD 中的实体作为对象而存在,对这些实体的操作作为方法,编制处理过程

11、或宏命令。这一开发手段使得开发者能够进入到AutoCAD内部进行用户化处理。另外,VBA能够使得AutoCAD数据与其它VBA应用程序直接共享,如Microsoft Office系列软件。最重要的是VBA的加入,扩展了 AutoCAD 集成用户化I具的能力(集成了 AutoLISP, VisualLISP 和 ObjectARX API 等工具),为访问 AutoCAD 软件的多种技术框架提供了新的选择和新的开放机会,可以按所需求的工作方式进行应用程序的用户化,也可以从战略上考虑开发基于 AutoCAD 的应用程序。VBA开发 AutoCAD 的技术特点 : VBA是微软开发出来的应用程序共享

12、一种通用的自动化语言,它可以使常用的程序自动化,并可以创建自定义的解决方案。VBA被集成到 AutoCAD 中,VBA和AutoCAD中强大的ActiveX自动化对象模型的结合,代表了一种新型的定制 AutoCAD 的模式构架。通过VBA,我们可以操作 AutoCAD2007,控制ActiveX和其它一些应用程序,使之相互之间发生互易活动。 VBA工具有如下优点: VBA的对话框构件快速、高效,允许开发者快速地定制程序原型和得到设计信息的及时反馈,其工程可以单独存在,也可以嵌入在图形中,这给开发者在发行应用程序时以极大的灵活性;强化了 AutoCAD 与数据库的通讯能力。当然,正如VB与VC的

13、关系一样,VBA在系统开发等方面的功能不及ARX。但Autodesk公司对VBA的高度重视,充分说明VBA是除系统级开发工具以外,最好和最有前途的应用级开发工具,适用于专业和非专业的开发人员使用,具有十分广阔的应用前景。下面就是VBA作为 AutoCAD二次开发工具的主要功能: (1)VBA提供强大的窗体创建功能,为应用程序建立对话框及其它屏幕界面。 (2)可以创建自己的工具条。 (3)可以创建功能强大的模块级宏指令,宏名实质上就是模块的过程名。 (4)提供建立类模块的功能,这对开发大型工程非常有用,因此类可以提供重用组。 (5)具备完善的数据访问和管理能力,通过 ADO(ActiveX Da

14、ta 0bjects),可以对Access数据库或其它外部数据库(像 dBase,FOxPro等)实现访问和管理。此功能比直接使用 AutoCAD 的数据库管理系统要方便,且功能强大。2.3 用 VBA 进行 AutoCAD 的二次开发2.3.1 VBA 开发机理VBA 通过对主应用程序提供的 Activex 对象的引用,实现对主应用程序的开发。其过程如图2-1所示。 图 2-1 用 VBA开发应用程序的机理其中,ActiveX Object可以是AutoCAD ActiveX Object,也可以是ExcelActiveXObject,也可以是其它主应用程序提供的ActiveX Object

15、。 VBA通过相同的调用格式,对不同的主应用程序的ActiveX Object调用,可以开发出相应的应用程序。VBA是通过AutoCAD ActiveX Automation接口来建立和AutoCAD对象间的联系。ActiveX是建立在COM对象模型之上的一个标准通信协议,它允许对象之间通过一定的接口相互通信。 AutoCAD ActiveX使用户能够从AutoCAD的内部或外部以编程方式来操作 AutoCAD。它是通过将 AutoCAD 对象显示到“外部世界”来做到这一点的。这些对象被显示后,许多不同的编程语言和环境以及其它应用程序(例如Microsoft Word VBA或Excel VB

16、A)就可以访问它们。 AutoCAD对象是通过分层方式来组织的,应用程序对象为根对象。这种分层结构的视图被归结为对象模型。对象模型提供了用户访问下一层对象的途径。用户可直接通过用户定义变量引用对象。直接引用对象应包括对象 的层次。举一个最简单的例子,在VBA中要利用圆心和半径创建圆可以使用以下代码: Subdrawcirele() Dim ptl(2)As Double Dim radius As Double pd(0)=33 ptl(1)=73 ptl(2)=62 radius=46 调用addcircle方法绘制圆ThisDrawingModelSpaceaddcircle ptl,ra

17、dius End Sub ActiveX 自动化技术是微软建立的标准,是对象链接与嵌入(OLE. Object Linkand Embed)的进一步发展,它允许用户在Windows应用程序中通过暴露的对象控制另一个Windows应用程序。AutoCAD ActiveX技术提供了一种机制,可使编程者通过编程从AutoCAD的内部或外部进行操作控制。AutoCAD ActiveX 提供了一系列ActiveX Object供VBA从AutoCAD内部引用。这一系列ActiveX Object按一定层次组成一种对象结构,每一种ActiveX Object代表了 AutoCAD 中一个明确的功能,如画线

18、、画多段线、图块定义等。AutoCAD所提供的大多数功能,均以方法和属性的方式封装在 ActiveX Object中。作为面向对象编程语言中的一种,VBA可以方便地对这些方法和属性进行引用,从而达到对 AutoCAD 实现编程的目的。2.3.2 建立VBA工程文件在 AutoCAD 中,VBA程序以工程文件的形式存在,其程序扩展名为“.dvb”。由于VBA是VB的一个子集,所以两者的语法和程序的结构基本上是一样的。通常,VBA工程文件可以包含的元素有:对象、窗体、标准模块、类模块和引用。在窗体和标准模块内部包含一系列针对控件的过程、函数或宏。而宏是能够执行一定功能的VBA子过程,每一个VBA工

19、程中都至少包含一个宏。在标准模块内编辑的过程即为宏。VBA提供了可视化的集成开发环境 VBA IDE( VBA Intcgrated Development Environment),其界面与 Visual Basic 类似。通过在 AutoCAD 命令行输入 vbaide命令或选择“工具”菜单下“宏”子菜单中的“Visual Basic 编辑器”即可进入 VBA IDE 编程环境,如图2-2所示。图 2-2 VBA IDE 编程环境2.3.3 VBA 编程示例VBA 程序可以方便地调用 AutoCAD Activex 对象的各个属性和方法,下面的例子详细说明了 VBA 对 AutoCAD 的

20、二次开发方法,同时也说明了机床夹具零件及部件的设计软件中绘图所采用的一般方法。创建并编辑图元:图形对象(也称图元)是组成图形的可见对象(例如直线、圆、光栅图像等)。要创建这些图像,可以使用相应的 Add(Entityname)方法;要修改或查询这些对象,可以使用对象本身的方法和属性。每一个图元都为应用程序提供了执行大部分 AutoCAD 编辑命令(例如复制、删除、移动、镜像等)的方法,也包括一些用来设置和检索对象的扩展数据,亮显和更新对象,及检索对象边框的方法。图元不仅具有诸如 Layer、Linetype、Colr和Handle 之类的普通特性,还具有一些因对象类型不同而不同的特有特性,例如

21、 Center、Radius和Area 等。VBA 程序可以方便的发嗲用对象的这些属性、方法和事件亦事先图元的创建和编辑。下面的例子绘制了一条从(1,1,0)到(10,5,0)的直线、圆心在(15,15,0)半径为3的圆以及一条多段线,同时程序还将圆心位置重新修改为(17,17,0)。绘图结果如图2-3所示。图2-3 用VBA程序绘制图元对应的VBA 程序如下:Sub Example_AddElement() Dim lineObj As AcdLine Dim startPoint(0 To 2) As Double Dim endPoint(0 To 2) As Double定义直线的起点

22、和终点 startPoint(0) = 1#: startPoint(1) = 1#: startPoint(2) = 0# endPoint(0) = 10#: endPoint(1) = 5#: endPoint(2) = 0#在模型空间创建直线,并将直线对象保存在lineObj变量中SetlineObj = ThisDrawing.ModelSpace.AddLine(startPoint, endPoint)Dim cirObj As AcadCircle Dim currCenterPt(0 To 2) As Double Dim newCenterPt(0 To 2) As Dou

23、ble Dim radius As Double初始化圆心坐标和半径currCenterPt(0) = 15: currCenterPt(1) = 15: currCenterPt(2) = 0radius = 3在模型空间创建一个圆,并将其保存在变量circObj中Set circObj = ThisDrawing.ModelSpace.AddCircle(currCenterPt,radius)改变圆心坐标newCenterPt(0) = 17: newCenterPt(1) = 17: newCenterPt(2) = 0circObj.Center = newCentercircObj

24、.UpdateMsBox 圆心坐标为: & newCenterP(0) & , & newCenterPt(1) & , & newCenterPt(2) Dim plineObj As AcadLWPolyline Dim points(0 To 9) As Double初始化二维多线段的节点points(0) = 1: points(1) = 1points(2) = 1: points(3) = 5points(4) = 5: points(5) = 5points(6) = 10: points(7) = 8points(8) = 12: points(9) = 12在模型空间创建一条

25、多段线,并将其保存在变量plineObj中Set plineObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)ZoomAllEnd Sub3、压块和压板软件设计总体介绍3.1 本次课题中的设计任务针对毕业设计课题要求,具体应完成的工作为:利用AutoCAD或其它三维软件绘制机床夹具压块和压板。在AutoCAD的平台下,用VBA语言进行二次开发设计机床夹具压块和压板的软件。编写压块和压板软件设计说明书3.2总体设计思路本次设计我采用了十三个窗体:第一个界面显示软件进入界面,用来了解释软件大概内容;第二个界面即软件主界面用来选择压

26、块和压板型号,如:圆压块,弧形压块,移动弯压板,转动弯压板,移动宽头压板,转动宽头压板,平压板,U形压板,鞍形压板,支压板 窗体左边为幻灯片浏览区,用来浏览所选压块和压板的大致形状,从而直观地找到所要的压块和压板;选定圆压块后出现第三个窗体,此窗体有压块的参数,主参变化,其它参数也跟着变化,点击确定安扭,AutoCAD的Command命令行就会出现“请输入插入点:”字样,选好后,命令行又会出现“请选择X轴比例:”, “请选择Y轴比例:”,“请选择Z轴比例:”,“请选择插入角度:”,一一输完就完成了图型的插入。后面窗体的设计思路与第三个窗体大同小异,不在赘述。先将第二,第三窗体设计流程框图表示如

27、下: 图3-1 窗体流程图 4、绘制零件三维图4.1 GBT217791机床夹具零件及部件移动弯压板零件图: 图4-1-1 移动弯压板零件图主要参数如下表: 图4-1-2 移动弯压板准参数绘制三维图:图4-1-3移动弯压板三维图4.2 GBT218091机床夹具零件及部件鞍形压板零件图: 图4-2-1 鞍形压板零件图主要参数如下表:图4-2-2 鞍形压板标准参数绘制三维图: 图4-2-3 鞍形压板三维图4.3 GBT218091机床夹具零件及部件U行压板零件图: 图4-3-1U行压板零件图主要参数如下表:图4-3-2 U行压板标准参数绘制三维图: 图4-3-3 U行压板三维图4.4 GBT21

28、7891机床夹具零件及部件转动弯压板零件图: 图4-4-1转动弯压板零件图主要参数如下表:图4-4-2 转动弯压板准参数绘制三维图: 图4-4-3 转动弯压板三维图 4.5 GBT217991机床夹具零件及部件移动宽头压板零件图: 图4-5-1 移动宽头压板零件图主要参数如下表:图4-5-2 移动宽头压板标准参数绘制三维图: 图4-5-3 移动宽头压板三维图 4.6 GBT218091机床夹具零件及部件直压板零件图: 图4-6-1 直压板零件图主要参数如下表:图4-6-2 直压板标准参数绘制三维图: 图4-6-3直压板三维图4.7 GBT218091机床夹具零件及部件平压板零件图 图4-7-1

29、 平压板零件图主要参数如下表:图4-7-2 直压板标准参数绘制三维图5、压块与压板软件的程序设计5.1 VBA窗体5.1.1 Useform窗体代码及运行结果程序代码: Private Sub CheckBox1_Click()End SubPrivate Sub CommandButton1_Click()If CommandButton1.Value = True ThenUserForm1.hideLoad UserForm2UserForm2.ShowEnd IfEnd SubPrivate Sub UserForm_Click()End Sub程序代码:Private Sub bzh

30、i_Click()Image1.Picture = LoadPicture(E:毕业设计移动弯压板.jpg )End SubPrivate Sub bchaz_Click()Image1.Picture = LoadPicture(E:毕业设计鞍形压板.jpg)End SubPrivate Sub bcha_Click()Image1.Picture = LoadPicture(E:毕业设计U形压板.jpg)End SubPrivate Sub bdan_Click()Image1.Picture = LoadPicture(E:毕业设计转动弯压板.jpg)End SubPrivate Sub

31、 bshuang_Click()Image1.Picture = LoadPicture(E:毕业设计转动宽头压板.jpg)End SubPrivate Sub byuan_Click()Image1.Picture = LoadPicture(E:毕业设计直压板.jpg)End SubPrivate Sub cmdCancel_Click()If MsgBox( 是否真的退出! , vbOKCancel) = vbOK ThenEndEnd IfEnd SubPrivate Sub cmdOk_Click()If byuan.Value = True ThenUserForm2.hideLo

32、ad UserForm3UserForm3.ShowElseIf bcha.Value = True ThenUserForm2.hideLoad UserForm4UserForm4.ShowElseIf bdan.Value = True ThenUserForm2.hideLoad UserForm5UserForm5.ShowElseIf bshuang.Value = True ThenUserForm2.hideLoad UserForm6UserForm6.ShowElseIf bzhi.Value = True ThenUserForm2.hideLoad UserForm7U

33、serForm7.ShowElseIf bchaz.Value = True ThenUserForm2.hideLoad UserForm8UserForm8.ShowEnd IfEnd Sub5.2 编制机床夹具零件及部件程序代码下面以压块压板(图5-1-3)为例编写程序设计代码,其它零件及部件代类似,这里就不在赘述。程序代码如下:Private Sub ChaRuGuDingB(ByVal d, ByVal db, ByVal d1, ByVal hb, ByVal h, ByVal c, ByVal c1, ByVal c2, ByVal a, ByVal b, ByVal y)On

34、Error Resume Next 错误陷阱Dim curLineType As AcadLineTypeDim BName As StringSet curLineType = ThisDrawing.ActiveLinetype 保存现当前线形 SetConTinuous Dim BasePoint1(0 To 2) As DoubleBasePoint1(0) = 100BasePoint1(1) = 100Dim BlockLinShi As AcadBlockIf DelC = True ThenOn Error GoTo XuJiBName = ThisDrawing.Blocks

35、.Item(TextBox3.Text).NameIf MsgBox(块 & TextBox3.Text & 已经已经存在,为了程序运行必须删除,是否删除?, vbOKCancel) = vbOK ThenOn Error GoTo CannotDelThisDrawing.Blocks.Item(TextBox3.Text).DeleteElseMsgBox 那么请你选择其他的块。UserForm3.ShowTextBox3.ZOrder 0Frame1.SetFocusTextBox3.SetFocusExit SubEnd IfElseBName = GetBNameEnd IfGoTo

36、 OutXuJi: BName = TextBox3.TextOut: On Error GoTo ErrDo BasePoint1(0) = 100 BasePoint1(1) = 100Set BlockLinShi = ThisDrawing.Blocks.Add(BasePoint1, BName) 建立临时块Dim BasePoint, pointA(0 To 2) As Double, pointB(0 To 2) As Double, PointC(0 To 2) As Double, PointD(0 To 2) As Double, PointE(0 To 2) As Dou

37、ble, PointF(0 To 2) As Double, PointG(0 To 2) As Double, PointH(0 To 2) As Double, _PointI(0 To 2) As Double, PointJ(0 To 2) As Double, PointK(0 To 2) As Double, _PointL(0 To 2) As Double, PointM(0 To 2) As Double, PointN(0 To 2) As Double, _PointO(0 To 2) As Double, PointP(0 To 2) As Double, PointQ

38、(0 To 2) AsDouble, _ PointR(0 To 2) As Double, PointS(0 To 2) As Double, PointT(0 To 2) As Double, _ PointU(0 To 2) As Double, PointV(0 To 2) As Double, PointW(0 To 2) As Double, _ PointX(0 To 2) As Double, PointY(0 To 2) As Double, PointZ(0 To 2) As Double, _ PointA1(0 To 2) As Double, PointA2(0 To

39、 2) As Double, PointA3(0 To 2) As Double, PointLL(0 To 2) As Double Dim PointO1(0 To 2) As Double, PointO2(0 To 2) As Double, PointH1(0 To 2) As DoubleAcadLine, kuo2 As AcadLine, kuo6 As AcadLine, kuo7 As AcadLine, kuo8 As AcadLine, _ kuo16 As AcadLine, kuo9 As AcadLine, kuo10 As AcadLine, kuo14 As

40、AcadLine, kuo13 As AcadLine, kuo12 As AcadLine, kuo11 As AcadLine, kuo15 As AcadArc 定义点 pointA(0) = BasePoint1(0) - db / 0.2 + 10 * c2 * Sin(3.14 / 12) / Cos(3.14 / 12): pointA(1) = BasePoint1(1) pointB(0) = BasePoint1(0) + db / 0.2 - 10 * c2 * Sin(3.14 / 12) / Cos(3.14 / 12): pointB(1) = BasePoint1

41、(1) PointC(0) = BasePoint1(0) - db / 0.2: PointC(1) = BasePoint1(1) + 10 * c2 PointD(0) = BasePoint1(0): PointD(1) = BasePoint1(1) + 10 * c2 PointE(0) = BasePoint1(0): PointE(1) = BasePoint1(1) + 10 * c PointF(0) = PointD(0) + d / 0.2: PointF(1) = BasePoint1(1) + 10 * c PointG(0) = BasePoint1(0) + d

42、b / 0.2: PointG(1) = PointC(1) PointT(0) = PointF(0) + 10 * c: PointT(1) = pointB(1) PointI(0) = BasePoint1(0) - db / 0.2: PointI(1) = BasePoint1(1) + 10 * (hb - h - b) PointJ(0) = BasePoint1(0): PointJ(1) = PointI(1) PointL(0) = PointI(0) + 10 * a / 2: PointL(1) = PointI(1) + a / 0.2 PointK(0) = Ba

43、sePoint1(0): PointK(1) = PointL(1) PointM(0) = BasePoint1(0) - d1 / 0.2: PointM(1) = PointI(1) + 10 * b PointN(0) = BasePoint1(0): PointN(1) = PointM(1) PointQ(0) = PointM(0): PointQ(1) = PointM(1) + 10 * (h - c) PointP(0) = BasePoint1(0): PointP(1) = PointQ(1) PointR(0) = PointM(0) + 10 * c: PointR

44、(1) = BasePoint1(1) + hb * 10 PointS(0) = BasePoint1(0) + 10 * (d1 - c) / 2: PointS(1) = PointR(1) PointO(0) = PointF(0): PointO(1) = PointS(1) - c1 * 10 PointU(0) = BasePoint1(0): PointU(1) = PointO(1) PointW(0) = PointG(0): PointW(1) = PointI(1) PointX(0) = PointG(0) - a / 0.2: PointX(1) = PointL(

45、1) PointY(0) = PointX(0): PointY(1) = PointW(1) + 10 * b - 5 + a / 0.2 PointZ(0) = PointY(0) + 5: PointZ(1) = PointY(1) + 5 PointLL(0) = PointL(0): PointLL(1) = PointM(1) PointA3(0) = BasePoint1(0) + d1 / 0.2: PointA3(1) = PointQ(1) PointA2(0) = PointW(0) + a / 0.1: PointA2(1) = PointW(1) + 10 * b P

46、ointV(0) = PointA3(0): PointV(1) = PointA2(1) PointA1(0) = PointA2(0) - a / 0.2: PointA1(1) = PointA2(1) + a / 0.2 PointO1(0) = BasePoint1(0): PointO1(1) = BasePoint1(1) - 20 PointO2(0) = BasePoint1(0): PointO2(1) = BasePoint1(1) + 10 * hb + 20 PointH1(0) = PointT(0): PointH1(1) = PointS(1)画图 Set ku

47、o1 = BlockLinShi.AddLine(PointT, pointB) BlockLinShi.AddLine pointA, PointT BlockLinShi.AddLine pointA, PointC BlockLinShi.AddLine PointC, PointD BlockLinShi.AddLine PointE, PointF Set kuo9 = BlockLinShi.AddLine(PointF, PointT) Set kuo2 = BlockLinShi.AddLine(pointB, PointG) Set kuo12 = BlockLinShi.A

48、ddLine(PointG, PointW) Set kuo13 = BlockLinShi.AddLine(PointW, PointX) Set kuo14 = BlockLinShi.AddLine(PointX, PointY) Set kuo16 = BlockLinShi.AddLine(PointZ, PointA1) Set kuo3 = BlockLinShi.AddLine(PointA1, PointA2) Set kuo5 = BlockLinShi.AddLine(PointA2, PointV) Set kuo6 = BlockLinShi.AddLine(Poin

49、tV, PointA3) Set kuo7 = BlockLinShi.AddLine(PointA3, PointS) BlockLinShi.AddLine PointR, PointH1 BlockLinShi.AddLine PointR, PointQ BlockLinShi.AddLine PointQ, PointP BlockLinShi.AddLine PointQ, PointM BlockLinShi.AddLine PointM, PointN BlockLinShi.AddLine PointO, PointU Set kuo8 = BlockLinShi.AddLi

50、ne(PointO, PointF) Set kuo4 = BlockLinShi.AddLine(PointY, PointZ) BlockLinShi.AddLine PointL, PointLL BlockLinShi.AddLine PointL, PointK BlockLinShi.AddLine PointL, PointI BlockLinShi.AddLine PointI, PointJ BlockLinShi.AddLine PointI, PointC Set kuo11 = BlockLinShi.AddLine(PointH1, PointS) Set kuo10

51、 = BlockLinShi.AddLine(PointH1, PointO) PointH(0) = PointY(0) + 5: PointH(1) = PointZ(1) - 5 Set kuo15 = BlockLinShi.AddArc(PointH, 5, 3.14 / 2, 3.14) SetDashDot 设置当前线型为点划线 Dim OLine As AcadLine Set OLine = BlockLinShi.AddLine(PointO2, PointO1) ThisDrawing.ActiveLinetype = curLineType OLine.Linetype

52、Scale = 10 OLine.Color = acRed Dim hatchObj As AcadHatch Dim patternName As String Dim PatternType As Long Dim assocVar As Boolean 定义剖面线的模式 patternName = ANSI31 PatternType = 0 设定剖面线与外轮廓线相关联 assocVar = True 在模型空间创建剖面线对象 Set hatchObj = BlockLinShi.AddHatch _ (PatternType, patternName, assocVar) hatch

53、Obj.LinetypeScale = 6 Dim outerLoop(0 To 14) As AcadEntity Set outerLoop(10) = kuo11 Set outerLoop(8) = kuo9 Set outerLoop(9) = kuo10 Set outerLoop(1) = kuo7 Set outerLoop(2) = kuo8 Set outerLoop(3) = kuo1 Set outerLoop(4) = kuo2 Set outerLoop(5) = kuo3 Set outerLoop(13) = kuo4 Set outerLoop(7) = ku

54、o5 Set outerLoop(0) = kuo6 Set outerLoop(11) = kuo12 Set outerLoop(12) = kuo13 Set outerLoop(6) = kuo14 Set outerLoop(14) = kuo16 hatchObj.AppendOuterLoop (outerLoop) kuo4.Delete hatchObj.EvaluateIf Not DimB ThenDim Point1(0 To 2) As Double DimLine PointE, PointF, BasePoint1(0) - d / 0.2, BasePoint1

55、(1) - 15, BlockLinShi DimLine PointC, PointG, BasePoint1(0) - d / 0.2, BasePoint1(1) - 25, BlockLinShi Point1(0) = pointA(0): Point1(1) = PointR(1) DimLine pointA, Point1, BasePoint1(0) - d1 / 0.2 - 10, BasePoint1(1) + h / 0.2, BlockLinShi Point1(0) = PointS(0): Point1(1) = PointV(1) DimLine Point1,

56、 PointS, BasePoint1(0) + d1 / 0.2 + 10, BasePoint1(1) + (h) / 0.2, BlockLinShiEnd If 插图If DelC = False Then BasePoint = ThisDrawing.Utility.GetPoint(, 选择插入点:) Dim InsBlock As AcadBlockReference Set InsBlock = ThisDrawing.ModelSpace.InsertBlock(BasePoint, BName, 1 / (10 * BILI), 1 / (10 * BILI), 1, 0

57、) Dim AngelB AngelB = ThisDrawing.Utility.GetOrientation(BasePoint, 选择垂直旋转角度:) AngelB = AngelB - 3.14 / 2 Set InsBlock = ThisDrawing.ModelSpace.InsertBlock(BasePoint, bname, 1, 1, 1, AngelB) InsBlock.Rotate BasePoint, AngelB InsBlock.Update If BaoP = False Then InsBlock.Explode InsBlock.Delete End If ThisDrawing.Blocks.Item(BName).DeleteElseMsgBox 块 & BName & 已经生成!End If ThisDrawing.Application.ZoomExtentsErrDo: Exit SubCannotDel: MsgBox 删除块 & BName & 错误!请重新选择块。UserForm3.ShowEnd Sub5.3 软件操作说明1.首先安装 Autocad 2007。2.将圆压块.jpg、弧形压块.jpg、移动弯压板.jpg、转动弯压板.jpg、移动宽头压板jpg、U形压板.jp

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!