计算机辅助设计课程设计—基于VBA的零件参数化模型构建.doc_第1页
计算机辅助设计课程设计—基于VBA的零件参数化模型构建.doc_第2页
计算机辅助设计课程设计—基于VBA的零件参数化模型构建.doc_第3页
计算机辅助设计课程设计—基于VBA的零件参数化模型构建.doc_第4页
计算机辅助设计课程设计—基于VBA的零件参数化模型构建.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机辅助设计课程设计题 目: 基于VBA的零件参数化模型构建 学生姓名: XXX 学 号: 学 院: 机械工程学院 专 业: 机械设计制造及其自动化 班 级: 机械XXX班 指导教师: XXX(教授) XXX(讲师) 年 月目录1。绪论11。1课程设计性质及目的11.2设计工作简介21。3三维CAD软件SolidWorks简介22任务分析32。1课程设计任务32。1。1课程设计的内容32。1.2具体零件参数化设计的基本要求32。2参数化建模零件结构与参数构成特点32.3实现方案43课题内容的实现64结语265参考文献271. 绪论CAD是Computer Aided Design 的简称,即

2、计算机辅助设计,是由计算机完成产品设计中的计算、分析、模拟、制图、编制技术文件等工作,由计算机辅助设计人员完成产品的全部设计过程,最后输出满意的设计结果和产品图纸的一种机械设计方法。它是最近几十年来迅速发展起来并得到广泛应用的多学科综合性的新.1973年,国际信息处理联合会给CAD 下了一个更广义的解释 “CAD 是将人和机器混编在解题专业中的一种技术,从而使人和机器的最好特性联系起来”CAD 技术的应用适应了当前产品需提高设计质量,快速更新换代的需求。Visual Basic for Applications(VBA)是一种Visual Basic的一种宏语言,主要能用来扩展Windows的

3、应用程式功能,特别是Microsoft Office软件。也可说是一种应用程式视觉化的Basic Script.CAD技术的发展极大地改变了人们的设计手段和方法,更为重要的是CAD技术的广泛应用显著提高了设计的效率和质量。CAD技术是企业技术创新、市场开拓的强有力的技术工具和手段。CAD技术的发展和推广不仅受到国家和企业的重视,更为广大工程技术人员关心. 此次课程设计的过程:首先利用CAD绘制图形并确定点图;然后,确定参数和尺寸参数表并列出编程点表;最后,利用VBA进行编程并调试程序。利用VBA软件进行设计目的在于,将绘制图形和软件编程的知识联系起来,加深所学知识的理解。同时了解编程技术的发展

4、趋势,掌握零件的编程方法,感受现代CAD技术的先进性。此次课程设计是高等院校机械专业类各专业实践性很强的,重要的课程设计。针对各用人单位对大学毕业生人才技能需要,对于工科专业的大学生,在培养过程中学生应该自主加强自己的实践动手能力.该课程设计其主要的研究对象有两个:一个是关于绘制二维图,另一个是关于软件编程.通过本课程设计的学习,使学生了解或掌握VBA语言对Autocad二次开发的相关知识,训练或培养运用VBA语言进行程序设计与开发的技能,为今后继续对程序设计的学习奠定基础.1。1课程设计性质及目的本次设计是在我们学完了大学的全部基础课、技术基础课以及专业课之后而进行.此次的设计是对大学期间所

5、学各课程及相关的应用绘图软件的一次深入的综合性的总复习,也是一次理论联系实际的训练。其目的在于:(1)巩固我们在大学里所学的知识,也是对以前所学知识的综合性的检验;(2)加强我们查阅资料的能力,熟悉有关资料;(3)树立正确的设计思想,掌握设计方法,培养我们的实际工作能力。本次设计的主要内容为:首先运用AutoCAD软件绘制法兰盘的二维零件图,然后运用VBA语言对其进行编程,实现法兰盘二维图形的绘制。1。2设计工作简介基于VBA的参数化编程允许用户对AutoCAD进行二次开发,由用户输入(或选择)参数值,程序自动绘制相应的图形。其编程的一般步骤是先由用户输入一个基准点,然后根据基准点计算出其它各

6、点的位置,调用AutoCAD命令进行绘图,最后还要对绘制的图形进行编辑修改,达到最终的效果,具体来说,二维、三维参数化编程主要分为下面几个步骤:(1)绘制图形并确定点图;(2)确定参数和尺寸参数表;(3)列出编程点表;(4)初步编程;(5)调试。1.3三维CAD软件SolidWorks简介SolidWorks软件是世界上第一个基于Windows开发的三维CAD系统,由于技术创新符合CAD技术的发展潮流和趋势,SolidWorks公司于两年间成为CAD/CAM产业中获利最高的公司。良好的财务状况和用户支持使得SolidWorks每年都有数十乃至数百项的技术创新,公司也获得了很多荣誉。该系统在19

7、95-1999年获得全球微机平台CAD系统评比第一名;从1995年至今,已经累计获得十七项国际大奖,其中仅从1999年起,美国权威的CAD专业杂志CADENCE连续4年授予SolidWorks最佳编辑奖,以表彰SolidWorks的创新、活力和简明。至此,SolidWorks所遵循的易用、稳定和创新三大原则得到了全面的落实和证明,使用它,设计师大大缩短了设计时间,产品快速、高效地投向了市场.Solidworks软件功能强大,组件繁多。 Solidworks 功能强大、易学易用和技术创新是SolidWorks 的三大特点,使得SolidWorks 成为领先的、主流的三维CAD解决方案。Solid

8、Works 能够提供不同的设计方案、减少设计过程中的错误以及提高产品质量.SolidWorks 不仅提供如此强大的功能,同时对每个工程师和设计者来说,操作简单方便、易学易用.对于熟悉微软的Windows系统的用户,基本上就可以用SolidWorks 来搞设计了。SolidWorks独有的拖拽功能使用户在比较短的时间内完成大型装配设计.SolidWorks资源管理器是同Windows资源管理器一样的CAD文件管理器,用它可以方便地管理CAD文件。使用SolidWorks ,用户能在比较短的时间内完成更多的工作,能够更快地将高质量的产品投放市场.2任务分析2.1课程设计任务本课程设计任务就是利用通

9、用二维CAD软件AutoCAD 2004,建立典型零件参数化模型,基于Access数据库及ADO技术实现AutoCAD环境下零件系列化模型的建立.2。1。1课程设计的内容参数化设计是CAD技术应用中解决系列化产品设计的常用技术手段,通用机械设计软件AutoCAD支持利用VBA(Visual Basic for Application)技术对其进行二次开发.本课程设计利用通用二维CAD软件AutoCAD 2004,建立典型零件参数化模型,基于Access数据库及ADO技术实现AutoCAD环境下零件系列化模型的建立。完成该课程设计,有利于学生理解典型设计环境下参数化建模的构建原理及数据库开发,有

10、利于学生掌握参数化设计的原理、实现方法与手段。2.1。2具体零件参数化设计的基本要求按照随课程设计任务书下达的典型系列零件技术资料,在AutoCAD环境下完成给定零件参数化模型的构建并实现参数驱动:1) 查阅资料,熟悉参数化绘图的研究现状,了解各种建模环境下的开发工具;2) 结合课程学习中对AutoCAD二次开发的介绍,学习基于VBA的开发技术以及ADO数据库开发原理,掌握AutoCAD环境下参数化绘图的步骤;3) 研究与分析给定典型零件的结构特点,明确零件参数化模型的结构参数构成、相互关联关系,绘制点图及点表;4) 利用VBA技术,以ADO数据库开发技术为基础,编程实现图层设置以及典型零件的

11、参数化绘图,实现AutoCAD环境下的直接参数修改与驱动.2。2参数化建模零件结构与参数构成特点零件结构具有对称性,符合这种特点的图形,在编程中只需绘出一个单元图,其余通过镜像、复制、循环语句即可绘出,这在编程中也是很重要的,它可以大大降低编程的工作量,提高程序的质量。参数构成的特点是其中有些参数是独立的,需要由用户交互式输入,有些参数是不独立的,可能与某些独立参数相关,只需保留独立参数,不独立参数通过计算得到即可;而且通常标准件在手册上给出了图形各个尺寸参数的表格,技术人员需要根据表格中的参数及数据,将其输入使得计算机或CAD软件能够应用它们。此外,有些参数比较多,像化工上用的法兰或螺钉标准

12、件,编程的参数太多,使得其工作量增加很多,有些参数对于设计人员来说是不重要的,此时将其适当简化是应该的,比如倒角半径、螺纹内外直径差、一些非常小的无关尺寸,当然一定是不重要的尺寸可以简化,重要的尺寸决不能采用这种方法,由此达到尽可能简化参数的数量,降低编程的工作量.当然也要注意图形的简化,有些图形真实的结果是非常复杂的,甚至有时用编程方法绘制相当麻烦,比如螺栓的头部圆角,法兰的各个侧面的倒角,此时应该将图形的圆角或倒角忽略,适当的忽略在参数化编程中是允许的,只要标注正确即可。最后要注意重新命名:在设计手册常用件、标准件的参数化尺寸表中,通常有些不同参数名称是一样的,例如D、d、R、r,这些参数

13、指代的不是同一内容,此时需要重新命名这些变量,比如用D1、D2、R1、R2等名称重新命名,因为程序中这些变量不分大小写,所以尺寸参数表和手册中的标准参数表的变量名称有时是不一样的,编程者务必注意这样的事情。文档为个人收集整理,来源于网络文档为个人收集整理,来源于网络2。3实现方案(1)绘制图形并确定点图交互绘制:拿到一个图形,首先要进行分析,这是必不可少的步骤。先要交互将图形绘制出来。确定基点和其它点名:基点就是用户绘图的插入点,要根据实际情况确定,例如圆的基准点一般选择圆心,螺钉类图形通常选其结合面的中心点等。用文字命令将点名写到交互绘制图形上,例如0、1、2n以便后面编程用到时候方便.复杂

14、图形:如果图形复杂,应该找出其相似的部分,单独编成函数,这样可以减少程序的代码量.特点分析:对称性、重复性、循环性是某些编程图形的特点,符合这种特点的图形,在编程中只需绘出一个单元图,其余通过镜像、复制、循环语句即可绘出,这在编程中也是很重要的,它可以大大降低编程的工作量,提高程序的质量.(2)确定参数和尺寸参数表独立参数:参数化编程必须有参数,注意有些参数是独立的,需要由用户交互式输入,有些参数是不独立的,可能与某些独立参数相关,只需保留独立参数,不独立参数通过计算得到即可;尺寸参数表:此外通常标准件在手册上给出了图形各个尺寸参数的表格,技术人员需要根据表格中的参数及数据,将其输入使得计算机

15、或CAD软件能够应用它们.参数取舍:有些参数比较多,像化工上用的法兰或螺钉标准件,编程的参数太多,使得其工作量增加很多,有些参数对于设计人员来说是不重要的,此时将其适当简化是应该的,比如倒角半径、螺纹内外直径差、一些非常小的无关尺寸,当然一定是不重要的尺寸可以简化,重要的尺寸决不能采用这种方法,由此达到尽可能简化参数的数量,降低编程的工作量.图形简化:有些图形真实的结果是非常复杂的,甚至有时用编程方法绘制相当麻烦,比如螺栓的头部圆角,法兰的各个侧面的倒角,此时应该将图形的圆角或倒角忽略,适当的忽略在参数化编程中是允许的,只要标注正确即可。重新命名:在设计手册常用件、标准件的参数化尺寸表中,通常

16、有些不同参数名称是一样的,例如D、d、R、r,这些参数指代的不是同一内容,此时需要重新命名这些变量,比如用D1、D2、R1、R2等名称重新命名,因为程序中这些变量不分大小写,所以尺寸参数表和手册中的标准参数表的变量名称有时是不一样的,编程者务必注意这样的事情。(3)列出编程点表基准点和参数确定后,下面就需要列表计算其它各点的坐标位置,所有这些点都是根据基点和各个已知参数计算出来的,注意为了编程过程中不乱并便于检查程序,应该将其以文本表格形式列出,其具体形式请参见后面实例中的编程点表。(4)初步编程有了点图、尺寸参数表、编程点表,就可以用进入Visual Basic编辑器,开始编程。点击Auto

17、CAD环境中的【工具】|【宏】|【Visual Basic 编辑器】菜单,进入VBA编辑环境。可以在VBA环境中插入窗体,设计VB风格的界面.将上述点图、尺寸参数表、编程点表作为重要依据,进行点和参数语句的编程,有时为了输入数据的简单,先提前赋值给某些变量,或调用数据库中的参数,直至最后能够用程序绘制出该图形。这里一定要熟悉在VBA环境中调用CAD命令的格式,避免出错。(5)调试任何一位编程人员也不敢保证他所编的程序一点错误也没有,出错是在所难免的,这就需要调试,试运行程序。设置断点、跟踪变量都是调试程序的助手。此外还有可能需要在程序中加入尺寸参数表数据,再进一步调试,这一步调通意味着程序运行

18、可以实现多组数据绘图。如果有必要,AutoCAD可对源代码进行工程级加密的功能,保护编程者的劳动。注意:三维参数化编程除了要遵循上述主要步骤之外,还需要注意以下几点:编程中计算点的时候,尽量不要变换坐标系,除非万不得已不动;安排好空间点的位置,注意其变化;尽量多用三维旋转Rotate3d、移动Move等命令。3课题内容的实现在化工管道中,法兰连接的使用十分广泛,法兰连接是化工制图中常用图形。环连接面整体钢制管法兰的剖面图见图1,该图是左右对称的结构,可以先绘制右侧部分,然后使用镜像命令复制出左侧部分.其点图、尺寸参数表、点表如下所示:图1 环连接面整体钢制管法兰图2 法兰点图表1环连接面整体钢

19、制管法兰尺寸参数表dndddklnnthpefcnS0S1xx151055575144"M12”356.592045101575201306890184”M16"456.5920501015902514078100184"M16”506。59246110181003215586110224"M20”656.592468101811040170102125224"M20”756.592682102112550180112135224”M20"858122690102213565205136160228”M20"11081226

20、105102016080215146170228"M20"115812281221121170100250172200268"M24”145812301461223200125295208240308”M27"175812341771326240150345245280338"M30X2"2058123620414272802004153063453612”M33X2"2658124226416323452504703624003612”M33X2”3208124632019354003005304224603616&quo

21、t;M33X2"3758125237821394603506004755253916"M36X3"4208125643423425254006705405854216”M39X3"480812604902645585我们以p0点为该图形的起点(插入点),xx,S0,SL,l,n,f, p,d,k,dd,e,c为参数,确定p0p17各点的坐标为:表2 法兰点表计算点相对点相对角度相对长度计算点相对点相对角度相对长度P0P10P91.5pixxP1P01。5pixxP11P5pi(d-k+l)/2P2P000.5n(s1s0)P12P111.5picP3P2

22、1.5pi(xx-ce)/3P13P1101P4P0P0x+0.5n0P0y-(xx-ce)P14P1201P5P40(dn)/2P15P10(pf)2P6P51.5piCP16P15P15x+0。5fP15y+fP7P6Pi(d-dd)/2P17P150fP8P71.5pieP18P2Pin2(s1s0)P9P000.5ns1P19P5pid接下来,就可以进行基于VBA的参数化编程。(1)为了使用方便,首先在D盘根目录下构建名为“falanpan.mdb”的Access数据库,在库中创建一个名为“csb”的表格,存放各个参数数据,构建各个字段(注意顺序不能改变,否则后面的程序按字段顺序提取数

23、据时会出错)。如图3所示,然后将表1中各个参数输入到数据库中(具体步骤请参考Access资料)。图3 构建数据库字段(2)启动AutoCAD,点击【工具】|【宏】|【Visual Basic 编辑器】菜单,进入VBA编辑环境.在右侧“工程”项中点击鼠标右键,选择【插入】【用户窗体】在VBA环境中插入一个用户窗体。接下来,在出现的“工具箱”中,单击鼠标右键,选择“附加控件”,向工具箱中添加“Microsoft ADO Data Control 6.0(SP4)(OLEDB)"控件,以备用ADO方式访问参数库,如图5所示。图4 在VBA环境中插入用户窗体图5 向工具箱添加ADO控件(3)

24、向用户窗体添加该Adodc控件,并将其“Visible”属性设为“False”以隐藏该控件。同时添加一个列表框、几个标签控件和几个文本框控件,为文本框命名与标签对应的名字(参见图6以及后面的ListBox1_Click函数),添加图像控件和两个按钮控件,并调整位置,然后向图像控件引入法兰图片,设置窗体和按钮“Caption”属性,如图6所示。图6 窗体控件示意图(4)双击用户窗体,进入代码界面,首先在代码的最上端声明通用变量: Dim Falanpan_Con As ADODB。Connection Dim Falanpan_Rec As ADODB.Recordset其中,Falanpan_

25、Con和Falanpan_Rec,分别作为数据库对象和数据集对象。选择窗体的“Initialize”响应函数,该函数负责连接数据库,向列表框添加数据库中法兰盘的各参数数据。Initialize函数代码如下:Private Sub UserForm_Initialize()'以ADO方式打开数据库Set Falanpan_Con = New ADODB.ConnectionSet Falanpan_Rec = New ADODB。RecordsetDim SQL As StringSQL = ”provider=Microsoft.Jet。OLEDB.4.0;Data Source=d:

26、falanpan。mdb” '数据库的路径不同则这里需要修改 Falanpan_Con。Open SQL Falanpan Rec.Open “csb”, Falanpan Com, adOpenDynamic, adLockBatchOptimistic '计算打开的数据表中有几条记录 On Error Resume Next Dim count1 As Integer count1 = 0 Falanpan_Rec。MoveFirst Do While Not Falanpan_Rec.EOF count1 = count1 + 1 Falanpan_Rec.MoveNex

27、t Loop '数据库的指针指向第一条记录 Falanpan_Rec.MoveFirst 向列表框添加记录 ListBox1。ColumnCount = 6 ListBox1。AddItem ListBox1。List(0, 0) = "型号" ListBox1.List(0, 1) = "D” ListBox1。List(0, 2) = ”d" ListBox1。List(0, 3) = "K" ListBox1。List(0, 4) = "L” ListBox1.List(0, 5) = ”n” For i =

28、1 To count1 ListBox1.AddItem Falanpan_Rec(0) ListBox1。List(i, 0) = Falanpan_Rec(1) ListBox1.List(i, 1) = Falanpan_Rec(2) ListBox1.List(i, 2) = Falanpan_Rec(3) ListBox1。List(i, 3) = Falanpan_Rec(4) ListBox1。List(i, 4) = Falanpan_Rec(5) ListBox1。List(i, 5) = Falanpan_Rec(6) Falanpan_Rec。MoveNext Next

29、初始选择确定按钮 CommandButton1.SetFocus '默认选择第一条记录 ListBox1.Selected(1) = TrueEnd Sub(5)在窗体上双击列表框,编写列表框的点击响应函数,实现选择不同类型法兰盘时,文本框显示数据的改变,如下所示:Private Sub ListBox1_Click() '点击listbox框的首行,不能绘图 If ListBox1.ListIndex = 0 Then CommandButton1.Enabled = False Exit Sub Else CommandButton1.Enabled = True End

30、If On Error Resume Next Falanpan_Rec.MoveFirst For i = 1 To ListBox1。ListIndex 1 注意:首行已经用于显示字段名,所以,下标为1为第一个记录 Falanpan_Rec。MoveNext Next TxtD.Text = Falanpan_Rec(2) 'falanpan_rec(0)和(1)分别为ID号和型号 Txtd2。Text = Falanpan_Rec(3) TxtK.Text = Falanpan_Rec(4) TxtL.Text = Falanpan_Rec(5) Txtn.Text = Fala

31、npan_Rec(6) Txtth.Text = Falanpan_Rec(7) Txtp.Text = Falanpan_Rec(8) Txte。Text = Falanpan_Rec(9) Txtf.Text = Falanpan_Rec(10) Txtc。Text = Falanpan_Rec(11) Txtn2.Text = Falanpan_Rec(12) Txts0.Text = Falanpan_Rec(13) Txts1。Text = Falanpan_Rec(14) Txtxx。Text = Falanpan_Rec(15)End Sub(6)回到窗体界面,双击“确定”按钮,

32、出现代码窗口。在这个函数中,要分别创建粗实线层、中心线层、剖面线层并设置其颜色、线型和线宽并标注数据.在绘图过程中,首先提示输入基点,然后根据点表2计算法兰盘右半侧的各点坐标;接下来调用绘图命令绘制图形.在绘制过程中,用到了绘制直线命令和镜像命令。剖面线的绘制要先绘制边界直线,然后在边界直线围成的区域内调用打剖面线命令绘制剖面线.Private Sub CommandButton1_Click() 绘制法兰盘 隐藏窗体,以显示绘图区 Me。Hide 设定粗实线层颜色 Dim CSXLayObj As AcadLayer Set CSXLayObj = ThisDrawing。Layers.Ad

33、d("粗实线层”) CSXLayObj。color = acWhite '设定粗实线层的线型 Dim entObj As AcadLineType Dim found1 As Boolean found1 = False For Each entObj In ThisDrawing。Linetypes If StrComp(entObj.Name, ”continuous”, 1) = 0 Then found1 = True Exit For End If Next 如果没有加载粗实线线型,则从线型文件acad。lin中加载 If Not (found1) Then Thi

34、sDrawing。Linetypes。Load "continuous", ”acad.lin” End If CSXLayObj。Linetype = "continuous” 设定粗实线层的线宽 CSXLayObj.Lineweight = acLnWt030 Dim currLayer As AcadLayer '用于保存当前图层的对象变量 Dim newLayer As AcadLayer '保存新当前图层的对象变量 Set currLayer = ThisDrawing.ActiveLayer Set newLayer = ThisDra

35、wing。Layers("粗实线层") ThisDrawing。ActiveLayer = newLayer '输入插入点 Dim insertPnt As Variant On Error GoTo GetPointWrong insertPnt = ThisDrawing.Utility.GetPoint(, "请输入插入点:") 计算各点坐标 Dim pnt1(0 To 2) As Double Dim xx As Double xx = CDbl(Txtxx。Text) CDbl为将文本数据转换成双精度数据函数 pnt1(0) = ins

36、ertPnt(0) pnt1(1) = insertPnt(1) xx pnt1(2) = insertPnt(2) '平面绘图中,Z坐标为0 Dim pnt2(0 To 2) As Double pnt2(0) = insertPnt(0) + 0.5 CDbl(Txtn2。Text) - (CDbl(Txts1.Text) CDbl(Txts0.Text) pnt2(1) = insertPnt(1) pnt2(2) = insertPnt(2) Dim Pnt3(0 To 2) As Double Pnt3(0) = pnt2(0) Pnt3(1) = pnt2(1) (CDbl

37、(Txtxx.Text) CDbl(Txtc.Text) CDbl(Txte.Text)) / 3 Pnt3(2) = insertPnt(2) Dim Pnt4(0 To 2) As Double Pnt4(0) = insertPnt(0) + 0.5 * CDbl(Txtn2。Text) Pnt4(1) = insertPnt(1) - (CDbl(Txtxx。Text) CDbl(Txtc。Text) CDbl(Txte.Text) Pnt4(2) = insertPnt(2) Dim Pnt5(0 To 2) As Double Pnt5(0) = Pnt4(0) + (CDbl(T

38、xtd.Text) CDbl(Txtn2.Text) / 2 Pnt5(1) = Pnt4(1) Pnt5(2) = insertPnt(2) Dim Pnt6(0 To 2) As Double Pnt6(0) = Pnt5(0) Pnt6(1) = Pnt5(1) - CDbl(Txtc.Text) Pnt6(2) = insertPnt(2) Dim Pnt7(0 To 2) As Double Pnt7(0) = Pnt6(0) (CDbl(Txtd.Text) CDbl(Txtd2。Text)) / 2 Pnt7(1) = Pnt6(1) Pnt7(2) = insertPnt(2)

39、 Dim Pnt8(0 To 2) As Double Pnt8(0) = Pnt7(0) Pnt8(1) = Pnt7(1) - CDbl(Txte。Text) Pnt8(2) = insertPnt(2) Dim Pnt9(0 To 2) As Double Pnt9(0) = insertPnt(0) + 0.5 CDbl(Txtn2。Text) CDbl(Txts1。Text) Pnt9(1) = insertPnt(1) Pnt9(2) = insertPnt(2) Dim Pnt10(0 To 2) As Double Pnt10(0) = Pnt9(0) Pnt10(1) = P

40、nt9(1) CDbl(Txtxx.Text) Pnt10(2) = insertPnt(2) Dim Pnt11(0 To 2) As Double Pnt11(0) = Pnt5(0) (CDbl(Txtd。Text) - CDbl(Txtk。Text) + CDbl(Txtl。Text)) / 2 Pnt11(1) = Pnt5(1) Pnt11(2) = insertPnt(2) Dim Pnt12(0 To 2) As Double Pnt12(0) = Pnt11(0) Pnt12(1) = Pnt11(1) CDbl(Txtc。Text) Pnt12(2) = insertPnt

41、(2) Dim Pnt13(0 To 2) As Double Pnt13(0) = Pnt11(0) + CDbl(Txtl。Text) Pnt13(1) = Pnt11(1) Pnt13(2) = insertPnt(2) Dim Pnt14(0 To 2) As Double Pnt14(0) = Pnt12(0) + CDbl(Txtl.Text) Pnt14(1) = Pnt12(1) Pnt14(2) = insertPnt(2) Dim Pnt15(0 To 2) As Double Pnt15(0) = pnt1(0) + (CDbl(Txtp。Text) - CDbl(Txt

42、f.Text)) / 2 Pnt15(1) = pnt1(1) Pnt15(2) = insertPnt(2) Dim Pnt16(0 To 2) As Double Pnt16(0) = Pnt15(0) + 0.5 CDbl(Txtf.Text) Pnt16(1) = Pnt15(1) + CDbl(Txtf.Text) Pnt16(2) = insertPnt(2) Dim Pnt17(0 To 2) As Double Pnt17(0) = Pnt15(0) + CDbl(Txtf。Text) Pnt17(1) = Pnt15(1) Pnt17(2) = insertPnt(2) Di

43、m Pnt18(0 To 2) As Double Pnt18(0) = 2 insertPnt(0) Pnt9(0) Pnt18(1) = insertPnt(1) Pnt18(2) = insertPnt(2) Dim Pnt19(0 To 2) As Double Pnt19(0) = 2 * insertPnt(0) pnt2(0) Pnt19(1) = insertPnt(1) Pnt19(2) = insertPnt(2) Dim Pnt20(0 To 2) As Double Pnt20(0) = 2 * insertPnt(0) Pnt3(0) Pnt20(1) = Pnt3(

44、1) Pnt20(2) = insertPnt(2) Dim Pnt21(0 To 2) As Double Pnt21(0) = 2 insertPnt(0) Pnt4(0) Pnt21(1) = Pnt4(1) Pnt21(2) = insertPnt(2) Dim Pnt22(0 To 2) As Double Pnt22(0) = 2 * insertPnt(0) - Pnt11(0) Pnt22(1) = Pnt11(1) Pnt22(2) = insertPnt(2) Dim Pnt23(0 To 2) As Double Pnt23(0) = 2 * insertPnt(0) -

45、 Pnt13(0) Pnt23(1) = Pnt13(1) Pnt23(2) = insertPnt(2) Dim Pnt24(0 To 2) As Double Pnt24(0) = 2 insertPnt(0) - Pnt5(0) Pnt24(1) = Pnt5(1) Pnt24(2) = insertPnt(2) Dim Pnt25(0 To 2) As Double Pnt25(0) = 2 insertPnt(0) - Pnt6(0) Pnt25(1) = Pnt6(1) Pnt25(2) = insertPnt(2) Dim Pnt26(0 To 2) As Double Pnt2

46、6(0) = 2 * insertPnt(0) - Pnt14(0) Pnt26(1) = Pnt14(1) Pnt26(2) = insertPnt(2) Dim Pnt27(0 To 2) As Double Pnt27(0) = 2 * insertPnt(0) - Pnt12(0) Pnt27(1) = Pnt12(1) Pnt27(2) = insertPnt(2) Dim Pnt28(0 To 2) As Double Pnt28(0) = 2 * insertPnt(0) Pnt7(0) Pnt28(1) = Pnt7(1) Pnt28(2) = insertPnt(2) Dim

47、 Pnt29(0 To 2) As Double Pnt29(0) = 2 * insertPnt(0) Pnt8(0) Pnt29(1) = Pnt8(1) Pnt29(2) = insertPnt(2) Dim Pnt30(0 To 2) As Double Pnt30(0) = 2 insertPnt(0) - Pnt17(0) Pnt30(1) = Pnt17(1) Pnt30(2) = insertPnt(2) Dim Pnt31(0 To 2) As Double Pnt31(0) = 2 * insertPnt(0) Pnt16(0) Pnt31(1) = Pnt16(1) Pn

48、t31(2) = insertPnt(2) Dim Pnt32(0 To 2) As Double Pnt32(0) = 2 insertPnt(0) Pnt15(0) Pnt32(1) = Pnt15(1) Pnt32(2) = insertPnt(2) Dim Pnt33(0 To 2) As Double Pnt33(0) = 2 insertPnt(0) Pnt10(0) Pnt33(1) = Pnt10(1) Pnt33(2) = insertPnt(2) Dim Pnt34(0 To 2) As Double Pnt34(0) = Pnt18(0) Pnt34(1) = Pnt21

49、(1) Pnt34(2) = insertPnt(2) 绘制半个法兰盘中不是剖面线边界的直线 Dim linObj(0 To 4) As AcadLine Set linObj(0) = ThisDrawing。ModelSpace.AddLine(insertPnt, Pnt9) Set linObj(1) = ThisDrawing.ModelSpace.AddLine(Pnt11, Pnt13) Set linObj(2) = ThisDrawing。ModelSpace。AddLine(Pnt12, Pnt14) Set linObj(3) = ThisDrawing.ModelSpa

50、ce.AddLine(Pnt15, Pnt17) Set linObj(4) = ThisDrawing。ModelSpace.AddLine(Pnt10, pnt1) '绘制半个法兰盘中是剖面线边界的直线 Dim outerLoop(0 To 11) As AcadEntity '注意:对象数量要严格和边界直线数一致 Set outerLoop(0) = ThisDrawing。ModelSpace.AddLine(Pnt9, pnt2) Set outerLoop(1) = ThisDrawing.ModelSpace。AddLine(pnt2, Pnt3) Set out

51、erLoop(2) = ThisDrawing。ModelSpace。AddLine(Pnt3, Pnt4) Set outerLoop(3) = ThisDrawing。ModelSpace.AddLine(Pnt4, Pnt11) Set outerLoop(4) = ThisDrawing.ModelSpace.AddLine(Pnt11, Pnt12) Set outerLoop(5) = ThisDrawing。ModelSpace。AddLine(Pnt12, Pnt7) Set outerLoop(6) = ThisDrawing.ModelSpace。AddLine(Pnt7,

52、 Pnt8) Set outerLoop(7) = ThisDrawing.ModelSpace。AddLine(Pnt8, Pnt17) Set outerLoop(8) = ThisDrawing.ModelSpace。AddLine(Pnt17, Pnt16) Set outerLoop(9) = ThisDrawing。ModelSpace。AddLine(Pnt16, Pnt15) Set outerLoop(10) = ThisDrawing。ModelSpace.AddLine(Pnt15, Pnt10) Set outerLoop(11) = ThisDrawing.Model

53、Space。AddLine(Pnt10, Pnt9) Dim outerLoop2(0 To 3) As AcadEntity 注意:对象数量要严格和边界直线数一致 Set outerLoop2(0) = ThisDrawing.ModelSpace。AddLine(Pnt13, Pnt5) Set outerLoop2(1) = ThisDrawing。ModelSpace。AddLine(Pnt5, Pnt6) Set outerLoop2(2) = ThisDrawing.ModelSpace。AddLine(Pnt6, Pnt14) Set outerLoop2(3) = ThisDrawing.ModelSpace。AddLine(Pnt14, Pnt13) '设定剖面线层颜色 Dim hatchLayObj As AcadLayer Set hatchLayObj = ThisDrawing。Layers。Add("剖面线层”) hatchLayObj。color = acYellow

温馨提示

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

评论

0/150

提交评论