Exemple #1
0
        /// <summary>
        /// return theta for a given z value
        /// </summary>
        /// <param name="z"></param>
        /// <returns></returns>
        double ThetaRadAtForNonConstant(double z)
        {
            var    tw0    = new GeometryLib.PointCyl();
            var    tw1    = new GeometryLib.PointCyl();
            double theta  = 0;
            bool   zFound = false;

            for (int i = 0; i < _twist.Count - 1; i++)
            {
                if ((z >= _twist[i].Z) && (z <= _twist[i + 1].Z))
                {
                    tw0    = _twist[i];
                    tw1    = _twist[i + 1];
                    zFound = true;
                }
                if (zFound)
                {
                    break;
                }
            }
            if (zFound)
            {
                if ((tw1.Z - tw0.Z) < float.Epsilon)
                {
                    theta = tw1.ThetaRad;
                }
                else
                {
                    theta = (z - tw0.Z) * (tw1.ThetaRad - tw0.ThetaRad) / (tw1.Z - tw0.Z) + tw0.ThetaRad;
                }
            }
            return(theta);
        }
Exemple #2
0
        CylData Init()
        {
            var cd    = new CylData();
            var vlist = new List <IGeometryLib.IPointCyl>();
            var v1    = new GeometryLib.PointCyl(0, 0, 1);

            vlist.Add(v1);
            vlist.Add(v1);
            cd.AddRange(vlist);
            return(cd);
        }
Exemple #3
0
        void OpenTXT(string fileName)
        {
            List <string> file = FileIO.ReadDataTextFile(fileName);

            _twist = new List <GeometryLib.PointCyl>();

            if (file.Count >= 2)
            {
                string[] splitter = FileIO.Splitter;
                if (file[0].Trim() == TwistProfile.Name)
                {
                    TwistType tempEnum = TwistType.Progressive;
                    if (Enum.TryParse <TwistType>(file[1], true, out tempEnum))
                    {
                        _type = tempEnum;
                    }
                    else
                    {
                        _type = TwistType.Progressive;
                    }

                    for (int i = 4; i < file.Count; i++)
                    {
                        string[] splitLine = file[i].Split(splitter, StringSplitOptions.RemoveEmptyEntries);
                        var      twist     = new GeometryLib.PointCyl();

                        if (splitLine.Length > 1)
                        {
                            double result = 0;
                            if (double.TryParse(splitLine[0].Trim(), out result))
                            {
                                twist.Z = result;
                            }
                            result = 0;
                            if (double.TryParse(splitLine[1].Trim(), out result))
                            {
                                twist.ThetaRad = result;
                            }

                            _twist.Add(twist);
                        }
                    }
                }
            }
        }