Міністерство освіти і науки, молоді та спорту України
Національний технічний університет
«Харківський політехнічний інститут»
Кафедри ТММ і САПР
Звіт
Про виконання лабораторної роботи №3,4
«Створення макросу з додаванням креслення та зміни фітчеру»
Виконав: Ст. Гр. ТМ – 88Б Козуб П.С.
Перевірив: Мартиненко О.В.
Харків 2011р.
Зображення створеного креслення:
Зміна фітчеру:
Захист від невірно введених значень:
Лістинг макросу:
Private Sub CommandButton1_Click()
Dim swApp As Object
Dim Part As Object
Dim SelMgr As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim Feature As Object
Dim i As Double
Dim j, k As Double
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Set SelMgr = Part.SelectionManager
If (TextBox1.Text <> "") And (TextBox2.Text <> "") And IsNumeric(TextBox1.Text) = True And IsNumeric(TextBox2.Text) = True Then
i = Val(UserForm1.TextBox1.Text) * 0.001
j = Val(UserForm1.TextBox2.Text) * 0.001
k = Val(UserForm1.TextBox3.Text) * 0.001
Part.ClearSelection2 True
Dim SkCircle As Object
Set SkCircle = Part.SketchManager.CreateCircle(0, 0, 0, k, 0, 0)
boolstatus = Part.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.FeatureManager.FeatureExtrusion2 True, False, False, 0, 0, i, 0.01, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 1, 1, 1, 0, 0, False
Part.SelectionManager.EnableContourSelection = 0
boolstatus = Part.Extension.SelectByID2("Спереди", "PLANE", 0, 0, 0, True, 0, Nothing, 0)
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Вытянуть1", "BODYFEATURE", 0, 0, 0, True, 1, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Спереди", "PLANE", 0, 0, 0, True, 2, Nothing, 0)
Part.FeatureManager.InsertMirrorFeature False, False, False, False
boolstatus = Part.Extension.SelectByID2("", "FACE", -0.01323714672833, -0.001981569585951, 0.1, True, 0, Nothing, 0)
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Зеркальное отражение1", "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("", "FACE", -0.01323714672833, -0.001981569585951, 0.1, True, 1, Nothing, 0)
Part.InsertFeatureShell 0.01, False
boolstatus = Part.Extension.SelectByID2("", "EDGE", k, 0, i, True, 0, Nothing, 0)
Part.FeatureManager.InsertFeatureChamfer 4, 1, i, 0.7, 0, 0, 0, 0
Part.ClearSelection2 True
Part.ClearSelection2 True
Set SkCircle = Part.SketchManager.CreateCircle(0, 0, 0, k / 2, 0, 0)
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.FeatureManager.FeatureCut False, False, False, 1, 1, k, 0.1, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 0, 1, 1
Part.SelectionManager.EnableContourSelection = 0
Else
MsgBox ("Опаньки;)!Ввели не правильные значения.")
UserForm1.Show
End If
End Sub
Private Sub CommandButton2_Click()
Const TemplateName As String = "D:\APIDrawing.drwdot"
Const TemplateSize As Long = SwConst.swDwgTemplateA1size
Const PaperSize As Long = SwConst.swDwgPaperA1size
Const ScaleNum As Double = 1#
Const ScaleDenom As Double = 2#
Const SaveAsPath As String = "D:\"
Dim ThirdAnglebool As Boolean
Dim swDraw As SldWorks.DrawingDoc
Dim retval As Boolean
Dim errors As Long
Dim warnings As Long
Dim i As Long
Dim swView As SldWorks.View
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swDraw = swApp.NewDocument(TemplateName, PaperSize, 0#, 0#)
ConfigNamesArray = swModel.GetConfigurationNames
For i = 0 To UBound(ConfigNamesArray)
ConfigName = ConfigNamesArray(i)
retval = swDraw.NewSheet3(ConfigName, TemplateSize, _
PaperSize, ScaleNum, ScaleDenom, Not ThirdAngle, "", _
0#, 0#, "")
If ThirdAngle = True Then
retval = swDraw.Create3rdAngleViews2(swModel.GetPathName)
Else
retval = swDraw.Create1stAngleViews2(swModel.GetPathName)
End If
swDraw.InsertModelAnnotations3 0, _
SwConst.swInsertDimensionsMarkedForDrawing + _
SwConst.swInsertNotes, True, True, True, False
Set swView = swDraw.GetFirstView
Do While Not swView Is Nothing
swView.ReferencedConfiguration = ConfigName
Set swView = swView.GetNextView
Loop
swDraw.ForceRebuild
swDraw.SaveAs4 SaveAsPath & ConfigName & ".JPG", _
0, 0, errors, warnings
swDraw.SaveAs4 SaveAsPath & ConfigName & ".TIF", _
0, 0, errors, warnings
Next i
End Sub
Private Sub CommandButton4_Click()
If (TextBox4.Text <> "") And IsNumeric(TextBox4.Text) = True Then
If TextBox4.Text > 0 Then
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Dim swSelMgr As SldWorks.SelectionMgr
Dim count As Long
Dim Feature As SldWorks.Feature
Dim ExtrudeFeatureData As SldWorks.ExtrudeFeatureData2
Dim retval As Boolean
Dim Depth As Double
Dim Factor As Integer
Factor = CInt(UserForm1.TextBox4.Text)
Set swSelMgr = swModel.SelectionManager
count = swSelMgr.GetSelectedObjectCount
If count <> 1 Then
swApp.SendMsgToUser2 "Пожалуйста выберете в дереве детали Вытянуть1.", _
swMbWarning, swMbOk
Me.Hide
End If
Set Feature = swSelMgr.GetSelectedObject5(count)
If Not Feature.GetTypeName = "Extrusion" Then
swApp.SendMsgToUser "Пожалуйста выберете в дереве детали Вытянуть1."
Exit Sub
End If
Set ExtrudeFeatureData = Feature.GetDefinition
Depth = ExtrudeFeatureData.GetDepth(True)
ExtrudeFeatureData.SetDepth True, Factor / 1000
retval = Feature.ModifyDefinition _
(ExtrudeFeatureData, swModel, Nothing)
Else
MsgBox ("Введите значение > нуля")
UserForm1.Show
End If
Else
MsgBox ("Введите числовое значение")
UserForm1.Show
End If
End Sub
Private Sub CommandButton3_Click()
UserForm1.Hide
End Sub