Canguro.Analysis.LineStressCalculator.addToShearMomentDiagram C# (CSharp) Метод

addToShearMomentDiagram() приватный Метод

private addToShearMomentDiagram ( LineElement line, DirectionalLineLoad load, float controlPoints, LineForceComponent component, float scale ) : void
line Canguro.Model.LineElement
load Canguro.Model.Load.DirectionalLineLoad
controlPoints float
component LineForceComponent
scale float
Результат void
        private void addToShearMomentDiagram(LineElement line, DirectionalLineLoad load, float[,] controlPoints, LineForceComponent component, float scale)
        {
            if (load == null) return;

            float dirComponent = 0f, position;

            // Get Load direction in Local Coordinate frame
            Vector3 dir = getLocalDir(line, load.Direction);

            switch (component)
            {
                case LineForceComponent.Axial:
                case LineForceComponent.Torsion:
                    dirComponent = dir.X;
                    break;
                case LineForceComponent.Shear22:
                case LineForceComponent.Moment33:
                    dirComponent = dir.Y;
                    break;
                case LineForceComponent.Shear33:
                case LineForceComponent.Moment22:
                    dirComponent = dir.Z;
                    break;
            }

            int i;
            switch (component)
            {
                case LineForceComponent.Shear22:
                case LineForceComponent.Shear33:
                    for (i = 0; i < controlPoints.GetLength(0); i++)
                    {
                        position = controlPoints[i,0] * line.Length;
                        controlPoints[i, 1] += addToShearDiagram(load, dirComponent, position, line.Length) * scale;
                    }
                    break;
                case LineForceComponent.Moment33:
                    dirComponent = -dirComponent;
                    for (i = 0; i < controlPoints.GetLength(0); i++)
                    {
                        position = controlPoints[i,0] * line.Length;
                        controlPoints[i, 1] += addToMomentDiagram(load, dirComponent, position, line.Length) * scale;
                    }
                    break;
                case LineForceComponent.Moment22:
                    for (i = 0; i < controlPoints.GetLength(0); i++)
                    {
                        position = controlPoints[i,0] * line.Length;
                        controlPoints[i, 1] += addToMomentDiagram(load, dirComponent, position, line.Length) * scale;
                    }
                    break;
                default:
                    break;
            }
        }

Same methods

LineStressCalculator::addToShearMomentDiagram ( AbstractCase ac, LineElement line, float controlPoints, LineForceComponent component, float scale ) : void