// Base profile
Circle c1 = new Circle(Plane.XY, 57);
c1.Translate(40, 0, 0);
Circle c2 = new Circle(Plane.XY, 27);
c2.Translate(-60, 0, 0);
Line[] tanLines = devDept.Geometry.Utility.GetLinesTangentToTwoCircles(c1, c2);
// Arcs connecting tangent lines endpoints
Arc a1 = new Arc(Plane.XY, new Point2D(40, 0), tanLines[0].StartPoint, tanLines[1].StartPoint);
Arc a2 = new Arc(Plane.XY, new Point2D(-60, 0), tanLines[1].EndPoint, tanLines[0].EndPoint);
CompositeCurve cc1 = new CompositeCurve(a1, tanLines[1], a2, tanLines[0]);
devDept.Eyeshot.Entities.Region r1 = new devDept.Eyeshot.Entities.Region(cc1);
// Base extrusion
Brep ext1 = r1.ExtrudeAsBrep(-25);
// Hollow cylinder
devDept.Eyeshot.Entities.Region cr1 = new devDept.Eyeshot.Entities.Region(c2);
devDept.Eyeshot.Entities.Region cr2 = devDept.Eyeshot.Entities.Region.CreateCircle(Plane.XY, -60, 0, 11.5);
ext1.ExtrudeAdd(cr1, 13);
ext1.ExtrudeRemove(cr2, new Interval(-25, 13));
// Lateral columns
CompositeCurve cc2 = new CompositeCurve(
new Line(Plane.XZ, 30, 0, 50, 0),
new Line(Plane.XZ, 50, 0, 50, 38),
new Arc(Plane.XZ, new Point2D(40, 38), 10, devDept.Geometry.Utility.DegToRad(0), devDept.Geometry.Utility.DegToRad(180)),
new Line(Plane.XZ, 30, 38, 30, 0)
);
Circle c3 = new Circle(Plane.XZ, new Point2D(40, 38), 6);
devDept.Eyeshot.Entities.Region r2 = new devDept.Eyeshot.Entities.Region(cc2, c3);
ext1.ExtrudeAdd(r2, new Interval(-39, -27));
ext1.ExtrudeAdd(r2, new Interval(27, 39));
// Central block
const double distance = 18;
CompositeCurve cc3 = new CompositeCurve(
new Line(Plane.XY, 0, -27, 40 + distance, -27),
new Line(Plane.XY, 40 + distance, -27, 40 + distance, +27),
new Line(Plane.XY, 40 + distance, +27, 0, +27),
new Arc(Plane.XY, new Point2D(0, 0), 27, devDept.Geometry.Utility.DegToRad(90), devDept.Geometry.Utility.DegToRad(270))
);
Circle c4 = new Circle(Plane.XY, new Point2D(0, 0), 15);
devDept.Eyeshot.Entities.Region r3 = new devDept.Eyeshot.Entities.Region(cc3, c4);
ext1.ExtrudeAdd(r3, new Interval(5, 55));
design1.Entities.Add(ext1, Color.OliveDrab);
CAD Practice Drawings 74
Marco Segapeli
This content is available only to customers with an active subscription. Please ensure your subscription is current to access this article.
Please sign in to access this article.
If you believe this is an error, please contact our support team for assistance.
Comments
Please sign in to leave a comment.