示例#1
0
        internal static void AdjustBeamEnd(Autodesk.AdvanceSteel.Modelling.Beam beam, Autodesk.AdvanceSteel.Geometry.Point3d newPtStart)
        {
            Autodesk.AdvanceSteel.Geometry.Point3d beamPtStart = beam.GetPointAtStart();
            Autodesk.AdvanceSteel.Geometry.Point3d beamPtEnd   = beam.GetPointAtEnd();

            if (beamPtEnd.IsEqualTo(newPtStart))
            {
                Autodesk.AdvanceSteel.Geometry.Point3d newBeamEnd = beamPtEnd + (beamPtEnd - beamPtStart) * 0.5;
                beam.SetSysEnd(newBeamEnd);
            }
        }
示例#2
0
        internal static void SetOrientation(Autodesk.AdvanceSteel.Modelling.Beam beam, Autodesk.AdvanceSteel.Geometry.Vector3d vOrientation)
        {
            beam.PhysCSStart.GetCoordSystem(out _, out Vector3d vXAxis, out Vector3d vYAxis, out Vector3d vZAxis);
            if (!vXAxis.IsParallelTo(vOrientation))
            {
                Vector3d vProj = vOrientation.OrthoProject(vXAxis);

                double dAngle = vZAxis.GetAngleTo(vProj, vXAxis);

                beam.SetXRotation(dAngle * 180 / Math.PI);
            }
        }