1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149
|
#Region "Plot Button"
Private isMagicNumberSensibilityRunnning As Boolean = False
Private Sub PlotSetupChange_button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PlotSetupChange_button.Click
'initialization
isMagicNumberSensibilityRunnning = True
row = 0
Me.PartSetupChange_tlp.Controls.Clear()
Call SetYMDRange()
'Set vectors
ReDim latAccelGraph(1, betaStep, deltaStep)
ReDim yawMomGraph(1, betaStep, deltaStep)
If MyChassis Is Nothing Then
Call CreateChassis()
End If
Call ReadChassisInputs()
Call MyChassis.CalculateStaticOutputProperties()
Call MyChassis.CalculateDynamicOutputProperties()
If Me.CalculateTireOutputs_button.Checked = False Then 'Means Tire Geometry Values are not bound
Me.CalculateTireOutputs_button.Checked = True
Call BindTireGeometry()
Call TireButtonON()
End If
'Include Aero Force
If Me.IncludeAero_MagicNumberSensibility_cbox.Checked = True Then
Call CreateAero()
Call ReadAeroInputs()
MyAero.RideHeight_Front = MyAero.RideHeightStatic_Front
MyAero.RideHeight_Rear = MyAero.RideHeightStatic_Rear
Call ReadMaps()
Call AeroLoopCalculation()
End If
Call BindCheckBoxToChassisClassProperties(MyChassis)
speed = CDbl(SpeedSetupChange_tbox.Text) / 3.6
For Each checkbox As CheckBox In Me.lstCheckBox
If checkbox.Checked = True Then
Me.PlotSelectedParts(checkbox.Tag)
End If
Next
isMagicNumberSensibilityRunnning = False
End Sub
#End Region
#End Region
#Region "Set CheckBoxs List"
Private lstCheckBox As List(Of CheckBox)
''' <summary>
''' Set CheckBoxs List.
''' Add all the textboxs of the PartSetupChange GroupBox into the list of checkbox lstCheckBox.
''' </summary>
''' <remarks></remarks>
Private Sub SetCheckBoxsList()
Me.lstCheckBox = New List(Of CheckBox)
For Each control As Control In PartSetupChange_box.Controls
If TypeOf control Is CheckBox Then
Dim chk As CheckBox = CType(control, CheckBox)
Me.lstCheckBox.Add(chk)
End If
Next
End Sub
#End Region
#Region "Bind CheckBox To ChassisClass Properties"
''' <summary>
''' Bind The check boxes of the 'Magic numbers sensiblity' to the chassisClass Instance.
''' </summary>
''' <param name="chassis"></param>
''' <remarks></remarks>
Private Sub BindCheckBoxToChassisClassProperties(ByVal chassis As ChassisClass)
For Each ctrl As CheckBox In Me.lstCheckBox
ctrl.DataBindings.Clear()
Next
For Each checkbox As CheckBox In Me.lstCheckBox
Select Case checkbox.Name
Case "ARBStiffnessFront_cbox"
checkbox.DataBindings.Add("Tag", chassis, "ARBStiffness_Front")
Case "ARBStiffnessRear_cbox"
checkbox.DataBindings.Add("Tag", chassis, "ARBStiffness_Rear")
Case "SpringStiffness_LF_cbox"
checkbox.DataBindings.Add("Tag", chassis, "SpringStiffness_LF")
Case "SpringStiffness_RF_cbox"
checkbox.DataBindings.Add("Tag", chassis, "SpringStiffness_RF")
Case "SpringStiffness_LR_cbox"
checkbox.DataBindings.Add("Tag", chassis, "SpringStiffness_LR")
Case "SpringStiffness_RR_cbox"
checkbox.DataBindings.Add("Tag", chassis, "SpringStiffness_RR")
Case "SpringStiffness_Front_cbox"
checkbox.DataBindings.Add("Tag", chassis, "SpringStiffness_Front")
Case "SpringStiffness_Rear_cbox"
checkbox.DataBindings.Add("Tag", chassis, "SpringStiffness_Rear")
Case "RollCenter_Front_cbox"
checkbox.DataBindings.Add("Tag", chassis, "RollCenterHeight_Front")
Case "RollCenter_Rear_cbox"
checkbox.DataBindings.Add("Tag", chassis, "RollCenterHeight_Rear")
Case "AckermannRatio_cbox"
checkbox.DataBindings.Add("Tag", chassis, "AckermannRatio")
Case "TotalMassWeightDistribution_cbox"
checkbox.DataBindings.Add("Tag", chassis, "TotalMassWeightDistribution")
End Select
checkbox.DataBindings.DefaultDataSourceUpdateMode = DataSourceUpdateMode.OnPropertyChanged
Next
End Sub
#End Region
#Region "Plot Selected Parts"
''' <summary>
''' Plot Selected Parts
''' Plot the magic number sensibility of the part that have been selected by the checkboxs.
''' </summary>
''' <param name="tag">tag (ChassisClass property as Double)</param>
''' <remarks></remarks>
Private Sub PlotSelectedParts(ByVal tag As Object)
Call CreateNewSetupChangeChart()
Dim rangeSetupChange As Integer = CInt(RangeSetupChange_tbox.Text)
Dim initialValue As Double = CDbl(tag)
If TypeOf tag Is Double Then
Dim increment As Integer
increment = CInt(((rangeSetupChange * 2) / 5))
For i = -(Abs(rangeSetupChange)) To Abs(rangeSetupChange) Step increment + 1
tag = initialValue * (1 + i / 100) 'Change the value of the property
Call EnterMagicNumberValuesToPlot(CDbl(tag))
Next
End If
Call AddMagicNumberPlotToTableLayoutPanel()
End Sub
#End Region |
Partager