Hallo,
ich entwickle gerade für ein FE-Programm einen Code mit dem ich auf das aktuelle Strukturmodel zugreife möchte und dabei anhand von Spannungen in einzelnen Elementen (die ich aus dem Strukturmodell auslese) die Elementattribute (z.B. Plattendicke) verändern möchte damit sie innerhalb der Grenzspannungen liegen. Im Grunde ist das Vorgehen eine Art von Optimierung.
Die Elementattribute speichere ich in eine Liste einer eigenen Klasse (siehe folgenden Code):
Public Plate_Data_List As New List(Of Class_Plate_Attributes) 'Liste in der alle Plate-Element Daten gespeichert sind
Public Plate_Data_Line As New Class_Plate_Attributes 'Line in der alle Plate-Element Daten gespeichert sind
Public Class Class_Plate_Attributes
Public Plate_Number As Integer
Public Plate_ID As Integer
Public Plate_Group_Number As Integer
Public Plate_Group_Name As String
Public Plate_Property_Number As Integer
Public Plate_Property_Name As String
Public Plate_Material_Number As Integer
Public Plate_Material_Name As String
Public thkMembrane As Double 'Membrane Thickness
Public thkBending As Double 'Bending Thickness
Sub New()
Plate_Number = 0
Plate_ID = 0
Plate_Group_Number = 0
Plate_Group_Name = ""
Plate_Property_Number = 0
Plate_Property_Name = ""
Plate_Material_Number = 0
Plate_Material_Name = ""
thkMembrane = 0
thkBending = 0
End Sub
Um nun flexibel in der Berechnung zu sein, möchte ich vorher selektieren können welche Elemente optimiert werden sollen. Hierfür habe ich die einzelnen Elementattribute (Element Nummer, Gruppen Nummer, etc.) in mehreren CheckedListBoxen zugänglich gemacht, von der aus die zu berechneten Elemente per anklicken der einzelnen Items berücksichtigt werden sollen (siehe folgender Code, aber aus Liste einer anderen Klasse).
For i = 0 To Plate_Property_Data_List.Count - 1
CheckedListBox_Select_Plate_Properties.Items.Add(Plate_Property_Data_List.ElementAt(i).Plate_Property_Name)
CheckedListBox_Select_Plate_Properties.SetItemChecked(i, True)
Next
Der Code der die maßgebenden Elemente aus Public Plate_Data_List auslesen soll und in die Liste selected_Plates speichern soll habe ich mir aus dem Internet "zusammengeklaut", aber hier hat sich gezeigt, das ich Ingenieur bin und kein Programmierer.
Dim Selected_Plates = From Plate_Data_List In Selected_Plates_temp1
Where CheckedListBox_Select_Plate_Properties.CheckedItems.Contains(Plate_Data_List.Plate_Property_Name) _
Select Plate_Data_List
Selected_Plates = Plate_Data_List
Leider funktioniert das ganze nicht denn es werden immer alle Inhalte in "selected_plates" gespeichert.
Kann mir jemand helfen?
MFG
ich entwickle gerade für ein FE-Programm einen Code mit dem ich auf das aktuelle Strukturmodel zugreife möchte und dabei anhand von Spannungen in einzelnen Elementen (die ich aus dem Strukturmodell auslese) die Elementattribute (z.B. Plattendicke) verändern möchte damit sie innerhalb der Grenzspannungen liegen. Im Grunde ist das Vorgehen eine Art von Optimierung.
Die Elementattribute speichere ich in eine Liste einer eigenen Klasse (siehe folgenden Code):
Public Plate_Data_List As New List(Of Class_Plate_Attributes) 'Liste in der alle Plate-Element Daten gespeichert sind
Public Plate_Data_Line As New Class_Plate_Attributes 'Line in der alle Plate-Element Daten gespeichert sind
Public Class Class_Plate_Attributes
Public Plate_Number As Integer
Public Plate_ID As Integer
Public Plate_Group_Number As Integer
Public Plate_Group_Name As String
Public Plate_Property_Number As Integer
Public Plate_Property_Name As String
Public Plate_Material_Number As Integer
Public Plate_Material_Name As String
Public thkMembrane As Double 'Membrane Thickness
Public thkBending As Double 'Bending Thickness
Sub New()
Plate_Number = 0
Plate_ID = 0
Plate_Group_Number = 0
Plate_Group_Name = ""
Plate_Property_Number = 0
Plate_Property_Name = ""
Plate_Material_Number = 0
Plate_Material_Name = ""
thkMembrane = 0
thkBending = 0
End Sub
Um nun flexibel in der Berechnung zu sein, möchte ich vorher selektieren können welche Elemente optimiert werden sollen. Hierfür habe ich die einzelnen Elementattribute (Element Nummer, Gruppen Nummer, etc.) in mehreren CheckedListBoxen zugänglich gemacht, von der aus die zu berechneten Elemente per anklicken der einzelnen Items berücksichtigt werden sollen (siehe folgender Code, aber aus Liste einer anderen Klasse).
For i = 0 To Plate_Property_Data_List.Count - 1
CheckedListBox_Select_Plate_Properties.Items.Add(Plate_Property_Data_List.ElementAt(i).Plate_Property_Name)
CheckedListBox_Select_Plate_Properties.SetItemChecked(i, True)
Next
Der Code der die maßgebenden Elemente aus Public Plate_Data_List auslesen soll und in die Liste selected_Plates speichern soll habe ich mir aus dem Internet "zusammengeklaut", aber hier hat sich gezeigt, das ich Ingenieur bin und kein Programmierer.
Dim Selected_Plates = From Plate_Data_List In Selected_Plates_temp1
Where CheckedListBox_Select_Plate_Properties.CheckedItems.Contains(Plate_Data_List.Plate_Property_Name) _
Select Plate_Data_List
Selected_Plates = Plate_Data_List
Leider funktioniert das ganze nicht denn es werden immer alle Inhalte in "selected_plates" gespeichert.
Kann mir jemand helfen?
MFG