/// <summary> /// Method to Inboked the OPtimization methods and compute the Damper and Pushrod Rocker Points /// </summary> private void ComputeActuationPoints_Rocker() { ///<summary>> ///The below lines of code are added to reset an residue that may exist after the Optimizer has run. /// </summary> if (radioGroupDamperInboardFormat.SelectedIndex == 0) { actuationPointCompute.Compute_DamperShockMount(); } else { KO_CV_Main.VCornerParams.DamperBellCrank = KO_CV_Main.Compute_ApproxCorrespondingPoint_FromLinkLength(KO_CV_Main.Damper_Length, KO_CV_Main.VCornerParams.DamperShockMount, VCorner_Main); KO_CV_Main.VCornerParams.DamperBellCrank = KO_CV_Main.Compute_PointOnPlane(KO_CV_Main.VCornerParams.RockerPlane, CoordinateInputFormat.IIO, KO_CV_Main.VCornerParams.DamperBellCrank); } actuationPointCompute.Compute_PushrodOutboard(); actuationPointCompute.Compute_ARBLeverEnd(); ///<summary>Invoking the Optimizer functions to optimize the Rocker Points of Damper, Pushrod and ARB</summary> KO_CV_Main.Optimize_Actuation_RockerPoints(ref KO_CV_Main, ref KO_Central, ref KO_SimParams, VCorner_Main, ParentObject); ///<summary>Plotting the optimized Rocker points of Damper, Pushrod and ARB</summary> ParentObject.Plot_InboardPoints(KO_CV_Main.VCornerParams.PushrodInboard, KO_CV_Main.VCornerParams.PushrodOutboard, "KO_CV_Main.VCornerParams.PushrodInboard" + VCorner_Main.ToString(), "Pushrod" + VCorner_Main.ToString()); ParentObject.Plot_InboardPoints(KO_CV_Main.VCornerParams.DamperBellCrank, KO_CV_Main.VCornerParams.DamperShockMount, "KO_CV_Main.VCornerParams.DamperBellCrank" + VCorner_Main.ToString(), "Damper" + VCorner_Main.ToString()); ParentObject.Plot_OutboardPoint(KO_CV_Main.VCornerParams.ARB_DroopLink_LeverPoint, "KO_CV_Main.VCornerParams.ARB_DroopLink_LeverPoint" + VCorner_Main.ToString()); ParentObject.Plot_InboardPoints(KO_CV_Main.VCornerParams.ARBBellCrank, KO_CV_Main.VCornerParams.ARB_DroopLink_LeverPoint, "KO_CV_Main.VCornerParams.ARBBellCrank" + VCorner_Main.ToString(), "ARB" + VCorner_Main.ToString()); ParentObject.Plot_Triangle(KO_CV_Main.VCornerParams.PushrodInboard, KO_CV_Main.VCornerParams.DamperBellCrank, KO_CV_Main.VCornerParams.Rocker_Center, Color.Orange, "Rocker 1" + VCorner_Main.ToString()); ParentObject.Plot_Triangle(KO_CV_Main.VCornerParams.PushrodInboard, KO_CV_Main.VCornerParams.ARBBellCrank, KO_CV_Main.VCornerParams.Rocker_Center, Color.Orange, "Rocker 2" + VCorner_Main.ToString()); ///<summary>Displaying the Convergence to the user</summary> tbMR_Convergence.Text = KO_CV_Main.MotionRatio_Convergence.Percentage.ToString(); ///<summary>Invoking the initialize method to update the <see cref="VehicleCornerParams.InboardAssembly"/> and <see cref="VehicleCornerParams.OutboardAssembly"/></summary> KO_CV_Main.VCornerParams.Initialize_Dictionary(); if (Symmetry) { ///<summary> ///All the events mentioned above are performed for the Right Corner fo the Vehicle. /// </summary> KO_CV_Counter.VCornerParams.PushrodInboard = new devDept.Geometry.Point3D(-KO_CV_Main.VCornerParams.PushrodInboard.X, KO_CV_Main.VCornerParams.PushrodInboard.Y, KO_CV_Main.VCornerParams.PushrodInboard.Z); KO_CV_Counter.VCornerParams.DamperBellCrank = new devDept.Geometry.Point3D(-KO_CV_Main.VCornerParams.DamperBellCrank.X, KO_CV_Main.VCornerParams.DamperBellCrank.Y, KO_CV_Main.VCornerParams.DamperBellCrank.Z); KO_CV_Counter.VCornerParams.ARBBellCrank = new devDept.Geometry.Point3D(-KO_CV_Main.VCornerParams.ARBBellCrank.X, KO_CV_Main.VCornerParams.ARBBellCrank.Y, KO_CV_Main.VCornerParams.ARBBellCrank.Z); ParentObject.Plot_InboardPoints(KO_CV_Counter.VCornerParams.PushrodInboard, KO_CV_Counter.VCornerParams.PushrodOutboard, "KO_CV_Counter.VCornerParams.PushrodInboard" + VCorner_Counter.ToString(), "Pushrod" + VCorner_Counter.ToString()); ParentObject.Plot_InboardPoints(KO_CV_Counter.VCornerParams.DamperBellCrank, KO_CV_Counter.VCornerParams.DamperShockMount, "KO_CV_Counter.VCornerParams.DamperBellCrank" + VCorner_Counter.ToString(), "Damper" + VCorner_Counter.ToString()); ParentObject.Plot_OutboardPoint(KO_CV_Counter.VCornerParams.ARB_DroopLink_LeverPoint, "KO_CV_Counter.VCornerParams.ARB_DroopLink_LeverPoint" + VCorner_Counter.ToString()); ParentObject.Plot_InboardPoints(KO_CV_Counter.VCornerParams.ARBBellCrank, KO_CV_Counter.VCornerParams.ARB_DroopLink_LeverPoint, "KO_CV_Counter.VCornerParams.ARBBellCrank" + VCorner_Counter.ToString(), "ARB" + VCorner_Counter.ToString()); ParentObject.Plot_Triangle(KO_CV_Counter.VCornerParams.PushrodInboard, KO_CV_Counter.VCornerParams.DamperBellCrank, KO_CV_Counter.VCornerParams.Rocker_Center, Color.Orange, "Rocker 1" + VCorner_Counter.ToString()); ParentObject.Plot_Triangle(KO_CV_Counter.VCornerParams.PushrodInboard, KO_CV_Counter.VCornerParams.ARBBellCrank, KO_CV_Counter.VCornerParams.Rocker_Center, Color.Orange, "Rocker 2" + VCorner_Counter.ToString()); KO_CV_Counter.VCornerParams.Initialize_Dictionary(); } }