protected override void SolveInstance(IGH_DataAccess DA) { Util.Gears gear = new Util.Gears(); LModules.Clear(); Tangents.Clear(); HelicalRacks.Clear(); DA.GetDataList <Line>("Line", Tangents); DA.GetDataList <System.Object>("CircleModule", LModules); DA.GetData <double>("Teeth", ref Teeth); DA.GetData <double>("Angle", ref Angle); DA.GetData <double>("HelicalAngle", ref betaAngle); DA.GetData <double>("Depth", ref Depth); DA.GetData <double>("addendum", ref addendum); DA.GetData <double>("dedendum", ref dedendum); for (int i = 0; i < Tangents.Count; i++) { System.Object obj = LModules[0]; if (LModules.Count - 1 < i) { obj = LModules[LModules.Count - 1]; } else { obj = LModules[i]; } double n; Circle c = new Circle(); if (GH_Convert.ToCircle(obj, ref c, GH_Conversion.Both)) { HelicalRacks.Add(gear.buildHelicalRack(Tangents[i], c, Teeth, Angle, betaAngle, Depth, addendum, dedendum)); } if (GH_Convert.ToDouble(obj, out n, GH_Conversion.Primary)) { HelicalRacks.Add(gear.buildHelicalRack(Tangents[i], n, Teeth, Angle, betaAngle, Depth, addendum, dedendum)); } } DA.SetDataList(0, HelicalRacks); texts = gear.texts; locations = gear.locations; sizes = gear.sizes; }
protected override void SolveInstance(IGH_DataAccess DA) { Util.Gears gear = new Util.Gears(); LModules = new List <System.Object>(); Tangents = new List <Line>(); Rack = new List <Curve>(); DA.GetDataList <Line>(0, Tangents); DA.GetDataList <System.Object>(1, LModules); DA.GetData <double>(2, ref Teeth); DA.GetData <double>(3, ref Angle); DA.GetData <double>(4, ref addendum); DA.GetData <double>(5, ref dedendum); for (int i = 0; i < Tangents.Count; i++) { System.Object obj = LModules[0]; if (LModules.Count - 1 < i) { obj = LModules[LModules.Count - 1]; } else { obj = LModules[i]; } double n; Circle c = new Circle(); if (GH_Convert.ToCircle(obj, ref c, GH_Conversion.Both)) { Rack.Add(gear.buildRack(Tangents[i], c, Teeth, Angle, addendum, dedendum)); } if (GH_Convert.ToDouble(obj, out n, GH_Conversion.Primary)) { Rack.Add(gear.buildRack(Tangents[i], n, Teeth, Angle, addendum, dedendum)); } } DA.SetDataList(0, Rack); texts = gear.texts; locations = gear.locations; sizes = gear.sizes; }