protected override void SolveInstance(IGH_DataAccess DA) { //---variables--- int surfNo = 0; Vector3d forceVec = new Vector3d(); BrepGeometry brp = new BrepGeometry(); MeshGeometry mesh = new MeshGeometry(); //---input--- if (!DA.GetData(0, ref surfNo)) { return; } if (!DA.GetData(1, ref forceVec)) { return; } if (!DA.GetData(2, ref mesh)) { return; } //---solve--- brp = mesh.GetBrep(); Brep surface = mesh.GetSurfaceAsBrep(surfNo); double area = surface.GetArea(); List <Node> nodes = mesh.GetNodeList(); (List <string> pointLoads, double maxLoad) = FindPointLoads(surfNo, area, forceVec, nodes, brp); // For previewing of loads double refLength = brp.GetRefLength(); List <Line> arrows = DrawLoads(pointLoads, refLength, maxLoad); Color color = Color.FromArgb(135, 206, 255); //---output--- DA.SetDataList(0, pointLoads); DA.SetDataList(1, arrows); DA.SetData(2, color); }
protected override void SolveInstance(IGH_DataAccess DA) { //---variables--- int surfNo = 0; string restrains = "0,0,0"; MeshGeometry mesh = new MeshGeometry(); //---input--- if (!DA.GetData(0, ref surfNo)) { return; } if (!DA.GetData(1, ref mesh)) { return; } BrepGeometry brp = mesh.GetBrep(); List <Node> nodes = mesh.GetNodeList(); //---solve--- List <string> pointsBC = FindBCPoints(surfNo, restrains, nodes); //For previewing of bc double refLength = brp.GetRefLength(); List <Brep> cones = DrawBC(pointsBC, refLength); Color color = Color.FromArgb(0, 100, 255); //---output--- DA.SetDataList(0, pointsBC); DA.SetDataList(1, cones); DA.SetData(2, color); }
protected override void SolveInstance(IGH_DataAccess DA) { //---variables--- MeshGeometry mesh = new MeshGeometry(); GH_Structure <GH_Number> treeStress = new GH_Structure <GH_Number>(); int dir = new int(); double scale = new double(); //---input--- if (!DA.GetData(0, ref mesh)) { return; } if (!DA.GetDataTree(1, out treeStress)) { return; } if (!DA.GetData(2, ref dir)) { return; } if (!DA.GetData(3, ref scale)) { return; } //---setup--- BrepGeometry brp = mesh.GetBrep(); Brep brep = brp.GetBrep(); Point3d centroid = brp.GetCentroid(); double refLength = brp.GetRefLength(); Point3d center = Point3d.Add(centroid, new Point3d(0, -refLength * 6.5, 0)); double angle = 90 * Math.PI / 180; //---solve--- List <Element> elements = mesh.GetElements(); List <Node> nodes = mesh.GetNodeList(); List <Brep> breps = CreateDefBreps(elements, scale, angle, center); //Getting colors for each brep (List <Color> brepColors, List <string> rangeValues) = ColorBreps(elements, breps, dir); //Creating breps stress legend List <Brep> brepRanges = CreateBrepRanges(centroid, refLength, center, angle); //Getting colors stress legend List <Color> colorRange = CreateColorRange(); //Output brep colors legend (List <Plane> planeRanges, double textSize) = CreateTextPlanes(brepRanges, refLength); List <double> textSizeRange = Enumerable.Repeat(textSize, rangeValues.Count).ToList(); //Output text legend size List <Color> textColorRange = Enumerable.Repeat(Color.White, rangeValues.Count).ToList(); // Output text color legend //Createing headline for area var tuple3 = CreateHeadline(centroid, angle, center, refLength); string headText = tuple3.Item1; double headSize = tuple3.Item2; Plane headPlane = tuple3.Item3; Color headColor = tuple3.Item4; //Adding the different text components together to one output. rangeValues.Add(headText); List <string> text = rangeValues; textSizeRange.Add(headSize); List <double> textSizes = textSizeRange; planeRanges.Add(headPlane); List <Plane> textPlanes = planeRanges; textColorRange.Add(headColor); List <Color> textColors = textColorRange; //---output--- DA.SetDataList(0, breps); DA.SetDataList(1, brepColors); DA.SetDataList(2, brepRanges); DA.SetDataList(3, colorRange); DA.SetDataList(4, text); DA.SetDataList(5, textSizes); DA.SetDataList(6, textPlanes); DA.SetDataList(7, textColors); }
protected override void SolveInstance(IGH_DataAccess DA) { //---variables--- MeshGeometry mesh = new MeshGeometry(); GH_Structure <GH_Number> treeDef = new GH_Structure <GH_Number>(); double scale = 1; //---input--- if (!DA.GetData(0, ref mesh)) { return; } if (!DA.GetDataTree(1, out treeDef)) { return; } if (!DA.GetData(2, ref scale)) { return; } //---setup--- List <Brep> breps = new List <Brep>(); BrepGeometry brp = mesh.GetBrep(); Brep brep = brp.GetBrep(); Point3d centroid = brp.GetCentroid(); double refLength = brp.GetRefLength(); double refSize = (double)(refLength / 10); double angle = 270 * Math.PI / 180; Point3d center = Point3d.Add(centroid, new Point3d(0, -refLength * 6.5, 0)); //Center for viewpoint //---solve--- List <Element> elements = mesh.GetElements(); List <Node> nodes = mesh.GetNodeList(); breps = CreateDefBreps(elements, scale, angle, center); //Finding point with max deformation (double defMax, Node nodeMax) = GetMaxDeformation(nodes); Brep sphere = DrawSphere(nodeMax, angle, center, scale, refSize); Color colorSphere = Color.Orange; VolumeMassProperties vmpt = VolumeMassProperties.Compute(sphere); Point3d centroidt = vmpt.Centroid; //Creating text for displaying it for max value var tuple2 = CreateText(defMax, nodeMax, scale, refSize, angle, center); string textDef = tuple2.Item1; double textDefSize = tuple2.Item2; Plane textDefPlane = tuple2.Item3; Color textDefColor = tuple2.Item4; //Createing headline for area var tuple3 = CreateHeadline(centroid, angle, center, refLength); string headText = tuple3.Item1; double headSize = tuple3.Item2; Plane headPlane = tuple3.Item3; Color headColor = tuple3.Item4; //Adding geometry together for output List <Color> brepColors = AssignColors(breps); breps.Add(sphere); List <Brep> geoBreps = breps; brepColors.Add(colorSphere); List <Color> geoColor = brepColors; Curve[] lines = DrawOuterCurves(brep, angle, center); Color linesColor = Color.White; //Adding the different text components together to one output. List <string> text = new List <String> { textDef, headText, }; List <double> textSizes = new List <double> { textDefSize, headSize, }; List <Plane> textPlanes = new List <Plane> { textDefPlane, headPlane, }; List <Color> textColors = new List <Color> { textDefColor, headColor, }; //---output--- //Geometry DA.SetDataList(0, geoBreps); DA.SetDataList(1, geoColor); DA.SetDataList(2, lines); DA.SetData(3, linesColor); DA.SetDataList(4, text); DA.SetDataList(5, textSizes); DA.SetDataList(6, textPlanes); DA.SetDataList(7, textColors); }