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; } }
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); }