A Method for Generating Toolpaths in the Manufacturing of Orthosis Molds with a Five-Axis Computer Numerical Control Machine
Abstract
:1. Introduction
- Fast and simple production of molds/orthoses;
- Implementation of the complex geometry of the workpiece;
- High surface quality with consistent processing precision without vibrations;
- Minimal manual labor;
- Robustness of applied algorithms for generating toolpaths.
- Contour and profiling (realized using Delaunay triangulation, Voronoi diagrams, Bézier curves, B-spline curves, NURBS curves);
- Three-Dimensional Raster strategy (Uniform rasterization, Digital Differential Analysis (DDA);
- Voxel-Based Toolpath Generation (voxelization, space search algorithms such as Breadth-first search algorithm).
- Automation and efficiency. The proposed algorithm allows for faster automatic toolpath generation, significantly reducing the need for manual intervention and adjustments. This greatly shortens the toolpath preparation time compared to commercial software solutions, which typically require detailed manual adjustments for each model surface.This is particularly important, considering that mold production for orthoses often involves complex surfaces requiring precise and customized toolpaths. The automated adaptation of the toolpath, without the need for manual fine-tuning, enables faster and more efficient operations, especially when dealing with the more intricate geometries of orthoses.
- Voxelization flexibility. By using voxelization of the 3D model, the algorithm offers flexibility in choosing voxel size, allowing a balance between precision and processing efficiency. Smaller voxels increase toolpath precision, while larger voxels reduce processing time.
- Toolpath optimization. The algorithm employs multiple methods for toolpath optimization and surface coverage with iso-contours, ensuring efficient material removal and minimizing tool idle time.
- Parallelization and computational efficiency. Voxelization enables parallel computation, which can significantly speed up the toolpath generation process. This is particularly useful on modern hardware platforms that support parallel processing, such as GPUs.
- Robustness and reliability. The algorithm is stable in toolpath calculations, ensuring consistent quality in mold-making for orthoses. This is a significant advantage, as irregularities in the toolpath can lead to inadequate orthosis production, negatively affecting the comfort and functionality of the aid.
- Flexibility. Compared to commercial CAM software, the proposed algorithm is simpler to apply in the O&P industry. Traditional CAM software solutions often requires detailed adjustments for each model surface, while the proposed algorithm features easy customization of its parameters, thereby enabling the adaptation of each toolpath to the specific requirements of the orthosis surface geometry. This is especially important for achieving optimal results in the production of custom orthopedic aids, where greater flexibility in the adaptation of toolpaths is necessary to ensure process optimization in relation to different materials and machining parameters.
- Surface quality. The toolpath generation process allows for achieving high-quality mold surfaces, which are important for making functional and comfortable orthoses.
2. Materials and Methods
- Voxelization of the model. The 3D model is divided into small volumetric units (voxels), creating a grid that facilitates further processing.
- Contour extraction using the 3D Region Growing algorithm. An initial point (seed) is selected in the voxel grid, and the algorithm expands the region by adding neighboring voxels that meet similarity criteria.
- Point reduction using the Ramer–Douglas–Peucker algorithm. This algorithm reduces the number of points in the polygon while retaining its basic shape.
- Toolpath optimization using the Traveling Salesman Problem (TSP) algorithm. The points are connected in a sequence to ensure the shortest possible toolpath between all points.
- Toolpath interpolation. The toolpath is generated using B-spline curves to ensure smooth transitions between points.
2.1. Three-Dimensional Model Voxelization
Algorithm 1 Three-Dimensional Model Voxelization—basic and simplified approach |
function voxelize(points, voxel_size, grid_min, grid_max): Nx = ceil((grid_max.x − grid_min.x)/voxel_size.x) Ny = ceil((grid_max.y − grid_min.y)/voxel_size.y) Nz = ceil((grid_max.z − grid_min.z)/voxel_size.z) voxel_mesh_ = zeros(Nx, Ny, Nz) for each point (x, y, z) in points: i = floor((x − grid_min.x)/voxel_size.x) j = floor((y − grid_min.y)/voxel_size.y) k = floor((z − grid_min.z)/voxel_size.z) voxel_mesh_[i][j][k] = 1 return voxel_mesh_ |
Algorithm 2 Three-Dimensional Model Voxelization—a triangle mesh voxelization approach |
function voxelize_triangle_mesh(triangles, voxel_size, grid_min, grid_max): Nx = ceil((grid_max.x − grid_min.x)/voxel_size.x) Ny = ceil((grid_max.y − grid_min.y)/voxel_size.y) Nz = ceil((grid_max.z − grid_min.z)/voxel_size.z) voxel_mesh_ = zeros(Nx, Ny, Nz) for each triangle (v1, v2, v3) in triangles: triangle_min = min(v1, v2, v3) triangle_max = max(v1, v2, v3) i_min = floor((triangle_min.x − grid_min.x)/voxel_size.x) i_max = floor((triangle_max.x − grid_min.x)/voxel_size.x) j_min = floor((triangle_min.y − grid_min.y)/voxel_size.y) j_max = floor((triangle_max.y − grid_min.y)/voxel_size.y) k_min = floor((triangle_min.z − grid_min.z)/voxel_size.z) k_max = floor((triangle_max.z − grid_min.z)/voxel_size.z) for i in range(i_min, i_max + 1): for j in range(j_min, j_max + 1): for k in range(k_min, k_max + 1): if triangle_intersects_voxel(triangle, voxel_center(i, j, k, voxel_size)): voxel_mesh_[i][j][k] = 1 return voxel_mesh_ function triangle_intersects_voxel(triangle, voxel_center): # Implementation of an algorithm for checking the intersection of a triangle and a voxel cell # For example, using SAT (Separating Axis Theorem) or other methods pass function voxel_center(i, j, k, voxel_size): x = grid_min.x + (i + 0.5) ∗ voxel_size.x y = grid_min.y + (j + 0.5) ∗ voxel_size.y z = grid_min.z + (k + 0.5) ∗ voxel_size.z return (x, y, z) |
Algorithm 3 Three-Dimensional Model Voxelization—26-connectivity approach |
import numpy as np def is_within_bounds(x, y, z, shape): return 0 <= x < shape[0] and 0 <= y < shape[1] and 0 <= z < shape[2] def get_neighbors(x, y, z, shape) neighbors = [] for dx in [−1, 0, 1]: for dy in [−1, 0, 1]: for dz in [−1, 0, 1]: if dx == 0 and dy == 0 and dz == 0: continue nx, ny, nz = x + dx, y + dy, z + dz if is_within_bounds(nx, ny, nz, shape): neighbors.append((nx, ny, nz)) return neighbors def voxelize_with_connectivity(voxel_grid): shape =_voxel_mesh_.shape _new_mesh = np.zeros(shape, dtype=int) for x in range(shape[0]): for y in range(shape[1]): for z in range(shape[2]): if_voxel_mesh_[x, y, z] == 1: _new_mesh [x, y, z] = 1 neighbors = get_neighbors(x, y, z, shape) for nx, ny, nz in neighbors: _new_mesh [nx, ny, nz] = 1 return _new_mesh # Example of a voxel grid (3 × 3 × 3) with one filled voxel in the cente voxel_grid = np.zeros((3, 3, 3), dtype = int) voxel_grid[1, 1, 1] = 1 print("Original voxel mesh:") print(voxel_grid) # Creating a new voxel grid with 26-connectivity _new_mesh = voxelize_with_connectivity(voxel_grid) print("New voxel grid with 26-connectivity:") print(_new_mesh) |
2.2. Contour Extraction
- Initial point: The algorithm starts from the selected seed voxel Vi (i = 0) with coordinates (x0, y0, z0) and intensity I0. This voxel is added to the candidate set, i.e., the set of voxels that make up the region (R).R = {V0}.
- Similarity criterion: The similarity criterion S(Vi, Vj) is defined to determine whether the neighboring voxel Vj should be added to the region. In the proposed algorithm, the intensity is defined as the spatial position of a voxel. Therefore, the similarity criterion is defined as the Euclidean distance between the centers of two voxels—voxel Vi, which is the currently analyzed voxel, and voxel Vj, located in its vicinity:S(Vi, Vj) = ∣𝐼(Vi) − 𝐼(Vj)∣.In other words, the criterion is a distance of 1 voxel from the last voxel in the previous wave, i.e., a distance of 1 voxel from the previously found voxel and a distance of 1 voxel from the voxel in the previous wave.
- Expansion: If, for each voxel Vi in region R and for each of its neighbors Vj, the following condition is met:S(Vi, Vj) ≤ T,
- Iteration: The steps are successively repeated until all relevant voxels are included.
Algorithm 4 Three-Dimensional Region Growing Algorithm |
def region_growing(volume, seed, threshold): x0, y0, z0 = seed region = set() candidates = set([seed]) while candidates: x, y, z = candidates.pop() if (x, y, z) in region: continue region.add((x, y, z)) for dx in [−1, 0, 1]: for dy in [−1, 0, 1]: for dz in [−1, 0, 1]: if dx == 0 and dy == 0 and dz == 0: continue nx, ny, nz = x + dx, y + dy, z + dz if (nx, ny, nz) in region: continue if abs(volume[nx, ny, nz] - volume[x, y, z]) <= threshold: candidates.add((nx, ny, nz)) return region |
2.3. Point Reduction
- Inputs: A sequence of points P = [P1, P2, …, Pn], which represent a polygon, and a distance threshold ε represent input variables to the algorithm.Let P1 = (x1, y1, z1) and Pn = (xn, yn, zn) be the endpoints of the line segment. The distance of the point Pi = (xi, yi, zi) from the line P1Pn, which connects the first (P1) and last (Pn) point in space, is given by the following formula:The distance of each point from the line P1Pn needs to be calculated in order to find the point Pk with the maximum distance dmax.
- Iteration (Recursive Decomposition):If dmax > ε, retain Pk and recursively apply the algorithm to the two segments: [P1, Pk] and [Pk, Pn].If dmax ≤ ε, remove all points between P1 and Pn.In other words, if dmax > ε, the algorithm is recursively applied for the segment before and after that point. Otherwise, only the endpoints are retained.
Algorithm 5 Ramer–Douglas–Peucker Algorithm |
function RDP(points, ε): d_max = 0 index = 0 n = length(points) # Find the point with the greatest distance for i from 2 to n − 1: d = perpendicular_distance(points[i], points[1], points[n]) if d > d_max: index = i d_max = d # If the maximum distance is greater than ε, recursively simplify if d_max > ε: # Recursively simplify rec_results1 = RDP(points[1:index + 1], ε) rec_results2 = RDP(points[index:n], ε) # combine results result = rec_results1[1:end − 1] + rec_results2 else: result = [points[1], points[n]] return result function perpendicular_distance(point, line_start, line_end): # Calculate the distance of a point from a line numerator = sqrt(((point.y − line_start.y) * (line_end.z − line_start.z) − (point.z − line_start.z) * (line_end.y − line_start.y))^2 + ((point.z − line_start.z) * (line_end.x − line_start.x) − (point.x − line_start.x) * (line_start.z − line_start.z))^2 + ((point.x − line_start.x) * (line_end.y − line_start.y) − (point.y − line_start.y) * ( line_end.x − line_start.x))^2) denominator = sqrt((line_end.y − line_start.y)^2 + (line_end.x − line_start.x)^2 + (line_end.z − line_start.z)^2) return numerator/denominator |
2.4. Toolpath Optimization
- Inputs: A set of “cities”, or in our case, points P = {p1, p2, …, pn} along with the distances between each pair of points d(pi, pj) for all i, j where 1 ≤ i, j ≤ n.
- Outputs: A permutation P = (p1, p2, …, pn) of points that minimizes the total traveled distance:
- Define the state: Let dp[S][i] be the minimum cost to visit all cities (points) in subset S ending at city ii, and i is a city in S (S ⊆ {p1, p2, …, pn}). Variable dp is called the DP table.
- Initialization: For a subset S that contains only one city, you set the value of dp[S][i] to infinity for all i except for the starting city (in which case dp = 0). This is because, initially, the cost to reach any city (except the starting city) from an empty set is not defined (infinity).
- Filling of the DP table: The table is filled in for all subsets using a recursive formula
- Solution: At the end, the algorithm finds the minimum distance and reconstructs the optimal route:
Algorithm 6 Held–Karp Algorithm |
import itertools def held_karp(d): n = len(d) C = {} # Initialization for k in range(1, n): C[(1 << k, k)] = (d[0][k], 0) # Filling the dp table for subset_size in range(2, n): for subset in itertools.combinations(range(1, n), subset_size): bits = 0 for bit in subset: bits |= 1 << bit for k in subset: prev_bits = bits & ~(1 << k) res = [] for m in subset: if m == k: continue res.append((C[(prev_bits, m)][0] + d[m][k], m)) C[(bits, k)] = min(res) # Finding the minimal route bits = (2**n − 1) − 1 res = [] for k in range(1, n): res.append((C[(bits, k)][0] + d[k][0], k)) opt, parent = min(res) # Reconstructing the route path = [] for i in range(n − 1): path.append(parent) bits = bits & ~(1 << parent) _, parent = C[(bits, parent)] path.append(0) return opt, list(reversed(path)) |
2.5. Toolpath Interpolation
3. Results and Discussion
3.1. Simulations
- Three-Dimensional Model Voxelization—3.45 s;
- Contour Extraction—4.70 s;
- Point Reduction—1.25 s;
- Toolpath Optimization—2.20 s;
- Toolpath Interpolation—3.50 s.
3.2. Experimental Work
3.2.1. Testbed Description
- The spatial positions of the points where the linear axes connect to the perimeter of the base platform in the machine’s coordinate system.
- The direction vectors of the linear axes.
- The current positions of the sliders on the linear axes.
- The constant lengths of the three arms connecting the sliders and the moving platform.
- The positions of the arm connections to the moving platform in the coordinate system of the moving platform, which are centered at the middle point and have their primary axes parallel to the machine’s coordinate system. Since the moving platform does not rotate or tilt during operation, these points’ positions are determined by the position of its center point, onto which the tool tip is orthogonally projected. The tool tip is offset from the platform by the tool’s length and an appropriate offset corresponding to the clamping length and the spindle motor shaft segment length, measured profile-wise from the moving platform plane to the tool clamp connection.
- The reduction in tool length by the radius of its tip.
- The radius of the tool tip—in our case, a sphere since a ball nose end tool is used.
3.2.2. Machining Parameters
- Cutting speed: 3000 mm/min;
- Cutting depth (finishing): 2 mm;
- Spindle speed: 16,000 RPM.
3.2.3. Results
4. Conclusions
Author Contributions
Funding
Data Availability Statement
Acknowledgments
Conflicts of Interest
References
- Dhanda, M.; Kukreja, A.; Pande, S.S. Efficient CNC Toolpath Generation Using Point Cloud. In Advances in Simulation, Product Design and Development, Proceedings of the All India Manufacturing Technology, Design and Research Conference, Virtual, 9–11 December 2021, 1st ed.; Lecture Notes in Mechanical Engineering; Jain, P.K., Ramkumar, J., Prabhu Raja, V., Kalayarasan, M., Eds.; Springer: Singapore, 2023; Volume 2, pp. 3–13. [Google Scholar]
- Norbury, J.W.; Mehta, S.K.; Danison, A.; Felsen, G.S. Spinal orthoses. In Braddom’s Physical Medicine and Rehabilitation, 6th ed.; Cifu, D.X., Ed.; Elsevier: Philadelphia, PA, USA, 2021; pp. 248–260. [Google Scholar]
- Wang, Y.; Tan, Q.; Pu, F.; Boone, D.; Zhang, M. A review of the application of additive manufacturing in prosthetic and orthotic clinics from a biomechanical perspective. Engineering 2020, 6, 1258–1266. [Google Scholar] [CrossRef]
- Hilliard, J.E.; Chui, K.K.; Galindo, T.D.; Lusardi, M.M. Evidence-based approach to orthotic and prosthetic rehabilitation. In Orthotics and Prosthetics in Rehabilitation, 4th ed.; Chui, K.K., Jorge, M., Yen, S.-C., Lusardi, M.M., Eds.; Elsevier: St. Louis, MO, USA, 2020; pp. 71–101. [Google Scholar]
- Wener, J.L.; Alfano, A.P. Principles and components of spinal orthoses. In Atlas of Orthoses and Assistive Devices, 5th ed.; Webster, J.B., Murphy, D.P., Eds.; Elsevier: Philadelphia, PA, USA, 2019; pp. 69–89. [Google Scholar]
- Esquenazi, A.; Talaty, M. Future trends and research in orthoses. In Atlas of Orthoses and Assistive Devices, 5th ed.; Webster, J.B., Murphy, D.P., Eds.; Elsevier: Philadelphia, PA, USA, 2019; pp. 448–450. [Google Scholar]
- Pitts, D.G.; Fess, E.E. Orthoses: Essential concepts. In Fundamentals of Hand Therapy, 2nd ed.; Cooper, C., Ed.; CV Mosby: Maryland Heights, MI, USA; Elsevier: St. Louis, MO, USA, 2014; pp. 103–114. [Google Scholar]
- Adilović, M.; Ledić, D.; Bojić, M. Orthoses in Rehabilitation. Bos. J. Basic Med. Sci. 2019, 19, 114–119. [Google Scholar]
- The American Academy of Orthotist and Prosthetists. Careers in Orthotics & Prosthetics. Available online: www.oanDP.org/page/careers (accessed on 20 May 2024).
- Gholizadeh, H.; Noroozi, S. The effect of knee orthosis on gait parameters in patients with knee osteoarthritis. Med. J. Islam. Rep. Iran 2016, 30, 442. [Google Scholar]
- Dhakar, A.; Thigle, P.D.; Dhakar, B.S. Rehabilitation aids—Prosthetics and orthotics. J. Dent. Med. Sci. 2013, 3, 10–13. [Google Scholar]
- Jariwala, A.; Jain, A.; Joshi, S. Fabrication of hand splint for spinal cord injury patient. Int. J. Eng. Res. Gen. Sci. 2014, 2, 688–694. [Google Scholar]
- Patel, A.; Acharya, A.; Patel, D.; Patel, M. Fabrication of customized foot orthosis by additive manufacturing technology: A review. Int. J. Eng. Sci. Comp. 2017, 7, 18733–18737. [Google Scholar]
- Štefanovič, B.; Danko, M.; Michalíková, M.; Bednarčíková, L.; Rajťúková, T.; Tóth, V.; Trebuňová, M.; Hudák, R.; Živčák, J. Orthoses development using modern technologies. In Prosthetics and Orthotics; Intech Open: London, UK, 2021; Available online: https://www.intechopen.com/chapters/74616 (accessed on 21 May 2024).
- Gatt, A.; Grech, M.; Chockalingam, N.; Formosa, C. A preliminary study on the effect of computer-aided designed and manufactured orthoses on chronic plantar heel pain. Foot Ankle Spec. 2018, 11, 112–116. [Google Scholar] [CrossRef]
- Gatt, A.; Formosa, C.; Chockalingam, N. The application of generic CAD/CAM systems for the design and manufacture of foot orthoses. Foot Ankle Online J. 2016, 9, 6. [Google Scholar]
- Yan, Y. Research on the A Star Algorithm for finding shortest path. High Sci. Eng. Technol. 2023, 46, 154–161. [Google Scholar] [CrossRef]
- Obrovac, K.; Raos, P.; Galeta, T.; Nižetić, J.; Mutka, A.; Vuković Obrovac, J.; Vrhovski, Z. A new approach to the design of a CNC machine for making orthotic moulds. Tech. Gaz. 2018, 25, 460–465. [Google Scholar]
- Munoz-Guijosa, J.M.; Zapata Martínez, R.; Martínez Cendrero, A.; Díaz Lantada, A. Rapid prototyping of personalized articular orthoses by lamination of composite fibers upon 3D-printed molds. Materials 2020, 13, 939. [Google Scholar] [CrossRef] [PubMed]
- Karakoç, M.; Batmaz, İ.; Sariyildiz, M.A.; Yazmalar, L.; Aydin, A.; Em, S. Sockets manufactured by CAD/CAM method have positive effects on the quality of life of patients with transtibial amputation. Am. J. Phys. Med. Rehab. 2017, 96, 578–581. [Google Scholar] [CrossRef] [PubMed]
- Udiljak, T.; Obrovac, K. Machine for Manufacturing of Custom-Made Foot Orthotics. WO2014049379A1, 24 April 2013. [Google Scholar]
- Ćurković, M.; Udiljak, T.; Vuković-Obrovac, J.; Obrovac, K. Application of white light interferommetry for foot orthotic design and manufacture. Trans. FAMENA 2009, 33, 63–70. [Google Scholar]
- Górski, F.; Kuczko, W.; Weiss, W.; Wichniarek, R.; Żukowska, M. Prototyping of an individualized multi-material wrist orthosis using fused deposition modelling. Adv. Sci. Technol. Res. J. 2019, 13, 39–47. [Google Scholar] [CrossRef]
- CAD Solution California. Canfit Orthotics & Prosthetics. Available online: https://vorum.com (accessed on 20 May 2024).
- Roboticom. ORTIS—7 Axis Robotic Milling System. Available online: https://roboticom.us/ortis/ (accessed on 20 May 2024).
- Pedcad Foot Technology. The Way to Digital Insole Productions. Available online: www.pedcad-foot-technology.com/technical-equipment/milling-machines/ (accessed on 20 May 2024).
- Rodin 4D. Rodin4D Milling Machines. Available online: www.rodin4d.com/en/machine-usinage/ (accessed on 20 May 2024).
- Loney, G.C.; Ozsoy, T.M. NC machining of free form surfaces. Comput. Aided Des. 1987, 19, 85–90. [Google Scholar] [CrossRef]
- Elber, G.; Cohen, E. Toolpath generation for freeform surface models. Comput. Aided Des. 1994, 26, 490–496. [Google Scholar] [CrossRef]
- Han, Z.L.; Yang, D.C.H. Iso-phote based tool-path generation for machining free-form surfaces. J. Manuf. Sci. Eng. 1999, 121, 656–664. [Google Scholar] [CrossRef]
- Ding, S.; Mannan, M.A.; Poo, A.N. Adaptive iso-planar toolpath generation for machining of free-form surfaces. Comput. Aided Des. 2003, 35, 141–153. [Google Scholar] [CrossRef]
- Suresh, K.; Yang, D.C.H. Constant scallop height machining of free form surfaces. J. Eng. Ind. 1994, 116, 253–259. [Google Scholar] [CrossRef]
- Autodesk. Fusion 360 with Power. Available online: https://blogs.autodesk.com/advanced-manufacturing/2021/10/05/orthotic-manufacturer-reduces-operator-time-by-90-using-fusion-360-with-powermill/ (accessed on 20 May 2024).
- MecSoft Corporation. Orthotic 2-Sided Machining in RhinoCAM. Available online: https://mecsoft.com/CaseStudies/MecSoft-rhinocam-duna-orthotics-casestudy-final.pdf (accessed on 1 September 2024).
- Javaid, A. Understanding Dijkstra Algorithm. SSRN 2013, 1–13. [Google Scholar] [CrossRef]
- Liao, J.; Huang, Z. Data model-based toolpath generation techniques for CNC milling machines. Front. Mech. Eng. 2024, 10, 1358061. [Google Scholar] [CrossRef]
- Herraz, M.; Redonnet, J.-M.; Sbihi, M.; Mongeau, M. Toolpath planning optimization for end milling of free-form surfaces using a clustering algorithm. Procedia CIRP 2021, 99, 139–144. [Google Scholar] [CrossRef]
- Lin, Z.; Fu, J.; Shen, H.; Gan, W.; Yue, S. Tool path generation for multi-axis freeform surface finishing with the LKH TSP solver. Comput. Aided Des. 2015, 69, 51–61. [Google Scholar] [CrossRef]
- Kukreja, A.; Pande, S.S. Optimal toolpath planning strategy prediction using machine learning technique. Eng. Appl. Artif. Intell. 2023, 123, 106464. [Google Scholar] [CrossRef]
- Zhang, Y.; Li, Y.; Xu, K. Reinforcement learning–based tool orientation optimization for five-axis machining. Int. J. Adv. Manuf. Technol. 2022, 119, 7311–7326. [Google Scholar] [CrossRef]
- Dragomatz, D.; Mann, S. A classified bibliography of literature on NC milling path generation. Comput. Aided Des. 1997, 29, 239–247. [Google Scholar] [CrossRef]
- Deschamps, T.; Cohen, L. Minimal paths in 3D images and application to virtual endoscopy. In Proceedings of the 6th European Conference on Computer Vision—Part II, Dublin, Ireland, 26 June–1 July 2000. [Google Scholar]
- Sharp, N.; Crane, K. You can find geodesic paths in triangle meshes by just flipping edges. ACM Trans. Graph. 2020, 39, 249. [Google Scholar] [CrossRef]
- Crane, K.; Livesu, M.; Puppo, E.; Qin, Y. A survey of algorithms for geodesic paths and distances. arXiv 2020, arXiv:2007.10430. [Google Scholar]
- Crane, K.; Weischedel, C.; Wardetzky, M. Geodesics in heat: A new approach to computing distance based on heat flow. ACM Trans. Graph. 2013, 32, 1–11. [Google Scholar] [CrossRef]
- Shen, F.; Tarbutton, J. A voxel based automatic toolpath planning approach using scanned data as the stock. Proc. Manuf. 2019, 34, 26–32. [Google Scholar]
- Konobrytskyi, D.; Hossain, M.M.; Tucker, T.M.; Tarbutton, J.A.; Kurfess, T.R. 5-Axis toolpath planning based on highly parallel discrete volumetric geometry representation: Part I contact point generation. Comput. Aided Des. App. 2018, 15, 76–89. [Google Scholar] [CrossRef]
- Popişter, F.; Popescu, D.; Păcurar, A.; Păcurar, R. Mathematical approach in complex surfaces toolpaths. Mathematics 2021, 9, 1360. [Google Scholar] [CrossRef]
- Altintas, Y. Manufacturing Automation: Metal Cutting Mechanics, Machine Tool Vibrations, and CNC Design; Cambridge University Press: Cambridge, UK, 2012. [Google Scholar]
- Ko, J.; Cho, Y. A Z-level toolpath generation method using an adaptive slicing for 5-axis end milling. Comput. Aided Des. 2010, 42, 705–718. [Google Scholar]
- Shih, T.; Yang, D. Developing an efficient toolpath generation algorithm for 5-axis CNC machining of sculptured surfaces. Int. J. Adv. Manuf. Technol. 2007, 34, 805–815. [Google Scholar]
- Le, H.N.; Nguyen, T.Q. Toolpath generation using adaptive space partitioning. Int. J. Adv. Manuf. Technol. 2005, 27, 713–719. [Google Scholar]
- Teng, Z.; Feng, H.-Y.; Azeem, A. Generating efficient tool paths from point cloud data via machining area segmentation. Int J Adv Manuf Technol 2006, 30, 254–260. [Google Scholar] [CrossRef]
- Kukreja, A.; Dhanda, M.; Pande, S.S. Efficient Toolpath Planning for Voxel-Based CNC Rough Machining. CAD Appl. 2021, 18, 285–296. [Google Scholar]
- Altintas, Y.; Breche, C.; Weck, M.; Witt, S. Virtual machine tool. CIRP Ann. 2005, 54, 651–674. [Google Scholar] [CrossRef]
- Jung, Y.S.; Woo, H. Toolpath generation for 3-axis milling by machining region partition. Comput. Aided Des. 2004, 36, 1–15. [Google Scholar]
- Chaudhry, M.S.; Czekanski, A. Tool Path Generation for Free Form Surface Slicing In Additive Manufacturing/Fused Filament Fabrication. In Proceedings of the ASME 2021 International Mechanical Engineering Congress and Exposition, Virtual, Online, 1–5 November 2021. [Google Scholar]
- Schmitz, T.L.; Smith, K.S. Machining Dynamics: Frequency Response to Improved Productivity, 2nd ed.; Springer: Berlin/Heidelberg, Germany, 2019. [Google Scholar]
- Ashburner, J.; Friston, K.J. Voxel-based morphometry—The methods. NeuroImage 2000, 11, 805–821. [Google Scholar] [CrossRef] [PubMed]
- Kaufman, A. Volume visualization. In IEEE Computer Society Press Tutorial; IEEE Computer Society Press: Los Alamitos, CA, USA, 1993. [Google Scholar]
- Mehnert, A.; Jackway, P. An improved seeded region growing algorithm. Pattern Recognit. Lett. 1997, 18, 1065–1071. [Google Scholar] [CrossRef]
- Adams, R.; Bischof, L. Seeded region growing. IEEE Trans. Pattern Anal. Mach. Intell. 1994, 16, 641–647. [Google Scholar] [CrossRef]
- Fan, J.; Yau, D.K.Y.; Elmagarmid, A.K.; Aref, W.G. Automatic image segmentation by integrating color-edge extraction and seeded region growing. IEEE Trans. Image Process. 2001, 10, 1454–1466. [Google Scholar]
- Gonzalez, R.C.; Woods, R.E. Digital Image Processing; Prentice Hall: Saddle River, NJ, USA, 2002. [Google Scholar]
- Papadimitriou, C.H.; Steiglitz, K. Combinatorial Optimization: Algorithms and Complexity; Dover Publications: Mineola, NY, USA, 1998. [Google Scholar]
- Ramer, U. An iterative procedure for the polygonal approximation of plane curves. Comput. Vision Graph. 1972, 1, 244–256. [Google Scholar] [CrossRef]
- Shapiro, L.G.; Stockman, G.C. Computer Vision; Prentice Hall: Saddle River, NJ, USA, 2001. [Google Scholar]
- Held, M.; Karp, R.M. A dynamic programming approach to sequencing problems. J. Soc. Ind. Appl. Math. 1962, 10, 196–210. [Google Scholar] [CrossRef]
- Applegate, D.; Bixby, R.; Chvátal, V.; Cook, W. The Traveling Salesman Problem: A Computational Study; Princeton University Press: Princeton, NJ, USA, 2006. [Google Scholar]
- Miller, C.E.; Tucker, A.W.; Zemlin, R.A. Integer programming formulation of traveling salesman problems. J. ACM 1960, 7, 326–329. [Google Scholar] [CrossRef]
- Bellman, R. Dynamic programming treatment of the travelling salesman problem. J. ACM 1962, 9, 61–63. [Google Scholar] [CrossRef]
- Lawler, E.L.; Lenstra, J.K.; Kan, A.H.G.R.; Shmoys, D.B. The Traveling Salesman Problem: A Guided Tour of Combinatorial Optimization; Wiley-Interscience Series in Discrete Mathematics; John Wiley & Sons: Hoboken, NJ, USA, 1985. [Google Scholar]
- Cormen, T.H.; Leiserson, C.E.; Rivest, R.L.; Stein, C. Introduction to Algorithms; MIT Press: Cambridge, MA, USA, 2009. [Google Scholar]
- Obrovac, K.; Klaić, M.; Staroveški, T.; Udiljak, T.; Vuković-Obrovac, J. Application of machine tools in orthoses manufacture. In Machine Tools—Design, Research, Application, 1st ed.; Šooš, Ľ., Marek, L., Eds.; IntechOpen: London, UK, 2020; pp. 207–217. [Google Scholar]
- Pesice, M.; Vavruska, P.; Falta, J.; Zeman, P.; Maly, J. Identifying the lead angle limit to achieve required surface roughness in ball-end milling. J. Adv. Manuf. Technol. 2023, 125, 3825–3838. [Google Scholar] [CrossRef]
- Schrank, E.S.; Stanhope, S.J. Dimensional accuracy of ankle-foot orthoses constructed by rapid customization and manufacturing framework. J. Rehabil. Res. Dev. 2011, 48, 31–42. [Google Scholar] [CrossRef]
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2024 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Obrovac, K.; Raos, P.; Staroveški, T.; Brezak, D. A Method for Generating Toolpaths in the Manufacturing of Orthosis Molds with a Five-Axis Computer Numerical Control Machine. Machines 2024, 12, 740. https://doi.org/10.3390/machines12100740
Obrovac K, Raos P, Staroveški T, Brezak D. A Method for Generating Toolpaths in the Manufacturing of Orthosis Molds with a Five-Axis Computer Numerical Control Machine. Machines. 2024; 12(10):740. https://doi.org/10.3390/machines12100740
Chicago/Turabian StyleObrovac, Karlo, Pero Raos, Tomislav Staroveški, and Danko Brezak. 2024. "A Method for Generating Toolpaths in the Manufacturing of Orthosis Molds with a Five-Axis Computer Numerical Control Machine" Machines 12, no. 10: 740. https://doi.org/10.3390/machines12100740
APA StyleObrovac, K., Raos, P., Staroveški, T., & Brezak, D. (2024). A Method for Generating Toolpaths in the Manufacturing of Orthosis Molds with a Five-Axis Computer Numerical Control Machine. Machines, 12(10), 740. https://doi.org/10.3390/machines12100740