From 02649277bbcbabd8a469a07589ea1106cb317eaa Mon Sep 17 00:00:00 2001 From: Mishael Nuh Date: Tue, 24 Dec 2019 17:38:06 -0500 Subject: [PATCH 1/4] Prepare UI for options. --- RodSteward/Generator.cs | 120 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) diff --git a/RodSteward/Generator.cs b/RodSteward/Generator.cs index 46ca4a8..ac5c584 100644 --- a/RodSteward/Generator.cs +++ b/RodSteward/Generator.cs @@ -5,6 +5,9 @@ using Grasshopper.GUI; using Grasshopper.GUI.Canvas; using Rhino.Geometry; +using GH_IO.Serialization; +using System.IO; +using System.Runtime.Serialization.Formatters.Binary; namespace RodSteward { @@ -12,6 +15,12 @@ public class Generator : GH_Component { private Model model; + public bool PrintLabel = false; + public bool Collision = false; + public bool AnnotateRods = false; + public bool AnnotateJoints = false; + public bool AnnotateJointArms = false; + public Generator() : base("Generator", "RSGenerator", "Generate rod lengths and 3D printed joint meshes", @@ -54,7 +63,39 @@ protected override void RegisterOutputParams(GH_OutputParamManager pManager) ((IGH_PreviewObject)pManager[2]).Hidden = true; ((IGH_PreviewObject)pManager[3]).Hidden = true; } + public override bool Write(GH_IWriter writer) + { + try + { + writer.SetBoolean("printlabel", PrintLabel); + writer.SetBoolean("collision", Collision); + writer.SetBoolean("annotaterods", AnnotateRods); + writer.SetBoolean("annotatejoints", AnnotateJoints); + writer.SetBoolean("annotatejointarms", AnnotateJointArms); + } + catch (Exception err) + { + throw err; + } + return base.Write(writer); + } + public override bool Read(GH_IReader reader) + { + try + { + reader.TryGetBoolean("printlabel", ref PrintLabel); + reader.TryGetBoolean("collision", ref Collision); + reader.TryGetBoolean("annotaterods", ref AnnotateRods); + reader.TryGetBoolean("annotatejoints", ref AnnotateJoints); + reader.TryGetBoolean("annotatejointarms", ref AnnotateJointArms); + } + catch (Exception err) + { + throw err; + } + return base.Read(reader); + } public override void DrawViewportMeshes(IGH_PreviewArgs args) { if (model == null) @@ -129,17 +170,96 @@ public class GeneratorAttribute : Grasshopper.Kernel.Attributes.GH_ComponentAttr { public GeneratorAttribute(GH_Component owner) : base(owner) { } + private List CapsuleBounds { get; set; } + protected override void Layout() { base.Layout(); + + int numCapsules = 7; + int capsuleHeight = 22; + + System.Drawing.Rectangle rec0 = GH_Convert.ToRectangle(Bounds); + rec0.Height += 22 * numCapsules; + + CapsuleBounds = new List(); + + for(int i = 0; i < numCapsules; i++) + { + System.Drawing.Rectangle rec = rec0; + rec.Y = rec.Bottom - 22 * (numCapsules - i); + rec.Height = capsuleHeight; + rec.Inflate(-2, -2); + CapsuleBounds.Add(rec); + } + + Bounds = rec0; } protected override void Render(GH_Canvas canvas, System.Drawing.Graphics graphics, GH_CanvasChannel channel) { base.Render(canvas, graphics, channel); + + if (channel == GH_CanvasChannel.Objects) + { + var component = Owner as Generator; + + // Options + var optionTitle = GH_Capsule.CreateTextCapsule(CapsuleBounds[0], CapsuleBounds[0], GH_Palette.Normal, "Options", 0, 1); + graphics.DrawString((component.PrintLabel ? "☒" : "☐") + " Print label", optionTitle.Font, System.Drawing.Brushes.Black, CapsuleBounds[1].Location); + graphics.DrawString((component.Collision ? "☒" : "☐") + " Collision", optionTitle.Font, System.Drawing.Brushes.Black, CapsuleBounds[2].Location); + + optionTitle.Render(graphics, Selected, Owner.Locked, false); + optionTitle.Dispose(); + + // Annotation + var annotationTitle = GH_Capsule.CreateTextCapsule(CapsuleBounds[3], CapsuleBounds[3], GH_Palette.Normal, "Annotation", 0, 1); + graphics.DrawString((component.AnnotateRods ? "☒" : "☐") + " Rods", annotationTitle.Font, System.Drawing.Brushes.Black, CapsuleBounds[4].Location); + graphics.DrawString((component.AnnotateJoints ? "☒" : "☐") + " Joints", annotationTitle.Font, System.Drawing.Brushes.Black, CapsuleBounds[5].Location); + graphics.DrawString((component.AnnotateJointArms ? "☒" : "☐") + " Joint arms", annotationTitle.Font, System.Drawing.Brushes.Black, CapsuleBounds[6].Location); + + annotationTitle.Render(graphics, Selected, Owner.Locked, false); + annotationTitle.Dispose(); + } } public override GH_ObjectResponse RespondToMouseDown(GH_Canvas sender, GH_CanvasMouseEvent e) { + if (e.Button == System.Windows.Forms.MouseButtons.Left) + { + var component = Owner as Generator; + + if (((System.Drawing.RectangleF)CapsuleBounds[1]).Contains(e.CanvasLocation)) + { + component.PrintLabel = !component.PrintLabel; + component.ExpireSolution(true); + return GH_ObjectResponse.Handled; + } + else if (((System.Drawing.RectangleF)CapsuleBounds[2]).Contains(e.CanvasLocation)) + { + component.Collision = !component.Collision; + component.ExpireSolution(true); + return GH_ObjectResponse.Handled; + } + else if (((System.Drawing.RectangleF)CapsuleBounds[4]).Contains(e.CanvasLocation)) + { + component.AnnotateRods = !component.AnnotateRods; + component.ExpireSolution(true); + return GH_ObjectResponse.Handled; + } + else if (((System.Drawing.RectangleF)CapsuleBounds[5]).Contains(e.CanvasLocation)) + { + component.AnnotateJoints = !component.AnnotateJoints; + component.ExpireSolution(true); + return GH_ObjectResponse.Handled; + } + else if (((System.Drawing.RectangleF)CapsuleBounds[6]).Contains(e.CanvasLocation)) + { + component.AnnotateJointArms = !component.AnnotateJointArms; + component.ExpireSolution(true); + return GH_ObjectResponse.Handled; + } + } + return base.RespondToMouseDown(sender, e); } } From 2ea92285fa526538304f5ba7cba77370f7e4dee4 Mon Sep 17 00:00:00 2001 From: Mishael Nuh Date: Tue, 24 Dec 2019 17:46:34 -0500 Subject: [PATCH 2/4] Implement option for printing labels and collision check. --- RodSteward/Generator.cs | 13 ++++++++----- RodSteward/Model.cs | 27 +++++++++++++++------------ 2 files changed, 23 insertions(+), 17 deletions(-) diff --git a/RodSteward/Generator.cs b/RodSteward/Generator.cs index ac5c584..2b23fec 100644 --- a/RodSteward/Generator.cs +++ b/RodSteward/Generator.cs @@ -63,6 +63,7 @@ protected override void RegisterOutputParams(GH_OutputParamManager pManager) ((IGH_PreviewObject)pManager[2]).Hidden = true; ((IGH_PreviewObject)pManager[3]).Hidden = true; } + public override bool Write(GH_IWriter writer) { try @@ -96,6 +97,7 @@ public override bool Read(GH_IReader reader) } return base.Read(reader); } + public override void DrawViewportMeshes(IGH_PreviewArgs args) { if (model == null) @@ -148,8 +150,9 @@ protected override void SolveInstance(IGH_DataAccess DA) model.JointLength = jointLength; model.Tolerance = tolerance; - model.Generate(); - model.CalculateClashes(); + model.Generate(PrintLabel); + if (Collision) + model.CalculateClashes(); DA.SetData(0, model); DA.SetDataTree(1, model.JointMeshTree); @@ -189,7 +192,7 @@ protected override void Layout() System.Drawing.Rectangle rec = rec0; rec.Y = rec.Bottom - 22 * (numCapsules - i); rec.Height = capsuleHeight; - rec.Inflate(-2, -2); + rec.Inflate(0, -2); CapsuleBounds.Add(rec); } @@ -205,7 +208,7 @@ protected override void Render(GH_Canvas canvas, System.Drawing.Graphics graphic var component = Owner as Generator; // Options - var optionTitle = GH_Capsule.CreateTextCapsule(CapsuleBounds[0], CapsuleBounds[0], GH_Palette.Normal, "Options", 0, 1); + var optionTitle = GH_Capsule.CreateTextCapsule(CapsuleBounds[0], CapsuleBounds[0], GH_Palette.Grey, "Options", 0, 1); graphics.DrawString((component.PrintLabel ? "☒" : "☐") + " Print label", optionTitle.Font, System.Drawing.Brushes.Black, CapsuleBounds[1].Location); graphics.DrawString((component.Collision ? "☒" : "☐") + " Collision", optionTitle.Font, System.Drawing.Brushes.Black, CapsuleBounds[2].Location); @@ -213,7 +216,7 @@ protected override void Render(GH_Canvas canvas, System.Drawing.Graphics graphic optionTitle.Dispose(); // Annotation - var annotationTitle = GH_Capsule.CreateTextCapsule(CapsuleBounds[3], CapsuleBounds[3], GH_Palette.Normal, "Annotation", 0, 1); + var annotationTitle = GH_Capsule.CreateTextCapsule(CapsuleBounds[3], CapsuleBounds[3], GH_Palette.Grey, "Annotation", 0, 1); graphics.DrawString((component.AnnotateRods ? "☒" : "☐") + " Rods", annotationTitle.Font, System.Drawing.Brushes.Black, CapsuleBounds[4].Location); graphics.DrawString((component.AnnotateJoints ? "☒" : "☐") + " Joints", annotationTitle.Font, System.Drawing.Brushes.Black, CapsuleBounds[5].Location); graphics.DrawString((component.AnnotateJointArms ? "☒" : "☐") + " Joint arms", annotationTitle.Font, System.Drawing.Brushes.Black, CapsuleBounds[6].Location); diff --git a/RodSteward/Model.cs b/RodSteward/Model.cs index 91ec0fb..7e31c64 100644 --- a/RodSteward/Model.cs +++ b/RodSteward/Model.cs @@ -56,11 +56,11 @@ public Model() ClashedJoints = new List(); } - public void Generate() + public void Generate(bool label = true) { CalculateRodOffsets(); GenerateRodMeshes(); - GenerateJointMeshes(); + GenerateJointMeshes(label); } public Dictionary, double> CalculateRodOffsets() @@ -260,7 +260,7 @@ public Dictionary, Mesh> GenerateRodMeshes() return RodMeshes; } - public Dictionary> GenerateJointMeshes() + public Dictionary> GenerateJointMeshes(bool label = true) { var separateJointMeshes = new Dictionary>(); @@ -326,17 +326,20 @@ public Dictionary> GenerateJointMeshes() separateJointMeshes[e.Item1].Add(startMesh); separateJointMeshes[e.Item2].Add(endMesh); - // Create joint label - var startLabel = GenerateJointArmLabel(Vertices[e.Item1], vector, e.Item1.ToString() + ((char)(jointArmCounter[e.Item1] + 64)).ToString(), startCurve.GetLength()); - var endLabel = GenerateJointArmLabel(Vertices[e.Item2], vector, e.Item2.ToString() + ((char)(jointArmCounter[e.Item2] + 64)).ToString(), -endCurve.GetLength()); + if (label) + { + // Create joint label + var startLabel = GenerateJointArmLabel(Vertices[e.Item1], vector, e.Item1.ToString() + ((char)(jointArmCounter[e.Item1] + 64)).ToString(), startCurve.GetLength()); + var endLabel = GenerateJointArmLabel(Vertices[e.Item2], vector, e.Item2.ToString() + ((char)(jointArmCounter[e.Item2] + 64)).ToString(), -endCurve.GetLength()); - jointArmCounter[e.Item1]++; - jointArmCounter[e.Item2]++; + jointArmCounter[e.Item1]++; + jointArmCounter[e.Item2]++; - if (startLabel != null) - separateJointMeshes[e.Item1].Add(startLabel); - if (endLabel != null) - separateJointMeshes[e.Item2].Add(endLabel); + if (startLabel != null) + separateJointMeshes[e.Item1].Add(startLabel); + if (endLabel != null) + separateJointMeshes[e.Item2].Add(endLabel); + } } foreach (KeyValuePair> kvp in jointCorePoints) From a3d74a5702dfb599c1692d689ff1e329a4591d79 Mon Sep 17 00:00:00 2001 From: Mishael Nuh Date: Tue, 24 Dec 2019 17:47:35 -0500 Subject: [PATCH 3/4] Update Demo.gh --- examples/Demo.gh | Bin 35897 -> 53755 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/examples/Demo.gh b/examples/Demo.gh index 4493b4e048fb9846008d91038951ca954a8b4f7a..077e65fe12f1d42fde332b9c75725dd85f103f72 100644 GIT binary patch literal 53755 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 l<_MHbezWxE|DX2%?O)9^SX!tj-T}Is&(qb Date: Tue, 24 Dec 2019 19:14:02 -0500 Subject: [PATCH 4/4] Add annotation capability. --- RodSteward/Generator.cs | 79 ++++++++++++++++++++++++++++++++--------- RodSteward/Model.cs | 11 ++++++ 2 files changed, 74 insertions(+), 16 deletions(-) diff --git a/RodSteward/Generator.cs b/RodSteward/Generator.cs index 2b23fec..2e00626 100644 --- a/RodSteward/Generator.cs +++ b/RodSteward/Generator.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using Grasshopper; using Grasshopper.Kernel; using Grasshopper.GUI; using Grasshopper.GUI.Canvas; @@ -13,8 +14,9 @@ namespace RodSteward { public class Generator : GH_Component { - private Model model; + private Model model = new Model(); + public bool ForceRecalc = false; public bool PrintLabel = false; public bool Collision = false; public bool AnnotateRods = false; @@ -119,6 +121,40 @@ public override void DrawViewportMeshes(IGH_PreviewArgs args) } } + public override void DrawViewportWires(IGH_PreviewArgs args) + { + if (model == null) + return; + + if (AnnotateRods) + { + foreach (var r in model.RodCentrelines.Values) + { + var midPoint = r.PointAtNormalizedLength(0.5); + var lengthString = String.Format("{0:F2}", r.GetLength()); + + args.Display.Draw2dText(lengthString, System.Drawing.Color.Blue, midPoint, false, 20, "Lucida Console"); + } + } + + if (AnnotateJoints) + { + int counter = 0; + foreach(var v in model.Vertices) + { + args.Display.Draw2dText((counter++).ToString(), System.Drawing.Color.Orange, v, false, 20, "Lucida Console"); + } + } + + if (AnnotateJointArms) + { + foreach (var kvp in model.JointArmLabel) + { + args.Display.Draw2dText(kvp.Key, System.Drawing.Color.Green, kvp.Value, false, 20, "Lucida Console"); + } + } + } + protected override void SolveInstance(IGH_DataAccess DA) { List> edges = new List>(); @@ -129,28 +165,38 @@ protected override void SolveInstance(IGH_DataAccess DA) double jointLength = 0; double tolerance = 0; - model = new Model(); - if (!DA.GetDataList(0, edges)) { return; } if (!DA.GetDataList(1, vertices)) { return; } - if (!DA.GetData(2, ref sides)) { sides = model.Sides; } - if (!DA.GetData(3, ref radius)) { radius = model.Radius; } - if (!DA.GetData(4, ref jointThickness)) { jointThickness = model.JointThickness; } - if (!DA.GetData(5, ref jointLength)) { jointLength = model.JointLength; } - if (!DA.GetData(6, ref tolerance)) { tolerance = model.Tolerance; } + if (!DA.GetData(2, ref sides)) { sides = 50; } + if (!DA.GetData(3, ref radius)) { radius = 6.35; } + if (!DA.GetData(4, ref jointThickness)) { jointThickness = 3.0; } + if (!DA.GetData(5, ref jointLength)) { jointLength = 38; } + if (!DA.GetData(6, ref tolerance)) { tolerance = 0.1; } if (edges == null || vertices == null) { return; } if (radius <= 0 || sides <= 2 || jointThickness < 0 || jointLength < 0 || tolerance < 0) { throw new Exception("Invalid input."); } - model.Edges = edges; - model.Vertices = vertices; - model.Sides = (int)Math.Floor(sides); - model.Radius = radius; - model.JointThickness = jointThickness; - model.JointLength = jointLength; - model.Tolerance = tolerance; + if (ForceRecalc || !(model.Edges.SequenceEqual(edges) && + model.Vertices.SequenceEqual(vertices) && + model.Sides == (int)Math.Floor(sides) && + model.Radius == radius && + model.JointThickness == jointThickness && + model.JointLength == jointLength && + model.Tolerance == tolerance)) + { + ForceRecalc = false; + + model.Edges = edges; + model.Vertices = vertices; + model.Sides = (int)Math.Floor(sides); + model.Radius = radius; + model.JointThickness = jointThickness; + model.JointLength = jointLength; + model.Tolerance = tolerance; + + model.Generate(PrintLabel); + } - model.Generate(PrintLabel); if (Collision) model.CalculateClashes(); @@ -234,6 +280,7 @@ public override GH_ObjectResponse RespondToMouseDown(GH_Canvas sender, GH_Canvas if (((System.Drawing.RectangleF)CapsuleBounds[1]).Contains(e.CanvasLocation)) { component.PrintLabel = !component.PrintLabel; + component.ForceRecalc = true; component.ExpireSolution(true); return GH_ObjectResponse.Handled; } diff --git a/RodSteward/Model.cs b/RodSteward/Model.cs index 7e31c64..703410f 100644 --- a/RodSteward/Model.cs +++ b/RodSteward/Model.cs @@ -44,6 +44,8 @@ public DataTree JointMeshTree { public List> ClashedRods { get; set; } public List ClashedJoints { get; set; } + public Dictionary JointArmLabel { get; set; } + public Model() { Edges = new List>(); @@ -54,10 +56,14 @@ public Model() JointMeshes = new Dictionary>(); ClashedRods = new List>(); ClashedJoints = new List(); + JointArmLabel = new Dictionary(); } public void Generate(bool label = true) { + ClashedJoints.Clear(); + ClashedRods.Clear(); + CalculateRodOffsets(); GenerateRodMeshes(); GenerateJointMeshes(label); @@ -262,6 +268,9 @@ public Dictionary, Mesh> GenerateRodMeshes() public Dictionary> GenerateJointMeshes(bool label = true) { + JointMeshes.Clear(); + JointArmLabel.Clear(); + var separateJointMeshes = new Dictionary>(); var jointArmCounter = new Dictionary(); @@ -492,6 +501,8 @@ private Mesh GenerateJointArmLabel(Point3d origin, Vector3d direction, string la Point3d planeOrigin = Point3d.Add(origin, startTextOffset); planeOrigin = Point3d.Add(planeOrigin, dir3 * (pSideMid - origin).Length); + JointArmLabel[label] = planeOrigin; + var plane = new Plane(planeOrigin, dir1, dir2); plane.UpdateEquation();