A Multi-Axis Unsupported Printing Trajectory Generation Method Based on Curve Discretization
By dividing the support model into multiple parts, slicing them, and generating unsupported printing trajectories, the problems of long printing time and poor model quality in existing technologies are solved, achieving efficient unsupported printing and improving the printing efficiency and quality of external fixed supports.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- WUHAN BIYING BIOTECHNOLOGY CO LTD
- Filing Date
- 2023-07-14
- Publication Date
- 2026-05-05
AI Technical Summary
In existing 3D printing external fixation brace technology, the generation of support structures for the suspended part leads to increased printing time and poor model surface quality, and the post-processing is complicated, which cannot guarantee clinical efficiency and reduce the manual workload of doctors.
A multi-axis unsupported printing trajectory generation method based on curve discretization is adopted. The support model is divided into multiple parts for slicing, including the bottom flat layer, the middle rotating layer and the top flat layer. By calculating the bounding box size and the user-interactive rotation angle, the unsupported printing trajectory is generated, reducing human intervention.
This enables supportless printing, reduces printing time, avoids poor model surface quality during post-processing, and improves printing efficiency and quality.
Smart Images

Figure CN116901442B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of 3D printing technology, specifically to a method for generating multi-axis unsupported printing trajectories based on curve discretization. Background Technology
[0002] Medical external fixation braces primarily serve to immobilize injured limbs, reducing movement and facilitating recovery. Traditional braces often employ plaster casts, small splints, and medical polymer splints / bandages for external fixation. However, these methods have several drawbacks in clinical treatment and care. For example, plaster casts cannot be cleaned, and the tightness of splints relies on the doctor's experience. Furthermore, traditional orthopedic external fixation braces may not fit the patient perfectly. With the application of 3D printing technology in medical external fixation braces, precise and personalized 3D printing of orthopedic external fixation devices is a growing trend. However, current technologies using CAD and slicing software for model slicing and printing require generating support structures for overhanging parts, increasing printing time and wasting material. Post-processing of the model is also necessary, compromising clinical efficiency and reducing the manual workload for clinicians. Therefore, combining 3D printing with multi-axis unsupported printing trajectory generation based on curve discretization to reduce human intervention is particularly essential.
[0003] To address the problems existing in the prior art, this invention provides a method for generating multi-axis unsupported printing trajectories based on curve discretization. The method includes dividing the support model into multiple printing parts, slicing each part separately, and merging the slice point sets to form a complete support model printing trajectory, thereby achieving unsupported printing. Summary of the Invention
[0004] The purpose of this invention is to provide a method for generating multi-axis unsupported printing trajectories based on curve discretization, in order to solve the problem mentioned in the background art that in the current process of 3D printing external fixed supports, generating support structures for the suspended parts to ensure the correct printing of the model will lead to increased printing time, and the post-processing of the support will also result in poor surface quality of the model.
[0005] To achieve the above objectives, the present invention provides the following technical solution: a method for generating multi-axis unsupported printing trajectories based on curve discretization, comprising the following steps:
[0006] Step S1: Import the support model that needs to be printed without support, and adjust the spatial position of the support model and trim the excess parts to facilitate subsequent unsupported slicing printing.
[0007] Step S2: Calculate the bounding box dimensions of the support {Xmin, Xmax, Ymin, Ymax, Zmin, Zmax}, determine the center point P of the lower end face of the support, obtain the Z-axis height difference H based on the rotation point M determined by the user interaction, and set the maximum rotation layer height hmax. 差 When hmax is greater than the maximum value, the support model is divided into three parts: a bottom flat-cut layer, a middle rotating layer, and a top flat-cut layer. The bottom flat-cut layer is then separated, with a height of H. 底 =H 差 -hmax, when H 差 When hmax is less than or equal to h, the support model is divided into two parts: the middle rotating layer and the top flat-cut layer.
[0008] Step S3: When a bottom flat-cut layer exists, slice the bottom flat-cut layer into planes and calculate the bounding box dimensions {Xmin, Xmax, Ymin, Ymax, Zmin, Zmax} of this part. Then, calculate the bottom slice layer height h. 底 Calculate the number of slice layers num = (Zmax - Zmin) / h 底 The normal vector of the slice plane is (0, 0, 1), and the vertex position is Vi, where Vi.X = PX, Vi.Y = PY, and Vi.Z = Zmin + i*h. 底 , i represents the slice layer number, the slice plane position is determined by the vertex and normal vector, and thus the bottom flat slice layer is sliced;
[0009] Step S4: Segment the intermediate rotating layer and cut it into slices. Calculate the angle θ between the top and bottom surfaces of the model. Using θ as a reference value, the user interactively selects the rotation angle β. The value of β is adjusted according to the value of θ, but ensures that (θ-β) < 45°. The rotation slice height h is then calculated. 旋 The total height H of the rotating slice layer section 旋 Calculate the number of rotated slice layers num2 = H 旋 / h 旋 Then, the average rotation angle per layer is calculated from the rotation angle β as α = β / num2. The set of boundary points of the model in the rotation layer is obtained, and the slice points of each layer are distributed along the set of boundary points of the model in the rotation layer. The slice angle of each layer is obtained by accumulating the average rotation angle α of each layer. The slice plane is determined by the slice points and slice angles to complete the slicing of the rotation layer.
[0010] Step S5: Rotate the top layer model around the printer's rotation center O according to the rotation angle β, and then sort the rotated top layer model according to the top layer slice height h. 顶 Perform planar slicing, with the normal vector of the slice plane being (0, 0, 1).
[0011] Step S6: Merge multiple print path point sets, optimize the print point sets, and obtain the printed GCode file.
[0012] Furthermore, step S2 includes the following steps:
[0013] Step S201: Read the support model, calculate the bounding box size of the model {Xmin, Xmax, Ymin, Ymax, Zmin, Zmax}, set the vertex to ((Xmin+Xmax) / 2, (Ymin+Ymax) / 2, Zmax+0.5), and the normal vector to (0,0,1). Set the plane using the point normal, cut the bottom contour line, take the two endpoints P1 and P2 of the contour line, and calculate the center point P of the line connecting P1 and P2.
[0014] Step S202: Based on the rotation point M determined by the user interaction, calculate the model height H below the rotation point M. Compare the height H with the set maximum rotation layer height hmax. If H <= hmax, divide the model into a lower rotation layer and an upper flat-cut layer. The rotation layer height is then H. 旋 =H, when H>hmax is large, the excess height is the height H of the bottom flat-cut layer. 底 =H 差 -hmax, obtains the bottom flat-cut layer portion, and the rotation layer height H. 旋 =hmax;
[0015] Step S203: If a bottom flat-cut layer exists, then based on the height H... 底 The vertex positions are obtained as (PX, PY, PZ+H). 底 The normal vector is (0, 0, 1). The plane is set by the point normal to separate the bottom flat-cut layer from the other parts.
[0016] Furthermore, step S4 specifically includes the following steps:
[0017] Step S401: Calculate the angle θ between the normal vectors of the plane containing the bottom and top surfaces. Calculate the normal vector n1 of the plane containing the top surface of the model and the normal vector n2 = (0, 0, 1) of the bottom surface. Calculate the angle θ between the two normal vectors using the dot product method: θ = cos-1(n1*n2 / |n2|). The user interactively selects the rotation angle β. The value of β is adjusted according to the value of θ, but it is ensured that (θ-β) < 45°.
[0018] Step S402: Starting from the point with the smallest Z-value in the boundary point set of the rotating layer, increase the length h sequentially along the direction of the boundary point set. 旋 The vertex of the cutting plane is obtained, and the plane normal vector is calculated as (-sinβi, 0, cosβi) based on the rotation angle βi corresponding to the layer. The position of the cutting plane of each layer is determined according to the point normal formula.
[0019] Step S403: Using the vertex position Pi and rotation angle βi of each slice point obtained in step S402, slice the rotated part model to obtain the slice point set of the rotated part model.
[0020] Furthermore, step S5 includes the following steps:
[0021] Step S501: Based on the location of the last slice plane in S4, divide the model to obtain the top flat-cut layer model.
[0022] Step S502: Rotate the top flat-cut layer model by an angle β around the printer's rotation center O without changing the model's topology. Rotate all points of the model. Let Pi be a point before rotation, and calculate the corresponding point P'i after rotation, where P'i.X = Pi.X*cosβ + Pi.Z*sinβ, P'i.Z = Pi.Z*cosβ - Pi.X*sinβ, and P'i.Y = PY.
[0023] Step S503: Calculate the AABB bounding box dimensions {Xmin, Xmax, Ymin, Ymax, Zmin, Zmax} of the rotated model, based on the slice layer height h. 顶 The number of slice layers, num3, is calculated from the maximum and minimum z-values of the bounding box: num3 = (Zmax - Zmin) / h 顶 The model is sliced num3 times, with the slice plane normal vectors being {0,0,1} and the center points being {(Xmin+Xmax) / 2, (Ymin+Ymax) / 2, (Zmin+i*h}. 顶 )}, where i represents the i-th slice.
[0024] Compared with the prior art, the beneficial effects of the present invention are:
[0025] This 3D printing method calculates the bounding box dimensions of the support model, obtains the model's boundary point set, and calculates the Z-axis height difference of the support based on the rotation points determined by the user interaction. The support model is then divided into two or three parts for slicing. The bottom and top flat-cut layers are then sliced. Finally, based on the rotation layer height and the total height of the intermediate rotation layers, the slicing points for each rotation layer are determined along the boundary point set. The average rotation angle for each layer is calculated based on the rotation angle selected by the user interaction. The slicing plane is then located using the slicing points and rotation angles, and the rotation layers are sliced to obtain the final GCode file. This method, based on boundary curve discrete printing trajectory generation, enables 3D printing of supports with overhanging structures, reducing printing time and avoiding poor surface quality issues caused by post-processing. Attached Figure Description
[0026] Figure 1 This is a flowchart of the multi-axis unsupported printing trajectory generation method based on curve discretization according to the present invention;
[0027] Figure 2 This is the initial model imported for this invention;
[0028] Figure 3 This is the set of unsupported four-axis path points after slicing according to the present invention;
[0029] Figure 4 This is a structural diagram of a four-axis unsupported printing trajectory generation method based on curve discretization. Detailed Implementation
[0030] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.
[0031] Please see Figures 1 to 4 This embodiment uses four-axis unsupported printing as an example for illustration. The present invention provides a technical solution: a method for generating four-axis unsupported printing trajectories based on boundary curve discretization, comprising dividing a support model into multiple printing parts, slicing each part separately, and merging the slice point sets to form a complete support model printing trajectory, thereby achieving four-axis unsupported printing.
[0032] The method includes the following steps:
[0033] S1. Import the model that needs to be printed without support, and adjust the spatial position of the model and trim the excess parts to facilitate subsequent unsupported slicing printing.
[0034] S2. Calculate the bounding box dimensions of the support {Xmin, Xmax, Ymin, Ymax, Zmin, Zmax}, determine the center point P of the lower end face of the support, obtain the Z-axis height difference H based on the rotation point M determined by the user interaction, and set the maximum rotation layer height hmax. 差 When hmax is greater than the maximum value, the structure will be divided into three parts: a bottom flat-cut layer, a middle rotating layer, and a top flat-cut layer. The bottom flat-cut layer will be defined with a height of H. 底 =H 差 -hmax, otherwise the model will be divided into two parts: the middle rotating layer part and the top flat-cut layer part;
[0035] S3. When a bottom flat-cut layer exists, slice the bottom flat-cut layer into planes and calculate the bounding box dimensions of this part {Xmin, Xmax, Ymin, Ymax, Zmin, Zmax}. Then, calculate the bottom slice layer height h. 底 Calculate the number of slice layers num = (Zmax - Zmin) / h 底 The normal vector of the slice plane is (0, 0, 1), and the vertex position is Vi, where Vi.X = PX, Vi.Y = PY, and Vi.Z = Zmin + i*h. 底 , i represents the slice layer number, the slice plane position is determined by the vertex and normal vector, and thus the bottom flat slice layer is sliced;
[0036] S4. Segment the intermediate rotating layer and cut it into slices. Calculate the angle θ between the top and bottom surfaces of the model. Using θ as a reference value, the user interactively selects the rotation angle β. The value of β is adjusted according to the value of θ, but ensures that (θ-β) < 45°. The rotation slice height h is then calculated. 旋 The total height H of the rotating slice layer section 旋 Calculate the number of rotated slice layers num2 = H 旋 / h旋 Then, the average rotation angle per layer is calculated from the rotation angle β as α = β / num2. The set of boundary points of the model in the rotation layer is obtained, and the slice points of each layer are distributed along the set of boundary points of the model in the rotation layer. The slice angle of each layer is obtained by accumulating the average rotation angle α of each layer. The slice plane is determined by the slice points and slice angles to complete the slicing of the rotation layer.
[0037] S5. Rotate the top layer model around the printer's rotation center O according to the rotation angle β. Then, divide the rotated top layer model according to the top layer slice height h. 顶 Perform planar slicing, with the normal vector of the slice plane being (0, 0, 1);
[0038] S6. Merge multiple print path point sets, optimize the print point sets, and obtain the printed GCode file.
[0039] Furthermore, step S2 includes the following steps:
[0040] S201. Read the support model, calculate the bounding box size of the model {Xmin, Xmax, Ymin, Ymax, Zmin, Zmax}, set the vertex to ((Xmin+Xmax) / 2, (Ymin+Ymax) / 2, Zmax+0.5), and the normal vector to (0,0,1). Set the plane using the point normal, cut the bottom contour line, take the two endpoints P1 and P2 of the contour line, and calculate the center point P of the line connecting P1 and P2.
[0041] S202. Based on the rotation point M determined by the user interaction, calculate the model height H below the rotation point M. Compare the height H with the set maximum rotation layer height hmax. If H <= hmax, divide the model into a lower rotation layer and an upper flat-cut layer. The rotation layer height is then H. 旋 =H, when H>hmax is large, the excess height is the height H of the bottom flat-cut layer. 底 =H 差 -hmax, obtains the bottom flat-cut layer portion, and the rotation layer height H. 旋 =hmax;
[0042] S203. If a bottom flat-cut layer exists, then based on the height H... 底 The vertex positions are obtained as (PX, PY, PZ+H). 底 The normal vector is (0, 0, 1). The plane is set by the point normal to separate the bottom flat-cut layer from the other parts.
[0043] Furthermore, step S4 includes the following steps:
[0044] S401. Calculate the angle θ between the normal vectors of the plane containing the bottom and top surfaces. Calculate the normal vector n1 of the plane containing the top surface of the model and the normal vector n2 = (0, 0, 1). Calculate the angle θ between the two normal vectors using the dot product method: θ = cos⁻¹(n1*n2 / |n2|). The user interactively selects the rotation angle β. The value of β is adjusted according to the value of θ, but it is guaranteed that (θ-β) < 45°.
[0045] S402. Starting from the point with the smallest Z-value in the boundary point set of the rotating layer, increase the rotation length h along the direction of the boundary point set to obtain the vertex where the cutting plane is located. Then, calculate the plane normal vector (-sinβi, 0, cosβi) based on the rotation angle βi corresponding to this layer. Determine the position of the cutting plane of each layer according to the point normal formula. For example, the vertex Pi of the slice plane of the i-th rotating layer is h*i away from the point with the smallest Z-value in the boundary point set along the direction of the boundary point set, and the rotation angle is βi = α*i.
[0046] S403. Using the vertex positions Pi and rotation angles βi of each slice point obtained from S402, slice the rotated part of the model to obtain the slice point set of the rotated part of the model.
[0047] Furthermore, step S5 includes the following steps:
[0048] S501. Based on the location of the last slice plane in S4, the model is divided to obtain the top flat-cut layer model.
[0049] S502. Rotate the top flat-cut layer model by an angle β around the printer's rotation center O without changing the model's topology. Rotate all points of the model. Let Pi be a point before rotation, and calculate the corresponding point P'i after rotation, where P'i.X = Pi.X*cosβ + Pi.Z*sinβ, P'i.Z = Pi.Z*cosβ - Pi.X*sinβ, and P'i.Y = PY.
[0050] S503. Calculate the AABB bounding box dimensions {Xmin, Xmax, Ymin, Ymax, Zmin, Zmax} of the rotated model, based on the slice layer height h. 顶 The number of slice layers, num3, is calculated from the maximum and minimum z-values of the bounding box: num3 = (Zmax - Zmin) / h 顶 The model is sliced num3 times, with the slice plane normal vectors being {0,0,1} and the center points being {(Xmin+Xmax) / 2, (Ymin+Ymax) / 2, (Zmin+i*h}. 顶 )}, where i represents the i-th slice.
[0051] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, and not to limit them; although the present invention has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features; and these modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of the present invention.
Claims
1. A method for generating multi-axis unsupported printing trajectories based on curve discretization, characterized in that, Includes the following steps: Step S1: Import the support model that needs to be printed without support, and adjust the spatial position of the support model and trim the excess parts to facilitate subsequent unsupported slicing printing. Step S2: Calculate the enclosure dimensions of the support. Determine the center point P of the lower end face of the support, and obtain the Z-axis height difference of the support based on the rotation point M determined by the user interaction. Set the maximum rotation layer height hmax, when > Then, the support model is divided into three parts: the bottom flat-cut layer, the middle rotating layer, and the top flat-cut layer. The bottom flat-cut layer is then separated, and its height is... ,when ≤ The model is divided into two parts: a middle rotating layer and a top flat-cut layer. Step S3: When a bottom flat-cut layer exists, slice the bottom flat-cut layer into planar sections and calculate the bounding box dimensions of this portion. Then slice the bottom layer height Calculate the number of slice layers The normal vector of the slicing plane is The vertex position is V i ,in, , , , i represents the slice layer number, the slice plane position is determined by the vertex and normal vector, and thus the bottom flat slice layer is sliced; Step S4: Segment the intermediate rotating layer and cut it into slices. Calculate the angle θ between the top and bottom surfaces of the model. Using θ as a reference value, the user interactively selects the rotation angle β. The value of β is adjusted according to the value of θ, but ensures that (θ-β) < 45°. The rotation slice height is then determined based on the desired rotation angle. Total height of the rotating slice layer Calculate the number of rotated slice layers Then, the average rotation angle per layer is calculated from the rotation angle β as α = β / num2. The set of boundary points of the model in the rotating layer is obtained. The slice points of each layer are distributed along the set of boundary points of the model in the rotating layer. The slice angle of each layer is obtained by accumulating the average rotation angle α of each layer. The slice plane is determined by the slice points and slice angles to complete the slicing of the rotating layer. Step S5: Rotate the top layer model around the printer's rotation center O according to the rotation angle β, and then sort the rotated top layer model according to the top layer slice height h. 顶 Perform planar slicing, with the normal vector of the slice plane being (0,0,1); Step S6: Merge multiple print path point sets, optimize the print point sets, and obtain the printed GCode file.
2. The method for generating multi-axis unsupported printing trajectories based on curve discretization according to claim 1, characterized in that, S2 includes the following steps: Step S201: Read the support model and calculate the bounding box size of the model. Set the vertex as With the normal vector (0,0,1), the plane is set by the point normal, the bottom contour line is cut, the two endpoints P1 and P2 of the contour line are taken, and the center point P of the line connecting P1 and P2 is calculated. Step S202: Based on the rotation point M determined by the user interaction, calculate the model height H below the rotation point M, and compare the height H with the set maximum rotation layer height. ,when When the model is divided into a lower rotating layer and an upper slicing layer, the height of the rotating layer is... ,when At that time, the excess height is the height of the bottom flat-cut layer. The bottom flat-cut layer is obtained, and the layer height is rotated. ; Step S203: If a bottom flat-cut layer exists, then based on the height H... 底 The vertex position is obtained as The normal vector is The plane is set by the point method, which separates the bottom flat-cut layer from the other parts.
3. The method for generating multi-axis unsupported printing trajectories based on curve discretization according to claim 1, characterized in that, Step S4 specifically includes the following steps: Step S401: Calculate the angle θ between the normal vectors of the planes containing the bottom and top surfaces. Calculate the normal vector n1 of the plane containing the top surface of the model, and the normal vector of the bottom surface n2 = (0, 0, 1). Calculate the angle between the two normal vectors using the dot product method. The user interactively selects the rotation angle β, and the value of β is adjusted according to the value of θ, but it is guaranteed that (θ-β) < 45°; Step S402: Starting from the point with the smallest Z-value in the boundary point set of the rotating layer, increase the length sequentially along the direction of the boundary point set. This allows us to obtain the vertex at the location of the cutting plane, and then determine the rotation angle corresponding to that layer. Calculate the plane normal vector as The position of each cutting plane is determined according to the point method. Step S403: The vertex positions of each slice point obtained in step S402. and rotation angle The rotated part of the model is sliced to obtain the slice point set of the rotated part of the model.
4. The method for generating multi-axis unsupported printing trajectories based on curve discretization according to claim 1, characterized in that, S5 includes the following steps: Step S501: Based on the location of the last slice plane in S4, divide the model to obtain the top flat-cut layer model. Step S502: Rotate the top flat-cut layer model by an angle β around the printer's rotation center O, without changing the model's topology. Rotate all points of the model. Let Pi be a point before rotation, and calculate the corresponding point P'i after rotation, where P'i.X = Pi.X cosβ+Pi.Z sinβ,P' iZ=Pi.Z cosβ-Pi.X sinβ, P'i.Y=PY; Step S503: Calculate the AABB bounding box dimensions {Xmin, Xmax, Ymin, Ymax, Zmin, Zmax} of the rotated model, based on the slice layer height h. 顶 The number of slice layers, num3, is calculated from the maximum and minimum z-values of the bounding box: num3 = (Zmax - Zmin) / h 顶 The model is sliced num3 times, with the slice plane normal vectors being {0,0,1} and the center points being {(Xmin+Xmax) / 2, (Ymin+Ymax) / 2, (Zmin+i h 顶 )}, where i represents the i-th slice.
Citation Information
Patent Citations
Multi-axis support-free 3D printing curved surface slicing method and device and server
CN114474741A
Bent tubular intestinal fistula patch five-axis support-free 3D printing method
CN115157681A