private MeshGeometry3D Build(MDT.CountersinkTool t) { const double hSvasatore = 10.0; var builder = new MeshBuilder(); var p1 = new Vector3(0.0f, 0.0f, -(float)(t.Length1 - hSvasatore)); var p12 = new Vector3(0.0f, 0.0f, -(float)t.Length1); var p2 = new Vector3(0.0f, 0.0f, -(float)(t.Length1 + t.Length2)); var p3 = new Vector3(0.0f, 0.0f, -(float)(t.Length1 + t.Length2 + t.Length3)); builder.AddCylinder(new Vector3(), p1, t.Diameter1 / 2.0); builder.AddCylinder(p1, p12, t.Diameter2 / 2.0); builder.AddCone(p12, new Vector3(0.0f, 0.0f, -1.0f), t.Diameter2 / 2.0, t.Diameter1 / 2.0, t.Length2, false, false, 20); builder.AddCylinder(p2, p3, t.Diameter1 / 2.0); return(builder.ToMesh()); }
private static MDT.Tool ToCountersink(MMT.Tool tool) { var t = new MDT.CountersinkTool(); var cst = tool as MMT.CountersinkTool; t.Diameter1 = cst.Diameter1; t.Diameter2 = cst.Diameter2; t.Length1 = cst.Length1; t.Length2 = cst.Length2; t.Length3 = cst.Length3; t.UsefulLength = cst.UsefulLength; UpdateBaseData(t, tool); return(t); }