经典图书 以机械加工乙级作为主题的自动建模与装配程式码分享
18500-106201.zip
(370.16 KB, 下载次数: 55)
18500-106201.txt
(41.78 KB, 下载次数: 147)
18500-106201.rar
(14.08 KB, 下载次数: 136)
Imports SolidWorks.Interop.sldworks
Imports SolidWorks.Interop.swconst
Public Class Form1
'SolidWorks物件
Dim SwApp As SldWorks
'尺寸
Dim myDimension As Object
'资料夹名称
Dim PartFolder As String = "\18500-1060201"
'桌面路径
Dim DesktopPath As String = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Desktop)
'警告讯息列举
Dim Warnings As Integer
'零件档路径
Dim PartPath() As String = {DesktopPath & PartFolder & "\支柱.SLDPRT",
DesktopPath & PartFolder & "\立柱.SLDPRT", DesktopPath & PartFolder & "\底座.SLDPRT",
DesktopPath & PartFolder & "\摇臂.SLDPRT", DesktopPath & PartFolder & "\偏心转轴.SLDPRT"}
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Try
If System.IO.Directory.Exists(DesktopPath & PartFolder) Then
System.IO.Directory.Delete(DesktopPath & PartFolder, True)
End If
Catch ex As Exception
MsgBox("无法建立" & PartFolder & "资料夹")
Exit Sub
End Try
'建立资料夹
System.IO.Directory.CreateDirectory(DesktopPath & PartFolder)
SwApp = New SldWorks
'显示应用程式
SwApp.Visible = True
'抑制尺寸修改对话框
SwApp.SetUserPreferenceToggle(10, False)
'建立零件
CreatePart1()
CreatePart2()
CreatePart3()
CreatePart4()
CreatePart5()
'组装零件
Assembly()
'开启尺寸修改对话框
SwApp.SetUserPreferenceToggle(10, True)
End Sub
Sub CreatePart1()
Dim Part As ModelDoc2 = SwApp.NewPart
Part = SwApp.ActiveDoc
'填料-伸长1
Part.Extension.SelectByID2("上基准面", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Part.SketchManager.InsertSketch(True)
Part.ClearSelection2(True)
Part.SketchManager.CreateCenterRectangle(0, 0, 0, 0.014, 0.014, 0)
Part.ClearSelection2(True)
Part.Extension.SelectByID2("Line3", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.AddDimension2(0, 0, -0.03)
Part.ClearSelection2(True)
Part.SketchManager.InsertSketch(True)
Part.ShowNamedView2("*等角视", 7)
Part.ClearSelection2(True)
Part.Extension.SelectByID2("草图1", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
Part.FeatureManager.FeatureExtrusion2(True, False, False, 6, 0, 0.07, 0.01, False,
False, False, False, 0, 0, False, False,
False, False, True, True, True, 0, 0, False)
Part.ClearSelection2(True)
'?16.0mm定位孔1
Part.Extension.SelectByID2("", "FACE", 0, 0.015, 0.011, False, 0, Nothing, 0)
Part.FeatureManager.HoleWizard5(swWzdGeneralHoleTypes_e.swWzdHole, swWzdHoleStandards_e.swStandardISO,
swWzdHoleStandardFastenerTypes_e.swStandardISODowelHole, "?16.0",
swEndConditions_e.swEndCondThroughAll, 0.016, 0, 1,
0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, "", False,
True, True, True, True, False)
Part.Extension.SelectByID2("草图3", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
Part.EditSketch()
Part.ClearSelection2(True)
Part.Extension.SelectByID2("Point1", "SKETCHPOINT", 0, 0, 0, False, 0, Nothing, 0)
Part.Extension.SelectByID2("", "EDGE", 0, -0.035, 0.014, True, 0, Nothing, 0)
Part.AddDimension2(0.03, 0, 0.011)
Part.ClearSelection2(True)
myDimension = Part.Parameter("D1@草图3")
myDimension.SystemValue = 0.052
Part.ClearSelection2(True)
Part.Extension.SelectByID2("Point1", "SKETCHPOINT", 0, 0, 0, False, 0, Nothing, 0)
Part.Extension.SelectByID2("Point1@原点", "EXTSKETCHPOINT", 0, 0, 0, True, 0, Nothing, 0)
Part.SketchAddConstraints("sgVERTICALPOINTS2D")
Part.ClearSelection2(True)
Part.SketchManager.InsertSketch(True)
'M6螺纹孔1
Part.Extension.SelectByID2("", "FACE", 0, -0.025, 0, False, 0, Nothing, 0)
Part.FeatureManager.HoleWizard5(swWzdGeneralHoleTypes_e.swWzdTap, swWzdHoleStandards_e.swStandardISO,
swWzdHoleStandardFastenerTypes_e.swStandardISOTappedHoleBottoming,
"M6", swEndConditions_e.swEndCondBlind, 0.005, 0.012,
0, 0.01, 0, 0, 0, 0, 118 * Math.PI / 180, 1, 0, 0,
-1, -1, -1, "", False, True, True, True, True, False)
Part.Extension.SelectByID2("草图5", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
Part.EditSketch()
Part.ClearSelection2(True)
Part.Extension.SelectByID2("Point1", "SKETCHPOINT", 0, 0, 0, False, 0, Nothing, 0)
Part.Extension.SelectByID2("Point1@原点", "EXTSKETCHPOINT", 0, 0, 0, True, 0, Nothing, 0)
Part.SketchAddConstraints("sgCOINCIDENT")
Part.SketchManager.InsertSketch(True)
'?6.0mm定位孔1
Part.Extension.SelectByID2("", "FACE", -0.006, -0.025, -0.006, False, 0, Nothing, 0)
Part.FeatureManager.HoleWizard5(swWzdGeneralHoleTypes_e.swWzdHole, swWzdHoleStandards_e.swStandardISO,
swWzdHoleStandardFastenerTypes_e.swStandardISODowelHole, "?6.0",
swEndConditions_e.swEndCondBlind, 0.006, 0.012, 0, 0,
118 * Math.PI / 180, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1,
"", False, True, True, True, True, False)
Part.Extension.SelectByID2("草图7", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
Part.EditSketch()
Part.ClearSelection2(True)
Part.Extension.SelectByID2("Point1", "SKETCHPOINT", 0, 0, 0, False, 0, Nothing, 0)
Part.EditDelete()
Part.SketchManager.CreateCornerRectangle(0.009, -0.009, 0, -0.009, 0.009, 0)
Part.SketchManager.CreatePoint(0.009, 0.009, 0)
Part.SketchManager.CreatePoint(-0.009, -0.009, 0)
Part.ClearSelection2(True)
Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.SelectMidpoint()
Part.Extension.SelectByID2("Point1@原点", "EXTSKETCHPOINT", 0, 0, 0, True, 0, Nothing, 0)
Part.SketchAddConstraints("sgVERTICALPOINTS2D")
Part.ClearSelection2(True)
Part.Extension.SelectByID2("Line4", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.SelectMidpoint()
Part.Extension.SelectByID2("Point1@原点", "EXTSKETCHPOINT", 0, 0, 0, True, 0, Nothing, 0)
Part.SketchAddConstraints("sgHORIZONTALPOINTS2D")
Part.ClearSelection2(True)
Part.Extension.SelectByID2("Line4", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.AddDimension2(0.02, -0.035, 0)
Part.ClearSelection2(True)
Part.SketchManager.InsertSketch(True)
Part.SaveAs3(PartPath(0), 0, 2)
SwApp.CloseDoc(Part.GetTitle)
Part = Nothing
End Sub
Sub CreatePart2()
Dim Part As ModelDoc2 = SwApp.NewPart
Part = SwApp.ActiveDoc
'填料-伸长1
Part.Extension.SelectByID2("上基准面", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Part.SketchManager.InsertSketch(True)
Part.ClearSelection2(True)
Part.SketchManager.CreateCenterRectangle(0, 0, 0, 0.014, 0.014, 0)
Part.ClearSelection2(True)
Part.Extension.SelectByID2("Line3", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.AddDimension2(0, 0, -0.03)
Part.ClearSelection2(True)
Part.SketchManager.InsertSketch(True)
Part.ShowNamedView2("*等角视", 7)
Part.ClearSelection2(True)
Part.Extension.SelectByID2("草图1", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
Part.FeatureManager.FeatureExtrusion2(True, False, False, 6, 0, 0.032, 0.01,
False, False, False, False, 0, 0, False,
False, False, False, True, True, True, 0, 0, False)
Part.ClearSelection2(True)
'除料-伸长1
Part.Extension.SelectByID2("", "FACE", 0.014, 0, 0, False, 0, Nothing, 0)
Part.SketchManager.InsertSketch(True)
Part.ClearSelection2(True)
Part.SketchManager.CreateCornerRectangle(0.007, -0.001, 0, -0.007, 0.016, 0)
Part.ClearSelection2(True)
Part.Extension.SelectByID2("Line4", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.Extension.SelectByID2("", "EDGE", 0.014, 0, 0.014, True, 0, Nothing, 0)
Part.AddDimension2(0.014, 0.02, 0.01)
Part.ClearSelection2(True)
Part.Extension.SelectByID2("Line3", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.AddDimension2(0.014, 0.02, 0)
Part.ClearSelection2(True)
Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.Extension.SelectByID2("", "EDGE", 0.014, -0.016, 0, True, 0, Nothing, 0)
Part.AddDimension2(0.014, -0.008, -0.02)
Part.ClearSelection2(True)
myDimension = Part.Parameter("D3@草图2")
myDimension.SystemValue = 0.015
Part.SketchManager.InsertSketch(True)
Part.Extension.SelectByID2("草图2", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
Part.FeatureManager.FeatureCut3(True, False, False, swEndConditions_e.swEndCondThroughAll,
swEndConditions_e.swEndCondThroughAll, 0.01, 0.01, False,
False, False, False, 0, 0, False, False, False, False,
False, True, True, True, True, False, 0, 0, False)
Part.ClearSelection2(True)
'?6.0mm定位孔1
Part.Extension.SelectByID2("", "FACE", 0, 0.008, 0.016, False, 0, Nothing, 0)
Part.FeatureManager.HoleWizard5(swWzdGeneralHoleTypes_e.swWzdHole, swWzdHoleStandards_e.swStandardISO,
swWzdHoleStandardFastenerTypes_e.swStandardISODowelHole, "?6.0",
swEndConditions_e.swEndCondThroughAll, 0.006, 0, 1, 0,
0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, "", False, True,
True, True, True, False)
Part.Extension.SelectByID2("草图4", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
Part.EditSketch()
Part.ClearSelection2(True)
Part.Extension.SelectByID2("Point1", "SKETCHPOINT", 0, 0, 0, False, 0, Nothing, 0)
Part.EditDelete()
Part.SketchManager.CreatePoint(0, 0.008, 0)
Part.ClearSelection2(True)
Part.Extension.SelectByID2("Point1@原点", "EXTSKETCHPOINT", 0, 0, 0, False, 0, Nothing, 0)
Part.Extension.SelectByID2("Point2", "SKETCHPOINT", 0, 0, 0, True, 0, Nothing, 0)
Part.SketchAddConstraints("sgVERTICALPOINTS2D")
Part.ClearSelection2(True)
Part.Extension.SelectByID2("Point2", "SKETCHPOINT", 0, 0, 0, False, 0, Nothing, 0)
Part.Extension.SelectByID2("", "EDGE", 0, -0.016, 0.014, True, 0, Nothing, 0)
Part.AddDimension2(0.02, -0.004, 0.014)
Part.ClearSelection2(True)
Part.SketchManager.InsertSketch(True)
'M6螺纹孔1
Part.Extension.SelectByID2("", "FACE", 0, -0.016, 0, False, 0, Nothing, 0)
Part.FeatureManager.HoleWizard5(swWzdGeneralHoleTypes_e.swWzdTap, swWzdHoleStandards_e.swStandardISO,
swWzdHoleStandardFastenerTypes_e.swStandardISOTappedHoleBottoming,
"M6", swEndConditions_e.swEndCondBlind, 0.005, 0.012,
0, 0.01, 0, 0, 0, 0, 118 * Math.PI / 180, 1, 0, 0, -1,
-1, -1, "", False, True, True, True, True, False)
Part.Extension.SelectByID2("草图6", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
Part.EditSketch()
Part.ClearSelection2(True)
Part.Extension.SelectByID2("Point1", "SKETCHPOINT", 0, 0, 0, False, 0, Nothing, 0)
Part.Extension.SelectByID2("Point1@原点", "EXTSKETCHPOINT", 0, 0, 0, True, 0, Nothing, 0)
Part.SketchAddConstraints("sgCOINCIDENT")
Part.SketchManager.InsertSketch(True)
'?6.0mm定位孔1
Part.Extension.SelectByID2("", "FACE", -0.006, -0.016, -0.006, False, 0, Nothing, 0)
Part.FeatureManager.HoleWizard5(swWzdGeneralHoleTypes_e.swWzdHole, swWzdHoleStandards_e.swStandardISO,
swWzdHoleStandardFastenerTypes_e.swStandardISODowelHole, "?6.0",
swEndConditions_e.swEndCondBlind, 0.006, 0.012, 0, 0,
118 * Math.PI / 180, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, "",
False, True, True, True, True, False)
Part.Extension.SelectByID2("草图8", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
Part.EditSketch()
Part.ClearSelection2(True)
Part.Extension.SelectByID2("Point1", "SKETCHPOINT", 0, 0, 0, False, 0, Nothing, 0)
Part.EditDelete()
Part.SketchManager.CreateCornerRectangle(0.009, -0.009, 0, -0.009, 0.009, 0)
Part.SketchManager.CreatePoint(0.009, 0.009, 0)
Part.SketchManager.CreatePoint(-0.009, -0.009, 0)
Part.ClearSelection2(True)
Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.SelectMidpoint()
Part.Extension.SelectByID2("Point1@原点", "EXTSKETCHPOINT", 0, 0, 0, True, 0, Nothing, 0)
Part.SketchAddConstraints("sgVERTICALPOINTS2D")
Part.ClearSelection2(True)
Part.Extension.SelectByID2("Line4", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.SelectMidpoint()
Part.Extension.SelectByID2("Point1@原点", "EXTSKETCHPOINT", 0, 0, 0, True, 0, Nothing, 0)
Part.SketchAddConstraints("sgHORIZONTALPOINTS2D")
Part.ClearSelection2(True)
Part.Extension.SelectByID2("Line4", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.AddDimension2(0.02, -0.035, 0)
Part.ClearSelection2(True)
Part.SketchManager.InsertSketch(True)
Part.SaveAs3(PartPath(1), 0, 2)
SwApp.CloseDoc(Part.GetTitle)
Part = Nothing
End Sub
Sub CreatePart3()
Dim Part As ModelDoc2 = SwApp.NewPart
Part = SwApp.ActiveDoc
'填料-伸长1
Part.Extension.SelectByID2("上基准面", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Part.SketchManager.InsertSketch(True)
Part.ClearSelection2(True)
Part.SketchManager.CreateCenterRectangle(0, 0, 0, 0.036, 0.036, 0)
Part.ClearSelection2(True)
Part.Extension.SelectByID2("Line3", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.AddDimension2(0, 0, -0.03)
Part.ClearSelection2(True)
Part.SketchManager.InsertSketch(True)
Part.ShowNamedView2("*等角视", 7)
Part.ClearSelection2(True)
Part.Extension.SelectByID2("草图1", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
Part.FeatureManager.FeatureExtrusion2(True, False, False, 6, 0, 0.014, 0.01, False,
False, False, False, 0, 0, False, False, False,
False, True, True, True, 0, 0, False)
Part.ClearSelection2(True)
'除料-伸长1
Part.Extension.SelectByID2("", "FACE", 0, 0, 0.036, False, 0, Nothing, 0)
Part.SketchManager.InsertSketch(True)
Part.ClearSelection2(True)
Part.SketchManager.CreateCornerRectangle(-0.014, -0.007, 0, 0.014, -0.005, 0)
Part.Extension.SelectByID2("", "EDGE", -0.036, 0, 0.036, False, 0, Nothing, 0)
Part.Extension.SelectByID2("Line2", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.AddDimension2(-0.025, -0.012, 0.036)
Part.ClearSelection2(True)
Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.AddDimension2(0, -0.012, 0.036)
Part.ClearSelection2(True)
Part.Extension.SelectByID2("Line2", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.AddDimension2(-0.04, -0.005, 0.036)
Part.ClearSelection2(True)
Part.SketchManager.InsertSketch(True)
Part.Extension.SelectByID2("草图2", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
Part.FeatureManager.FeatureCut3(True, False, False, swEndConditions_e.swEndCondThroughAll,
swEndConditions_e.swEndCondThroughAll, 0.01, 0.01, False, False,
False, False, 0, 0, False, False, False, False, False,
True, True, True, True, False, 0, 0, False)
Part.ClearSelection2(True)
'M6六角承窝头盖螺钉的柱孔1
Part.Extension.SelectByID2("", "FACE", 0, -0.005, 0, False, 0, Nothing, 0)
Part.FeatureManager.HoleWizard5(swWzdGeneralHoleTypes_e.swWzdCounterBore, swWzdHoleStandards_e.swStandardISO,
swWzdHoleStandardFastenerTypes_e.swStandardISOSocketHeadCap, "M6",
swEndConditions_e.swEndCondThroughAll, 0.0065, -1, -1, 0.011, 0.0065,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "", False, False, False, False, False, False)
Part.Extension.SelectByID2("草图4", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
Part.EditSketch()
Part.ClearSelection2(True)
Part.Extension.SelectByID2("Point1", "SKETCHPOINT", 0, 0, 0, False, 0, Nothing, 0)
Part.EditDelete()
Part.SketchManager.CreatePoint(0, -0.014, 0)
Part.SketchManager.CreatePoint(0, 0.014, 0)
Part.Extension.SelectByID2("Point2", "SKETCHPOINT", 0, 0, 0, False, 0, Nothing, 0)
Part.Extension.SelectByID2("Point1@原点", "EXTSKETCHPOINT", 0, 0, 0, True, 0, Nothing, 0)
Part.Extension.SelectByID2("Point3", "SKETCHPOINT", 0, 0, 0, True, 0, Nothing, 0)
Part.SketchAddConstraints("sgVERTICALPOINTS2D")
Part.ClearSelection2(True)
Part.Extension.SelectByID2("", "EDGE", 0, 0.007, 0.036, False, 0, Nothing, 0)
Part.Extension.SelectByID2("Point2", "SKETCHPOINT", 0, 0, 0, True, 0, Nothing, 0)
Part.AddDimension2(0.045, 0.007, 0.025)
Part.ClearSelection2(True)
Part.Extension.SelectByID2("Point2", "SKETCHPOINT", 0, 0, 0, False, 0, Nothing, 0)
Part.Extension.SelectByID2("Point3", "SKETCHPOINT", 0, 0, 0, True, 0, Nothing, 0)
Part.AddDimension2(0.045, 0.007, 0)
Part.SketchManager.InsertSketch(True)
'?6.0mm定位孔1
Part.Extension.SelectByID2("", "FACE", 0, 0.007, 0, False, 0, Nothing, 0)
Part.FeatureManager.HoleWizard5(swWzdGeneralHoleTypes_e.swWzdHole, swWzdHoleStandards_e.swStandardISO,
swWzdHoleStandardFastenerTypes_e.swStandardISODowelHole, "?6.0",
swEndConditions_e.swEndCondBlind, 0.006, 0.012, 0, 0,
118 * Math.PI / 180, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1,
"", False, True, True, True, True, False)
Part.Extension.SelectByID2("草图6", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
Part.EditSketch()
Part.ClearSelection2(True)
Part.Extension.SelectByID2("Point1", "SKETCHPOINT", 0, 0, 0, False, 0, Nothing, 0)
Part.EditDelete()
Part.SketchManager.CreateCornerRectangle(-0.009, -0.023, 0, 0.009, -0.005, 0)
Part.SketchManager.CreateCornerRectangle(-0.009, 0.005, 0, 0.009, 0.023, 0)
Part.SketchManager.CreatePoint(-0.009, 0.023, 0)
Part.SketchManager.CreatePoint(0.009, 0.005, 0)
Part.SketchManager.CreatePoint(-0.009, -0.005, 0)
Part.SketchManager.CreatePoint(0.009, -0.023, 0)
Part.Extension.SelectByID2("Line2", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.Extension.SelectByID2("Line6", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.SketchAddConstraints("sgCOLINEAR")
Part.ClearSelection2(True)
Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.Extension.SelectByID2("Line5", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.SketchAddConstraints("sgSAMELENGTH")
Part.ClearSelection2(True)
Part.Extension.SelectByID2("", "EDGE", 0, 0.007, 0.036, False, 0, Nothing, 0)
Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.AddDimension2(-0.045, 0.007, 0.03)
Part.ClearSelection2(True)
Part.Extension.SelectByID2("", "EDGE", 0, 0.007, 0.036, False, 0, Nothing, 0)
Part.Extension.SelectByID2("Line5", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.AddDimension2(-0.05, 0.007, 0.015)
Part.ClearSelection2(True)
Part.Extension.SelectByID2("", "EDGE", -0.036, 0.007, 0, False, 0, Nothing, 0)
Part.Extension.SelectByID2("Line2", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.AddDimension2(-0.022, 0.007, 0.05)
Part.ClearSelection2(True)
Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.AddDimension2(0, 0.007, 0.05)
Part.ClearSelection2(True)
Part.SketchManager.InsertSketch(True)
'导角1
Part.Extension.SelectByID2("", "EDGE", -0.036, 0.007, 0, False, 0, Nothing, 0)
Part.Extension.SelectByID2("", "EDGE", 0.036, 0.007, 0, True, 0, Nothing, 0)
Part.FeatureManager.InsertFeatureChamfer(4, 1, 0.002, 45 * Math.PI / 180, 0, 0, 0, 0)
Part.ClearSelection2(True)
Part.SaveAs3(PartPath(2), 0, 2)
SwApp.CloseDoc(Part.GetTitle)
Part = Nothing
End Sub
Sub CreatePart4()
Dim Part As ModelDoc2 = SwApp.NewPart
Part = SwApp.ActiveDoc
'填料-伸长1
Part.Extension.SelectByID2("前基准面", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Part.SketchManager.InsertSketch(True)
Part.ClearSelection2(True)
Part.SketchManager.CreateSketchSlot(swSketchSlotCreationType_e.swSketchSlotCreationType_center_line,
swSketchSlotLengthType_e.swSketchSlotLengthType_CenterCenter,
0.016, 0, 0, 0, 0.028, 0, 0, 0, 0, 0, 1, False)
Part.SketchManager.CreateSketchSlot(swSketchSlotCreationType_e.swSketchSlotCreationType_center_line,
swSketchSlotLengthType_e.swSketchSlotLengthType_CenterCenter,
0.01, 0, 0, 0, 0.005, 0, 0, 0, 0, 0, 1, False)
Part.SketchManager.CreateCircle(-0.028, 0, 0, -0.028, 0.003, 0)
Part.SketchManager.CreateCircle(0.028, 0, 0, 0.028, 0.003, 0)
Part.Extension.SelectByID2("Arc3", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.Extension.SelectByID2("Arc4", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.AddDimension2(0, -0.02, 0)
Part.ClearSelection2(True)
Part.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.Extension.SelectByID2("Arc2", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.AddDimension2(0, -0.025, 0)
Part.ClearSelection2(True)
Part.Extension.SelectByID2("Line5", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.Extension.SelectByID2("Line6", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.AddDimension2(0.02, 0.015, 0)
Part.ClearSelection2(True)
Part.Extension.SelectByID2("Line3", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.Extension.SelectByID2("Line2", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.AddDimension2(0.045, 0, 0)
Part.ClearSelection2(True)
Part.Extension.SelectByID2("Arc5", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.AddDimension2(-0.048, 0, 0)
Part.ClearSelection2(True)
Part.Extension.SelectByID2("Arc5", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.Extension.SelectByID2("Arc6", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.SketchAddConstraints("sgSAMELENGTH")
Part.SketchManager.InsertSketch(True)
Part.ShowNamedView2("*等角视", 7)
Part.ClearSelection2(True)
Part.Extension.SelectByID2("草图1", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
Part.FeatureManager.FeatureExtrusion2(True, False, False, 6, 0, 0.014, 0.01, False,
False, False, False, 0, 0, False, False, False,
False, True, True, True, 0, 0, False)
Part.ClearSelection2(True)
Part.SaveAs3(PartPath(3), 0, 2)
SwApp.CloseDoc(Part.GetTitle)
Part = Nothing
End Sub
Sub CreatePart5()
Dim Part As ModelDoc2 = SwApp.NewPart
Part = SwApp.ActiveDoc
'旋转1
Part.Extension.SelectByID2("前基准面", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Part.SketchManager.InsertSketch(True)
Part.ClearSelection2(True)
Part.SketchManager.CreateLine(0, 0, 0, 0, 0.018, 0)
Part.SketchManager.CreateLine(0, 0.018, 0, 0.015, 0.018, 0)
Part.SketchManager.CreateLine(0.015, 0.018, 0, 0.015, 0.014, 0)
Part.SketchManager.CreateLine(0.015, 0.014, 0, 0.027, 0.014, 0)
Part.SketchManager.CreateLine(0.027, 0.014, 0, 0.027, 0.008, 0)
Part.SketchManager.CreateLine(0.027, 0.008, 0, 0.061, 0.008, 0)
Part.SketchManager.CreateLine(0.061, 0.008, 0, 0.061, 0, 0)
Part.SketchManager.CreateLine(0.061, 0, 0, 0, 0, 0)
Part.SketchManager.CreateCenterLine(0, 0, 0, 0.1, 0, 0)
Part.Extension.SelectByID2("Line6", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.AddDimension2(0.045, -0.01, 0)
Part.Extension.SelectByID2("Line4", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.AddDimension2(0.02, -0.01, 0)
Part.Extension.SelectByID2("Line2", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.AddDimension2(0.007, -0.01, 0)
Part.Extension.SelectByID2("Line6", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.Extension.SelectByID2("Line9", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.AddDimension2(0.11, 0, 0)
Part.Extension.SelectByID2("Line4", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.Extension.SelectByID2("Line9", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.AddDimension2(0.12, 0, 0)
Part.Extension.SelectByID2("Line2", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.Extension.SelectByID2("Line9", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.AddDimension2(0.13, 0, 0)
Part.SketchManager.InsertSketch(True)
Part.ShowNamedView2("*等角视", 7)
Part.Extension.SelectByID2("草图1", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
Part.Extension.SelectByID2("Line9@草图1", "EXTSKETCHSEGMENT", 0, 0, 0, True, 16, Nothing, 0)
Part.FeatureManager.FeatureRevolve2(True, True, False, False, False, False, 0, 0, 2 * Math.PI, 0, False, False, 0.01, 0.01, 0, 0, 0, True, True, True)
Part.ClearSelection2(True)
'旋转2
Part.Extension.SelectByID2("前基准面", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Part.SketchManager.InsertSketch(True)
Part.ClearSelection2(True)
Part.SketchManager.CreateCornerRectangle(0.061, 0.008, 0, 0.076, 0.003, 0)
Part.ClearSelection2(True)
Part.SketchManager.CreateCenterLine(0.061, 0.003, 0, 0.081, 0.003, 0)
Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.AddDimension2(0.68, 0.15, 0)
Part.ClearSelection2(True)
Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.Extension.SelectByID2("Line5", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.AddDimension2(0.85, 0.003, 0)
Part.SketchManager.InsertSketch(True)
Part.Extension.SelectByID2("草图2", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
Part.Extension.SelectByID2("Line5@草图2", "EXTSKETCHSEGMENT", 0, 0, 0, True, 16, Nothing, 0)
Part.FeatureManager.FeatureRevolve2(True, True, False, False, False, False, 0, 0, 2 * Math.PI, 0, False, False, 0.01, 0.01, 0, 0, 0, True, True, True)
Part.ViewZoomtofit2()
'倒角1
Part.Extension.SelectByID2("", "EDGE", 0.076, 0.008, 0, False, 0, Nothing, 0)
Part.Extension.SelectByID2("", "EDGE", 0.015, 0.018, 0, True, 0, Nothing, 0)
Part.Extension.SelectByID2("", "EDGE", 0, 0.018, 0, True, 0, Nothing, 0)
Part.FeatureManager.InsertFeatureChamfer(4, 1, 0.001, 45 * Math.PI / 180, 0, 0, 0, 0)
Part.SaveAs3(PartPath(4), 0, 2)
SwApp.CloseDoc(Part.GetTitle)
Part = Nothing
End Sub
Sub Assembly()
'建立组合件环境(文档属性)
Dim swModel As ModelDoc2 = SwApp.NewAssembly()
'建立组合件环境
Dim SwAssy As AssemblyDoc = swModel
swModel.ShowNamedView2("*等角视", 7)
'swModel.ViewZoomtofit2()
'取得文件焦点
swModel = SwApp.ActiveDoc
'取得组件档Title
Dim AssemblyName As String = swModel.GetTitle
Dim TitleString() As String = Split(AssemblyName, ".")
Dim AssemblyTitle = TitleString(0)
'加入零件
For Each Index As String In PartPath
Dim Part As ModelDoc2 = SwApp.OpenDoc6(Index, swDocumentTypes_e.swDocPART, 0, "", 0, Warnings)
Dim GetPartTitle As String = Part.GetTitle
Dim GetTitleString = Split(GetPartTitle, ".")
Dim PartTitle As String = GetTitleString(0)
'将焦点放置于组合件环境
swModel = SwApp.ActivateDoc2(AssemblyTitle, False, 0)
swModel.ClearSelection2(True)
'将零件插入至组合件
SwAssy.AddComponent4(Index, "", 0, 0, 0)
'焦点放至于被插入的零组件
Part = SwApp.ActivateDoc2(Index, False, 0)
'释放零件参考
Part = Nothing
'关闭零件
SwApp.CloseDoc(PartTitle)
Next
'遍歷零件名称
Dim SwConf As Configuration = swModel.GetActiveConfiguration
Dim SwRootComp As Component2 = SwConf.GetRootComponent
Dim SwComp As Component2 = SwRootComp
Dim vChlidComp = SwComp.GetChildren
Dim SwChildComp As Component2
Dim SwCompConfig As Configuration = SwConf
Dim ComponentNaem(UBound(vChlidComp)) As String
'Dim CreferAs string(零组件模型组态)
For i = 0 To UBound(vChlidComp)
SwChildComp = vChlidComp(i)
ComponentNaem(i) = SwChildComp.Name2
'Crefer = SwChildComp.ReferencedConfiguration
Next
'移动零件位置
For Each Index As String In ComponentNaem
Select Case Index
Case "支柱-1"
'零件浮动
swModel.Extension.SelectByID2(Index & "@" & AssemblyTitle, "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
SwAssy.UnfixComponent()
'移动零件位置
DragDropComponent(swModel, Index & "@" & AssemblyTitle, {1, 0, 0}, {0, 1, 0}, {0, 0, 1}, 0, 0.1, 0)
Case "立柱-1"
'移动零件位置
DragDropComponent(swModel, Index & "@" & AssemblyTitle, {1, 0, 0}, {0, 1, 0}, {0, 0, 1}, 0, 0.2, 0)
Case "底座-1"
'移动零件位置
DragDropComponent(swModel, Index & "@" & AssemblyTitle, {1, 0, 0}, {0, 1, 0}, {0, 0, 1}, 0, 0, 0)
'零件固定
swModel.Extension.SelectByID2(Index & "@" & AssemblyTitle, "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
SwAssy.FixComponent()
Case "摇臂-1"
'移动零件位置
DragDropComponent(swModel, Index & "@" & AssemblyTitle, {0, -1, 0}, {1, 0, 0}, {0, 0, 1}, 0, 0.3, 0)
Case "偏心转轴-1"
'移动零件位置
DragDropComponent(swModel, Index & "@" & AssemblyTitle, {0, 0, 1}, {0, 1, 0}, {-1, 0, 0}, 0, 0.4, 0)
End Select
Next
'调整可视范围
swModel.ViewZoomtofit2()
'定义结合条件
Dim longstatus As Integer
'_______________________________________支柱__________________________________________
'同心
swModel.Extension.SelectByID2("", "FACE", -0.009, 0, -0.0217, False, 0, Nothing, 0)
swModel.Extension.SelectByID2("", "FACE", -0.009, 0.07, -0.006, True, 0, Nothing, 0)
SwAssy.AddMate4(swMateType_e.swMateCONCENTRIC, swMateAlign_e.swAlignSAME,
False, 0, 0, 0, 0, 0, 0, 0,
0, False, False, longstatus)
'同心
swModel.Extension.SelectByID2("", "FACE", 0, 0.002, -0.01075, False, 0, Nothing, 0)
swModel.Extension.SelectByID2("", "FACE", 0, 0.07, -0.01175, True, 0, Nothing, 0)
SwAssy.AddMate4(swMateType_e.swMateCONCENTRIC, swMateAlign_e.swMateAlignALIGNED,
False, 0, 0, 0, 0, 0, 0, 0,
0, False, False, longstatus)
'重合
swModel.Extension.SelectByID2("", "FACE", 0.01, 0.065, -0.01, False, 0, Nothing, 0)
swModel.Extension.SelectByID2("", "FACE", 0, 0.007, 0, True, 0, Nothing, 0)
SwAssy.AddMate4(swMateType_e.swMateCOINCIDENT, swMateAlign_e.swAlignSAME,
False, 0, 0, 0, 0, 0, 0, 0,
0, False, False, longstatus)
'___________________________________偏心转轴________________________________________
'重合
swModel.Extension.SelectByID2("", "FACE", 0, 0.042, -0.028, False, 0, Nothing, 0)
swModel.Extension.SelectByID2("", "FACE", 0, 0.39, 0.027, True, 0, Nothing, 0)
SwAssy.AddMate4(swMateType_e.swMateCOINCIDENT, swMateAlign_e.swAlignSAME,
False, 0, 0, 0, 0, 0, 0, 0,
0, False, False, longstatus)
'同心
swModel.Extension.SelectByID2("", "FACE", 0, 0.051, -0.014, False, 0, Nothing, 0)
swModel.Extension.SelectByID2("", "FACE", 0, 0.4, -0.014, True, 0, Nothing, 0)
SwAssy.AddMate4(swMateType_e.swMateCONCENTRIC, swMateAlign_e.swAlignSAME,
False, 0, 0, 0, 0, 0, 0, 0,
0, False, False, longstatus)
'_______________________________________立柱__________________________________________
'同心
swModel.Extension.SelectByID2("", "FACE", 0, 0, 0.01075, False, 0, Nothing, 0)
swModel.Extension.SelectByID2("", "FACE", 0, 0.185, 0.0025, True, 0, Nothing, 0)
SwAssy.AddMate4(swMateType_e.swMateCONCENTRIC, swMateAlign_e.swMateAlignALIGNED,
False, 0, 0, 0, 0, 0, 0, 0,
0, False, False, longstatus)
'同心
swModel.Extension.SelectByID2("", "FACE", -0.009, 0, 0.002, False, 0, Nothing, 0)
swModel.Extension.SelectByID2("", "FACE", -0.009, 0.185, 0.002, True, 0, Nothing, 0)
SwAssy.AddMate4(swMateType_e.swMateCONCENTRIC, swMateAlign_e.swMateAlignANTI_ALIGNED,
False, 0, 0, 0, 0, 0, 0, 0,
0, False, False, longstatus)
'重合
swModel.Extension.SelectByID2("", "FACE", 0, 0.184, 0.002, False, 0, Nothing, 0)
swModel.Extension.SelectByID2("", "FACE", 0, 0.007, 0.002, True, 0, Nothing, 0)
SwAssy.AddMate4(swMateType_e.swMateCOINCIDENT, swMateAlign_e.swAlignSAME,
False, 0, 0, 0, 0, 0, 0, 0,
0, False, False, longstatus)
'_______________________________________摇臂__________________________________________
'同心
swModel.Extension.SelectByID2("", "FACE", 0, 0.272, 0, False, 0, Nothing, 0)
swModel.Extension.SelectByID2("", "FACE", 0, 0.028, 0.025, True, 0, Nothing, 0)
SwAssy.AddMate4(swMateType_e.swMateCONCENTRIC, swMateAlign_e.swMateAlignANTI_ALIGNED,
False, 0, 0, 0, 0, 0, 0, 0,
0, False, False, longstatus)
'重合
swModel.Extension.SelectByID2("", "FACE", 0, 0.045, 0.007, False, 0, Nothing, 0)
swModel.Extension.SelectByID2("", "FACE", 0, 0.025, 0.021, True, 0, Nothing, 0)
SwAssy.AddMate4(swMateType_e.swMateCOINCIDENT, swMateAlign_e.swAlignSAME,
False, 0, 0, 0, 0, 0, 0, 0,
0, False, False, longstatus)
SwAssy.AddMate4(swMateType_e.swMateCOINCIDENT, swMateAlign_e.swAlignSAME,
False, 0, 0, 0, 0, 0, 0, 0,
0, False, False, longstatus)
'相切
swModel.Extension.SelectByID2("", "FACE", 0, 0.057, 0.01, False, 0, Nothing, 0)
swModel.Extension.SelectByID2("", "FACE", 0.005, 0.057, 0.01, True, 0, Nothing, 0)
SwAssy.AddMate4(swMateType_e.swMateTANGENT, swMateAlign_e.swAlignSAME,
False, 0, 0, 0, 0, 0, 0, 0,
0, False, False, longstatus)
'重新计算
swModel.EditRebuild3()
'零件浮动
swModel.Extension.SelectByID2("底座-1" & "@" & AssemblyTitle, "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
SwAssy.UnfixComponent()
'移动零件位置
DragDropComponent(swModel, "底座-1" & "@" & AssemblyTitle, {1, 0, 0}, {0, 1, 0}, {0, 0, 1}, 0, 0, 0)
'零件固定
swModel.Extension.SelectByID2("底座-1" & "@" & AssemblyTitle, "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
SwAssy.FixComponent()
'取消选取
swModel.ClearSelection2(True)
'调整可视范围
swModel.ViewZoomtofit2()
'存档
swModel.SaveAs3(DesktopPath & PartFolder & "\18500-106201.SLDASM", 0, 2)
End Sub
Sub DragDropComponent(ByVal Model As ModelDoc2, ByVal DragDropPart As String,
ByVal i_Vector() As Double, ByVal j_Vector() As Double, ByVal k_Vector() As Double,
ByVal X_Move As Double, ByVal Y_Move As Double, ByVal Z_Move As Double)
Dim swModel As ModelDoc2 = Model
Dim swAssy As AssemblyDoc = swModel
Dim swDragOp As DragOperator = swAssy.GetDragOperator '定义托放操作物件
Dim swSelMgr As SelectionMgr = swModel.SelectionManager '定义选取操作物件
Dim swMathUtil As MathUtility = SwApp.GetMathUtility '获取座标转换相关数学务件
'定义拖曳点位置参数
Dim swXform As MathTransform = swMathUtil.CreateTransform({i_Vector(0), i_Vector(1), i_Vector(2),
j_Vector(0), j_Vector(1), j_Vector(2),
k_Vector(0), k_Vector(1), k_Vector(2),
X_Move, Y_Move, Z_Move,
1, 0, 0, 0})
'选取要移动的零件
swModel.Extension.SelectByID2(DragDropPart, "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
'获取选定对象的数量
Dim swComp As Component2 = swSelMgr.GetSelectedObjectsComponent2(1)
'AtIndex
'-1 = All selections regardless of marks 所有选择,无论标记
' 0 = only the selections without marks 只有没有标记的选择
'Any other value = Value that was used to mark And select an object 用于标记和选择对象的值
'将组件添加到要拖动的组件列表中(拖曳组件清单,是否连续选取)
swDragOp.AddComponent(swComp, False)
'获取或设置碰撞检测设置
swDragOp.CollisionDetectionEnabled = False
'获取或设置动态清除设置
swDragOp.DynamicClearanceEnabled = False
'获取或设置转换的类型
swDragOp.TransformType = 1
'Translation 0 Transform Is translation only
'Axial Rotation 1 Transform Is rotation only
'General 2 Transform can be translation Or rotation Or both
'获取或设置此拖动操作的拖动模式
swDragOp.DragMode = 2
'0 = Maximum move (move geometries rigidly, if possible)
'1 = Minimum move (move the smallest number of geometries)
'2 = Relaxation (solve geometries using relaxation)
'3 = No propagation (move geometries with minimal transform propagation)
'启动拖动操作
swDragOp.BeginDrag()
'拖曳至指定位置
swComp.Transform2 = swXform
'重新计算
swModel.EditRebuild3()
'终止拖动操作
swDragOp.EndDrag()
End Sub
End Class
|