机械CADCAM课程论文

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MsgBox(ex.Message)
Finally
trans.Dispose()
End Try
End Sub
<CommandMethod("AddNutPara")>
Public Sub AddNutPara()
Try
If Dir("D:\testfile.txt") = "" Then
Dim Line6 As New Line(Point6, Point1)
AddToModelSpace(db, cir1, cir2, arc5, Line1, Line2, Line3, Line4, Line5, Line6)
trans.Commit()
pla.Dispose()
Catch ex As Exception
Angle = CDbl(pla.Angle.Text)
AcrossF = CDbl(pla.AcrossF.Text)
Center = New Point3d(CDbl(pla.CenX.Text), CDbl(pla.CenY.Text), 0)
End If
ed.WriteMessage("公称直径D:" & Diam & ",对边宽S:" & AcrossF & ",旋转角度¨¨A:" & Angle & vbCrLf)
Imports System.IO
ImportsMicrosoft.VisualBasic.CompilerServices
Public Class project
<CommandMethod("PlaceNut")>
Public Sub PlaceNut()
Dim db As Database = HostApplicationServices.WorkingDatabase
代码附录
Imports Autodesk.AutoCAD.DatabaseServices
Imports Autodesk.AutoCAD.Geometry
Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.EditorInput
Imports Autodesk.AutoCAD.ApplicationServices
ed.WriteMessage("Pt2:(" & Center.X + e * Math.Cos((Angle + 60) * Math.PI / 180) & "," & Center.Y + e * Math.Sin((Angle + 60) * Math.PI / 180) & ")")
ed.WriteMessage("Pt3:(" & Center.X + e * Math.Cos((Angle + 120) * Math.PI / 180) & "," & Center.Y + e * Math.Sin((Angle + 120) * Math.PI / 180) & ")")
WriteMessage(“&&”):内容输出
Line():直线
Point3d():建立三维坐标
Write():写入内容,不换行
WriteLine():写入内容,自动换行
StreamWriter(path,boolean):将制定内容写入path位置的文本中,如果没有该文本则建立,如果boolean为true则追加,如果为false则替换
3.六角螺母库数据的读取
方案设计
1,方案总体要求
为了提高程序的方便性和简洁,通过把六角螺母库的功能要求集合在一个项目中,项目中添加一个类来定义三个CAD指令的程序设计,以及通过添加三个windows窗体来满足在不同指令下数据的录入、输出。
2,流程图
3,程序功能说明
AddNutPara指令:弹出添加窗口,添加公称直径D和对边宽S(S必须在最大和最小范围内),链表进行保存;
PlaceNut指令:弹出放置窗口,根据公称直径D选择螺母,可在界面上调整放置位置、角度和X、Y切变量;
PrintPara指令:有序打印所有螺母参数;
程序开发模块及函数说明
开发模块:
类:集合程序中的对象以及相关操作程序,实现操作的内部处理
Window窗体:程序的对象,
函数说明:
CDbl(expression):转换表达式为Double型态
Dim Point4 As New Point3d(Center.X + e * Math.Cos((Angle + 180) * Math.PI / 180), Center.Y + e * Math.Sin((Angle + 180) * Math.PI / 180), 0)
Dim Point5 As New Point3d(Center.X + e * Math.Cos((Angle + 240) * Math.PI / 180), Center.Y + e * Math.Sin((Angle + 240) * Math.PI / 180), 0)
ed.WriteMessage("Pt4:(" & Center.X + e * Math.Cos((Angle + 180) *Math.PI / 180) & "," & Center.Y + e * Math.Sin((Angle + 180) * Math.PI / 180) & ")")
ed.WriteMessage("Pt5:(" & Center.X + e * Math.Cos((Angle + 240) * Math.PI / 180) & "," & Center.Y + e * Math.Sin((Angle + 240) * Math.PI / 180) & ")")
Dim trans As Transaction = db.TransactionManager.StartTransaction
Dimed As Editor = Application.DocumentManager.MdiActiveDocument.Editor
Try
Dim Diam As Double
Dim e As Double = AcrossF / (2 * (Math.Cos(30 * Math.PI / 180)))
Dim cir1 As New Circle(Center, New Vector3d(0, 0, 1), AcrossF / 2)
Dim cir2 As New Circle(Center, New Vector3d(0, 0, 1), (Diam * 0.85) / 2)
总结
这次的大作业使用vb.net进行CAD六角螺母库模块的开发,由于之前没学习过vb.net,所以在软件的操作和编程语言的使用上有较大的困难,但是通过多尝试,多查资料,能顺利地完成了部分模块功能,经历艰辛后的获得是甘甜的。
在这次模块开发中,无论是检索文件是否存在,文件的建立还是文件的写入,都很值得我们以后深入学习的,因为在现代的工作中,我们常常会遇到一些日常处理的问题和繁琐,但我们掌握这样的技能的时候,可以更有效率地去完成我们的任务,用周边的资源去简化我们的工作。在这次的大作业中,由于自身的基础不够扎实,所以在编程的优化性上还是缺少的,但是只要我们多尝试,多学习,一定能克服困难,做出满意的作品。
AddToModelSpace():自定义的函数,用于显示所画的图案
Dir(“路径\文件名“):检索路径中是否存在改文件
My.Computer.FileSystem.WriteAllText("路径", "内容",追加或写入,使用的编码):用于在规定位置建立带有一定内容的指定文件
MsgBox (Prompt [,Buttons] [,Title] [,Helpfile,Context]):弹出对话框
六角螺母的画法和和数据具有固定性,对于六角螺母的标准,需要通过查阅设计手册才能获取,所以通过CAD等设计软件来进行绘制时效率极低,因此基于CAD二次开发的六角螺母库模块可以大大地降低绘制的难度,提高绘制效率。
在基于CAD二次开发的六角螺母库模块中,总体的要求是:
1.六角螺母数据库的录入
2.自定义尺寸的六角螺母在CAD中绘制
1,方案总体思路…………………………………1
2,流程图…………………………………………2
3,程序功能说明…………………………………3
程序开发模块、函数说明………源自文库…3
总结……………………………………4
代码附录………………………………4
二次开发概述及总体要求
在日常的设计中,通常是采用AutoCAD等设计软件进行,但是在复杂CAD问题或特殊用途的设计中,只通过原有软件的功能是无法解决问题的,所以根据客户的特殊用途进行软件的客户化定制和二次开发可以大大提高设计的效率和技术水平。
东莞理工学院
机械CAD/CAM课程论文
题目:基于CAD二次开发的六角螺母库模块
姓名:.........
学号:
系别:机械工程学院
专业班级:机械设计本2011-01
指导教师:...........
起止日期:2014年12月15日至2015年1月4日
二次开发概述及总体要求……………1
方案设计………………………………1
Dim Point6 As New Point3d(Center.X + e * Math.Cos((Angle + 300) * Math.PI / 180), Center.Y + e * Math.Sin((Angle + 300) * Math.PI / 180), 0)
ed.WriteMessage("Pt1:(" & Center.X + e * Math.Cos(Angle * Math.PI / 180) & "," & Center.Y + e * Math.Sin(Angle * Math.PI / 180) & ")")
Dim Angle As Double
Dim AcrossF AsDouble
Dim Center As New Point3d()
Dim pla As New PlaceNut
If pla.ShowDialog = Windows.Forms.DialogResult.OK Then
Diam = CDbl(pla.Diam.Text)
Dim arc5 As New Arc(Center, Diam / 2, (Angle - 90) * Math.PI / 180, (Angle + 180) * Math.PI / 180)
Dim Point1 As New Point3d(Center.X + e * Math.Cos(Angle * Math.PI / 180), Center.Y + e * Math.Sin(Angle * Math.PI / 180), 0)
ed.WriteMessage("Pt6:(" & Center.X + e * Math.Cos((Angle + 300) * Math.PI / 180) & "," & Center.Y + e * Math.Sin((Angle + 300) * Math.PI / 180) & ")")
Dim Point2 As New Point3d(Center.X + e * Math.Cos((Angle + 60) * Math.PI / 180), Center.Y + e * Math.Sin((Angle + 60) * Math.PI / 180), 0)
Dim Point3 As New Point3d(Center.X + e * Math.Cos((Angle + 120) * Math.PI / 180), Center.Y + e * Math.Sin((Angle + 120) * Math.PI / 180), 0)
Dim Line1 As New Line(Point1, Point2)
Dim Line2 As New Line(Point2, Point3)
Dim Line3 As New Line(Point3, Point4)
Dim Line4 As New Line(Point4, Point5)
Dim Line5 As New Line(Point5, Point6)
相关文档
最新文档