Code:
Private Sub Ausgabe_SldWorks() '**************************
'* Ausgabe SolidWorks *
'**************************
TextBox2.Text = TextBox2.Text + vbCrLf + "Funktion 'Ausgabe_SldWorks' aufgerufen"
'Definition der Variablen
Dim swApp As SldWorks.SldWorks
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Const phi As Double = 10 ^ (1 / 20)
'*********************
'* SolidWorks öffnen *
'*********************
'Eine Instanz von SolidWorks öffnen
swApp = New SldWorks.SldWorks()
swApp.Visible = True
swApp.UserControl = True
TextBox2.Text = TextBox2.Text + vbCrLf + "Instanz von SolidWorks geöffnet"
'Dokument öffnen
Part = swApp.OpenDoc6("\\Kanisserver\Users\sauer\Beschaufelung\CAD\" & modelname & ".SLDPRT", 1, 0, "", longstatus, longwarnings)
Part = swApp.ActivateDoc2(modelname, False, longstatus)
TextBox2.Text = TextBox2.Text + vbCrLf + "Teil geöffnet"
'Ansicht aktivieren
swApp.ActiveDoc.ActiveView.FrameLeft = 0
swApp.ActiveDoc.ActiveView.FrameTop = 0
swApp.ActiveDoc.ActiveView.FrameState = 1
swApp.ActiveDoc.ActiveView.FrameState = 1
TextBox2.Text = TextBox2.Text + vbCrLf + "Ansicht aktiviert"
'********************************
'* Werte in SolidWorks einlesen *
'********************************
TextBox2.Text = TextBox2.Text + vbCrLf + "Werte in SolidWorks einlesen"
'********************
'* Leitschaufel *
'********************
If RadioButton3.Checked Then
'Profil
Part.Parameter("D7@Profil").SystemValue = Part.Parameter("D7@Kanis_Profil_17_DH").SystemValue / phi ^ normstufe
Part.Parameter("D6@Profil").SystemValue = Part.Parameter("D6@Kanis_Profil_17_DH").SystemValue / phi ^ normstufe
Part.Parameter("D5@Profil").SystemValue = Part.Parameter("D5@Kanis_Profil_17_DH").SystemValue / phi ^ normstufe
Part.Parameter("D4@Profil").SystemValue = Part.Parameter("D4@Kanis_Profil_17_DH").SystemValue / phi ^ normstufe
Part.Parameter("D3@Profil").SystemValue = Part.Parameter("D3@Kanis_Profil_17_DH").SystemValue / phi ^ normstufe
Part.Parameter("D2@Profil").SystemValue = Part.Parameter("D2@Kanis_Profil_17_DH").SystemValue / phi ^ normstufe
Part.Parameter("D1@Profil").SystemValue = Part.Parameter("D1@Kanis_Profil_17_DH").SystemValue / phi ^ normstufe
Part.Parameter("D8@Profil").SystemValue = Part.Parameter("D8@Kanis_Profil_17_DH").SystemValue / phi ^ normstufe
Part.Parameter("D12@Profil").SystemValue = (100 / phi ^ normstufe) / 1000
'Gesamtlänge des Profils DLTLE
Part.Parameter("D1@Profil_Austragen").SystemValue = Feld(1, (Stufenzahl1 * 4) - 1 + gewstufe, 0) / 1000 'Hier muss noch die aktuelle Stufenzahl automatisch abgefragt werden
'Schnitt Di
'Länge der Linie
Part.Parameter("D1@Di").SystemValue = Feld(10, feldstufe, 0) * 2 / 1000
'Überstand von der Ebene hinten
Part.Parameter("D3@Di").SystemValue = Feld(10, feldstufe, 0) / 2 / 1000
'Innerer Durchmesser
Part.Parameter("D2@Di").SystemValue = Feld(3, feldstufe, 0) / 1000
'Deckband
'Innerer Durchmesser
Part.Parameter("D1@Deckband_roh").SystemValue = Feld(3, feldstufe, 0) / 1000
'Abstand von Ursprung bis Abströmkante
Part.Parameter("D2@Deckband_roh").SystemValue = (Feld(6, feldstufe + Stufenzahl1 * 2 + 1, 0) - Feld(7, feldstufe + Stufenzahl1 * 2 + 1, 0)) / 1000 + 0.5 / 1000
'Abstand von Ursprung bis Anströmkante
Part.Parameter("D3@Deckband_roh").SystemValue = (Feld(6, feldstufe + Stufenzahl1 * 2, 0) - Feld(7, feldstufe + Stufenzahl1 * 2, 0)) / 1000 + Feld(10, feldstufe, 0) / 1000 + 0.5 / 1000
'Dicke des Deckbandes
Part.Parameter("D4@Deckband_roh").SystemValue = D4_Deckband_roh
'Schnitt Da
Part.Parameter("D1@Da").SystemValue = Feld(10, feldstufe, 0) / 2 / 1000
'Länge der Linie
Part.Parameter("D2@Da").SystemValue = Feld(10, feldstufe, 0) * 2 / 1000
'Innerer Durchmesser + Länge der Schaufel
Part.Parameter("D3@Da").SystemValue = Feld(3, feldstufe, 0) / 1000 + Feld(6, feldstufe, 0) * 2 / 1000
'Fuß
Part.Parameter("D1@Fuß").SystemValue = Feld(3, feldstufe, 0) / 1000 + Feld(6, feldstufe, 0) * 2 / 1000
Part.Parameter("D2@Fuß").SystemValue = (Feld(1, Stufenzahl1 * 4 - 1 + gewstufe, 0) - 1) / 1000
Part.Parameter("D3@Fuß").SystemValue = Part.Parameter("D7@Kanis_Profil_17_DH").SystemValue / phi ^ normstufe
Part.Parameter("D4@Fuß").SystemValue = Feld(10, feldstufe, 0) / 1000 - Part.Parameter("D7@Kanis_Profil_17_DH").SystemValue / phi ^ normstufe
Part.Parameter("D5@Fuß").SystemValue = 5 / 1000
Part.Parameter("D6@Fuß").SystemValue = 7 / 1000
Part.Parameter("D7@Fuß").SystemValue = 5 / 1000
'Orginal der Schnittebene
'Verdrehwinkel
Part.Parameter("D1@Verdrehwinkel").SystemValue = verdrehwinkel
'Verschieben der Ebene für Punkt für Ebene
Part.Parameter("D1@Ebene_oben_Versatz").SystemValue = Feld(3, feldstufe, 0) / 1000 / 2
'Definiton des Schwerpunktes
Part.Parameter("D1@Ursprung_Versatz").SystemValue = schwery / phi ^ normstufe
Part.Parameter("D2@Ursprung_Versatz").SystemValue = schwerx / phi ^ normstufe
'Schnittebene links
Part.Parameter("D1@Schnittebene_links").SystemValue = winkel_schnittebene * Math.PI / 180
'Schnittebene rechts
Part.Parameter("D1@Schnittebene_rechts").SystemValue = 2 * Math.PI - winkel_schnittebene * Math.PI / 180
TextBox2.Text = TextBox2.Text + vbCrLf + "Werte geändert"
'Teil neu aufbauen
boolstatus = Part.EditRebuild3
TextBox2.Text = TextBox2.Text + vbCrLf + "Teil neu aufgebaut"
'********************
'* Laufschaufel *
'********************
Else
'Profil
Part.Parameter("D1@Profil").SystemValue = Part.Parameter("D1@Kanis_Profil_17_DH").SystemValue / phi ^ normstufe
Part.Parameter("D2@Profil").SystemValue = Part.Parameter("D2@Kanis_Profil_17_DH").SystemValue / phi ^ normstufe
Part.Parameter("D3@Profil").SystemValue = Part.Parameter("D3@Kanis_Profil_17_DH").SystemValue / phi ^ normstufe
Part.Parameter("D4@Profil").SystemValue = Part.Parameter("D4@Kanis_Profil_17_DH").SystemValue / phi ^ normstufe
Part.Parameter("D5@Profil").SystemValue = Part.Parameter("D5@Kanis_Profil_17_DH").SystemValue / phi ^ normstufe
Part.Parameter("D6@Profil").SystemValue = Part.Parameter("D6@Kanis_Profil_17_DH").SystemValue / phi ^ normstufe
Part.Parameter("D7@Profil").SystemValue = Part.Parameter("D7@Kanis_Profil_17_DH").SystemValue / phi ^ normstufe
Part.Parameter("D8@Profil").SystemValue = Part.Parameter("D8@Kanis_Profil_17_DH").SystemValue / phi ^ normstufe
Part.Parameter("D9@Profil").SystemValue = Part.Parameter("D9@Kanis_Profil_17_DH").SystemValue
Part.Parameter("D10@Profil").SystemValue = 16 * Math.PI / 180
Part.Parameter("D11@Profil").SystemValue = Part.Parameter("D11@Kanis_Profil_17_DH").SystemValue
Part.Parameter("D12@Profil").SystemValue = (100 / phi ^ normstufe) / 1000
Part.Parameter("D13@Profil").SystemValue = Part.Parameter("D14@Kanis_Profil_17_DH").SystemValue / phi ^ normstufe
Part.Parameter("D14@Profil").SystemValue = Part.Parameter("D13@Kanis_Profil_17_DH").SystemValue / phi ^ normstufe
'Profil auf Länge DLTLE austragen
Part.Parameter("D1@Profil_Austragen").SystemValue = Feld(1, (Stufenzahl1 * 4) + gewstufe - 1, 0) / 1000
'Schnitt Di
'Länge der Linie
Part.Parameter("D1@Di").SystemValue = Feld(10, feldstufe, 0) * 2 / 1000
'Innerer Durchmesser
Part.Parameter("D2@Di").SystemValue = Feld(3, feldstufe, 0) / 1000
'Schnitt Da
'Länge der Linie
Part.Parameter("D1@Da").SystemValue = Feld(10, feldstufe, 0) * 2 / 1000
'Innerer Durchmesser + Länge der Schaufel
Part.Parameter("D2@Da").SystemValue = Feld(3, feldstufe, 0) / 1000 + Feld(6, feldstufe, 0) * 2 / 1000
'Fuss
'Winkel 30° oben
Part.Parameter("D2@Nib_Fuss").SystemValue = 30 * Math.PI / 180
'B2
Part.Parameter("D3@Nib_Fuss").SystemValue = Feld(2, fusszeile, 2) / 1000
'B1
Part.Parameter("D4@Nib_Fuss").SystemValue = Feld(1, fusszeile, 2) / 1000
'Fase1
Part.Parameter("D5@Nib_Fuss").SystemValue = Feld(7, fusszeile, 2) / 1000
'Winkel 45°
Part.Parameter("D6@Nib_Fuss").SystemValue = 45 * Math.PI / 180
'H1
Part.Parameter("D7@Nib_Fuss").SystemValue = Feld(3, fusszeile, 2) / 1000
'H2
Part.Parameter("D8@Nib_Fuss").SystemValue = Feld(4, fusszeile, 2) / 1000
'Winkel 30° unten
Part.Parameter("D9@Nib_Fuss").SystemValue = 30 * Math.PI / 180
'Fusstiefe
Part.Parameter("D10@Nib_Fuss").SystemValue = Feld(8, fusszeile, 2) / 1000
'Di
Part.Parameter("D11@Nib_Fuss").SystemValue = Feld(3, feldstufe, 0) / 1000
'Breite des Fusses
Part.Parameter("D12@Nib_Fuss").SystemValue = Feld(10, feldstufe, 0) / 1000
'Versatz nach x
Part.Parameter("D13@Nib_Fuss").SystemValue = Part.Parameter("D13@Kanis_Profil_17_DH").SystemValue / phi ^ normstufe + Part.Parameter("D7@Kanis_Profil_17_DH").SystemValue / phi ^ normstufe
'R1
Part.Parameter("D16@Nib_Fuss").SystemValue = Feld(5, fusszeile, 2) / 1000
'R2
Part.Parameter("D17@Nib_Fuss").SystemValue = Feld(6, fusszeile, 2) / 1000
'Deckband
'Breite
Part.Parameter("D1@Deckband").SystemValue = Feld(10, feldstufe, 0) / 1000
'Höhe
Part.Parameter("D2@Deckband").SystemValue = 10 / 1000
'Versatz nach x (x-Richtung Schwerpunkt + D7)
Part.Parameter("D3@Deckband").SystemValue = Part.Parameter("D13@Kanis_Profil_17_DH").SystemValue / phi ^ normstufe + Part.Parameter("D7@Kanis_Profil_17_DH").SystemValue / phi ^ normstufe
'Da (Innerer Durchmesser + Länge der Schaufel)
Part.Parameter("D4@Deckband").SystemValue = Feld(3, feldstufe, 0) / 1000 + Feld(6, feldstufe, 0) * 2 / 1000
'Orginal der Schnittebene
'Verdrehwinkel
Part.Parameter("D2@Verdrehwinkel").SystemValue = verdrehwinkel
'Länge der Linie
Part.Parameter("D1@Verdrehwinkel").SystemValue = Feld(10, feldstufe, 0) * 2 / 1000
'Verschieben der Ebene für Punkt für Ebene
Part.Parameter("D1@Ebene_oben_Versatz").SystemValue = Feld(3, feldstufe, 0) / 1000 / 2
'Definiton des Schwerpunktes
'Part.Parameter("D1@Ursprung_Versatz").SystemValue = 0
'Part.Parameter("D2@Ursprung_Versatz").SystemValue = 0
'Schnittebene links
Part.Parameter("D1@Schnittebene_links").SystemValue = winkel_schnittebene * Math.PI / 180
'Schnittebene rechts
Part.Parameter("D1@Schnittebene_rechts").SystemValue = winkel_schnittebene * Math.PI / 180
'Teil neu aufbauen
boolstatus = Part.EditRebuild3
TextBox2.Text = TextBox2.Text + vbCrLf + "Teil neu aufgebaut"
End If
'Teil speichern
Part.SaveAs2("\\Kanisserver\Users\sauer\Beschaufelung\CAD\Test\" & modelname & "_" & gewstufe & ".SLDPRT", 0, False, False)
'Teil schließen
'Part = Nothing
'swApp.CloseDoc(modelname)
'*****************
'* Baugruppe *
'*****************
Dim SelMgr As Object
Dim feature As Object
Dim Assembly As Object
Assembly = swApp.NewDocument("Z:\CAD\Templates\Kanis Templates\Baugruppe.asmdot", 0, 0.0#, 0.0#)
swApp.ActiveDoc.ActiveView.FrameLeft = 0
swApp.ActiveDoc.ActiveView.FrameTop = 0
swApp.ActiveDoc.ActiveView.FrameState = 1
swApp.ActiveDoc.ActiveView.FrameState = 1
SelMgr = Assembly.SelectionManager
'Teil zur Baugruppe hinzufügen
Assembly.AddComponent("\\Kanisserver\Users\sauer\Beschaufelung\CAD\Test\" & modelname & "_" & gewstufe & ".SLDPRT", 0, 0, 0)
boolstatus = Assembly.EditRebuild3
assembly.SaveAs2("\\Kanisserver\Users\sauer\Beschaufelung\CAD\Test\Baugruppe_Test.SLDASM", 0, False, False)
'Teil verknüpfen
boolstatus = Assembly.Extension.SelectByID2("2006-11-15 Test_Leitschaufel_links_1-1@Baugruppe_Test", "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
Assembly.UnfixComponent()
Assembly.ClearSelection2(True)
boolstatus = Assembly.Extension.SelectByID2("Ebene vorne", "PLANE", 0, 0, 0, True, 1, Nothing, 0)
boolstatus = Assembly.Extension.SelectByID2("Ebene vorne@2006-11-15 Test_Leitschaufel_links_1-1@Baugruppe_Test", "PLANE", 0, 0, 0, True, 1, Nothing, 0)
feature = Part.AddMate2(0, 0, False, 0, 0, 0, 1, 1, 0, 0.5235987755983, 0.5235987755983, longstatus)
Part.ClearSelection2(True)
boolstatus = Part.Extension.SelectByID2("Ebene oben", "PLANE", 0, 0, 0, True, 1, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Ebene oben@2006-11-15 Test_Leitschaufel_links_1-1@Baugruppe_Test", "PLANE", 0, 0, 0, True, 1, Nothing, 0)
feature = Part.AddMate2(0, 0, False, 0, 0, 0, 1, 1, 0, 0.5235987755983, 0.5235987755983, longstatus)
Part.ClearSelection2(True)
boolstatus = Part.Extension.SelectByID2("Ebene rechts", "PLANE", 0, 0, 0, True, 1, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("", "FACE", 0.00007943435542757, 0.2902449154045, 0.002659057145934, True, 1, Nothing, 0)
feature = Part.AddMate2(5, 0, False, 0.02, 0.02, 0.02, 1, 1, 0, 0.5235987755983, 0.5235987755983, longstatus)
Part.ClearSelection2(True)
boolstatus = Part.EditRebuild3
boolstatus = Part.Extension.SelectByID2("2006-11-15 Test_Leitschaufel_links_1-1@Baugruppe_" & modelname & "_" & gewstufe, "COMPONENT", 0.0002388227640608, 0.02492167354751, 0.006982361557448, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Drehachse_x@2006-11-15 Test_Leitschaufel_links_1-1@Baugruppe_" & modelname & "_" & gewstufe, "AXIS", 0, 0, 0, True, 2, Nothing, 0)
feature = Part.FeatureManager.FeatureCircularPattern2(Schaufelzahl, 0.05235987755983, False, "NULL", False)
Part.ClearSelection2(True)
boolstatus = Part.EditRebuild3
TextBox2.Text = TextBox2.Text + vbCrLf + "Funktion 'Ausgabe_SldWorks' abgeschlossen"
End Sub