|
以機械加工乙級作為主題的自動建模與裝配程式碼分享
- 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 Crefer As 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
複製代碼
|
本帖子中包含更多資源
您需要 登錄 才可以下載或查看,沒有賬號?註冊
x
|