コード例 #1
0
        static void Main(string[] args)
        {
            WR_Structure structure = new WR_Structure();

            WR_XSecRect rect = new WR_XSecRect(0.1, 0.1);

            WR_ReleaseBeam3d rel = new WR_ReleaseBeam3d(true, true, true, true, true, true);

            WR_XYZ x1 = new WR_XYZ(0, 0, 0);
            WR_XYZ x2 = new WR_XYZ(0, 1, 0);
            WR_XYZ x3 = new WR_XYZ(1, 1, 0);
            WR_XYZ x4 = new WR_XYZ(1, 0, 0);

            WR_Elem3dRcp rcp1 = new WR_Elem3dRcp(x1, x2, rel, rel, rect, 210000000000, 0.1, new WR_Vector(0, 1, 0));
            WR_Elem3dRcp rcp2 = new WR_Elem3dRcp(x2, x3, rel, rel, rect, 210000000000, 0.1, new WR_Vector(0, 1, 0));
            WR_Elem3dRcp rcp3 = new WR_Elem3dRcp(x3, x4, rel, rel, rect, 210000000000, 0.1, new WR_Vector(0, 1, 0));

            WR_Node3d n1 = new WR_Node3d(0, 0, 0);
            WR_Node3d n2 = new WR_Node3d(0, 1, 0);
            WR_Node3d n3 = new WR_Node3d(1, 1, 0);
            WR_Node3d n4 = new WR_Node3d(1, 0, 0);


            structure.AddNode(n1);
            structure.AddNode(n2);
            structure.AddNode(n3);
            structure.AddNode(n4);

            structure.AddElementRcp(rcp1);
            structure.AddElementRcp(rcp2);
            structure.AddElementRcp(rcp3);

            structure.Solve();
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: IsakNaslund/MasterThesis
        static void Main(string[] args)
        {
            WR_Structure structure = new WR_Structure();

            WR_XSecRect rect = new WR_XSecRect(0.1, 0.1);

            WR_ReleaseBeam3d rel = new WR_ReleaseBeam3d(true, true, true, true, true, true);

            WR_XYZ x1 = new WR_XYZ(0, 0, 0);
            WR_XYZ x2 = new WR_XYZ(0, 1, 0);
            WR_XYZ x3 = new WR_XYZ(1, 1, 0);
            WR_XYZ x4 = new WR_XYZ(1, 0, 0);

            WR_Elem3dRcp rcp1 = new WR_Elem3dRcp(x1, x2,rel,rel,rect,210000000000,0.1,new WR_Vector(0,1,0));
            WR_Elem3dRcp rcp2 = new WR_Elem3dRcp(x2, x3, rel, rel, rect, 210000000000, 0.1, new WR_Vector(0, 1, 0));
            WR_Elem3dRcp rcp3 = new WR_Elem3dRcp(x3, x4, rel, rel, rect, 210000000000, 0.1, new WR_Vector(0, 1, 0));

            WR_Node3d n1 = new WR_Node3d(0, 0, 0);
            WR_Node3d n2 = new WR_Node3d(0, 1, 0);
            WR_Node3d n3 = new WR_Node3d(1, 1, 0);
            WR_Node3d n4 = new WR_Node3d(1, 0, 0);

            structure.AddNode(n1);
            structure.AddNode(n2);
            structure.AddNode(n3);
            structure.AddNode(n4);

            structure.AddElementRcp(rcp1);
            structure.AddElementRcp(rcp2);
            structure.AddElementRcp(rcp3);

            structure.Solve();
        }
コード例 #3
0
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            ///// INPUTS /////
            Point3d     pt   = Point3d.Unset;
            List <bool> rels = new List <bool>();
            Plane       pl   = Plane.Unset;

            if (!DA.GetData(0, ref pt))
            {
                return;
            }

            if (!DA.GetDataList <bool>(1, rels))
            {
                //Set as unrestrained if no release information is provided
                for (int i = 0; i < 6; i++)
                {
                    rels.Add(false);
                }
            }

            if (rels.Count != 6)
            {
                AddRuntimeMessage(GH_RuntimeMessageLevel.Error, "Number of bools in input should be 6");
                return;
            }

            if (!DA.GetData(2, ref pl))
            {
                // If no plane submitted, use global XY plane
                pl = new Rhino.Geometry.Plane(new Rhino.Geometry.Point3d(0, 0, 0),
                                              new Rhino.Geometry.Vector3d(1, 0, 0), new Rhino.Geometry.Vector3d(0, 1, 0));
            }


            ///// SOLVE /////

            double factor = Utilities.GetScalingFactorFromRhino();

            WR_XYZ    wrXYZ = new WR_XYZ(pt.X * factor, pt.Y * factor, pt.Z * factor);
            WR_Vector wrX   = GetUnitizedWR_Vector(pl.XAxis);
            WR_Vector wrY   = GetUnitizedWR_Vector(pl.YAxis);
            WR_Vector wrZ   = GetUnitizedWR_Vector(pl.ZAxis);

            WR_Plane     wrPl = new WR_Plane(wrX, wrY, wrZ, wrXYZ);
            WR_Restraint rest = new WR_Restraint(wrPl, rels[0], rels[1], rels[2], rels[3], rels[4], rels[5]);

            WR_INode node = new WR_Node3d(pt.X * factor, pt.Y * factor, pt.Z * factor, rest);

            ///// OUTPUTS /////
            DA.SetData(0, node);
        }
コード例 #4
0
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            ///// INPUTS /////
            Point3d pt = Point3d.Unset;
            List<bool> rels = new List<bool>();
            Plane pl = Plane.Unset;

            if (!DA.GetData(0, ref pt)) { return; }

            if (!DA.GetDataList<bool>(1, rels))
            {
                //Set as unrestrained if no release information is provided
                for (int i = 0; i < 6; i++)
                {
                    rels.Add(false);
                }
            }

            if (rels.Count != 6)
            {
                AddRuntimeMessage(GH_RuntimeMessageLevel.Error, "Number of bools in input should be 6");
                return;
            }

            if (!DA.GetData(2, ref pl))
            {
                // If no plane submitted, use global XY plane
                pl = new Rhino.Geometry.Plane(new Rhino.Geometry.Point3d(0,0,0),
                    new Rhino.Geometry.Vector3d(1,0,0), new Rhino.Geometry.Vector3d(0,1,0));
            }

            ///// SOLVE /////

            double factor = Utilities.GetScalingFactorFromRhino();

            WR_XYZ wrXYZ = new WR_XYZ(pt.X * factor, pt.Y * factor, pt.Z * factor);
            WR_Vector wrX = GetUnitizedWR_Vector(pl.XAxis);
            WR_Vector wrY = GetUnitizedWR_Vector(pl.YAxis);
            WR_Vector wrZ = GetUnitizedWR_Vector(pl.ZAxis);

            WR_Plane wrPl = new WR_Plane(wrX, wrY, wrZ, wrXYZ);
            WR_Restraint rest = new WR_Restraint(wrPl, rels[0], rels[1], rels[2], rels[3], rels[4], rels[5]);

            WR_INode node = new WR_Node3d(pt.X * factor, pt.Y * factor, pt.Z * factor, rest);

            ///// OUTPUTS /////
            DA.SetData(0, node);
        }