3D printing self-adaptive support algorithm
By adopting adaptive support algorithms in 3D printing technology, using vertex clustering and Laplace smoothing processing, combining greedy algorithms and AABB tree technology, a tree-like support structure is generated, which solves the problem that supporting structure design in the existing technology is difficult to take into account material saving and structural stability, and achieves efficient and stable 3D printing effect.
Patent Information
- Application Number
- CN202510379824.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-03-28
- Publication Date
- 2025-06-24
AI Technical Summary
In the existing 3D printing technology, it is difficult to design the support structure to take into account material savings, generation efficiency and structural stability, especially in large-angle overhanging structures, supporting fractures or deformations are prone to occur.
A 3D printing adaptive support algorithm is proposed, through vertex clustering simplification and Laplace smooth denoising processing optimization model, combined with greedy algorithms and AABB trees and other technologies, a tree-like support structure is generated, reducing material consumption and improving structural stability.
It significantly improves printing efficiency and quality, reduces support material consumption by about 30%, improves structural stability, simplifies post-processing difficulty, and improves the generation efficiency of support structures.
Smart Images

Figure CN120197394A_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the field of 3D printing technology, and in particular relates to a 3D printing adaptive support algorithm. Background Art
[0002] Rapid prototyping technology (3D printing technology) is a major achievement in the development of manufacturing technology in recent years. It has gotten rid of the dependence on machine tools and molds. Its essence is a process of layered manufacturing and layered stacking. As an emerging technology that breaks through traditional manufacturing processes, 3D printing technology stacks the printing properties of materials layer by layer, slices them according to the three-dimensional model data, and then prints out actual three-dimensional objects. The core idea of this technology lies in additive manufacturing. Compared with traditional subtractive manufacturing and molding manufacturing technologies, 3D printing technology has the ability to manufacture complex geometric models, can significantly reduce material waste, and has obvious advantages in product development cycle and cost. At present, 3D printing technology has been widely used in aerospace, medical, education, cultural creativity and other fields, showing great potential and development prospects.
[0003] In 3D printing technology, the design and optimization of support structures are key links that affect printing quality, material consumption and post-processing efficiency.
[0004] In 3D printing technology, the design and optimization of support structures are key links that affect printing quality, material consumption, and post-processing efficiency. Existing technologies, such as the grid-like support structures generated by Cura software, often use dense filling methods to ensure stability, resulting in excessive material consumption. Although some optimization algorithms reduce material consumption, support fractures or deformations are prone to occur in large-angle overhang structures, and traditional supports have a large contact area with the model. For example, the contact area of block supports accounts for more than 60% of the overhang surface, which makes it easy to damage the model surface when the supports are removed. At present, there is no complete solution that takes into account material savings, generation efficiency, and structural stability. Summary of the invention
[0005] The purpose of the present invention is to provide a 3D printing adaptive support algorithm, aiming to reduce support material consumption, improve structural stability, and enhance printing quality.
[0006] The present invention is implemented as follows: a 3D printing adaptive support algorithm, the algorithm comprising:
[0007] Vertex clustering simplification and Laplace smoothing denoising are performed on the OFF format 3D model. Vertex clustering simplification reduces the number of vertices and faces by spatial partitioning, and Laplace smoothing denoising optimizes the surface quality by iteratively calculating the mean of adjacent vertices.
[0008] Calculate the normal vector of each face of the computational model, compare the angle between the normal vector and the Z-axis, and mark the faces with an angle exceeding the threshold as suspended faces;
[0009] Extract the self-suspension points of the model, perform mesh reconstruction on the suspended faces to generate support points, and determine the unique support points through three-dimensional mapping and duplicate removal processing;
[0010] Use the greedy algorithm to select the best pair of support points, calculate the lower intersection points, and form the connection skeleton of the tree-like support structure;
[0011] Use the AABB tree and ray detection technology to perform spatial collision detection on the support structure and the model;
[0012] Generate support cones and cylinders according to the connection relationship of the support points, combine with the Graham scan method to generate the base, and form a complete tree-like support structure.
[0013] As a further solution of the present invention, the vertex clustering simplification includes:
[0014] Divide the three-dimensional space into cubic cells, use a hash table to store the mapping relationship between the cell index and the vertex list, and the cell index calculation formula is:
[0015]
[0016] where ∈ is the fixed-point clustering parameter, (x, y, z) is the vertex coordinate, and (i, j, k) is the cell index;
[0017] Calculate the centroid C of each cell based on the least squares method and replace the original vertices:
[0018]
[0019] where n is the number of vertices in the cell, (x i , y i , z i ) are the vertex coordinates;
[0020] Update the face index, delete the degenerate faces, and generate the simplified three-dimensional model.
[0021] As a further solution of the present invention, the Laplacian smoothing denoising process includes:
[0022] Construct the vertex adjacency relationship and determine the neighbor vertices N(v i ) of each vertex;
[0023] Iteratively calculate the vertex positions and update each vertex to the average value of its neighbor vertices:
[0024]
[0025] Among them, v′ i is the updated fixed point position, |N(v i )| is the number of neighbor vertices;
[0026] The geometric errors before and after the Hausdorff distance metric model is introduced to debug the optimal iteration parameters H(A,B):
[0027] H(A,B)=max(sup a∈A inf b∈B d(a,b),sup b∈B inf a∈A d(b,a));
[0028] Among them, d(a,b) is the Euclidean distance, A and B are model point sets, sup and inf represent the supremum and infimum respectively.
[0029] As a further solution of the present invention, the calculation of the normal vector of each face of the model, comparing the angle between the normal vector and the Z axis, and marking the face whose angle exceeds the threshold as a suspended face specifically includes:
[0030] Calculate the normal vector N of each triangle through the cross product and normalize it;
[0031] Calculate the angle between the normal vector and the Z axis, and mark the surface whose angle exceeds the critical angle of support as the suspended surface;
[0032] Use the breadth-first search algorithm to cluster adjacent hanging faces, merge adjacent faces, and reduce support points.
[0033] As a further solution of the present invention, the extraction of the model's own suspension points and mesh reconstruction of the suspension surface to generate support points specifically include:
[0034] Traverse the model vertices and identify the suspension points with Z coordinates lower than the surrounding points;
[0035] Project the two-dimensional grid point (m1, m2) onto the three-dimensional model surface, solve the intersection point by combining the line equation and the plane equation, and verify whether the intersection point is within the triangle patch;
[0036] The mapped support points are sorted and distance threshold detected to remove duplicate points.
[0037] As a further solution of the present invention, the method of selecting the best support point pair by using a greedy algorithm specifically includes:
[0038] Sort the support points by Z-axis height, calculate the greedy value and select the best support point pair Greedy_Value:
[0039]
[0040] Among them, (xA , y A , z A ), and (x B , y B , z B ) are the coordinates of the support points, and α is the support angle threshold;
[0041] Calculate the three-dimensional coordinates of the connection intersection point based on the height difference and XY-plane distance of the support point pairs, and maintain the intersection point on the model surface and inside the triangular patch.
[0042] As a further aspect of the present invention, performing spatial collision detection on the support structure and the model specifically includes:
[0043] Construct an axis-aligned bounding box tree structure to detect the collision between the support points and the model;
[0044] For the support points for which the optimal support point pairs are not found, generate the intersection point R(t) of the ray detection and the model, and update the support line:
[0045] R(t) = P + t·D;
[0046] where P is the position of the support point, D is the ray direction vector, and t is the parameter.
[0047] As a further aspect of the present invention, generating a support cone and a cylinder according to the connection relationship of the support points, and combining the Graham scan method to generate a base to form a complete tree-shaped support structure, specifically including:
[0048] Connect the support point pairs to generate support lines and extend them layer by layer downward to form a tree structure;
[0049] Project the support points onto the XY plane and use the Graham scan method to construct a convex hull as the base;
[0050] Generate cone and cylinder structures according to the support line length and endpoint positions, and merge them into the three-dimensional model.
[0051] The beneficial effects of the present invention are:
[0052] The 3D printing adaptive support algorithm significantly improves printing efficiency and quality through multi-stage optimization: First, vertex clustering simplification and Laplacian smoothing denoising techniques are used to reduce the number of vertices and faces by about 30% while maintaining the geometric features of the model, reducing the model complexity and providing an efficient basis for subsequent support generation; Second, through normal vector analysis and the BFS algorithm, the hanging surfaces are accurately identified, and the connection of support points is optimized by the greedy algorithm to generate a tree-like support structure, reducing the support material consumption by about 30% compared with the traditional algorithm; Third, the AABB tree and ray collision detection technology ensure that there is no interference between the support structure and the model. The static analysis shows that the maximum deformation remains in the micron level under the load of 1g - 4g, and the equivalent stress is far lower than the yield strength of PLA, ensuring the printing stability; In addition, the support shape combined with cone and cylinder and the convex hull base generated by the Graham scan method significantly improve the convenience of support removal and reduce the post-processing difficulty. Experimental verification shows that the support generation time of this algorithm is shortened by more than 30%, and the material utilization rate and printing accuracy are better than those of traditional methods, providing an innovative solution for the efficient and high-quality 3D printing of complex models. Description of the Drawings
[0053] Figure 1 It is a development framework diagram of the 3D printing adaptive support algorithm;
[0054] Figure 2 It is a mesh division diagram: (a) Before reconstruction; (b) After reconstruction;
[0055] Figure 3 It is an execution logic diagram of the vertex clustering simplification algorithm;
[0056] Figure 4 It is an execution flow chart of the Laplacian smoothing denoising algorithm;
[0057] Figure 5 It is a schematic diagram of support surface identification;
[0058] Figure 6 It is a schematic diagram of the breadth-first algorithm traversing adjacent faces;
[0059] Figure 7 It is a schematic diagram of adjacent face merging;
[0060] Figure 8 It is a schematic diagram of identifying the hanging points of the model itself;
[0061] Figure 9 It is the three-dimensional mapping of support points and intersection judgment: (a) Three-dimensional mapping; (b) Judging the intersection point by the same-side method;
[0062] Figure 10 It is an execution flow chart of the support point de-duplication algorithm;
[0063] Figure 11 It is a schematic diagram of selecting the optimal support point pair;
[0064] Figure 12 Schematic diagram for calculating lower support points
[0065] Figure 13 Schematic diagram for collision detection of AABB tree support structure
[0066] Figure 14 Schematic diagram for ray detection to find support points
[0067] Figure 15 Schematic diagram for generating base by Graham scan method
[0068] Figure 16 Logic diagram for support generation under different structures: (a) Long distance between two endpoints on the surface; (b) Short distance between two endpoints on the surface; (c) Long distance between two single endpoints on the surface; (d) Short distance of a single endpoint on the surface
[0069] Figure 17 Schematic diagram for support generation in special cases
[0070] Figure 18 Logic diagram for the execution of the adaptive generation algorithm of the tree - shaped support structure
[0071] Figure 19 Maximum deformation of the support structure under different gravity loads: (a) 1G; (b) 2G; (c) 3G; (d) 4G
[0072] Figure 20 Maximum stress of the support structure under different gravity loads: (a) 1G; (b) 2G; (c) 3G; (d) 4G Specific implementation manner
[0073] In order to make the objectives, technical solutions and advantages of the present invention more clear and understandable, the present invention will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present invention and are not used to limit the present invention
[0074] As Figure 1 shown, it is a development framework diagram of the 3D printing adaptive support algorithm, and the 3D printing adaptive support algorithm includes:
[0075] Performing vertex clustering simplification and Laplacian smoothing denoising processing on the OFF - format 3D model, where vertex clustering simplification reduces the number of vertices and faces through space partitioning, and Laplacian smoothing denoising optimizes the surface quality by iteratively calculating the mean of neighboring vertices
[0076] ● Vertex clustering simplification algorithm for 3D models
[0077] As Figure 3As shown, the vertex clustering simplification includes:
[0078] Use a hash table to store the mapping relationship between cell indices and vertex lists. Each cell index serves as the key of the hash table, and the corresponding vertex list serves as the value of the hash table.
[0079] Divide the model in three-dimensional space into several cubic cells, with the diameter of each cell less than the given tolerance vertex clustering parameter ∈. Suppose there is an original vertex, and the index (i, j, k) of the cell where it is located can be calculated from the vertex coordinates:
[0080] The calculation formula for the cell index is:
[0081]
[0082] where ∈ is the fixed-point clustering parameter, and (x, y, z) are the vertex coordinates;
[0083] Use the least squares approximation method to calculate the representative vertex position.
[0084] 1. These methods determine the position of the representative vertex by minimizing the sum of the squared distances from all vertices to multiple planes. Assume that each vertex belongs to multiple patches. For each patch, a plane equation can be defined:
[0085]
[0086] where n i is the normal vector of the plane, and d i is the distance from the origin to the plane. To find the optimal representative vertex position x, it is necessary to minimize the sum of the squared distances of all plane equations:
[0087]
[0088] Converted to quadratic form:
[0089] E(x) = x T Qx - 2b T x + c;
[0090] where:
[0091]
[0092] To solve for the minimum value x of the quadratic equation E(x), a linear system of equations Qx = b needs to be solved. In practice, it can be completed by directly solving or calculating the pseudo-inverse of Q + especially when Q is not of full rank.
[0093] 2. Implement the least squares approximation by calculating the centroid. Let V = {v1, v2,..., vn} is a set of vertices in a unit grid, where each vertex v i =(x i , y i , z i ), then the centroid C:
[0094]
[0095] where n is the number of vertices in the cell, and (x i , y i , z i ) are the vertex coordinates;
[0096] By taking the derivative and setting it to zero, it can be shown that the centroid is the solution to this minimization problem.
[0097] During the vertex clustering process, each vertex is assigned to a specific cell, and the representative vertex of each cell is calculated, which is the centroid of the vertices in the cell based on the least squares method. Each vertex in the original grid needs to be replaced with its corresponding representative vertex. This step ensures that each vertex is mapped to its new position, thereby reducing the complexity of the model.
[0098] As Figure 2 shown, by observing the changes before and after the grid reconstruction in the figure, it can be found that after calculating the centroid of the vertices in each cell based on the least squares method, all the vertices in the current cell will be replaced. This step effectively reduces the number of vertices in the 3D model.
[0099] After replacing the vertex coordinates, the vertex indices of each face (i.e., triangle) need to be updated. Specifically, for each face, its vertex indices are updated to the indices of the new representative vertices. If all the vertices of a face are mapped to the same representative vertex, the face will degenerate into a point and be deleted.
[0100] When all the vertices of a face are mapped to the same representative vertex, the face degenerates into a point and loses its original geometric shape. These degenerate faces have no practical meaning in the simplified model, so they need to be removed. By deleting the degenerate faces, the number of faces in the grid can be further reduced, thereby simplifying the model. After completing the above steps, the new vertex coordinates and face indices are written into a grid file format (OFF file). Thus, the reconstruction and simplification of the model are completed.
[0101] ● The Laplacian smoothing denoising process
[0102] Construct the vertex adjacency relationship to determine the neighbor vertices N(v i ) of each vertex;
[0103] This process is implemented through the Laplacian matrix, which is used to represent the connection relationships between mesh vertices and is used to calculate the new positions of each vertex during the iteration process. During this process, the position of each vertex continuously approaches the average position of its neighbors, thereby reducing noise and irregularities and achieving a smoothing effect.
[0104] (1) Laplacian matrix L
[0105] The Laplacian matrix is defined as L = D - A, where D is the degree matrix and A is the adjacency matrix. The degree matrix D is a diagonal matrix, and the element D ii represents the degree of vertex v i (i.e., the number of edges connected to it). The adjacency matrix A describes the connection relationships between vertices. If there is an edge between vertex v i and v j , then A ij = 1; otherwise, A ij = 0.
[0106]
[0107] where E represents the set of edges.
[0108] (2) Laplacian operator
[0109] The Laplace operator is used to calculate the new position of each vertex, and its discrete form is:
[0110]
[0111] Here, Δv i is the Laplacian value of vertex v i , representing the deviation between the vertex position and the positions of its neighbors.
[0112] (3) Average position of neighbor vertices
[0113] For a vertex v i and its set of neighbor vertices N(v i ), the calculation formula for the new position v' i is:
[0114]
[0115] where v' i is the updated fixed-point position, |N(v i )| is the number of neighbor vertices, v j are the positions of the neighbor vertices. By calculating the average value of the neighbor vertex positions, the latest position of vertex v' i can be obtained.
[0116] The Laplacian smoothing algorithm gradually adjusts the positions of vertices by iterating the above formula multiple times. In each iteration, all vertices are updated to new positions simultaneously. The specific iteration steps are as follows:
[0117] Initialize the vertex coordinate matrix V, and set the initial vertex positions to the original vertex positions of the model; calculate the Laplacian matrix L, and calculate the Laplacian matrix according to the connection relationships of the vertices. Iteratively execute the following steps until the predetermined number of iterations is reached or the convergence condition is satisfied:
[0118] (1) Calculate the new vertex coordinate matrix V′ = L·V
[0119] (2) Update the vertex coordinate matrix V ← V′
[0120] This iterative process finally achieves the smoothing effect of the entire model by gradually adjusting the vertex positions. In each iteration, the positions of the vertices continuously approach the average positions of their neighbors, thereby reducing the noise and irregularities in the model and improving the geometric quality of the model.
[0121] After applying the Laplacian smoothing denoising algorithm to process the OFF model, it is necessary to quantify the error of the model to evaluate the effect of the smoothing algorithm and at the same time verify the reduction effect of the Laplacian smoothing denoising on the model error after vertex clustering simplification. The error metric can help understand the impact of the smoothing process on the geometric shape and details of the model, thereby providing a basis for parameter debugging and optimization.
[0122] Introduce the Hausdorff distance to measure the geometric error before and after model processing, and debug the optimal iteration parameter H(A,B):
[0123] H(A,B) = max(sup a∈A inf b∈B d(a,b), sup b∈B inf a∈A d(b,a));
[0124] where d(a,b) is the Euclidean distance between point a and point b, A and B are model point sets, and sup and inf represent the supremum and infimum respectively. The Hausdorff distance can effectively quantify the maximum difference between two geometric shapes by finding the farthest closest distance from one point set to another point set.
[0125] Such as Figure 4As shown, it is the specific execution process of Laplace smoothing denoising. During the iterative smoothing process, a specified number of iterative smoothing operations will be performed. At the beginning of each iteration, a new temporary point list (tempPoints) is initialized to store the calculated new vertex positions. For each vertex in the model, the average position of the neighboring vertices is used to calculate the new coordinates of the current vertex, and the calculated new coordinates are stored in the temporary point list (tempPoints). After each iteration, the vertex data of the model is updated with the calculated new vertex positions. After all iterations are completed, the smoothed model vertex positions and face data are output, and the algorithm ends. At this time, the vertex positions of the model have been smoothed multiple times, the noise and irregularities have been significantly reduced, and the model surface is smoother. This process depends on the accurate calculation of vertex neighbor relationships and multiple iterations of smoothing operations, which can significantly improve the visual effects and geometric characteristics of the model.
[0126] ● Identification and extraction of the surface to be supported
[0127] Calculate the normal vector of each face of the model, compare the angle between the normal vector and the Z-axis, and mark the faces with an angle exceeding the threshold as suspended faces;
[0128] The normal vector (NormalVector) is a vector perpendicular to a plane or surface. To identify the suspended faces, it is first necessary to calculate the normal vector of each face. The normal vector is a vector perpendicular to the face and is used to describe the direction of the face. For a triangular patch, its normal vector can be calculated through the following steps:
[0129] (1) Calculate the edge vectors: Let the three vertices of the triangle be A = (x1, y1, z1), B = (x2, y2, z2), and C = (x3, y3, z3). The edge vectors are AB and AC, which represent the vectors from point A to point B and from point A to point C respectively:
[0130] AB = (x2 - x1, y2 - y1, z2 - z1);
[0131] AC = (x3 - x1, y3 - y1, z3 - z1);
[0132] (2) Calculate the normal vector: The normal vector N is obtained by calculating the cross product of the vectors AB and AC: N = AB × AC
[0133] The cross product formula is:
[0134]
[0135] (3) Normalize the normal vector: To make the length of the normal vector 1, it needs to be normalized. The normalized normal vector N norm is:
[0136]
[0137] Calculate the angle between the normal vector of each face and the Z-axis to determine whether the face is a suspended face. The angle can be calculated by the dot product. Let the normal vector be N = (N x , N y , N z ), and the unit vector in the Z-axis direction is Z = (0, 0, 1). Then the angle θ can be obtained by the following formula:
[0138]
[0139] where N·Z is the dot product of the normal vector and the Z-axis direction, N·Z = Nz. Since the length of the unit vector in the Z-axis direction is 1, i.e., ||Z|| = 1, the angle θ can be simplified to cosθ = N·Z, and then the angle θ = arccos(N·Z) can be obtained through the inverse cosine function. Thus, the angle between the current face and the Z-axis can be calculated.
[0140] Compare the calculated angle θ with the preset support angle threshold support-angle. support-angle is the angle between the normal vector and the horizontal plane. If θ > support-angle, then the face is marked as a suspended face.
[0141] As Figure 5 shown, let the support critical angle be support1 (set according to the printing material and printer parameters). At Face1, the angle θ1 between the forming direction vector Z and the normal vector of the triangular patch is θ1 < support1, and no support needs to be added; at Face2, the angle θ2 between the forming direction vector Z and the normal vector of the triangular patch is θ2 > support1, and support needs to be added at this triangular patch. Specifically for the judgment of the patches in the 3D model, there are two support faces that need to be recognized in the figure. Calculate the angle θ between the normal vector of the current face and the Z-axis through the previous normal vector formula to determine whether this face needs support. The angle between the red face in the figure and the Z-axis is 30 degrees, so the red face needs support and is marked as a suspended face and listed as a face to be supported. The angle between the green face and the Z-axis is 70 degrees. During the printing and forming process, the model can rely on the thermal melting viscosity of the printing material itself for connection and does not require additional support structures.
[0142] Use the breadth-first search (BFS) algorithm to cluster adjacent suspended faces to form a face group, then merge the adjacent faces in the face group, and redraw the grid to sample and calculate the support points. In this way, the support points can be reduced, redundant support can be reduced, and the stability and printing efficiency of the support structure can be improved. The clustering steps are as follows:
[0143] 1. Initialize the face group
[0144] Before starting the BFS traversal, it is necessary to initialize the face group list and define the adjacent relationships between the faces. In Figure 6 , the face list is A, B, C, D, E, F, G, and their adjacent relationships are A - B, B - C, C - D, E - F, F - G. In the initial state, all the faces and their adjacent relationships are determined.
[0145] 2. BFS Traversal
[0146] The BFS traversal is an algorithm for graph traversal that can help find all adjacent suspended faces and cluster them into a face group. The specific steps are as follows:
[0147] (1) Initialize the queue and the visited flag array: Create an empty queue to store the faces to be processed, and initialize a visited flag array to record which faces have been visited. The initial node of the queue is A.
[0148] (2) Traverse the suspended faces: For each suspended face, if the face has not been visited, add it to the queue and mark it as visited.
[0149] (3) Breadth - first search: Take a face from the queue and check all its adjacent faces. If an adjacent face is also a suspended face and has not been visited, add it to the queue and mark it as visited. Repeat this process until the queue is empty.
[0150] (4) Generate the face group: After each breadth - first search is completed, form a face group from all the visited faces and add it to the face group list.
[0151] From Figure 6 it can be seen that the process of BFS traversal is as follows:
[0152] (1) Process face A, identify adjacent face B, and add B to the queue.
[0153] (2) Process face B, identify adjacent faces A and C, A has been visited, C has not been visited, add C to the queue.
[0154] (3) Process face C, identify adjacent faces B and D, B has been visited, D has not been visited, add D to the queue.
[0155] (4) Process face D, identify adjacent face C, C has been visited. Through the above process, the traversal of the first group of adjacent faces is completed, forming the first face group: A, B, C, D.
[0156] For the remaining unvisited faces, repeat the above BFS traversal process to form the second face group:
[0157] (1) Process face E, identify adjacent face F, and add F to the queue.
[0158] (2) Process the face F, identify the adjacent faces E and G, where E has been visited and G has not been visited, and add G to the queue.
[0159] (3) Process the face G, identify the adjacent face F, which has been visited. At this point, the traversal of the second group of adjacent faces is completed, forming the second face group: E, F, G.
[0160] The final face group result is that face group 1: (A, B, C, D) is represented in light green, and face group 2: (E, F, G) is represented in light red.
[0161] After completing the adjacent face clustering, it is necessary to further merge the adjacent faces in the face group to reduce the support points. Reducing the support points will correspondingly reduce the support structure, which will also greatly reduce the subsequent printing consumables. Merging adjacent faces can not only reduce redundant support points but also optimize the overall shape of the support structure, improving the printing efficiency and quality.
[0162] The merging of adjacent faces is mainly divided into the following steps, as Figure 7 shown.
[0163] 1. Initial adjacent triangular faces
[0164] Obtain the adjacent triangular faces from the result of adjacent face clustering. As Figure 7 shown, the initial adjacent triangular faces can be regarded as multiple independent triangles that are connected to each other at the edges.
[0165] 2. Merge adjacent triangular faces
[0166] Merge these adjacent triangular faces into a larger face.
[0167] (1) Identify the shared edges: Identify the shared edges between adjacent triangular faces.
[0168] (2) Delete the shared edges: Delete the shared edges to merge multiple triangular faces into a large face.
[0169] (3) Identify the mesh face: Redefine the merged mesh structure. By merging adjacent triangular faces, the complexity of the support structure is reduced.
[0170] Through the above steps, adjacent faces can be effectively merged. The merged large face can significantly reduce the support points in the subsequent support point calculation compared to the original multiple faces, thus greatly optimizing the support structure and improving the printing efficiency and quality.
[0171] ● Extraction of support points to be
[0172] Extract the suspension points of the model itself, perform mesh reconstruction on the suspended faces to generate support points, and determine the unique support points through three-dimensional mapping and duplicate removal processing;
[0173] Traverse the vertices of the model to identify the suspension points whose Z - coordinates are lower than those of the surrounding points;
[0174] By analyzing the suspension surfaces on the model surface, determine the positions of the suspension points. The suspension points are the points in the model that most need support, and their positions are often at the edges or corners of the suspension surfaces.
[0175] (1) Self - suspension points of the model
[0176] As Figure 8 shown, in this 3D model, the Z - coordinate of point F is lower than those of points A, B, C, D, and E. At this time, point F is a suspension point. Since the model surface is usually not a flat surface, a suspension point structure will be generated. In the model, if the Z - coordinate of a certain point is lower than the Z - coordinates of its surrounding points, then this point is judged as a suspension point. By traversing all the vertices of the OFF 3D model, the self - suspension points of the model can be obtained. A threshold height is set. When the average value of the Z - coordinate difference between the suspension point and its adjacent surrounding points is greater than this threshold height, it is identified as a suspension point.
[0177] (2) Generation of support points for the clustering surface groups of the surface to be supported
[0178] In the previous section, all the surfaces to be supported have been identified and searched for, the support surfaces have been clustered to form surface groups, and at the same time, adjacent surfaces have been merged. Now, it is necessary to extract support points for these surfaces to be supported in the surface groups, and the following steps are carried out:
[0179] (1) Initialize variables, face_point_normal: used to store the normal vector and points of the surface. face2d_point: used to store points in the two - dimensional plane. Minx, miny, maxx, maxy: used to calculate the boundaries of the surface group.
[0180] (2) Traverse each clustered surface group and calculate the boundaries: Traverse each surface in each surface group, calculate the minimum and maximum values of the surface in the X and Y directions, so as to determine the boundary range of the entire surface group.
[0181] (3) Calculate grid points. According to the calculated boundary range, determine the number of grid points. If there are no grid points in the X or Y direction (i.e., the boundary range is very small), then use the mid - point of the boundary as the grid point in that direction. Generate two - dimensional grid points within the boundary range, and these points are candidate points for support points.
[0182] (4) Generate and store grid points. The generation of the grid is mainly carried out according to the set interval distance.
[0183] ① No grid points in the X direction: Use the mid - point in the X direction and generate grid points in the Y direction according to the interval.
[0184] ②There are no grid points in the Y direction: Use the midpoint in the Y direction and generate grid points in the X direction according to the interval.
[0185] ③Under normal circumstances: Generate grid points in the X and Y directions according to the calculated intervals.
[0186] By identifying the boundary of the surface to be supported and generating grid points, the positions of the support points can be accurately determined, thus providing a basis for the subsequent generation of the support structure.
[0187] The suspension points of the surface to be supported are actually the grid points generated after the grid reconstruction of the support surface. These suspension points belong to the points in the two-dimensional plane, but the actual support points are the points used to support the three-dimensional model. At the same time, in the process of generating the support structure, it is crucial to accurately locate the positions of the support points, and the suspension points in the two-dimensional plane need to be accurately mapped to the surface of the three-dimensional model to generate accurate support points. The mapping process is as follows:
[0188] (1) Simultaneous equations of a straight line and a plane
[0189] The points in the two-dimensional plane are regarded as the points on a straight line perpendicular to the XY plane passing through this point. This straight line can be represented by the parametric equation:
[0190]
[0191] where, (m1, m2, m3) are the coordinates of the two-dimensional point, (v1, v2, v3) is the direction vector of the straight line, and t is the parameter.
[0192] (2) Plane equation
[0193] The surface of the three-dimensional model consists of several triangular patches, and each patch can be represented by the plane equation:
[0194] v p 1·(x - n1) + v p 2·(y - n2) + v p 3·(z - n3) = 0;
[0195] where, (n1, n2, n3) is a point on the plane, and (v p 1, v p 2, v p 3) is the normal vector of the plane.
[0196] (3) Solve for the intersection point by simultaneous equations:
[0197] Substitute the parametric equation of the straight line into the plane equation to obtain the parameter t:
[0198]
[0199] After obtaining the parameter t, substituting the parameter t back into the parametric equation of the line can obtain the coordinates (x, y, z) of the intersection point.
[0200] (4) 3D mapping
[0201] By projecting the 2D suspension point sampling downward (along the Z-axis direction), the corresponding points of the suspension points on the 3D model are found. This process is realized by calculating the intersection of the points and the model surface. As Figure 9 shown in (a) below, the downward projection of the 2D suspension point forms a line, and the intersection point of the line and the 3D model surface is solved. In (a), the blue dashed line represents the projected line, and the green point is the intersection point with the model surface.
[0202] (5) Determine whether the intersection point is inside the triangle
[0203] To ensure that the intersection point is inside the triangular patch, it is necessary to determine whether the point is inside the triangle. The same-side method is used to determine whether the point is inside the triangle. Point P is inside triangle ABC if and only if the cross product results of the vectors formed by P and each side of the triangle and the vectors formed by the triangle vertices have the same direction. Specifically, it can be expressed as:
[0204] SameSide(A, B, C, P) = (AB × AC) · (AB × AP) ≥ 0,
[0205] IsPointinTriangle(A, B, C, P) = SameSide(A, B, C, P) ∧ SameSide(B, C, A, P) ∧ SameSide(C, A, B, P).
[0206] As above Figure 9 shown in (b) below, the black points represent the triangle vertices A, B, C; the green point represents the intersection point P after projection; the blue area represents the triangle area; the result shows that the intersection point P is inside triangle ABC, then this intersection point is the 3D mapping point of the support point.
[0207] As Figure 10 shown, after the 3D mapping of the support points, some duplicate support points may be generated. Duplicate support points will increase the computational complexity when generating the support structure. By removing duplicates, the computational complexity can be reduced, the algorithm efficiency can be improved, the support structure can be simplified, and its stability can be enhanced. The time for printing the subsequent model will also be reduced. Therefore, it is necessary to remove duplicates from the generated support points. The de-duplication process is as follows:
[0208] (1) Sorting of support points
[0209] Sort all the support points according to their coordinates. The purpose of sorting is to facilitate subsequent duplicate removal operations. The commonly used sorting method is to sort the support points in lexicographical order according to their three-dimensional coordinates, that is, first sort by the X coordinate, then by the Y coordinate when the X coordinates are the same, and by the Z coordinate when both the X and Y coordinates are the same.
[0210] (2) Duplicate point detection
[0211] After sorting, by traversing the sorted list of support points, detect whether adjacent support points are duplicates. If the distance between two support points is less than a preset threshold, they are considered duplicates, and only one of them needs to be retained.
[0212] (3) Duplicate removal implementation
[0213] In the adaptive support algorithm, the set distance threshold is (1e-3) through testing. Traverse the sorted list of support points and compare the distances between adjacent support points. If the distance is less than the threshold, they are considered duplicate points and skipped. After performing ray detection on the non-duplicate support points, add them to the new list of support points.
[0214] · Optimize support point connection based on the greedy algorithm
[0215] Use the greedy algorithm to find the optimal pair of support points to ensure that each support point is connected to its nearest support point to form a tree-like support structure, minimizing the support point connections while meeting the model stability requirements.
[0216] Use the greedy algorithm to select the optimal pair of support points to ensure that the support points are connected to form a tree-like support structure. The specific steps are as follows:
[0217] 1. Support point sorting
[0218] Sort all the support points according to their Z-axis height. This is done to be able to process the support points with lower heights first in the subsequent greedy algorithm processing, thus ensuring the stability of the support structure. Sorting is the first step of the greedy algorithm to ensure that the optimal support point can be selected in each step of the processing.
[0219] 2. Greedy value calculation
[0220] Calculate the greedy value for each pair of support points and select the pair of support points with the largest greedy value. The formula for calculating the greedy value is:
[0221] Greedy value = A - B - C;
[0222]
[0223] B = (support point 1x - support point 2x )2 ;
[0224] C = (support point 1y - support point 2y ); 2 ;
[0225] Each part in the formula represents the spatial relationship between two support points. The height difference is squared and amplified in the numerator to emphasize the impact of the height difference on the stability of the support structure; while the distances on the X and Y axes are squared and reduced in the denominator, indicating that the distances in the XY plane also have a certain influence on the selection of support points. The support angle here is the maximum allowable tilt angle support_angle set in the support algorithm, ensuring the physical feasibility of the connection between support points. When calculating the greedy value of a support point pair, if the greedy value is greater than the set value, it indicates that the support point pair can generate an effective support structure, and the current support point pair is skipped.
[0226] As Figure 12 shown, there are multiple other support points around the current support point PointAz. It is necessary to find the optimal support point to form a support point pair with it. After calculating the greedy values of multiple points, PointB is found to form the best support point pair with the current support point, and its position and connection relationship are recorded. This provides information for calculating the connection intersection point of the two support points in the next step, and at the same time ensures that the generated support structure does not collide with the model.
[0227] The lower - layer intersection point calculation can determine the connection point of the two support points in the current support point pair, ensure that the support points are connected layer by layer to generate a support structure, and finally form a tree - shaped support structure. It is a key step in the connection method of the support structure.
[0228] When optimizing the connection of support points, it is necessary to calculate the intersection point of the cones of two support points to determine the connection point of the support structure of the current support point pair, and store the intersection point as a support point. As Figure 12 shown, assume there are two support points PointA and PointB, and their coordinates are (A x , A y , A z ) and (B x , B y , B z ), and the calculation formula for the intersection point C is:
[0229]
[0230] Calculate the C.z coordinate: Calculate the Euclidean distance between support points A and B in the XY plane, that is, (A x - B x ) 2 +(A y - By ) 2 , this distance represents the separation degree of A and B on the horizontal plane.
[0231] Calculate the adjustment amount in the Z-axis direction. Multiply the above distance by the Z-axis difference between the support points A and B, and then divide it by the tangent value tan(α) of the support angle, that is The calculated value is the adjustment amount of the support points A and B in the Z-axis direction to ensure accurate calculation of the intersection point of the cone. Divide the above result by 2 to obtain the position of the intersection point between the two support points. Finally, multiply this value by the tangent value of the support angle and subtract it from B z to obtain the position of the intersection point C on the Z-axis;
[0232] Calculate C x coordinates: Calculate the X component of the unit vector, the difference between A and B on the X-axis A x -B x , and then calculate its ratio to the above distance in the XY plane, This step obtains the X component of the unit vector on the X-axis. Calculate the adjustment amount in the X-axis direction. Multiply the X component of the unit vector on the X-axis by the distance between the support points A and B in the XY plane, and finally add this value to B x to obtain the position of the intersection point C on the X-axis;
[0233] Calculate C y coordinates: Calculate the Y component of the unit vector, the difference between A and B on the Y-axis A y -B y , and then calculate its ratio to the above distance in the XY plane, This step obtains the Y component of the unit vector on the Y-axis. Multiply the Y component of the unit vector on the Y-axis by the distance between the support points A and B in the XY plane, and finally add this value to B y to obtain the position of the intersection point C on the Y-axis; Thus, the three-dimensional coordinates of the intersection point C (C x , C y , C z ) are calculated.
[0234] These formulas ensure the accurate position of the intersection point by considering the difference in the Z-axis height of the two support points and their distance in the XY plane. The purpose of calculating the intersection point is to determine the connection position of the support point pair and ensure the stability of the generated support structure and the minimum material usage. After calculating the intersection point C, it is necessary to ensure that this intersection point is on the surface of the model and inside the specified triangular patch.
[0235] Intersection point verification is required:
[0236] (1) Define the straight line equation: Define a straight line perpendicular to the xy plane through the given two-dimensional grid point P.
[0237] (2) Define the plane equation: Calculate the normal vector of the triangle patch, and then define the plane equation of the patch.
[0238] (3) Calculate the intersection point: Combine the straight line equation and the plane equation to solve for the intersection point Q (x,y,z) .
[0239] (4) The same-side method is used to determine whether the intersection point is inside the triangle.
[0240] ●Spatial collision detection
[0241] During the support algorithm processing, the support point pairs will be connected to each other at the intersection to form support lines. At this time, in order to ensure that the subsequent generated support structure will not collide with the model itself, spatial collision detection is used to ensure that the generated support structure between the support points will not collide. The AABB (Axis-Aligned Bounding Box) tree structure is used for efficient collision detection.
[0242] Construction of AABB tree:
[0243] (1) Initial bounding box calculation: Calculate the smallest axis-aligned bounding box for each basic unit of the model (such as a triangle patch).
[0244] (2) Hierarchical structure construction: merge adjacent bounding boxes layer by layer to build a tree structure until a complete bounding box is formed.
[0245] Collision detection process:
[0246] (1) Initialization: Read the geometric data of the 3D model and build an AABB tree.
[0247] (2) Collision detection of support points: Select a pair of support points and calculate the intersection of their cones. The intersection has been calculated above, so we can directly use the AABB tree to start the detection.
[0248] (3) Generate support lines and ensure that they connect the support points.
[0249] (4) Tree traversal: Starting from the root node of the AABB tree, traverse the nodes layer by layer to check whether the bounding box intersects with the object to be detected (support point or support line).
[0250] (5) Bounding box test: Perform an intersection test on the bounding box of each node. If they do not intersect, the node and its child nodes are removed.
[0251] (6) Intersection test: If the bounding box intersects with the object to be detected, the child nodes are further checked until the leaf node.
[0252] Perform precise geometric intersection tests at leaf nodes to determine if a collision occurs.
[0253] As Figure 13 shown in the figure, ModelAABB in the figure represents the axis-aligned bounding box of the model. The current 3D model is segmented into multiple bounding boxes. SupportAABB represents the axis-aligned bounding box of the support structure to ensure that there is no collision between the support structure and the model. QueryAABB is the query bounding box for detection. By performing an intersection test with the bounding box of the model, it is determined whether a collision occurs. The bounding box of the support structure between the support point pairs and the intersection points is generated through the AABB tree, the collision situation of the support structure is simulated, and collision detection is performed in the AABB tree to ensure the generation of effective support lines between the current support points.
[0254] When finding the optimal support point pairs through the greedy algorithm, not all support points can find support points that meet the greedy value to form support point pairs. The support points that do not find the optimal support point pairs also need to be processed to ensure that all support points can normally generate support lines and successfully generate the support structure. Therefore, ray collision detection is performed on the current support points.
[0255] The specific steps are as follows:
[0256] 1. Ray generation: Generate multiple rays emitted from the current support point in multiple preset directions. The formula is expressed as R(t) = P + t·D, where R(t) represents the position of any point on the ray, P is the position of the support point, D is the ray direction vector, and t is a parameter representing the distance from the support point.
[0257] 2. Model intersection calculation: Calculating the intersection points of the rays and the model surface can determine whether the support structure intersects with the model, and thus determine whether the support point forms a support point pair with the current intersection point.
[0258] (1) Represent the 3D model as a number of triangular patches, each patch defined by three vertices V1, V2, and V3.
[0259] (2) Through the three vertices of the triangular patch, calculate the equation of the plane where the patch is located, N·(X - V1) = 0, where N is the normal vector of the plane and X is any point on the plane.
[0260] (3) Calculate the intersection points of the rays and the plane. Substitute the ray equation R(t) = P + t·D into the plane equation to obtain the parameter t of the intersection point. The formula is as follows:
[0261]
[0262] If N·D = 0, the ray is parallel to the plane and there will be no intersection points. At this time, a vertical support line will be generated for the current support point and extended to the bottom to ensure normal support.
[0263] (4) It is necessary to verify whether the calculated intersection point R(t) is inside the triangular patch, and the same-side method is used for verification again.
[0264] (5) If the intersection point is inside the triangular patch, record the intersection point, indicating that the ray intersects the model surface.
[0265] 3. Calculate the intersection point distance
[0266] Calculate the Euclidean distance between the current support point and the intersection point of the ray and the model. Let the current support point be P(x1, y1, z1) and the intersection point of the ray and the model surface be Q(x2, y2, z2). Then the Euclidean distance formula between the two points is:
[0267]
[0268] By calculating the distance d(P, Q) between the current support point P and the intersection point Q and comparing it with the distance from the current support point to the lowest point of the model, if it is less, generate the distance from the support point to the intersection point and store the intersection point as the support point; if it is greater, directly generate a support line vertically downward from the current support point.
[0269] As Figure 14 shown, set a support point with coordinates (x0, y0, z0), define a simple three-dimensional model cube, and define the coordinates of each vertex of the model as (x i , y i , z i ). Starting from the support point (red point), generate rays in different directions. The direction vector of each ray can be expressed as:
[0270]
[0271] where i represents the ray number, j represents the change factor of the ray at different distances, θ is the inclination angle of the ray. By generating 13 rays, each ray is detected at 5 different distances. For each ray, calculate its intersection point with the model surface. The parametric equation of the ray can be expressed as r(t) = a + t·d, where a is the starting point of the ray, d is the direction vector of the ray, and t is the parameter. If the ray intersects the model surface and the intersection point (x′ i , y′ i , z′ i ) is obtained, substitute the coordinates into the Euclidean distance formula to calculate the distance dis1 from the support point to the intersection point. For the vertically downward ray, the intersection point is (x0, y0, z), and the distance formula is: dis1 = z0 - z; Shortest distance judgment: Compare the shortest distance dis1 of each ray with the distance from the support point to the lowest point (ground). If the found shortest distance dis1 is shorter than the distance from the support point to the lowest point as Figure 14For the green intersection points, update the support line by connecting the current support point and the intersection point. Through the above steps, rays from the support points to the model surface can be generated, the distances between the intersection points of each ray and the support points can be calculated, the ray with the shortest distance can be found, and the support line can be updated.
[0272] ● Generation of tree-like support structure
[0273] By optimizing the selection of support points for each layer of the tree-like support and improving the overall structure, the deformation of the model can be effectively prevented, and the consumption of materials and printing time can be reduced.
[0274] The tree-like support structure belongs to hierarchical support. Starting from the support points to be supported on the model surface, oblique branches are generated downward. The intersection points connected by the branches serve as new support points, intersecting layer by layer downward, and finally a support structure shaped like a tree trunk is obtained.
[0275] Support line segments are generated by connecting pairs of support points. These line segments only represent the basic skeleton of the support structure. All the generated support line segments are merged into a complete support structure. When merging, it is necessary to ensure the overall stability and continuity of the support structure to avoid breaks and weak connections. After having the support structure skeleton, the actual support structure will start to be generated according to the support line.
[0276] Generating the base of the support structure is an important step to ensure the stability of the support structure. The base provides a solid foundation for the support structure, preventing the support structure from moving or deforming during the printing process. The Graham scan method is a commonly used convex hull algorithm that can help find the minimum enclosing polygon of the support points, thus generating a stable base. The detailed steps to generate the base using the Graham scan method are as follows:
[0277] As Figure 15 shown, this is a process of constructing a convex hull:
[0278] (1) Project all support points onto the XY plane so that the Graham scan method can be applied in the two-dimensional plane. The blue points in the figure represent the three-dimensional coordinates of the support points, while the red points represent the projections of these support points on the XY plane. The projection process helps simplify the calculation because these points can be more easily processed in the two-dimensional plane.
[0279] (2) Among all the projected points, select the point with the smallest Y coordinate as the starting point. If there are multiple points with the same Y coordinate, select the point with the smallest X coordinate as the starting point. In Figure 15 , this point is marked as the "sorted point". The purpose of this step is to provide a reference point for subsequent sorting and scanning.
[0280] (3) Taking the starting point as the reference point, sort the remaining points according to their polar angles relative to the starting point. The polar angle is the angle formed by the point relative to the horizontal line of the reference point. Through this sorting, it can be ensured that all points can be traversed in a clockwise or counterclockwise order during the scanning process. The key to this step is to ensure the order of the points so that there will be no jumps when constructing the convex hull.
[0281] (4) On the sorted point set, scan each point in turn and use a stack structure to store the vertices of the convex hull. During the scanning process, if the direction formed by the current point and the previous two points in the stack is not a left turn (or right turn), pop the top element of the stack until a left turn (or right turn) is formed. This process ensures that the points in the final stack are the vertices of the convex hull arranged in order.
[0282] (5) Generate the base. The vertices of the convex hull obtained through the above steps form the boundary of the base, as shown by the green line in the figure. These vertices form the smallest polygon that encloses all the support points, providing a stable foundation for the support structure.
[0283] After generating the support lines and the support base, start generating the actual geometric support structure for the support lines and connecting them to the base. In terms of the design of the support structure, it is generated by combining a cone and a cylinder. The main purpose is to facilitate the later removal after the support model is actually printed. The generation process is as follows:
[0284] 1. Sort the support lines: Sort the support lines according to their heights, starting from the highest support point and gradually generating the support structure downward.
[0285] 2. Traverse each support line: Traverse each support line in the sorted order in turn. During the traversal, check the connection situation of each support line.
[0286] 3. Check if the support line is connected to the bottom: If the height of the end point (temp.b) of the current support line is equal to the minimum height (min_z), it means that the support line is connected to the bottom. At this time, the height of the end point b needs to be adjusted downward and its radius is set to the maximum radius (max_radius) to ensure its stable support.
[0287] 4. Handle the case where both points are on the surface: If both endpoints of the support line are on the model surface (temp.flaga = 1 and temp.flagb = 1), different handling methods are adopted according to the distance between them.
[0288] (1) As Figure 16 (a) If the distance is long: When the distance between the two endpoints is long, generate two cones and a cylinder between them. The two cones extend from the two endpoints to a transition point respectively, and the cylinder connects the two transition points.
[0289] (2) If Figure 16 (b) If the distance is short: When the distance between the two endpoints is less than or equal to twice the length of the two cones, generate two cones, extending from the two endpoints to their midpoints respectively.
[0290] 5. Handle the case where a point is on the surface: If only one endpoint is on the model surface (temp.flaga = 1), adjust this endpoint a and process it according to the distance between it and the end point b.
[0291] (1) If Figure 16 (c) If the distance is long: Generate a cone from a to the transition point and a cylinder from the transition point to b.
[0292] (2) If Figure 16 (d) If the distance is short: Directly generate a cone from a to b.
[0293] 6. As Figure 17 shown, if no endpoints are on the model surface, the two endpoints of the support line at this time are generally the intersections of different layers connected (temp.flagb = 1), then directly generate a cylinder to connect the two support points.
[0294] 7. Incorporate the generated geometric support structure into the 3D model: Whether the generated structure is a cone or a cylinder, it will be incorporated into the final support model.
[0295] 8. The generation logic of the overall complete support structure is as Figure 18 shown:
[0296] · Algorithm verification
[0297] 1. By calculating the time complexity of this tree-shaped support algorithm and conducting experimental comparison and verification on the support effect of the algorithm, the comparison is as follows:
[0298] The distribution of support points is more scientific: The adaptive support algorithm can adaptively adjust the position and number of support points according to the geometric characteristics of the model, avoiding warping and deformation during the printing process, and not ignoring any overhanging positions. While ensuring the stability of the support, it maximizes the reduction of the generation of the support structure. The position of the support points is designed appropriately to ensure sufficient support at key parts.
[0299] Support removal is more convenient: The support structure generated by the adaptive support algorithm at the support connection point position of the model is a conical structure, which is convenient for subsequent removal, reducing the difficulty and time of post-processing.
[0300] Upon closer inspection, it can be found that the support nodes generated by the adaptive support algorithm are evenly distributed with a moderate node spacing, which not only ensures the support strength but also reduces material waste. The node positions are precisely calculated, significantly improving the stability of the support structure. The thickness and length of the support rods are optimized to effectively bear the weight of the model and remain stable during the printing process. The cross-sectional shape and arrangement of the support rods are also optimized to enhance the structural strength and reduce the material usage. The contact area between the support base and the printing platform is moderate, ensuring both the fixation of the support structure and facilitating the subsequent removal operation. The base is designed as a grid-like structure, increasing the adhesion to the printing platform while being convenient for subsequent processing. The support structure generated by the adaptive tree-like support algorithm reduces redundant parts and saves materials. By generating a hierarchical branch support for the support model through the tree-like structure and optimizing the connection method of the support rods at each layer, the support structure becomes more concise and stable, with evenly distributed support nodes and a moderate node spacing, ensuring both support strength and reducing material waste.
[0301] Measurement and comparison of support structure parameters:
[0302] After adding the support structure to the model using Cura software and the adaptive support algorithm of this solution, the Magics slicing software is used for support experiments. The volume of the support structure and the generation time of the support structure for different 3D models are measured, and the stability of the support structure and the contact area of the support structure are analyzed. The effect of this algorithm is quantitatively evaluated. The following table summarizes the comparison results of the adaptive support algorithm with the Cura algorithm and the Magics algorithm in terms of generation time, support volume, and support stability:
[0303] Table 1. Theoretical support effect of the Cura algorithm
[0304]
[0305] Table 2. Theoretical support effect of the Magis algorithm
[0306]
[0307]
[0308] Table 3. Theoretical support effect of the adaptive support algorithm of this solution
[0309]
[0310] By analyzing and comparing the measured parameters in Table 1, Table 2, and Table 3, it can be found that:
[0311] (1) In terms of the volume of the support structure, the support structure generated by the adaptive support algorithm is smaller in volume, which can significantly reduce material waste and printing costs. The total volume of the support structure of multiple different models was calculated by software, and it was found that the support volume generated by this algorithm was reduced by an average of about 20%-30% compared to the support structure generated by Cura software and Magics software.
[0312] (2) In terms of the generation time of the support structure, by recording the generation time of the support structure of different models, the advantages and disadvantages of the support algorithm in terms of time consumption can be compared. The support structure design generated by this algorithm is more optimized, and the generation time is shortened by about 30% compared with Cura software and about 20% compared with Magics software.
[0313] (3) In terms of the contact area between the support structure and the model, a larger contact area usually means stronger support stability, but it also increases the difficulty of support removal. This algorithm optimizes the distribution of support points to ensure a balance between support stability and ease of removal. The results show that the generated support structure can provide stable support, and the connection structure of the cone structure ensures the ease of subsequent removal.
[0314] (4) In terms of the stability of the support structure, its stability is evaluated by calculating the maximum height of the support structure, the strength of the details, and the balance of the overall shape. The results show that the support structure generated by this algorithm exhibits high stability under different printing angles and environments. Compared with the support structure generated by the commercial Cura software and Magics software, it not only effectively optimizes and simplifies the support structure, but also ensures the stability of the support.
[0315] Through parameter measurement and visual analysis, the significant advantages of the 3D printing adaptive support algorithm in support effect and operation efficiency are theoretically verified. It performs well in material saving, generation efficiency and support stability.
[0316] 2. Take FDM printing to conduct actual experiments, and compare the printing effect of adding support by commercial software and the printing effect of the adaptive support algorithm of this solution through real-time analysis of the actual printing results:
[0317] (1) Printing quality: The support structures generated by the two algorithms were compared in terms of printing accuracy, surface quality, and support stability. Special attention was paid to the printing effects of suspended parts and complex structures, and the actual support capacity of the support structure was evaluated. Based on the actual printing results, the support structure generated by the adaptive support algorithm performed well in terms of surface quality and support stability. The details of the printed model were intact, the surface was smooth, and there were almost no printing defects.
[0318] (2) Support removal convenience: Compare the difficulty of removing the support structure, record the time required for support removal and its impact on the model surface. The results show that due to the conical support node design adopted in the support structure generated by this algorithm, the support removal is more convenient, with less impact on the model surface after removal, avoiding surface damage and the tediousness of secondary processing.
[0319] (3) Material consumption and printing efficiency: Due to the optimized support structure design of this algorithm, the material usage is less and the printing time is correspondingly shortened, significantly improving the printing efficiency.
[0320] After statistical analysis of the actual printing results, as shown in Tables 4 and 5 below, which are the 3D printing experimental results of the support models of the two algorithms respectively, the tables show the comparison of the support structures generated by the two algorithms in terms of printing material usage, printing time, support removal difficulty and support stability:
[0321] Table 5.4 3D printing experimental results of the support model of Cura software
[0322]
[0323] Table 5.5 3D printing experimental results of the support model of the support algorithm in this paper
[0324]
[0325] Through comparative analysis, it can be seen that this algorithm performs excellently in the following aspects:
[0326] (1) Material usage: The material used in the generated support structure is significantly less than that of the Cura algorithm, saving about 20% to 30% of the material.
[0327] (2) Printing time: Due to the optimized support structure design, the printing time for generating the support structure is shorter, significantly improving the printing efficiency and reducing the printing time by about 20% on average.
[0328] (3) Support removal convenience: Due to the conical support node design adopted in the support structure, the support removal is more convenient, with a shorter removal time and less impact on the model surface.
[0329] (4) Printing quality: The support structure shows higher stability during the printing process, and the details of the printed model are retained completely with high surface quality.
[0330] By comprehensively analyzing the experimental data, the 3D printing adaptive support algorithm performs better than the support algorithm of Cura software in actual printing. It excels in material saving, printing efficiency, ease of support removal, and printing quality. The support structure not only has significant advantages in material usage and printing time, but also performs excellently in terms of ease of support removal and model surface quality, further verifying the effectiveness of the algorithm.
[0331] 3. When performing static analysis, the support structure model of the PLA material printing model was established using ANSYS software.
[0332] In ANSYS, different gravitational loads were applied to the model support structure for static analysis, such as Figure 19 and Figure 20 As shown, the stress and strain distribution diagrams under different gravitational loads were obtained.
[0333] Based on the static analysis of the PLA material 3D printing support structure under 1-fold, 2-fold, 3-fold, and 4-fold gravity (1g, 2g, 3g, 4g) loads, the following conclusions were drawn:
[0334] (1) The support structure performs stably under different gravity conditions
[0335] By analyzing Figure 19 the maximum deformation nephogram of the support structure, it can be seen that under the gravity loads from 1g to 4g, the overall deformation of the support structure is at the micron level. The maximum deformation is mainly concentrated in the free end area of the support structure, while the deformation of the main support part is relatively small. This indicates that the support structure can effectively maintain overall stability under different gravity loads.
[0336] (2) The stress distribution is reasonable and the strength margin is sufficient
[0337] From Figure 20 the analysis results of the equivalent maximum stress (von-Mises stress), the stress concentration areas of the support structure are mainly distributed at the bottom of the support connection and the free end. Even under the condition of 4g, the maximum stress value of 4.7077e5pa is still far from exceeding the yield strength of the PLA material, indicating that the support structure has sufficient load-bearing capacity and will not undergo plastic deformation or structural failure.
[0338] (3) The deformation and stress changes of the support structure with the increase of gravity meet the expectations
[0339] With the increase of gravity, both the total deformation and the maximum stress show a linear growth trend, meeting the expectations of mechanical theory. This indicates that the support structure generated by the support algorithm has good stress uniformity and can adapt to different load conditions.
[0340] (4) The optimized support design ensures material utilization rate and mechanical properties
[0341] While ensuring the printing stability, the support structure reduces the use of redundant materials, optimizes the material distribution, and improves the overall printing quality and support efficiency. Compared with the traditional support design, this optimization scheme effectively balances the structural strength and material cost.
[0342] The technical features of the above-described embodiments can be combined arbitrarily. For the sake of brevity of description, not all possible combinations of the technical features in the above-described embodiments are described. However, as long as there is no contradiction in the combination of these technical features, it should be considered as the scope described in this specification.
[0343] The above-described embodiments merely represent several implementation manners of the present invention. The description is relatively specific and detailed, but it should not be construed as a limitation on the scope of the patent of the present invention. It should be noted that for those of ordinary skill in the art, without departing from the concept of the present invention, several modifications and improvements can still be made, and these all belong to the protection scope of the present invention. Therefore, the protection scope of the patent of the present invention should be subject to the appended claims.
[0344] The above is only a preferred embodiment of the present invention and is not intended to limit the present invention. Any modifications, equivalent replacements, and improvements made within the spirit and principle of the present invention shall be included within the protection scope of the present invention.
Claims
1. A 3D printing adaptive support algorithm, characterized in that: The algorithm includes: Vertex clustering simplification and Laplace smoothing denoising are performed on the OFF format 3D model. Vertex clustering simplification reduces the number of vertices and faces by spatial partitioning, and Laplace smoothing denoising optimizes the surface quality by iteratively calculating the mean of adjacent vertices. Calculate the normal vector of each face of the model, compare the angle between the normal vector and the Z axis, and mark the face whose angle exceeds the threshold as a suspended face; Extract the model's own suspension points, reconstruct the mesh of the suspension surface to generate support points, and determine the unique support points through 3D mapping and deduplication processing; A greedy algorithm is used to select the best pair of support points, calculate the lower-level intersection points, and form a connection skeleton of the tree-like support structure; Use AABB tree and ray detection technology to perform spatial collision detection on support structures and models; According to the connection relationship of the support points, the supporting cones and cylinders are generated, and the base is generated by combining the Graham scanning method to form a complete tree-like support structure.
2. The algorithm according to claim 1, characterized in that The vertex clustering simplification includes: Divide the three-dimensional space into cubic cells, and use a hash table to store the mapping relationship between the cell index and the vertex list. The cell index calculation formula is: Among them, ∈ is the fixed-point clustering parameter, (x, y, z) is the vertex coordinate, and (i, j, k) is the index of the cell; Calculate the centroid C of each cell based on the least squares method, replacing the original vertex: Where n is the number of vertices in the cell, (x i ,y i ,z i ) are vertex coordinates; Update the patch index, delete the degenerate patches, and generate a simplified 3D model.
3. The algorithm according to claim 1, characterized in that The Laplace smoothing denoising process includes: Construct vertex adjacency relationships and determine the neighbor vertices N (v i ); Iterate the vertex positions and update each vertex to the average of its neighboring vertices: Among them, v′ i is the updated fixed point position, |N(v i )| is the number of neighbor vertices; The geometric errors before and after the Hausdorff distance metric model is introduced to debug the optimal iteration parameters H(A,B): H(A,B)=max(sup a∈A inf b∈B d(a,b),sup b∈B inf a∈A d(b,a)); Among them, d(a,b) is the Euclidean distance, A and B are model point sets, sup and inf represent the supremum and infimum respectively.
4. The algorithm according to claim 1, characterized in that The calculation of the normal vector of each face of the model, comparing the angle between the normal vector and the Z axis, and marking the face whose angle exceeds the threshold as a suspended face, specifically includes: Calculate the normal vector N of each triangle through the cross product and normalize it; Calculate the angle between the normal vector and the Z axis, and mark the surface whose angle exceeds the critical angle of support as the suspended surface; Use the breadth-first search algorithm to cluster adjacent hanging faces, merge adjacent faces, and reduce support points.
5. The algorithm according to claim 1, characterized in that The extracting of the model's own suspension points and reconstructing the mesh of the suspension surface to generate support points specifically includes: Traverse the model vertices and identify the suspension points with Z coordinates lower than the surrounding points; Project the two-dimensional grid point (m1, m2) onto the three-dimensional model surface, solve the intersection point by combining the line equation and the plane equation, and verify whether the intersection point is within the triangle patch; The mapped support points are sorted and distance threshold detected to remove duplicate points.
6. The algorithm according to claim 5, characterized in that The greedy algorithm is used to select the best support point pair, specifically including: Sort the support points by Z-axis height, calculate the greedy value and select the best support point pair Greedy_Value: Among them, (x A ,y A ,z A ) and (x B ,y B ,z B ) is the support point coordinate, α is the support angle threshold; According to the height difference and XY plane distance of the support point pair, the three-dimensional coordinates of the connection intersection are calculated, and the intersection is maintained on the model surface and inside the triangle patch.
7. The algorithm according to claim 1, characterized in that The spatial collision detection of the support structure and the model specifically includes: Construct an axis-aligned bounding box tree structure to detect collisions between support points and the model; For the support points where the optimal support point pair is not found, generate the intersection point R(t) between the ray detection and the model and update the support line: R(t)=P+t·D; Among them, P is the support point position, D is the ray direction vector, and t is the parameter.
8. The algorithm according to claim 1, characterized in that The method generates supporting cones and cylinders according to the connection relationship of the supporting points, and generates a base by combining the Graham scanning method to form a complete tree-like supporting structure, specifically including: Connect the support point pairs to generate support lines, which extend downward layer by layer to form a tree-like structure; Project the support points onto the XY plane and use the Graham scanning method to construct the convex hull as the base; Based on the length and endpoint positions of the support lines, cone and cylinder structures are generated and merged into the 3D model.
Citation Information
Cited By
Global tree support construction method based on laser powder bed melting technology
CN122184398A