コード例 #1
0
        private ModelPath parsePath(ToolPath5Axis inputPath, double increment)
        {
            try
            {
                inputPath[0].JetVector = GeometryLib.Vector3.ZAxis;
                BoundingBox ext      = getBoundingBox(inputPath);
                BoundingBox jetOnBox = getJetOnBoundingBox(inputPath);

                ModelPath mp = new ModelPath(ext, jetOnBox);
                mp.MeshSize = increment;
                for (int i = 1; i < inputPath.Count; i++)
                {
                    if (inputPath[i] is LinePathEntity)
                    {
                        mp.AddRange(parseLine(increment, inputPath[i], inputPath[i - 1]));
                    }
                    if (inputPath[i] is ArcPathEntity)
                    {
                        mp.AddRange(parseArc(increment, inputPath[i], inputPath[i - 1].Position));
                    }
                }
                mp.IsFiveAxis = isFiveAxis;
                return(mp);
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #2
0
        ModelPath parsePath(ToolPath5Axis inputPath, double timeIncrement)
        {
            ModelPath mp = new ModelPath(getBoundingBox(inputPath), getJetOnBoundingBox(inputPath));

            double cumulativeTime = inputPath[inputPath.Count - 1].CumulativeTime;

            int    totalTimeInc = (int)Math.Round(cumulativeTime / timeIncrement);
            double currentTime  = 0;
            int    j            = 1;

            while (currentTime <= cumulativeTime)
            {
                while (currentTime >= inputPath[j - 1].CumulativeTime && currentTime < inputPath[j].CumulativeTime)
                {
                    mp.Add(interpolate(inputPath[j - 1], inputPath[j], currentTime, timeIncrement));
                    currentTime += timeIncrement;
                }
                j++;
            }
            mp.IsFiveAxis = isFiveAxis;
            return(mp);
        }