11
Міністерство освіти і науки, молоді та спорту України Національний технічний університет «Харківський політехнічний інститут» Кафедри ТММ і САПР Звіт Про виконання лабораторної роботи №3,4 «Створення макросу з додаванням креслення та зміни фітчеру» Виконав: Ст. Гр. ТМ – 88Б Козуб П.С. Перевірив: Мартиненко О.В.

Макрос3,4 Козуб

Embed Size (px)

Citation preview

Page 1: Макрос3,4 Козуб

Міністерство освіти і науки, молоді та спорту України

Національний технічний університет

«Харківський політехнічний інститут»

Кафедри ТММ і САПР

Звіт

Про виконання лабораторної роботи №3,4

«Створення макросу з додаванням креслення та зміни фітчеру»

Виконав: Ст. Гр. ТМ – 88Б Козуб П.С.

Перевірив: Мартиненко О.В.

Харків 2011р.

Page 2: Макрос3,4 Козуб

Зображення створеного креслення:

Page 3: Макрос3,4 Козуб

Зміна фітчеру:

Захист від невірно введених значень:

Page 4: Макрос3,4 Козуб

Лістинг макросу:

Private Sub CommandButton1_Click()

Dim swApp As Object

Dim Part As Object

Dim SelMgr As Object

Dim boolstatus As Boolean

Page 5: Макрос3,4 Козуб

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)

Page 6: Макрос3,4 Козуб

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:\"

Page 7: Макрос3,4 Козуб

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

Page 8: Макрос3,4 Козуб

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

Page 9: Макрос3,4 Козуб

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