Пример #1
0
        public DoubleCurvedGlulam(Curve centreline, Plane[] planes) : base()
        {
            Centreline = centreline;
            //Centreline.Domain.MakeIncreasing();


            if (planes != null)
            {
                List <Vector3d> vectors    = new List <Vector3d>();
                List <double>   parameters = new List <double>();
                double          t;

                for (int i = 0; i < planes.Length; ++i)
                {
                    Centreline.ClosestPoint(planes[i].Origin, out t);
                    parameters.Add(t);
                    vectors.Add(planes[i].YAxis);
                }

                Orientation = new VectorListOrientation(Centreline, parameters, vectors);
            }
            else
            {
                Orientation = new KCurveOrientation();
            }
        }
Пример #2
0
        public Beam(Curve centreline, Curve section = null, Plane[] planes = null)
        {
            if (planes == null || planes.Length < 1)
            {
                if (centreline.IsPlanar())
                {
                    Plane cPlane;
                    centreline.TryGetPlane(out cPlane);
                    Orientation = new VectorOrientation(cPlane.ZAxis);
                }
                else
                {
                    Orientation = new KCurveOrientation();
                }
            }

            Section = section;

            Centreline = centreline;
        }