private void setCorrectedSegements() { for (int i = 0; i < originalSegments.Count; ++i) { if (i == 0) { double cx = originalSegments[i].getGStart().getPnt3d().getX() + originalSegments[i].cdx(); double cy = originalSegments[i].getGStart().getPnt3d().getY() + originalSegments[i].cdy(); pnt3d correctedEndPnt = new pnt3d(cx, cy, 0); VTex correctedEndVertex = new VTex(correctedEndPnt, originalSegments[i].getGEnd().getBuldge()); pnt3d newStartPoint = new pnt3d(originalSegments[i].getGStart().getPnt3d().getX(), originalSegments[i].getGStart().getPnt3d().getY(), 0); double newBulgeStart = originalSegments[i].getGStart().getBuldge(); VTex correctedStartVertex = new MWCadNameSpace.VTex(newStartPoint, newBulgeStart); Segment newCorrectedSegment = new MWCadNameSpace.Segment(correctedStartVertex, correctedEndVertex); correctedSegments.Add(newCorrectedSegment); } else { VTex correctedStartVertex = correctedSegments[i - 1].getGEnd(); //double check_cdx = originalSegments[i].cdx(); //double check_cdy = originalSegments[i].cdy(); //MessageBox.Show("Corrected dx and dy " + check_cdx + "," + check_cdy); //double check_getx = correctedStartVertex.getPnt3d().getX(); //double check_gety = correctedStartVertex.getPnt3d().getY(); //MessageBox.Show("Corrected startx and starty " + check_getx + "," + check_gety); double cx = correctedStartVertex.getPnt3d().getX() + originalSegments[i].cdx(); double cy = correctedStartVertex.getPnt3d().getY() + originalSegments[i].cdy(); double newEndx = cx; double newEndy = cy; pnt3d correctedEndPnt = new pnt3d(newEndx, newEndy, 0); VTex correctedEndVertex = new VTex(correctedEndPnt, originalSegments[i].getGEnd().getBuldge()); Segment newCorrectedSegment = new MWCadNameSpace.Segment(correctedStartVertex, correctedEndVertex); correctedSegments.Add(newCorrectedSegment); } } }
private void button5_Click(object sender, EventArgs e) { MWCadNameSpace.pnt3d origin = new MWCadNameSpace.pnt3d(); MWCadNameSpace.pnt3d pickPnt = null; try { pickPnt = cadStuff.getPickPoint(origin); } catch { MessageBox.Show("Cad Connection Error"); return; } List <MWCadNameSpace.VTex> vertices = new List <MWCadNameSpace.VTex>(); MWCadNameSpace.pnt3d lastEntPnt = null; for (int i = 0; i < deconstructedCallList.Count; ++i) { MWCadNameSpace.pnt3d startPnt = pickPnt; if (i > 0) { startPnt = lastEntPnt; } MWCadNameSpace.Segment aSegment = deconstructedCallList[i].extractAsSegment(startPnt); if (deconstructedCallList[i].getCurveLeftRight().Value == "Right" || deconstructedCallList[i].getCurveLeftRight().Value == "Left") { aSegment.setBuldgeFromRadius(deconstructedCallList[i].getRadius(), deconstructedCallList[i].getCurveLeftRight()); } vertices.Add(aSegment.getGStart()); lastEntPnt = aSegment.getGEnd().getPnt3d(); if (i == deconstructedCallList.Count - 1) { vertices.Add(aSegment.getGEnd()); } } Autodesk.AutoCAD.Interop.Common.AcadLWPolyline thePline = cadStuff.drawPline(vertices); cadStuff.setPlineBuldges(thePline, vertices); }