# Shaft (v10)

```CompositeCurve cc1 = new CompositeCurve(
new Line(0, 0, 0, -19),
new Line(0, -19, 1, -20),
new Line(1, -20, 20.5, -20),
new Line(20.5, -20, 20.5, -18.5),
new Line(20.5, -18.5, 23.5, -18.5),
new Line(23.5, -18.5, 23.5, -20),
new Line(23.5, -20, 42, -20),
new Line(42, -20, 42, -23),
new Line(42, -23, 43, -24),
new Line(43, -24, 57, -24),
new Line(57, -24, 60, -22.2679492),
new Line(60, -22.2679492, 60, -17),
new Line(62, -15, 89, -15),
new Line(89, -15, 90, -14),
new Line(90, -14, 90, -10.8),
new Line(90, -10.8, 91, -10.8),
new Line(91, -10.8, 91, -11),
new Line(91, -11, 160, -11),
new Line(160, -11, 160, -9),
new Line(160, -9, 170, -9),
new Line(170, -9, 170, -11),
new Arc(Plane.XY, new Point2D(170, -11), new Point2D(175, -8.65), new Point2D(180, -4), false),
new Line(180, -4, 180, 0)
);

Solid3D rev1 = cc1.RevolveAsSolid3D(0, Utility.DegToRad(360), Vector3D.AxisX, Point3D.Origin);

SlotShapedRegion ssr1 = new SlotShapedRegion(55, 2.5);

ssr1.Translate(97.5, 0, 8);

rev1.ExtrudeRemove(ssr1, 10);

LinearPath lp1 = new LinearPath(Plane.XY,
new Point2D(0, 0),
new Point2D(0, -11),
new Point2D(33, -11),
new Point2D(33, -14.5),
new Point2D(45, -14.5),
new Point2D(53.3715789, 0),    new Point2D(0, 0));

Region r1 = new Region(lp1);

RectangularRegion rr1 = new RectangularRegion(Plane.YZ, 6, 28, true);

rev1.ExtrudeRemove(rr1, 35);

viewportLayout1.Entities.Regen();```