private void button1_Click(object sender, EventArgs e) { //reset dialog resetFormStatus(); //get insertion point inpit from user Tuple <TSG.Point, TSDrg.View> usrInp = GetPointViewFromUser(); TSG.Point basePoint = usrInp.Item1; TSG.Point endPoint; TSDrg.View currentView = usrInp.Item2; if (basePoint == null) { return; } //create dimension foreach (DataGridViewRow row in dgv_dimTable.Rows) { if (row.Index < dgv_dimTable.Rows.Count - 1) { var dimLengthInp = row.Cells["dimLength"].Value; double dimLength = Convert.ToDouble(dimLengthInp.ToString()); if (checkBox1.Checked) { endPoint = new TSG.Point(basePoint.X, basePoint.Y + dimLength); } else if (checkBox2.Checked) { endPoint = new TSG.Point(basePoint.X + dimLength, basePoint.Y); } else { lbl_status.Text = "Please select dimension orientation"; return; } TSDrg.PointList pointList = new TSDrg.PointList(); pointList.Add(basePoint); pointList.Add(endPoint); TSDrg.StraightDimensionSet newDimSet = CreateNewDim(currentView, pointList); newDimSet.Select(); newDimSet.Attributes.LoadAttributes(txb_preset.Text); newDimSet.Modify(); basePoint = endPoint; } } }
private void addUniquePoints(T3D.Point point) { if (!_points.Contains(point)) { _points.Add(point); } }
private static void createPolygons(List <TSD.Polygon> input, List <TSD.Polygon> output, TSD.ViewBase inputView, TSD.ViewBase outputView) { foreach (TSD.Polygon inputPoly in input) { TSD.PointList pts = new TSD.PointList(); foreach (T3D.Point pt in inputPoly.Points) { T3D.Point temp = __GeometryOperations.applyGlobalOffset(pt); pts.Add(temp); } bool found = false; bool same = true; foreach (TSD.Polygon outputPoly in output) { if (outputPoly.Points.Count == pts.Count) { if (outputPoly.Points.Count != 0) { for (int i = 0; i < outputPoly.Points.Count; i++) { T3D.Point oldpt = outputPoly.Points[0]; T3D.Point newpt = pts[0]; if (__GeometryOperations.compare2Points(oldpt, newpt) == false) { same = false; break; } } if (same == true) { found = true; break; } for (int i = 0; i < outputPoly.Points.Count; i++) { T3D.Point oldpt = outputPoly.Points[0]; T3D.Point newpt = pts[pts.Count - i - 1]; if (__GeometryOperations.compare2Points(oldpt, newpt) == false) { same = false; break; } } if (same == true) { found = true; break; } } } } if (found == false) { TSD.Polygon outputLine = new TSD.Polygon(outputView, pts, inputPoly.Attributes); outputLine.Attributes = inputPoly.Attributes; outputLine.Insert(); } } }
private static void createDimentionLineSets(List <_StraightDimentionSet> input, List <_StraightDimentionSet> output, TSD.ViewBase outputView) { foreach (_StraightDimentionSet inputDimSet in input) { TSD.PointList outputPoints = new TSD.PointList(); foreach (T3D.Point ip in inputDimSet._points) { T3D.Point op = __GeometryOperations.applyGlobalOffset(ip); outputPoints.Add(op); } bool found = false; _StraightDimentionSet outputDimSetCopy = null; foreach (_StraightDimentionSet outputDimSet in output) { if (inputDimSet._points.Count == outputDimSet._points.Count) { if (outputDimSet._points.Count != 0) { bool local = true; for (int i = 0; i < outputDimSet._points.Count; i++) { bool same = __GeometryOperations.compare2PointsNullTolerance(outputPoints[i], outputDimSet._points[i]); if (same == false) { local = false; break; } } if (local == true) { if (outputDimSet._first.UpDirection == inputDimSet._first.UpDirection) { found = true; outputDimSetCopy = outputDimSet; break; } } } } } if (found == false) { TSD.StraightDimensionSetHandler sds = new TSD.StraightDimensionSetHandler(); TSD.StraightDimensionSet outputDimSet = sds.CreateDimensionSet(outputView, outputPoints, inputDimSet._first.UpDirection, inputDimSet._set.Distance, inputDimSet._set.Attributes); outputDimSet.Distance = inputDimSet._set.Distance; outputDimSet.Modify(); } else { if (outputDimSetCopy != null) { outputDimSetCopy._set.Distance = inputDimSet._set.Distance; outputDimSetCopy._set.Modify(); } } } }