
Block b1 = new Block("Base");
b1.Entities.Add(Base(), Color.Purple);
design1.Blocks.Add(b1);
Block b2 = new Block("Roller");
b2.Entities.Add(Roller(), Color.Red);
design1.Blocks.Add(b2);
Block b3 = new Block("Bracket");
b3.Entities.Add(Bracket(), Color.LightGreen);
design1.Blocks.Add(b3);
Block b4 = new Block("Bush");
b4.Entities.Add(Bush(), Color.LightBlue);
design1.Blocks.Add(b4);
Block b5 = new Block("Shaft");
b5.Entities.Add(Shaft(), Color.Khaki);
design1.Blocks.Add(b5);
Block b6 = new Block("Screw");
b6.Entities.Add(Screw(), Color.Gray);
design1.Blocks.Add(b6);
design1.Entities.Add(new BlockReference(0, 0, 0, "Base", 0));
design1.Entities.Add(new BlockReference(30, 36, 10, "Bracket", Utility.DegToRad(180)));
design1.Entities.Add(new BlockReference(90, 36, 10, "Bracket", 0));
design1.Entities.Add(new BlockReference(60, 36, 70, "Roller", 0));
design1.Entities.Add(new BlockReference(85, 36, 70, "Bush", Utility.DegToRad(180)));
design1.Entities.Add(new BlockReference(35, 36, 70, "Bush", 0));
design1.Entities.Add(new BlockReference(20, 36, 70, "Shaft", 0));
BlockReference screw1 = new BlockReference(-26, 12, 12, "Screw", 0);
screw1.Rotate(Utility.DegToRad(90), Vector3D.AxisY);
design1.Entities.Add(screw1);
BlockReference screw2 = new BlockReference(-26, 60, 12, "Screw", 0);
screw2.Rotate(Utility.DegToRad(90), Vector3D.AxisY);
design1.Entities.Add(screw2);
BlockReference screw3 = new BlockReference(-26, 60, 108, "Screw", 0);
screw3.Rotate(Utility.DegToRad(90), Vector3D.AxisY);
design1.Entities.Add(screw3);
BlockReference screw4 = new BlockReference(-26, 12, 108, "Screw", 0);
screw4.Rotate(Utility.DegToRad(90), Vector3D.AxisY);
design1.Entities.Add(screw4);
Brep Base()
{
Arc arc1 = new Arc(Plane.XY, new Point2D(12, 12), 12, devDept.Geometry.Utility.DegToRad(180), devDept.Geometry.Utility.DegToRad(270));
Arc arc2 = new Arc(Plane.XY, new Point2D(108, 12), 12, devDept.Geometry.Utility.DegToRad(270), devDept.Geometry.Utility.DegToRad(360));
Arc arc3 = new Arc(Plane.XY, new Point2D(108, 60), 12, devDept.Geometry.Utility.DegToRad(0), devDept.Geometry.Utility.DegToRad(90));
Arc arc4 = new Arc(Plane.XY, new Point2D(12, 60), 12, devDept.Geometry.Utility.DegToRad(90), devDept.Geometry.Utility.DegToRad(180));
CompositeCurve cc1 = new CompositeCurve(
new Line(Plane.XY, 12, 0, 108, 0),
arc2,
new Line(Plane.XY, 120, 12, 120, 60),
arc3,
new Line(Plane.XY, 108, 72, 12, 72),
arc4,
new Line(Plane.XY, 0, 60, 0, 12),
arc1
);
devDept.Eyeshot.Entities.Region reg1 = new devDept.Eyeshot.Entities.Region(cc1);
Brep ext1 = reg1.ExtrudeAsBrep(new Interval(0, 10));
// Extrude
devDept.Eyeshot.Entities.Region ex1 = devDept.Eyeshot.Entities.Region.CreateRectangle(Plane.XZ, 35, 10, 50, 3, 0, false);
ext1.ExtrudeAdd(ex1, new Interval(-72, 0));
// Extrude Remove
CompositeCurve cc2 = new CompositeCurve(
new Line(Plane.XZ, 32, 0, 88, 0),
new Line(Plane.XZ, 88, 0, 86, 3),
new Line(Plane.XZ, 86, 3, 35, 3),
new Line(Plane.XZ, 35, 3, 32, 0)
);
devDept.Eyeshot.Entities.Region reg2 = new devDept.Eyeshot.Entities.Region(cc2);
ext1.ExtrudeRemove(reg2, new Interval(-72, 0));
devDept.Eyeshot.Entities.Region excir1 = devDept.Eyeshot.Entities.Region.CreateCircle(Plane.XY, 12, 12, 6);
ext1.ExtrudeRemove(excir1, new Interval(0, 10));
devDept.Eyeshot.Entities.Region excir2 = devDept.Eyeshot.Entities.Region.CreateCircle(Plane.XY, 108, 12, 6);
ext1.ExtrudeRemove(excir2, new Interval(0, 10));
devDept.Eyeshot.Entities.Region excir3 = devDept.Eyeshot.Entities.Region.CreateCircle(Plane.XY, 108, 60, 6);
ext1.ExtrudeRemove(excir3, new Interval(0, 10));
devDept.Eyeshot.Entities.Region excir4 = devDept.Eyeshot.Entities.Region.CreateCircle(Plane.XY, 12, 60, 6);
ext1.ExtrudeRemove(excir4, new Interval(0, 10));
return ext1;
}
Brep Roller()
{
devDept.Eyeshot.Entities.Region reg1 = devDept.Eyeshot.Entities.Region.CreatePolygon(
new Point2D(-20, 12),
new Point2D(20, 12),
new Point2D(20, 15),
new Point2D(4, 20),
new Point2D(4, 33),
new Point2D(14, 35),
new Point2D(14, 38),
new Point2D(-14, 38),
new Point2D(-14, 35),
new Point2D(-4, 33),
new Point2D(-4, 20),
new Point2D(-20, 15)
);
return reg1.RevolveAsBrep(devDept.Geometry.Utility.DegToRad(360), Vector3D.AxisX, Point3D.Origin);
}
Brep Bracket()
{
// Main polygon
CompositeCurve cc1 = new CompositeCurve(
new Line(Plane.YZ, new Point2D(-15, 60), new Point2D(-15, 25)),
new Arc(Plane.YZ, new Point2D(0, 60), 15, devDept.Geometry.Utility.DegToRad(0), devDept.Geometry.Utility.DegToRad(180)),
new Line(Plane.YZ, new Point2D(15, 60), new Point2D(15, 25)),
new Arc(Plane.YZ, new Point2D(30, 25), 15, devDept.Geometry.Utility.DegToRad(180), devDept.Geometry.Utility.DegToRad(270)),
new Line(Plane.YZ, 30, 10, 36, 10),
new Line(Plane.YZ, 36, 10, 36, 0),
new Line(Plane.YX, 36, 0, -36, 0),
new Line(Plane.YZ, -36, 0, -36, 10),
new Line(Plane.YZ, -36, 10, -30, 10),
new Arc(Plane.YZ, new Point2D(-30, 25), 15, devDept.Geometry.Utility.DegToRad(270), devDept.Geometry.Utility.DegToRad(360)));
devDept.Eyeshot.Entities.Region reg1 = new devDept.Eyeshot.Entities.Region(cc1);
Brep ext1 = reg1.ExtrudeAsBrep(new Interval(-8, 0));
// Extrude front
devDept.Eyeshot.Entities.Region ex1 = devDept.Eyeshot.Entities.Region.CreateRectangle(Plane.XZ, -5, 0, 5, 6, 0, false);
ext1.ExtrudeAdd(ex1, new Interval(-36, 36));
devDept.Eyeshot.Entities.Region excir1 = devDept.Eyeshot.Entities.Region.CreateCircle(Plane.YZ, 0, 60, 15);
ext1.ExtrudeAdd(excir1, new Interval(-5, 0));
// Extrude back
devDept.Eyeshot.Entities.Region ex2 = devDept.Eyeshot.Entities.Region.CreateRectangle(Plane.XZ, 8, 0, 22, 10, 0, false);
ext1.ExtrudeAdd(ex2, new Interval(-36, 36));
// Remove operations
devDept.Eyeshot.Entities.Region cirReg1 = devDept.Eyeshot.Entities.Region.CreateCircle(Plane.YZ, 0, 60, 6);
ext1.ExtrudeRemove(cirReg1, new Interval(-5, 30));
devDept.Eyeshot.Entities.Region cirReg2 = devDept.Eyeshot.Entities.Region.CreateCircle(Plane.XY, 18, 24, 6);
ext1.ExtrudeRemove(cirReg2, new Interval(0, 10));
devDept.Eyeshot.Entities.Region cirReg3 = devDept.Eyeshot.Entities.Region.CreateCircle(Plane.XY, 18, -24, 6);
ext1.ExtrudeRemove(cirReg3, new Interval(0, 10));
// Triangular rib
devDept.Eyeshot.Entities.Region triReg = devDept.Eyeshot.Entities.Region.CreatePolygon(Plane.XZ, new Point2D[]{
new Point2D(8, 10),
new Point2D(30, 10),
new Point2D(8, 50)
});
ext1.ExtrudeAdd(triReg, new Interval(-5, 5));
ext1.MergeFaces();
ext1.Fillet(41, 12);
ext1.Fillet(40, 12);
return ext1;
}
Brep Bush()
{
devDept.Eyeshot.Entities.Region cc1 = devDept.Eyeshot.Entities.Region.CreatePolygon(
new Point2D(0, 10),
new Point2D(21, 10),
new Point2D(21, 12),
new Point2D(5, 12),
new Point2D(5, 15),
new Point2D(0, 15)
);
return cc1.RevolveAsBrep(devDept.Geometry.Utility.DegToRad(0), devDept.Geometry.Utility.DegToRad(360), Vector3D.AxisX, Point3D.Origin);
}
Brep Shaft()
{
devDept.Eyeshot.Entities.Region reg1 = devDept.Eyeshot.Entities.Region.CreatePolygon(
new Point2D(0, 0),
new Point2D(0, 6),
new Point2D(15, 6),
new Point2D(15, 9),
new Point2D(65, 9),
new Point2D(65, 6),
new Point2D(80, 6),
new Point2D(80, 0)
);
Brep rev1 = reg1.RevolveAsBrep(devDept.Geometry.Utility.DegToRad(0), devDept.Geometry.Utility.DegToRad(360), Vector3D.AxisX, Point3D.Origin);
devDept.Eyeshot.Entities.Region excir1 = devDept.Eyeshot.Entities.Region.CreateCircle(Plane.YZ, 0, 0, 3);
rev1.ExtrudeRemove(excir1, new Interval(0, 80));
devDept.Eyeshot.Entities.Region remcir1 = devDept.Eyeshot.Entities.Region.CreateCircle(Plane.XZ, 40, 0, 3);
rev1.ExtrudeRemove(remcir1, new Interval(-12, 12));
rev1.Chamfer(0, 0.5);
rev1.Chamfer(24, 0.5);
return rev1;
}
Brep Screw()
{
devDept.Eyeshot.Entities.Region cc1 = devDept.Eyeshot.Entities.Region.CreatePolygon(
new Point2D(0, 0),
new Point2D(26, 0),
new Point2D(26, 6),
new Point2D(6, 6),
new Point2D(6, 8),
new Point2D(0, 8)
);
Brep rev1 = cc1.RevolveAsBrep(0, devDept.Geometry.Utility.DegToRad(360), Vector3D.AxisX, Point3D.Origin);
devDept.Eyeshot.Entities.Region reg = devDept.Eyeshot.Entities.Region.CreateHexagon(Plane.YZ, 5);
rev1.ExtrudeRemove(reg, 4);
rev1.Fillet(4, 1);
return rev1;
}

Comments
Please sign in to leave a comment.