private void btnDraw_Click(object sender, EventArgs e) { if (!ValidateLengthTextBoxes()) { ErrorDialog.Show("Alert", "Inputs are not valid!", ErrorDialog.Severity.ERROR); return; } var currentPlane = GetCurrentCorSystem().TransformFromCurrentToGlobal(); SetPlane(); Picker pickMe = new Picker(); ArrayList frameList = pickMe.PickPoints(Picker.PickPointEnum.PICK_TWO_POINTS, "Please choose frame direction"); alongFrameVector = new Vector((frameList[1] as Point) - (frameList[0] as Point)); ArrayList replicationList = pickMe.PickPoints(Picker.PickPointEnum.PICK_TWO_POINTS, "Please choose replication direction"); replicationVector = new Vector((replicationList[1] as Point) - (replicationList[0] as Point)).GetNormal(); FramingOptions options = PopulateFramingOption(frameList[0] as Point); if (imgListCmbBoxFrameMode.SelectedIndex == 0) { GableSetting gableSystem = new GableSetting(options); gableSystem.Draw(); } else if (imgListCmbBoxFrameMode.SelectedIndex == 1) { MonoSlopeSetting monoSystem = new MonoSlopeSetting(options); monoSystem.Draw(); } SetPlane(currentPlane, TeklaGeometryExtender.ReferencePlane.GLOBAL); teklaModel.CommitChanges(); }
private FramingOptions PopulateFramingOption(Point origin) { #region Instantiating lists List <string> col1MemberAttribs = new List <string>() { cmbBoxCol1AFile1.Text, cmbBoxCol1AFile2.Text, cmbBoxCol1AFile3.Text, cmbBoxCol1AFile4.Text }; List <string> col1SpliceAttribs = new List <string>() { cmbBoxCol1SplAFile1.Text, cmbBoxCol1SplAFile2.Text, cmbBoxCol1SplAFile3.Text }; List <double> col1SpliceLengths = new List <double>() { double.Parse(txtBoxCol1SplLn1.Text), double.Parse(txtBoxCol1SplLn2.Text), double.Parse(txtBoxCol1SplLn3.Text) }; List <string> col2MemberAttribs = new List <string>() { cmbBoxCol2AFile1.Text, cmbBoxCol2AFile2.Text, cmbBoxCol2AFile3.Text, cmbBoxCol2AFile4.Text }; List <string> col2SpliceAttribs = new List <string>() { cmbBoxCol2SplAFile1.Text, cmbBoxCol2SplAFile2.Text, cmbBoxCol2SplAFile3.Text }; List <double> col2SpliceLengths = new List <double>() { double.Parse(txtBoxCol2SplLn1.Text), double.Parse(txtBoxCol2SplLn2.Text), double.Parse(txtBoxCol2SplLn3.Text) }; List <string> raf1MemberAttribs = new List <string>() { cmbBoxRft1AFile1.Text, cmbBoxRft1AFile2.Text, cmbBoxRft1AFile3.Text, cmbBoxRft1AFile4.Text, cmbBoxRft1AFile5.Text, cmbBoxRft1AFile6.Text, cmbBoxRft1AFile7.Text }; List <string> raf1SpliceAttribs = new List <string>() { cmbBoxRft1SplAFile1.Text, cmbBoxRft1SplAFile2.Text, cmbBoxRft1SplAFile3.Text, cmbBoxRft1SplAFile4.Text, cmbBoxRft1SplAFile5.Text, cmbBoxRft1SplAFile6.Text }; List <double> raf1SpliceLengths = new List <double>() { double.Parse(txtBoxRft1SplLn1.Text), double.Parse(txtBoxRft1SplLn2.Text), double.Parse(txtBoxRft1SplLn3.Text), double.Parse(txtBoxRft1SplLn4.Text), double.Parse(txtBoxRft1SplLn5.Text), double.Parse(txtBoxRft1SplLn6.Text) }; List <string> raf2MemberAttribs = new List <string>() { cmbBoxRft2AFile1.Text, cmbBoxRft2AFile2.Text, cmbBoxRft2AFile3.Text, cmbBoxRft2AFile4.Text, cmbBoxRft2AFile5.Text, cmbBoxRft2AFile6.Text, cmbBoxRft2AFile7.Text }; List <string> raf2SpliceAttribs = new List <string>() { cmbBoxRft2SplAFile1.Text, cmbBoxRft2SplAFile2.Text, cmbBoxRft2SplAFile3.Text, cmbBoxRft2SplAFile4.Text, cmbBoxRft2SplAFile5.Text, cmbBoxRft2SplAFile6.Text }; List <double> raf2SpliceLengths = new List <double>() { double.Parse(txtBoxRft2SplLn1.Text), double.Parse(txtBoxRft2SplLn2.Text), double.Parse(txtBoxRft2SplLn3.Text), double.Parse(txtBoxRft2SplLn4.Text), double.Parse(txtBoxRft2SplLn5.Text), double.Parse(txtBoxRft2SplLn6.Text) }; #endregion #region Modifying lists int col1SpliceQuantity = int.TryParse(cmbBoxSpliceNoCol1.Text, out int quantity1) ? quantity1 : 0; int col2SpliceQuantity = int.TryParse(cmbBoxSpliceNoCol2.Text, out int quantity2) ? quantity2 : 0; int raf1SpliceQuantity = int.TryParse(cmbBoxSpliceNoRft1.Text, out int quantity3) ? quantity3 : 0; int raf2SpliceQuantity = int.TryParse(cmbBoxSpliceNoRft2.Text, out int quantity4) ? quantity4 : 0; col1MemberAttribs.RemoveRange(col1SpliceQuantity + 1, col1MemberAttribs.Count - (col1SpliceQuantity + 1)); col1SpliceAttribs.RemoveRange(col1SpliceQuantity, col1SpliceAttribs.Count - col1SpliceQuantity); col1SpliceLengths.RemoveRange(col1SpliceQuantity, col1SpliceLengths.Count - col1SpliceQuantity); col2MemberAttribs.RemoveRange(col2SpliceQuantity + 1, col2MemberAttribs.Count - (col2SpliceQuantity + 1)); col2SpliceAttribs.RemoveRange(col2SpliceQuantity, col2SpliceAttribs.Count - col2SpliceQuantity); col2SpliceLengths.RemoveRange(col2SpliceQuantity, col2SpliceLengths.Count - col2SpliceQuantity); raf1MemberAttribs.RemoveRange(raf1SpliceQuantity + 1, raf1MemberAttribs.Count - (raf1SpliceQuantity + 1)); raf1SpliceAttribs.RemoveRange(raf1SpliceQuantity, raf1SpliceAttribs.Count - raf1SpliceQuantity); raf1SpliceLengths.RemoveRange(raf1SpliceQuantity, raf1SpliceLengths.Count - raf1SpliceQuantity); raf2MemberAttribs.RemoveRange(raf2SpliceQuantity + 1, raf2MemberAttribs.Count - (raf2SpliceQuantity + 1)); raf2SpliceAttribs.RemoveRange(raf2SpliceQuantity, raf2SpliceAttribs.Count - raf2SpliceQuantity); raf2SpliceLengths.RemoveRange(raf2SpliceQuantity, raf2SpliceLengths.Count - raf2SpliceQuantity); #endregion var dList = DistanceList.Parse(txtBoxCopies.Text, CultureInfo.CurrentCulture, Tekla.Structures.Datatype.Distance.UnitType.Millimeter); var flagOfCoverRight = cmbBoxRight.SelectedIndex == 0 ? true : false; var flagOfCoverLeft = cmbBoxLeft.SelectedIndex == 0 ? true : false; List <double> copies = new List <double>(); foreach (var distance in dList) { copies.Add(distance.Value); } copies.RemoveAll(p => p == 0); FramingOptions options = new FramingOptions() { FrameVector = alongFrameVector, ReplicationVector = replicationVector, Col1BplAttrib = cmbBoxCol1BplAFile.Text, Col1KneeAttrib = cmbBoxCol1KneeAFile.Text, Col1SpliceNumber = col1SpliceQuantity, Col2BplAttrib = cmbBoxCol2BplAFile.Text, Col2KneeAttrib = cmbBoxCol2KneeAFile.Text, Col2SpliceNumber = col2SpliceQuantity, Origin = origin, Slope = double.Parse(txtBoxSlope.Text), GableSteelLineFullLength = double.Parse(txtBoxGblFrmLength.Text), GableSteelLineHalfLength = double.Parse(txtBoxGblHalfRft.Text), GableSteelLineColumnHeight = double.Parse(txtBoxGblColHt.Text), GableColumnOffset = double.Parse(txtBoxGblColOffst.Text), GableRafterOffset = double.Parse(txtBoxGblRftOffst.Text), GableLeftBaseOffset = double.Parse(txtBoxGblLftBsOffst.Text), GableRightBaseOffset = double.Parse(txtBoxGblRghtBsOffst.Text), RidgeSpliceAttrib = cmbBoxRidgeSplice.Text, MonoSlopeSteelLineFullLength = double.Parse(txtBoxMnoFrmLength.Text), MonoSlopeSteelLineColumnHeight = double.Parse(txtBoxMnoColHt.Text), MonoSlopeColumnOffset = double.Parse(txtBoxMnoColOffst.Text), MonoSlopeRafterOffset = double.Parse(txtBoxMnoRftOffst.Text), MonoSlopeLeftBaseOffset = double.Parse(txtBoxMnoLftBsOffst.Text), MonoSlopeRightBaseOffset = double.Parse(txtBoxMnoRghtBsOffst.Text), BracingMode = (FlangeBraceMode)cmbBoxFlngBrcMode.SelectedIndex, Raf1SpliceNumber = raf1SpliceQuantity, Raf2SpliceNumber = raf2SpliceQuantity, EndBraceAttrib = cmbBoxEndFlangeBrce.Text, GeneralBraceAttrib = cmbBoxFlangeBrace.Text, Col1MemberAttribs = col1MemberAttribs, Col1SpliceAttribs = col1SpliceAttribs, Col1SpliceLengths = col1SpliceLengths, Col2MemberAttribs = col2MemberAttribs, Col2SpliceAttribs = col2SpliceAttribs, Col2SpliceLengths = col2SpliceLengths, Raf1MemberAttribs = raf1MemberAttribs, Raf1SpliceAttribs = raf1SpliceAttribs, Raf1SpliceLengths = raf1SpliceLengths, Raf2MemberAttribs = raf2MemberAttribs, Raf2SpliceAttribs = raf2SpliceAttribs, Raf2SpliceLengths = raf2SpliceLengths, LeftEaveOffset = double.Parse(txtBoxLeftEaveOffst.Text), RightEaveOffset = double.Parse(txtBoxRightEaveOffset.Text), HorizontalDistance = double.Parse(txtBoxHorzDist.Text), PurlinSection = txtBoxPrlnProf.Text, PurlinMaterial = txtBoxPrlnMtrl.Text, AtCoverLeft = flagOfCoverLeft, AtCoverRight = flagOfCoverRight, ClipAngleAttrib = cmbBoxClipAttribute.Text, CopyLengths = copies }; return(options); }