
// Define layer names and text size.
const string Dim = "Dimension", DashDot = "DashDot";
const double TextHeight = 3.5;
// Adding different layers
design1.Layers.Add(new Layer(Dim, Color.CornflowerBlue));
design1.Layers[0].LineWeight = 2;
design1.LineTypes.Add(DashDot, new float[] { 10, -2, 2, -2 });
// Circles
Circle circleCenter = new Circle(0, 0, 0, 18);
Circle circleLeft = new Circle(-45, 0, 0, 18);
Circle circleRight = new Circle(45, 0, 0, 18);
design1.Entities.AddRange(new Entity[]
{
circleCenter,
circleLeft,
circleRight
});
// Border
CompositeCurve border = CompositeCurve.CreateRectangle(0, 0, 144, 108, 0, true);
design1.Entities.Add(border, Color.Black);
// Rectangles
CompositeCurve rectangleLeft = CompositeCurve.CreateRectangle(-45, 40.5, 18, 9, 0, true);
CompositeCurve rectangleCenter = CompositeCurve.CreateRectangle(0, 40.5, 18, 9, 0, true);
CompositeCurve rectangleRight = CompositeCurve.CreateRectangle(45, 40.5, 18, 9, 0, true);
design1.Entities.AddRange(new Entity[]
{
rectangleLeft,
rectangleCenter,
rectangleRight
});
// Lower Line
Line lineRight1 = new Line(-72, -36, -54, -36);
Line lineDown1 = new Line(-54, -36, -54, -45);
Line lineRight2 = new Line(-54, -45, -36, -45);
Line lineup1 = new Line(-36, -45, -36, -36);
Line lineRight3 = new Line(-36, -36, -9, -36);
Line lineDown2 = new Line(-9, -36, -9, -45);
Line lineRight4 = new Line(-9, -45, 9, -45);
Line lineup2 = new Line(9, -45, 9, -36);
Line lineRight5 = new Line(9, -36, 36, -36);
Line lineDown3 = new Line(36, -36, 36, -45);
Line lineRight6 = new Line(36, -45, 54, -45);
Line lineup3 = new Line(54, -45, 54, -36);
Line lineRight7 = new Line(54, -36, 72, -36);
design1.Entities.AddRange(new Entity[]
{
lineRight1,
lineDown1,
lineRight2,
lineup1,
lineRight3,
lineDown2,
lineRight4,
lineup2,
lineRight5,
lineDown3,
lineRight6,
lineup3,
lineRight7
});
// Add new dimension plane
Plane pln = new Plane(Point3D.Origin, Vector3D.AxisY, Vector3D.AxisMinusX);
// Linear dimensions
design1.Entities.AddRange(new Entity[]
{
new LinearDim(Plane.XY, new Point2D(-72, 54), new Point2D(-45, 54), new Point2D(-58.5, 64), TextHeight),
new LinearDim(Plane.XY, new Point2D(-45, 54), new Point2D(0, 59), new Point2D(-22.5, 64), TextHeight),
new LinearDim(Plane.XY, new Point2D(0, 59), new Point2D(45, 54), new Point2D(22.5, 64), TextHeight),
new LinearDim(Plane.XY, new Point2D(-54, 37.5), new Point2D(-36, 37.5), new Point2D(-45, 27.5), TextHeight),
new LinearDim(Plane.XY, new Point2D(-72, -45), new Point2D(-54, -45), new Point2D(-63, -64), TextHeight),
new LinearDim(Plane.XY, new Point2D(-54, -45), new Point2D(-36, -45), new Point2D(-45, -64), TextHeight),
new LinearDim(Plane.XY, new Point2D(-36, -45), new Point2D(-9, -45), new Point2D(-22.5, -64), TextHeight),
new LinearDim(Plane.XY, new Point2D(-72, -54), new Point2D(72, -54), new Point2D(0, -73), TextHeight),
new LinearDim(pln, new Point2D(-54, 72), new Point2D(54, 72), new Point2D(0, 92), TextHeight),
new LinearDim(pln, new Point2D(-54, 72), new Point2D(-36, 72), new Point2D(-45, 82), TextHeight),
new LinearDim(pln, new Point2D(-36, 72), new Point2D(0, 72), new Point2D(-18, 82), TextHeight),
new LinearDim(pln, new Point2D(0, 65), new Point2D(40.5, 56), new Point2D(20.25, 82), TextHeight),
new LinearDim(pln, new Point2D(-45, 54), new Point2D(-36, 54), new Point2D(-40.5, 59), TextHeight),
new LinearDim(pln, new Point2D(45, 36), new Point2D(36, 36), new Point2D(49.5, 31), TextHeight)
}, Dim);
// Diametric dimension
design1.Entities.Add(new DiametricDim(circleRight, new Point2D(12, 24), TextHeight)
{
ArrowsLocation = elementPositionType.Inside,
LineTypeMethod = colorMethodType.byEntity,
TextPrefix = "Ø",
}, Dim);
// Dash Dots Circles
Line ln1 = new Line(-64, 0, 64, 0);
Line ln2 = new Line(-45, -19, -45, 19);
Line ln3 = new Line(0, 19, 0, -49.5);
Line ln4 = new Line(45, -19, 45, 19);
Entity[] CirclesDashDots = new Entity[] { ln1, ln2, ln3, ln4 };
foreach (Line ln in CirclesDashDots)
{
ln.LineTypeMethod = colorMethodType.byEntity;
ln.LineTypeName = DashDot;
}
design1.Entities.AddRange(CirclesDashDots, Dim);
// Dash Dots Rectangles
Line ln5 = new Line(-55, 40.5, -22, 40.5);
Line ln6 = new Line(-22, 40.5, 22, 40.5);
Line ln7 = new Line(23, 40.5, 55, 40.5);
Line ln8 = new Line(-45, 18.5, -45, 46);
Line ln9 = new Line(0, 62.5, 0, 20);
Line ln10 = new Line(45, 18.5, 45, 46);
Entity[] RectanglesDashDots = new Entity[] { ln5, ln6, ln7, ln8, ln9, ln10 };
foreach (Line ln in RectanglesDashDots)
{
ln.LineTypeMethod = colorMethodType.byEntity;
ln.LineTypeName = DashDot;
}
design1.Entities.AddRange(RectanglesDashDots, Dim);
// Center figure into frame
design1.Entities.Translate(110, 150);
design1.Entities.Regen();
DrawFrame();
// Top View
design1.SetView(viewType.Top);
design1.ZoomFit();
Print();
void DrawFrame()
{
const double height = 287;
const double width = 200;
const string FrameLayer = "FrameLayer";
design1.Layers.Add(new Layer(FrameLayer));
design1.Layers[FrameLayer].LineWeight = 2;
// Outer box
DrawMainBox(FrameLayer, height, width);
// Boxes with info
DrawInfoBox(FrameLayer, FrameLayer, width);
// Text within info boxes
DrawText("CAD Practice Drawings 63", width);
// Top box with number
DrawNumberBox(63, FrameLayer, FrameLayer, height, width);
}
void DrawMainBox(string frameLayerName, double height, double width)
{
Line line = new(0, height, width, height);
design1.Entities.Add(line, frameLayerName);
line = new Line(0, height, 0, 0);
design1.Entities.Add(line, frameLayerName);
line = new Line(0, 0, width, 0);
design1.Entities.Add(line, frameLayerName);
line = new Line(width, 0, width, height);
design1.Entities.Add(line, frameLayerName);
}
void DrawNumberBox(int number, string frameLayerName, string frameTextLayerName, double height, double width)
{
Line line = new(width - 13, height - 7, width, height - 7);
design1.Entities.Add(line, frameLayerName);
line = new Line(width - 13, height, width - 13, height - 7);
design1.Entities.Add(line, frameLayerName);
Text text = new(width - 6.75, height - 3.5, 0, number.ToString(), 4, devDept.Eyeshot.Entities.Text.alignmentType.MiddleCenter);
design1.Entities.Add(text, frameTextLayerName);
}
private void DrawInfoBox(string frameLayerName, string frameTextLayerName, double width)
{
Line line = new(width - 160, 0, width - 160, 20);
design1.Entities.Add(line, frameLayerName);
line = new Line(width - 160, 20, width, 20);
design1.Entities.Add(line, frameLayerName);
// Using frameTextLayerName to have thinner lines
line = new Line(width - 65, 0, width - 65, 20);
design1.Entities.Add(line, frameTextLayerName);
line = new Line(width - 160, 13, width, 13);
design1.Entities.Add(line, frameTextLayerName);
line = new Line(width - 45, 0, width - 45, 20);
design1.Entities.Add(line, frameTextLayerName);
line = new Line(width - 25, 0, width - 25, 20);
design1.Entities.Add(line, frameTextLayerName);
line = new Line(width - 65, 7, width - 25, 7);
design1.Entities.Add(line, frameTextLayerName);
}
void DrawText(string title, double width)
{
Text text = new(width - 112, 16.5, 0, "Title", 3, devDept.Eyeshot.Entities.Text.alignmentType.MiddleCenter);
design1.Entities.Add(text);
text = new Text(width - 112, 7, 0, title, 4.5, devDept.Eyeshot.Entities.Text.alignmentType.MiddleCenter);
design1.Entities.Add(text);
text = new Text(width - 55, 16.5, 0, "Date", 3, devDept.Eyeshot.Entities.Text.alignmentType.MiddleCenter);
design1.Entities.Add(text);
text = new Text(width - 55, 10, 0, "Design", 3, devDept.Eyeshot.Entities.Text.alignmentType.MiddleCenter);
design1.Entities.Add(text);
text = new Text(width - 55, 3.5, 0, "Check", 3, devDept.Eyeshot.Entities.Text.alignmentType.MiddleCenter);
design1.Entities.Add(text);
text = new Text(width - 12.5, 16.5, 0, "Approve", 3, devDept.Eyeshot.Entities.Text.alignmentType.MiddleCenter);
design1.Entities.Add(text);
}
private async void Print()
{
// A4 size in hundredth of inches
PaperSize paperSize = new System.Drawing.Printing.PaperSize("A4", 826, 1169);
design1.PageSetup(true, false, 0, paperSize, false);
// creates printing setting object and customize it
HiddenLinesViewSettingsEx hdlS = new HiddenLinesViewSettingsEx(viewType.Top, design1.Document);
hdlS.KeepEntityLineWeight = true;
// creates paper preview
const double printScaling = 1;
HiddenLinesViewOnPaperPreview hdl = new HiddenLinesViewOnPaperPreview(hdlS, new Size(800, 600), printScaling);
await design1.DoWorkAsync(hdl);
}

Comments
Please sign in to leave a comment.