public void FrontCADPreProcessor(SuspensionCoordinatesFrontGUI _scflGUI, int Index, bool IsRecreated) { ///<summary> ///This method initializes the CAD user control and viewport. ///This method is called only during the creation of a Suspension Item ///</summary> try { if (!IsRecreated) { _scflGUI.TabPage_FrontCAD = CustomXtraTabPage.CreateNewTabPage_ForInputs("Front Suspension ", SuspensionCoordinatesFront.Assy_List_SCFL[Index].SCFL_ID); } _scflGUI.CADFront = new CAD(); _scflGUI.TabPage_FrontCAD.Controls.Add(_scflGUI.CADFront); Kinematics_Software_New.TabControl_Outputs = CustomXtraTabPage.AddTabPages(Kinematics_Software_New.TabControl_Outputs, _scflGUI.TabPage_FrontCAD); _scflGUI.CADFront.Dock = DockStyle.Fill; CreateFrontCAD(_scflGUI.CADFront, _scflGUI, SuspensionCoordinatesFront.Assy_List_SCFL[Index], SuspensionCoordinatesFrontRight.Assy_List_SCFR[Index]); _scflGUI.CADFront.SetupViewPort(); _scflGUI.CADFront.Visible = true; Kinematics_Software_New.TabControl_Outputs.SelectedTabPage = _scflGUI.TabPage_FrontCAD; } catch (Exception) { // Keeping this code in try and catch block will help during Open operation. If the method is called without a Suspension or SuspensionGUI item being present, then the software won't crash } }
public void CreateNewSCFL(int i_create_scfl, SuspensionCoordinatesFrontGUI create_scflGUI_list) { ///<<summary> ///This section of the code creates a new SCFL and addes it to the List of SCFL objects ///</summary> #region Adding new SCFL object to the list of SCFL Objects SuspensionCoordinatesFrontGUI scflGUI = create_scflGUI_list; Assy_List_SCFL.Insert(i_create_scfl, new SuspensionCoordinatesFront(scflGUI)); Assy_List_SCFL[i_create_scfl].FrontSuspensionType(scflGUI); Assy_List_SCFL[i_create_scfl]._SCName = "Front Left Coordinates " + Convert.ToString(i_create_scfl + 1); Assy_List_SCFL[i_create_scfl].SCFL_ID = i_create_scfl + 1; Assy_List_SCFL[i_create_scfl]._UndocommandsSCFL = new Stack <ICommand>(); Assy_List_SCFL[i_create_scfl]._RedocommandsSCFL = new Stack <ICommand>(); #endregion }
public void FrontSuspensionType(SuspensionCoordinatesFrontGUI _scflGUI) { #region Determining the Suspension Type using the GUI Object SuspensionMotionExists = _scflGUI.SuspensionMotionExists; FrontSymmetry = _scflGUI.FrontSymmetryGUI; DoubleWishboneIdentifierFront = _scflGUI.DoubleWishboneIdentifierFront; McPhersonIdentifierFront = _scflGUI.McPhersonIdentifierFront; PushrodIdentifierFront = _scflGUI.PushrodIdentifierFront; PullrodIdentifierFront = _scflGUI.PullrodIdentifierFront; UARBIdentifierFront = _scflGUI.UARBIdentifierFront; TARBIdentifierFront = _scflGUI.TARBIdentifierFront; NoOfCouplings = _scflGUI.NoOfCouplings; #endregion }
public void Undo_ModifyObjectData(int l_unexcute_scfl, ICommand command) { ///<summary> /// This code is to undo the modification action which the user has performed /// </summary> #region Undo the Modification try { SuspensionCoordinatesFront _scfl_forUndo = (SuspensionCoordinatesFront)command; ICommand cmd = Assy_List_SCFL[l_unexcute_scfl]; Assy_List_SCFL[l_unexcute_scfl]._RedocommandsSCFL.Push(cmd); Assy_List_SCFL[l_unexcute_scfl] = _scfl_forUndo; PopulateDataTable(l_unexcute_scfl); SuspensionCoordinatesFrontGUI.DisplaySCFLItem(Assy_List_SCFL[l_unexcute_scfl]); #region Calling Undo method for Opposite Suspension if symmetric if (Assy_List_SCFL[l_unexcute_scfl].FrontSymmetry == true && IsUndoRedoCalledByRight == false) { SuspensionCoordinatesFrontRight.IsUndoRedoCalledByLeft_IdentifierMethod(true);// This method sets the IsUndoRedoCalledByLeft variable to true and prevents an infinte loop UndoRedo undoRedo = new UndoRedo(); undoRedo.Identifier(SuspensionCoordinatesFrontRight.Assy_List_SCFR[l_unexcute_scfl]._UndocommandsSCFR, SuspensionCoordinatesFrontRight.Assy_List_SCFR[l_unexcute_scfl]._RedocommandsSCFR, l_unexcute_scfl + 1, SuspensionCoordinatesFrontRight.Assy_List_SCFR[l_unexcute_scfl].SCFRIsModified); undoRedo.Undo(1); SuspensionCoordinatesFrontRight.IsUndoRedoCalledByLeft_IdentifierMethod(false);//This method sets the value of IsUndoRedoCalledByLeft to false so that the Right Suspension coordinate can also be Undone } #endregion Kinematics_Software_New.EditFrontCAD(l_unexcute_scfl); Kinematics_Software_New.SCFL_ModifyInVehicle(l_unexcute_scfl, Assy_List_SCFL[l_unexcute_scfl]); } catch (Exception) { } #endregion }
public void ModifyObjectData(int l_modify_SCFL, object modify_scfl_list, bool redo_Identifier) { ///<summary> ///In this section of the code, the Suspension is bring modified and it is placed under the method called ModifyObjectData because it is an Undoable operation ///</summary> #region Redo the Modification SuspensionCoordinatesFront _scfl_forRedo = (SuspensionCoordinatesFront)modify_scfl_list; ICommand cmd = Assy_List_SCFL[l_modify_SCFL]; Assy_List_SCFL[l_modify_SCFL]._UndocommandsSCFL.Push(cmd); Assy_List_SCFL[l_modify_SCFL] = _scfl_forRedo; PopulateDataTable(l_modify_SCFL); Assy_List_SCFL[l_modify_SCFL].SCFLIsModified = true; SuspensionCoordinatesFrontGUI.DisplaySCFLItem(Assy_List_SCFL[l_modify_SCFL]); #region Calling Redo method for Opposite Suspension if symmetric if (Assy_List_SCFL[l_modify_SCFL].FrontSymmetry == true && IsUndoRedoCalledByRight == false) { SuspensionCoordinatesFrontRight.IsUndoRedoCalledByLeft_IdentifierMethod(true);// This method sets the IsUndoRedoCalledByLeft variable to true and prevents an infinte loop UndoRedo undoRedo = new UndoRedo(); undoRedo.Identifier(SuspensionCoordinatesFrontRight.Assy_List_SCFR[l_modify_SCFL]._UndocommandsSCFR, SuspensionCoordinatesFrontRight.Assy_List_SCFR[l_modify_SCFL]._RedocommandsSCFR, l_modify_SCFL + 1, SuspensionCoordinatesFrontRight.Assy_List_SCFR[l_modify_SCFL].SCFRIsModified); undoRedo.Redo(1); SuspensionCoordinatesFrontRight.IsUndoRedoCalledByLeft_IdentifierMethod(false);//This method sets the value of IsUndoRedoCalledByLeft to false so that the Right Suspension coordinate can also be Undone } #endregion Kinematics_Software_New.EditFrontCAD(l_modify_SCFL); Kinematics_Software_New.SCFL_ModifyInVehicle(l_modify_SCFL, Assy_List_SCFL[l_modify_SCFL]); #endregion }
public void CreateFrontCAD(CAD _susCADFront, SuspensionCoordinatesFrontGUI _scflGUI, /*int index,*/ SuspensionCoordinatesFront _scFL, SuspensionCoordinatesFrontRight _scFR) { ///<summary> ///This method is called during editing of a Suspension Item ///</summary> try { //_scflGUI.CADFront.InitializeEntities(); _susCADFront.ClearViewPort(false, false, null); _susCADFront.InitializeLayers(); _susCADFront.SuspensionPlotterInvoker(_scFL, 1, null, true, true, null, 0, 0, 0); _susCADFront.SuspensionPlotterInvoker(_scFR, 2, null, true, true, null, 0, 0, 0); _susCADFront.ARBConnector(_susCADFront.CoordinatesFL.InboardPickUp, _susCADFront.CoordinatesFR.InboardPickUp); _susCADFront.SteeringCSystemPlotter(_scFL, _scFR, _susCADFront.CoordinatesFL.InboardPickUp, _susCADFront.CoordinatesFR.InboardPickUp); _susCADFront.RefreshViewPort(); } catch (Exception E) { string error = E.Message; // Keeping this code in try and catch block will help during Open operation. If the method is called without a Suspension or SuspensionGUI item being present, then the software won't crash } }
public void EditFrontLeftSuspension(int l_edit_scfl, SuspensionCoordinatesFrontGUI _scflGUI) { ICommand cmd = Assy_List_SCFL[l_edit_scfl]; Assy_List_SCFL[l_edit_scfl]._UndocommandsSCFL.Push(cmd); #region Front Left Cooridinates Editing SuspensionCoordinatesFront scfl_list = new SuspensionCoordinatesFront(_scflGUI); scfl_list._UndocommandsSCFL = Assy_List_SCFL[l_edit_scfl]._UndocommandsSCFL; scfl_list._RedocommandsSCFL = Assy_List_SCFL[l_edit_scfl]._RedocommandsSCFL; scfl_list._SCName = Assy_List_SCFL[l_edit_scfl]._SCName; Assy_List_SCFL[l_edit_scfl] = scfl_list; Assy_List_SCFL[l_edit_scfl].SCFLDataTable = scfl_list.SCFLDataTable; Assy_List_SCFL[l_edit_scfl].SCFL_ID = l_edit_scfl + 1; Assy_List_SCFL[l_edit_scfl].FrontSuspensionType(_scflGUI); Assy_List_SCFL[l_edit_scfl].SCFLIsModified = true; PopulateDataTable(l_edit_scfl); #endregion _RedocommandsSCFL.Clear(); }
public SuspensionCoordinatesFront(SuspensionCoordinatesFrontGUI _scflGUI) { SCFLDataTable = _scflGUI.SCFLDataTableGUI; #region Front Left Cooridinates Initialization #region Input Origin Initalization InputOriginX = _scflGUI._InputOriginX; InputOriginY = _scflGUI._InputOriginY; InputOriginZ = _scflGUI._InputOriginZ; #endregion #region Fixed Points FRONT LEFT Initialization - Double Wishbone & McPherson // Coordinates of Fixed Point A A1x = _scflGUI.A1y; A1y = _scflGUI.A1z; A1z = _scflGUI.A1x; // Coordinates of Fixed Point B B1x = _scflGUI.B1y; B1y = _scflGUI.B1z; B1z = _scflGUI.B1x; // Coordinates of Fixed Point C C1x = _scflGUI.C1y; C1y = _scflGUI.C1z; C1z = _scflGUI.C1x; // Coordinates of Fixed Point D D1x = _scflGUI.D1y; D1y = _scflGUI.D1z; D1z = _scflGUI.D1x; // Initial Coordinates of Moving Point I I1x = _scflGUI.I1y; I1y = _scflGUI.I1z; I1z = _scflGUI.I1x; // Initial Coordinates of Moving Point Jo JO1x = _scflGUI.JO1y; JO1y = _scflGUI.JO1z; JO1z = _scflGUI.JO1x; // Initial Coordinates of Fixed (For now when there is no steering) Point N N1x = _scflGUI.N1y; N1y = _scflGUI.N1z; N1z = _scflGUI.N1x; // Initial Coordinates of Fixed point Pin1 Pin1x = _scflGUI.Pin1y; Pin1y = _scflGUI.Pin1z; Pin1z = _scflGUI.Pin1x; // Initial Coordinates of Fixed point UV1 UV1x = _scflGUI.UV1y; UV1y = _scflGUI.UV1z; UV1z = _scflGUI.UV1x; // Initial Coordinates of Fixed point UV2 UV2x = _scflGUI.UV2y; UV2y = _scflGUI.UV2z; UV2z = _scflGUI.UV2x; // Initial Coordinates of Fixed point STC1 STC1x = _scflGUI.STC1y; STC1y = _scflGUI.STC1z; STC1z = _scflGUI.STC1x; // Coordinates of Fixed Point Q Q1x = _scflGUI.Q1y; Q1y = _scflGUI.Q1z; Q1z = _scflGUI.Q1x; // Coordinates of Fixed Point R R1x = _scflGUI.R1y; R1y = _scflGUI.R1z; R1z = _scflGUI.R1x; #endregion #region Moving Points FRONT LEFT Initialization - Double Wishbone & McPherson // Initial Coordinates of Moving Point J J1x = _scflGUI.J1y; J1y = _scflGUI.J1z; J1z = _scflGUI.J1x; // Initial Coordinates of Moving Point H H1x = _scflGUI.H1y; H1y = _scflGUI.H1z; H1z = _scflGUI.H1x; // Initial Coordinates of Moving Point G G1x = _scflGUI.G1y; G1y = _scflGUI.G1z; G1z = _scflGUI.G1x; // Initial Coordinates of Moving Point F F1x = _scflGUI.F1y; F1y = _scflGUI.F1z; F1z = _scflGUI.F1x; // Initial Coordinates of Moving Point E E1x = _scflGUI.E1y; E1y = _scflGUI.E1z; E1z = _scflGUI.E1x; // Initial Coordinates of Moving Point K K1x = _scflGUI.K1y; //IN THE HELPFILE CLEAFLY MENTION THAT THE X COORDINATE IS TO BE INPUT AS CONTACT K1y = _scflGUI.K1z; //PATCH CENTRE - 1/2 TIRE WIDTH K1z = _scflGUI.K1x; // Initial Coordinates of Moving Point L L1x = _scflGUI.K1y + 157.48; //IN THE HELPFILE CLEAFLY MENTION THAT THE X COORDINATE IS TO BE INPUT AS CONTACT L1y = _scflGUI.K1z; //PATCH CENTRE - 1/2 TIRE WIDTH L1z = _scflGUI.K1x; // Initial Coordinates of Moving Point M M1x = _scflGUI.M1y; M1y = _scflGUI.M1z; M1z = _scflGUI.M1x; // Initial Coordinates of Moving Point O O1x = _scflGUI.O1y; O1y = _scflGUI.O1z; O1z = _scflGUI.O1x; // Initial Coordinates of Moving Point P P1x = _scflGUI.P1y; P1y = _scflGUI.P1z; P1z = _scflGUI.P1x; // Coordinates of Moving Contact Patch Point W W1x = _scflGUI.W1y; W1y = _scflGUI.W1z; W1z = _scflGUI.W1x; // Ride Height Reference Points RideHeightRefx = _scflGUI.RideHeightRefy; RideHeightRefy = _scflGUI.RideHeightRefz; RideHeightRefz = _scflGUI.RideHeightRefx; #endregion #region Link Lengths Calculations //Link Lengths LowerFrontLength = (Math.Sqrt(Math.Pow(D1x - E1x, 2) + Math.Pow(D1y - E1y, 2) + Math.Pow(D1z - E1z, 2))); LowerRearLength = (Math.Sqrt(Math.Pow(C1x - E1x, 2) + Math.Pow(C1y - E1y, 2) + Math.Pow(C1z - E1z, 2))); UpperFrontLength = (Math.Sqrt(Math.Pow(A1x - F1x, 2) + Math.Pow(A1y - F1y, 2) + Math.Pow(A1z - F1z, 2))); UpperRearLength = (Math.Sqrt(Math.Pow(B1x - F1x, 2) + Math.Pow(B1y - F1y, 2) + Math.Pow(B1z - F1z, 2))); PushRodLength = (Math.Sqrt(Math.Pow(H1x - G1x, 2) + Math.Pow(H1y - G1y, 2) + Math.Pow(H1z - G1z, 2))); PushRodLength_1 = (Math.Sqrt(Math.Pow(H1x - G1x, 2) + Math.Pow(H1y - G1y, 2) + Math.Pow(H1z - G1z, 2))); ToeLinkLength = (Math.Sqrt(Math.Pow(N1x - M1x, 2) + Math.Pow(N1y - M1y, 2) + Math.Pow(N1z - M1z, 2))); DamperLength = (Math.Sqrt(Math.Pow(J1x - JO1x, 2) + Math.Pow(J1y - JO1y, 2) + Math.Pow(J1z - JO1z, 2))); ARBDroopLinkLength = (Math.Sqrt(Math.Pow(O1x - P1x, 2) + Math.Pow(O1y - P1y, 2) + Math.Pow(O1z - P1z, 2))); ARBBladeLength = (Math.Sqrt(Math.Pow(P1x - Q1x, 2) + Math.Pow(P1y - Q1y, 2) + Math.Pow(P1z - Q1z, 2))); #endregion ///< remarks > This list is going to be populated from the index number 1 as the delta of Wheel Deflection is 0 for the 0th Index </ remarks > //WheelDeflection_Steering.Insert(0, 0); #endregion }
public void EditFrontLeftCoordinatesGUI(Kinematics_Software_New _r1, SuspensionCoordinatesFrontGUI _scflGUI, int susIndex) { r1 = _r1; int indexRow = 0; //int susIndex = r1.navBarGroupSuspensionFL.SelectedLinkIndex; int noOfCouplings; if (SuspensionCoordinatesFront.Assy_List_SCFL.Count == r1.scflGUI.Count) { noOfCouplings = SuspensionCoordinatesFront.Assy_List_SCFL[susIndex].NoOfCouplings; } else { noOfCouplings = r1.NoOfCouplings_VehicleGUI; } #region Editing the Front Left Suspension Coordinates GUI Class using its own Data Table which is modified through the User Interface's GridControl #region Editing the Coordinates if the Suspension Type is Double Wishbone if (_scflGUI.DoubleWishboneIdentifierFront == 1) { #region DOUBLE WISHBONE #region Fixed Points DOUBLE WISHBONE // Coordinates of Fixed Point D D1x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); D1y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); D1z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; // Coordinates of Fixed Point C C1x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); C1y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); C1z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; // Coordinates of Fixed Point A A1x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); A1y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); A1z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; // Coordinates of Fixed Point B B1x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); B1y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); B1z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; // Initial Coordinates of Moving Point I I1x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); I1y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); I1z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; // Initial Coordinates of Moving Point Q Q1x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); Q1y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); Q1z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; // Coordinates of Fixed Point N N1x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); N1y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); N1z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; // Coordinates of Fixed Point Pin1x Pin1x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); Pin1y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); Pin1z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; if (noOfCouplings == 2) { //Coordinates of Fixed Point UV2 UV2x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); UV2y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); UV2z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; } //Coordinates of Fixed Point UV1 UV1x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); UV1y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); UV1z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; //Coordinates of Fixed Point STC1 STC1x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); STC1y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); STC1z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; // Coordinates of Fixed Point JO JO1x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); JO1y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); JO1z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; // Ride Height Reference Points RideHeightRefx = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); RideHeightRefy = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); RideHeightRefz = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; //if (_scflGUI.TARBIdentifierFront == 1) //{ // // Initial Coordinates of Fixed Point R (Only active when the it is T ARB) // R1x = SCFLDataTableGUI.Rows[indexRow].Field<double>(1); // R1y = SCFLDataTableGUI.Rows[indexRow].Field<double>(2); // R1z = SCFLDataTableGUI.Rows[indexRow].Field<double>(3); // indexRow++; //} #endregion #region Moving Points DOUBLE WISHBONE // Initial Coordinates of Moving Point J J1x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); J1y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); J1z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; // Initial Coordinates of Moving Point H H1x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); H1y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); H1z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; // Initial Coordinates of Moving Point O O1x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); O1y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); O1z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; // Initial Coordinates of Moving Point G G1x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); G1y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); G1z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; // Initial Coordinates of Moving Point F F1x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); F1y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); F1z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; // Initial Coordinates of Moving Point E E1x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); E1y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); E1z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; // Initial Coordinates of Moving Point P P1x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); P1y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); P1z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; // Initial Coordinates of Moving Point K K1x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); K1y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); K1z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; // Initial Coordinates of Moving Point M M1x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); M1y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); M1z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; // Coordinates of Moving Contact Patch Point W W1x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); W1y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); W1z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; if (_scflGUI.TARBIdentifierFront == 1) { // Initial Coordinates of Fixed Point R (Only active when the it is T ARB) R1x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); R1y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); R1z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; } #endregion #endregion } #endregion #region Editing the Coordinates if the Suspension Type is McPherson if (_scflGUI.McPhersonIdentifierFront == 1) { #region MCPHERSON #region Fixed Points MCPHERSON // Coordinates of Fixed Point D D1x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); D1y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); D1z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; // Coordinates of Fixed Point C C1x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); C1y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); C1z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; // Initial Coordinates of Moving Point Q Q1x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); Q1y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); Q1z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; // Coordinates of Fixed Point N N1x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); N1y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); N1z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; // Coordinates of Fixed Point Pin1x Pin1x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); Pin1y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); Pin1z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; if (noOfCouplings == 2) { //Coordinates of Fixed Point UV2 UV2x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); UV2y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); UV2z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; } //Coordinates of Fixed Point UV1 UV1x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); UV1y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); UV1z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; //Coordinates of Fixed Point STC1 STC1x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); STC1y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); STC1z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; // Coordinates of Fixed Point JO JO1x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); JO1y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); JO1z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; // Ride Height Reference Coordinates RideHeightRefx = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); RideHeightRefy = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); RideHeightRefz = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; // Coordinates of Fixed Point JO J1x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); J1y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); J1z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; #endregion #region Moving Points MCPHERSON // Initial Coordinates of Moving Point E E1x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); E1y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); E1z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; // Initial Coordinates of Moving Point P P1x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); P1y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); P1z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; // Initial Coordinates of Moving Point K K1x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); K1y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); K1z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; // Initial Coordinates of Moving Point M M1x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); M1y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); M1z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; // Coordinates of Moving Contact Patch Point W W1x = SCFLDataTableGUI.Rows[indexRow].Field <double>(1); W1y = SCFLDataTableGUI.Rows[indexRow].Field <double>(2); W1z = SCFLDataTableGUI.Rows[indexRow].Field <double>(3); indexRow++; #endregion #endregion } #endregion #endregion }