Exemplo n.º 1
0
        internal override int ReadParameters(List <string> parameters, IgesReaderBinder binder)
        {
            Results.Clear();

            int index = 0;

            binder.BindEntity(Integer(parameters, index++), e => GeneralNote = e as IgesGeneralNote);
            AnalysisSubcase = Integer(parameters, index++);
            AnalysisTime    = DateTime(parameters, index++);
            var valueCount = Integer(parameters, index++);
            var nodeCount  = Integer(parameters, index++);

            for (int i = 0; i < nodeCount; i++)
            {
                var result     = new IgesNodalResult();
                int nodeNumber = Integer(parameters, index++); // not used
                binder.BindEntity(Integer(parameters, index++), e => result.Node = e as IgesNode);
                for (int j = 0; j < valueCount; j++)
                {
                    result.Values.Add(Double(parameters, index++));
                }

                Results.Add(result);
            }

            return(index);
        }
Exemplo n.º 2
0
 internal override int ReadParameters(List <string> parameters, IgesReaderBinder binder)
 {
     this.X = Double(parameters, 0);
     this.Y = Double(parameters, 1);
     this.Z = Double(parameters, 2);
     return(3);
 }
 internal override int ReadParameters(List <string> parameters, IgesReaderBinder binder)
 {
     binder.BindEntity(Integer(parameters, 0), e => Curve = e);
     ExtrusionLength    = Double(parameters, 1);
     ExtrusionDirection = IgesVector.Vector3D(parameters, 2);
     return(5);
 }
Exemplo n.º 4
0
        internal override int ReadParameters(List <string> parameters, IgesReaderBinder binder)
        {
            var index         = 0;
            var analysisCount = Integer(parameters, index++);

            NodeAnalyses = Enumerable.Range(0, analysisCount).Select(_ => new IgesNodalAnalysis()).ToList();
            for (int i = 0; i < analysisCount; i++)
            {
                var idx = i;
                binder.BindEntity(Integer(parameters, index++), e => NodeAnalyses[idx].GeneralNote = e as IgesGeneralNote);
            }

            var nodeCount = Integer(parameters, index++);

            for (int i = 0; i < nodeCount; i++)
            {
                var idx           = i;
                var analysisCases = new List <IgesNodalAnalysisCase>();
                NodeAnalyses[idx].Identifier = Integer(parameters, index++);
                binder.BindEntity(Integer(parameters, index++), e => NodeAnalyses[idx].FiniteElement = e as IgesFiniteElement);
                for (int j = 0; j < analysisCount; j++)
                {
                    var x  = Double(parameters, index++);
                    var y  = Double(parameters, index++);
                    var z  = Double(parameters, index++);
                    var rx = Double(parameters, index++);
                    var ry = Double(parameters, index++);
                    var rz = Double(parameters, index++);
                    analysisCases.Add(new IgesNodalAnalysisCase(new IgesVector(x, y, z), rx, ry, rz));
                }
            }

            return(index);
        }
Exemplo n.º 5
0
        internal override int ReadParameters(List <string> parameters, IgesReaderBinder binder)
        {
            var index = 0;

            binder.BindEntity(Integer(parameters, ref index), generalNote => GeneralNote = generalNote as IgesGeneralNote);
            if (FormNumber == 0)
            {
                binder.BindEntity(Integer(parameters, ref index), witness =>
                {
                    if (witness == null)
                    {
                        return;
                    }
                    else if (witness is IgesCopiousData)
                    {
                        WitnessLine = witness as IgesCopiousData;
                    }
                    else if (witness is IgesLeader)
                    {
                        FirstLeader = witness as IgesLeader;
                    }
                });
            }
            else if (FormNumber == 1)
            {
                binder.BindEntity(Integer(parameters, ref index), witness => WitnessLine = witness as IgesCopiousData);
                binder.BindEntity(Integer(parameters, ref index), leader => FirstLeader  = leader as IgesLeader);
            }

            return(index);
        }
Exemplo n.º 6
0
 internal override int ReadParameters(List <string> parameters, IgesReaderBinder binder)
 {
     this.Line = new Line2D(
         IgesPoint.Point2D(parameters, 0),
         IgesPoint.Point2D(parameters, 3));
     return(6);
 }
Exemplo n.º 7
0
        internal static IgesTextString ReadParameters(List <string> parameters, IgesReaderBinder binder, ref int index)
        {
            var str = new IgesTextString();

            str.PopulateFromParameters(parameters, binder, ref index);
            return(str);
        }
Exemplo n.º 8
0
        internal override int ReadParameters(List <string> parameters, IgesReaderBinder binder)
        {
            int index = 0;

            this.CharacterBoxWidth  = Double(parameters, index++);
            this.CharacterBoxHeight = Double(parameters, index++);
            var fontCode = Integer(parameters, index++);

            if (fontCode < 0)
            {
                binder.BindEntity(-fontCode, e => TextFontDefinition = e as IgesTextFontDefinition);
                this.FontCode = 0;
            }
            else
            {
                this.FontCode = fontCode;
            }

            this.SlantAngle       = Double(parameters, index++);
            this.RotationAngle    = Double(parameters, index++);
            this.MirroringAxis    = (IgesTextMirroringAxis)Integer(parameters, index++);
            this.RotationType     = (IgesTextRotationType)Integer(parameters, index++);
            this.LocationOrOffset = Vector(parameters, ref index);
            return(index);
        }
Exemplo n.º 9
0
        internal void PopulateFromParameters(List <string> parameters, IgesReaderBinder binder, ref int index)
        {
            var charCount = IgesParameterReader.Integer(parameters, index++);

            BoxWidth  = IgesParameterReader.Double(parameters, index++);
            BoxHeight = IgesParameterReader.Double(parameters, index++);

            var fontCode = IgesParameterReader.IntegerOrDefault(parameters, index++, 1);

            if (fontCode < 0)
            {
                binder.BindEntity(-fontCode, e => TextFontDefinition = e as IgesTextFontDefinition);
                FontCode = -1;
            }
            else
            {
                FontCode = fontCode;
            }

            SlantAngle    = IgesParameterReader.Double(parameters, index++);
            RotationAngle = IgesParameterReader.Double(parameters, index++);
            MirroringAxis = (IgesTextMirroringAxis)IgesParameterReader.Integer(parameters, index++);
            RotationType  = (IgesTextRotationType)IgesParameterReader.Integer(parameters, index++);
            Location      = IgesParameterReader.Point3(parameters, ref index);
            Value         = IgesParameterReader.String(parameters, index++);
        }
Exemplo n.º 10
0
        internal override int ReadParameters(List <string> parameters, IgesReaderBinder binder)
        {
            var nextIndex = base.ReadParameters(parameters, binder);

            Name = String(parameters, nextIndex);
            return(nextIndex + PropertyCount);
        }
Exemplo n.º 11
0
 internal override int ReadParameters(List <string> parameters, IgesReaderBinder binder)
 {
     Direction = IgesVector.Vector3D(parameters, 0);
     Distance  = Double(parameters, 3);
     binder.BindEntity(Integer(parameters, 4), e => Surface = e);
     return(5);
 }
Exemplo n.º 12
0
 internal override int ReadParameters(List <string> parameters, IgesReaderBinder binder)
 {
     binder.BindEntity(Integer(parameters, 0), e => Curve = e);
     RevolutionAmount = Double(parameters, 1);
     PointOnAxis      = IgesPoint.Point3D(parameters, 2);
     AxisDirection    = IgesVector.Vector3D(parameters, 5);
     return(8);
 }
Exemplo n.º 13
0
 internal override int ReadParameters(List <string> parameters, IgesReaderBinder binder)
 {
     this.RedIntensity   = Double(parameters, 0);
     this.GreenIntensity = Double(parameters, 1);
     this.BlueIntensity  = Double(parameters, 2);
     this.Name           = String(parameters, 3);
     return(4);
 }
Exemplo n.º 14
0
 internal override int ReadParameters(List <string> parameters, IgesReaderBinder binder)
 {
     this.PlaneDisplacement = Double(parameters, 0);
     this.Center            = IgesPoint.Point2D(parameters, 1);
     this.StartPoint        = IgesPoint.Point2D(parameters, 3);
     this.EndPoint          = IgesPoint.Point2D(parameters, 5);
     return(7);
 }
Exemplo n.º 15
0
 internal override int ReadParameters(List <string> parameters, IgesReaderBinder binder)
 {
     Height          = Double(parameters, 0);
     Radius          = Double(parameters, 1);
     FirstFaceCenter = IgesPoint.Point3D(parameters, 2);
     AxisDirection   = IgesVector.Vector3D(parameters, 5);
     return(8);
 }
Exemplo n.º 16
0
 internal override int ReadParameters(List <string> parameters, IgesReaderBinder binder)
 {
     this.Orientation = (IgesTemplateLineFontOrientation)Integer(parameters, 0);
     binder.BindEntity(Integer(parameters, 1), e => Template = e as IgesSubfigureDefinition);
     this.CommonArcLength = Double(parameters, 2);
     this.ScaleFactor     = Double(parameters, 3);
     return(4);
 }
Exemplo n.º 17
0
        internal override int ReadParameters(List <string> parameters, IgesReaderBinder binder)
        {
            int index = 0;

            this.Radius = Double(parameters, index++);
            this.Center = Point3(parameters, ref index);
            return(index);
        }
Exemplo n.º 18
0
 internal override int ReadParameters(List <string> parameters, IgesReaderBinder binder)
 {
     binder.BindEntity(Integer(parameters, 0), e => AxisOfRevolution = e as IgesLine);
     binder.BindEntity(Integer(parameters, 1), e => Generatrix       = e);
     StartAngle = Double(parameters, 2);
     EndAngle   = Double(parameters, 3);
     return(4);
 }
Exemplo n.º 19
0
        internal override int ReadParameters(List <string> parameters, IgesReaderBinder binder)
        {
            int index = 0;

            this.Offset = Point3(parameters, ref index);
            binder.BindEntity(Integer(parameters, index++), e => DisplacementCoordinateSystem = e as IgesTransformationMatrix);
            return(index);
        }
Exemplo n.º 20
0
        internal override int ReadParameters(List <string> parameters, IgesReaderBinder binder)
        {
            int index = 0;

            binder.BindEntity(Integer(parameters, index++), e => BooleanTree = e as IgesBooleanTree);
            SelectionPoint = Point3(parameters, ref index);
            return(index);
        }
Exemplo n.º 21
0
 internal override int ReadParameters(List <string> parameters, IgesReaderBinder binder)
 {
     this.RingRadius = Double(parameters, 0);
     this.DiscRadius = Double(parameters, 1);
     this.Center     = IgesPoint.Point3D(parameters, 2);
     this.Normal     = IgesVector.ReadZAxis(parameters, 5);
     return(8);
 }
Exemplo n.º 22
0
 internal override int ReadParameters(List <string> parameters, IgesReaderBinder binder)
 {
     binder.BindEntity(Integer(parameters, 0), e => FirstCurve  = e);
     binder.BindEntity(Integer(parameters, 1), e => SecondCurve = e);
     Direction     = (IgesRuledSurfaceDirection)Integer(parameters, 2);
     IsDevelopable = Boolean(parameters, 3);
     return(4);
 }
Exemplo n.º 23
0
        internal override int ReadParameters(List <string> parameters, IgesReaderBinder binder)
        {
            int index = 0;

            this.P1 = Point3(parameters, ref index);
            this.P2 = Point3(parameters, ref index);
            return(index);
        }
        internal override int ReadParameters(List <string> parameters, IgesReaderBinder binder)
        {
            int index = 0;

            binder.BindEntity(Integer(parameters, index++), e => Curve = e);
            ExtrusionLength    = Double(parameters, index++);
            ExtrusionDirection = Vector(parameters, ref index);
            return(index);
        }
Exemplo n.º 25
0
        internal override int ReadParameters(List <string> parameters, IgesReaderBinder binder)
        {
            var index          = 0;
            var stack          = new Stack <object>();
            var parameterCount = Integer(parameters, index++);

            for (int i = 0; i < parameterCount; i++)
            {
                var value = Integer(parameters, index++);
                if (value < 0)
                {
                    // negative index
                    stack.Push(-value);
                }
                else if (value > 0)
                {
                    // operation
                    var node      = new IgesBooleanTreeOperation((IgesBooleanTreeOperationKind)value);
                    var rightItem = stack.Pop();
                    var leftItem  = stack.Pop();

                    if (rightItem is int)
                    {
                        binder.BindEntity((int)rightItem, e => node.RightChild = new IgesBooleanTreeEntity(e));
                    }
                    else if (rightItem is IIgesBooleanTreeItem)
                    {
                        node.RightChild = (IIgesBooleanTreeItem)rightItem;
                    }
                    else
                    {
                        throw new InvalidOperationException("Unexpected item on stack: " + rightItem.GetType().Name);
                    }

                    if (leftItem is int)
                    {
                        binder.BindEntity((int)leftItem, e => node.LeftChild = new IgesBooleanTreeEntity(e));
                    }
                    else if (leftItem is IIgesBooleanTreeItem)
                    {
                        node.LeftChild = (IIgesBooleanTreeItem)leftItem;
                    }
                    else
                    {
                        throw new InvalidOperationException("Unexpected item on stack: " + leftItem.GetType().Name);
                    }

                    stack.Push(node);
                }
            }

            RootNode = stack.Count == 0
                ? null
                : (IIgesBooleanTreeItem)stack.Pop();

            return(index);
        }
Exemplo n.º 26
0
        internal override int ReadParameters(List <string> parameters, IgesReaderBinder binder)
        {
            int index = 0;
            var k1    = Integer(parameters, index++);
            var k2    = Integer(parameters, index++);
            var m1    = Integer(parameters, index++);
            var m2    = Integer(parameters, index++);

            IsClosedInFirstParametricVariable  = Boolean(parameters, index++);
            IsClosedInSecondParametricVariable = Boolean(parameters, index++);
            IsPolynomial = Boolean(parameters, index++);
            IsPeriodicInFirstParametricVariable  = Boolean(parameters, index++);
            IsPeriodicInSecondParametricVariable = Boolean(parameters, index++);

            var n1 = 1 + k1 - m1;
            var n2 = 1 + k2 - m2;
            var a  = n1 + 2 * m1;
            var b  = n2 + 2 * m2;

            for (int i = 0; i < a + 1; i++)
            {
                FirstKnotValueSequence.Add(Double(parameters, index++));
            }

            for (int i = 0; i < b + 1; i++)
            {
                SecondKnotValueSequence.Add(Double(parameters, index++));
            }

            Weights = new double[k1 + 1, k2 + 1];
            for (int j = 0; j < k2 + 1; j++)
            {
                for (int i = 0; i < k1 + 1; i++)
                {
                    Weights[i, j] = Double(parameters, index++);
                }
            }

            ControlPoints = new IgesPoint[k1 + 1, k2 + 1];
            for (int j = 0; j < k2 + 1; j++)
            {
                for (int i = 0; i < k1 + 1; i++)
                {
                    var x = Double(parameters, index++);
                    var y = Double(parameters, index++);
                    var z = Double(parameters, index++);
                    ControlPoints[i, j] = new IgesPoint(x, y, z);
                }
            }

            FirstParametricStartingValue  = Double(parameters, index++);
            FirstParametricEndingValue    = Double(parameters, index++);
            SecondParametricStartingValue = Double(parameters, index++);
            SecondParametricEndingValue   = Double(parameters, index++);

            return(index);
        }
Exemplo n.º 27
0
        internal override int ReadParameters(List <string> parameters, IgesReaderBinder binder)
        {
            var index = 0;

            binder.BindEntity(Integer(parameters, index++), generalNote => GeneralNote = generalNote as IgesGeneralNote);
            binder.BindEntity(Integer(parameters, index++), leader => FirstLeader      = leader as IgesLeader);
            binder.BindEntity(Integer(parameters, index++), geometry => Geometry       = geometry);
            return(index);
        }
Exemplo n.º 28
0
 internal override int ReadParameters(List <string> parameters, IgesReaderBinder binder)
 {
     CurveCreationType = (IgesCurveCreationType)Integer(parameters, 0);
     binder.BindEntity(Integer(parameters, 1), e => Surface          = e);
     binder.BindEntity(Integer(parameters, 2), e => CurveDefinitionB = e);
     binder.BindEntity(Integer(parameters, 3), e => CurveDefinitionC = e);
     PreferredRepresentation = (IgesCurvePreferredRepresentation)Integer(parameters, 4);
     return(5);
 }
Exemplo n.º 29
0
 internal override int ReadParameters(List <string> parameters, IgesReaderBinder binder)
 {
     Height          = Double(parameters, 0);
     LargeFaceRadius = Double(parameters, 1);
     SmallFaceRadius = Double(parameters, 2);
     LargeFaceCenter = IgesPoint.Point3D(parameters, 3);
     AxisDirection   = IgesVector.Vector3D(parameters, 6);
     return(9);
 }
Exemplo n.º 30
0
        internal override int ReadParameters(List <string> parameters, IgesReaderBinder binder)
        {
            int index = 0;

            Direction = Vector(parameters, ref index);
            Distance  = Double(parameters, index++);
            binder.BindEntity(Integer(parameters, index++), e => Surface = e);
            return(index);
        }