A support structure generation method suitable for a light-curing process

By constructing the topological connection relationship of the triangular mesh model, filtering and distinguishing overhanging regions, and generating dense discrete points, the problem of low generation efficiency of existing photopolymerization software in overhanging regions is solved, and stable support structures are generated quickly.

CN115688502BActive Publication Date: 2026-01-20ZHEJIANG FLASHFORGE 3D TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202210516397.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-05-12
Publication Date
2026-01-20
Estimated Expiration
2042-05-12

AI Technical Summary

Technical Problem

Existing photopolymerization software cannot effectively handle overhanging areas when generating support structures, especially for models such as cubes, resulting in the support structure failing to hold the model in place. Furthermore, existing algorithms are inefficient when processing complex models.

Method used

By constructing the topological connection relationship of the triangular mesh model, the overhang points, overhang edges and overhang surfaces are identified, the set of points that need support is filtered out, the overhang regions are distinguished according to the topological connection relationship, and dense discrete points are generated in each region. Appropriate support points are selected to generate the support structure.

Benefits of technology

It improves the generation speed of support structures, enables rapid processing of complex models, reduces unnecessary computation, and improves processing efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115688502B_ABST
    Figure CN115688502B_ABST
Patent Text Reader

Abstract

The application discloses a support structure generation method suitable for a light curing process. The method directly selects a hanging point and a hanging edge needing support, finds out a hanging surface needing support, distinguishes different hanging areas according to a topological connection relationship, generates dense discrete points on each hanging area, and selects a suitable support point from the discrete points. The method maintains a search front, takes the lowest point in the search front as the next support point, and simultaneously updates the search front. The method can be used not only in a model containing a topological problem, but also in generation of support of a narrow area, and simultaneously avoids the inefficiency of a layer difference method, and is helpful to improve the speed of generation of the support.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application belongs to the field of 3D printing, and particularly relates to a support structure generation method suitable for a light curing process. BACKGROUND

[0002] In the field of 3D printing, when a model with overhanging area is encountered, support needs to be added to the overhanging area to prevent printing failure. In the existing light curing software, the CHITUBOX software of Shenzhen Chubox Technology Co., Ltd. generates support relatively fast, but its algorithm does not seem to consider the overhanging edge, because for a cube placed along the main diagonal in the vertical direction, only a unique support will be generated at the lowest point; when the cube is enlarged, the support cannot pull the cube.

[0003] The document "Free-Floating Support Structure Generation" by Seongje Janga et al. mentions a non-suspended support point sampling algorithm, which needs to construct a connected graph for dense discrete points, then sort the discrete points by z coordinate from small to large, preferentially select points with small z coordinates as support points, and calculate the influence domain of the support points through Djikstra shortest path algorithm, which shows good effect for general models, but for models with numerous intersection points with +z direction rays (such as honeycomb), the method is obviously too slow, the reason is that even if the faces where these intersection points are located do not need support, they cannot be directly filtered out and still need to participate in the construction of a complex connected graph, thereby affecting the subsequent processing efficiency.

[0004] Therefore, a method for selecting support points of a model is needed, which can quickly generate support and stable support. SUMMARY

[0005] The present application aims to provide a support structure generation method suitable for a light curing process, which directly selects overhanging points and overhanging edges that need support, finds triangles that need support, then distinguishes different overhanging areas according to topological connection relationship, and then generates dense discrete points on each overhanging area to select appropriate support points.

[0006] In order to solve the above technical problems, the present application adopts the following technical solutions:

[0007] A support structure generation method suitable for a light curing process, comprising the following steps:

[0008] Constructing the topological connection relationship of the triangular mesh model;

[0009] Finding the overhanging points, overhanging edges and overhanging faces of the triangular mesh model to obtain the corresponding point set {V}, edge set {E} and face set {F};

[0010] Filtering the point set {V} in a set manner to obtain a point set {V'};

[0011] Connecting edges in the edge set {E} into strings, calculating support points in a set interval string by string to obtain a point set {V2};

[0012] Dividing the face set {F} into different overhanging areas according to the triangular adjacency relationship to obtain an area set {S} = {{S1}, {S2}, …, {S n}};

[0013] For any overhanging area {S i} in the set {S}, uniformly and densely discretizing each triangular facet to obtain a point set {V i}, wherein i = 1, 2, …, n, deleting points in the point set {V i} with a distance less than a set value c from the point set {V'}, selecting candidate support points from the point set {V i} after deleting points with a distance less than a set value c from the point set {V'}, thereby generating actual support points and adding the actual support points to the point set {V i '};

[0014] Taking points in the point set {V'}, the point set {V2} and the point set {V i '} (i = 1, 2, …, n) as support points of the model, generating support structures along the -z direction for points in the point set {V'} and the point set {V2}, and generating support structures along the normal of the triangular facet where the point is located for points in the point set {V i '}. The support points are distributed on overhanging points, overhanging edges and overhanging faces. After finding the points on the overhanging points, the overhanging edges and the overhanging faces, the points are filtered respectively, which is fast in sampling and helps to improve the speed of generating supports. The faces not meeting the overhanging requirements are directly filtered out and do not need to be further processed; the overhanging faces are divided into areas and filtered, and the support points are selected from the discrete point set, which can be used to process models containing topological problems.

[0015] Preferably, the step of finding the overhanging points, the overhanging edges and the overhanging faces of the triangular mesh model to obtain the corresponding point set {V}, the edge set {E} and the face set {F} comprises the following steps:

[0016] S21: calculating the unit normal of each triangular facet of the triangular mesh model, and putting the triangular facets with a z component of the normal less than a threshold value a into the face set {F} as an overhanging face set to be supported;

[0017] S22: when the z component of the normal of a triangular facet is not less than a threshold value a and the z component of the normal of an adjacent face is also not less than a threshold value a, but the z component of the normal of a common adjacent edge is less than a threshold value a, the adjacent edge is saved into the edge set {E} as an overhanging edge set to be supported, wherein the normal of the adjacent edge is a unitized vector of the average of the normals of the two adjacent faces;

[0018] S23: Find all 1-neighborhood minimum points in the triangular mesh model, remove the local concave points on the upper surface, keep the local convex points on the lower surface, save them into the point set {V}, and form the overhanging point set to be supported; remove the elements on the z=0 plane in the point set {V}, the edge set {E}, and the face set {F}, respectively; wherein the 1-neighborhood is all the triangular faces connected to a point.

[0019] Steps S21-S23 are used to determine which parts of the model need to be supported. In step S21, triangular faces close to the horizontal and with a normal downward are selected as overhanging faces. In step S22, the common adjacent edges close to the horizontal and with a normal downward are selected as overhanging edges from the non-overhanging faces. In step S23, the local minimum points are found to form the overhanging point set. The overhanging point set excludes concave points, and the appropriate convex points are selected because the lower side of the concave points is the model and thus does not need to be supported. The elements on the z=0 plane are removed because these elements are on the substrate, and the part of the model on the substrate does not need to be supported.

[0020] Preferably, the filtering of the point set {V} in the set manner to obtain the point set {V'} includes the following steps:

[0021] S31: Arrange the vertices in the point set {V} in ascending or descending order of z coordinates, add the lowest point q1 to the point set {V'} and mark it as "visited", and mark the points in the point set {V} with a distance less than a threshold value b from the lowest point q1 as "visited";

[0022] S32: Put the lowest point q2 in the point set {V} that is not marked as "visited" into the point set {V'} and mark it as "visited", and then mark the points in the point set {V} with a distance less than a threshold value b from the lowest point q2 as "visited";

[0023] S33: Repeat step S32 until all the points in the point set {V} are marked as "visited", and obtain the point set {V'}.

[0024] When there are too many convex points on the model, the support points are too dense, and thus a part of the points need to be filtered out by the above steps.

[0025] Preferably, the connecting of the edges in the edge set {E} into strings, the calculation of the support points in the set manner with a set interval, and the obtaining of the point set {V2} include the following steps:

[0026] S41: For the overhanging edges in the edge set {E} that can have a connection relationship, a point-to-edge mapping is constructed, starting from a point with a degree greater than 2, taking one edge to search forward, if the degree of the other end point of the edge is 2, continue to search along the next edge until a vertex with a degree greater than 2 or equal to 1 is encountered, record the edges along the way in sequence to form a line string, save to the edge set {E'}, for the repeated line strings in the edge set {E'}, only one is retained, and the points in the line string in the edge set {E'} are marked as "visited"; wherein, the degree of a point is the number of edges connected to the point;

[0027] S42: Starting from a vertex that is not marked as "visited" and has a degree of 1, search forward, if the degree of the other end point of the edge is 2 and is not marked as "visited", continue to search along the next edge until a vertex with a degree equal to 1 is encountered, record the edges along the way in sequence to form a line string, save to the edge set {E'}, and mark the points in the line string as "visited";

[0028] S43: Repeat step S42 until all points are marked as "visited";

[0029] S44: For any line string in the edge set {E'}, sample at a set interval to obtain a point set {V2}.

[0030] The filtering method of the overhanging edge is to first find a series of overhanging edges, and then select support points on the overhanging edges at a certain interval.

[0031] Preferably, the step of distinguishing different overhanging areas from the face set {F} according to the triangular adjacency relationship to obtain an area set {S} = {{S1}, {S2}, …, {S n}} comprises the following steps:

[0032] S51: Map the triangular patches in the face set {F} to a subgrid, and divide the areas using the topological connection relationship of the subgrid;

[0033] S52: Take any triangular patch t1 from the face set {F}, find all triangular patches directly or indirectly connected to the triangular patch t1 in the subgrid according to the topological connection relationship, to form an overhanging area set {S1}, and mark the corresponding triangular patch t1 as "visited";

[0034] S53: Take a triangular patch t2 that is not marked as "visited" from the face set {F}, find all triangular patches directly or indirectly connected to the triangular patch t2 in the subgrid according to the topological connection relationship, to form an overhanging area set {S2}, and mark the corresponding triangular patch t2 as "visited", and so on, until all the triangular patches in the face set {F} are set as "visited", and finally obtain the set {S} = {{S1}, {S2}, …, {Sn}}.

[0035] The filtering method of the overhanging surface is divided into n sets according to the adjacency relationship of the triangular patches.

[0036] Preferably, the overhanging region {S i} in the set {S} is uniformly and densely discretized to obtain a point set {V i}, wherein i = 1, 2, …, n, and points in the point set {V i} having a distance less than a set value c from the point set {V'} are deleted, candidate support points are selected from the point set {V i} after the deletion of the points having the distance less than the set value c from the point set {V'}, actual support points are generated and added to the point set {V i '}, and the following steps are included:

[0037] S61: for any overhanging region {S i} in the set {S}, each triangular patch therein is rotated to a horizontal direction, and then xy grid points are calculated according to a set discrete point interval, points inside the triangular patch are selected from the xy grid points, and the points are reversely rotated back to the original spatial position to obtain a point set {V i}, wherein i = 1, 2, …, n;

[0038] S62: taking any point p in the point set {V'}, if there is a point in the point set {V i} having a distance less than a set value c from the point p, the point is deleted, and the discrete point set after the deletion of the point is still recorded as the point set {V i};

[0039] S63: the discrete points in the point set {V i} obtained in step S62 are arranged in ascending or descending order according to z coordinates, a point p1 having the smallest z coordinate is taken as a candidate support point, actual support points are generated from the point and added to the point set {V i '}, all points having a distance less than a set threshold value r + δ from the point p1 are found, wherein the points having a distance less than the threshold value r are the influence domain of the point p1, the points are marked as “visited”, and points having a distance greater than or equal to the threshold value r but less than the threshold value r + δ are added to a set {G}, and the set {G} is a search front.

[0040] S64: the vertices in the search front {G} are arranged in ascending or descending order according to z coordinates, a point p2 having the smallest z coordinate is taken as a candidate support point, actual support points are generated from the point and added to the point set {V i}, find all points with distance less than a set threshold r+δ from p2, where the points with distance less than r are the influence domain of point p2, mark these points as "visited", update the influence domain of existing support points: add points with distance greater than or equal to r but less than r+δ to the search front {G}, remove points in the search front {G} that are in the influence domain of point p2;

[0041] S65: repeat step S64, find the next lowest point p3 in the search front {G} as a candidate support point, generate actual support points from this point and add them to the point set {V i}, and so on until all discrete points are "visited".

[0042] Filter some points near the local minimum point, take the minimum point as a candidate support point and generate a search front, select a new candidate support point from the search front, which is constantly updated with the selection of new support points, and the speed is relatively fast.

[0043] Preferably, in step S63, the discrete points in the point set {V i} have equal z coordinates, the point p1 with the smallest z coordinate is selected as the point closest to the bounding box center of the overhanging area; if such a point does not exist, the first point in the point set {V i} is selected.

[0044] Preferably, in step S64, the points in the search front {G} are arranged in ascending or descending order of z coordinates, and if there are multiple points with the smallest z coordinates, the number of minimum points is obtained. When the number of minimum points is less than a set threshold d, it is considered that the discrete points are on a narrow area, and the discrete points are clustered by distance, and the point closest to the center of the class with the least number of points is selected as the next support point.

[0045] Preferably, in step S64, the overhanging area is treated as a spiral surface, that is, a ray is emitted from a candidate support point upwards, and the ray may intersect with the overhanging area at multiple points that need support, then a series of discrete points near the ray are found, and then clustered by distance, and the point closest to the ray in each class is taken as an actual support point.

[0046] The distance clustering method is as follows: arrange these points in ascending or descending order of z coordinates, then compare the z-direction distance of each two points from the lowest point, and when the distance is less than a threshold e, it is considered to be in the same class, otherwise it indicates the beginning of a new class.

[0047] Preferably, in step S63, the influence domain of a point is calculated as follows:

[0048] Using the grid method, the grid is composed of squares with side length f, and the vertex coordinates are integers; for any discrete point p(x, y), assuming that x and y are non-negative, if x and y are negative, a translation component can be applied to all discrete points to ensure that x and y are non-negative, the new point obtained by calculating p / f and rounding each coordinate component is the lower left corner point of the square in which the discrete point p is located, find the point p in the square from the lower left corner point of the square, find the 9 squares intersecting with the square with the center point p and the side length 4r, then find the discrete points in the square from the lower left corner points of the 9 squares, and then find the points with a distance less than the threshold value r from the point p from the discrete points, which constitute the influence domain of the point p.

[0049] Due to the adoption of the above technical solutions, the present application has the following beneficial effects:

[0050] The present application directly selects the overhanging points and overhanging edges that need to be supported on the model, finds the triangle that needs to be supported, then distinguishes different overhanging areas according to the topological connection relationship, and then generates dense discrete points on each overhanging area to select appropriate support points, which is fast in sampling speed. The specific beneficial effects are as follows:

[0051] 1. The support points are distributed on the overhanging points, overhanging edges and overhanging surfaces, and after the points on the overhanging points, overhanging edges and overhanging surfaces are found, they are filtered respectively, which is fast in sampling speed and helps to improve the speed of generating support.

[0052] 2. The triangle patches that need to be supported are strictly filtered by the threshold value of the critical overhanging angle (converted to the z component of the patch unit normal in the program), and the patches that do not meet the overhanging requirements are directly filtered out without further processing; the calculation of the discrete points of the overhanging area and the selection of the support points therefrom are both independent of the grid topology, so the model containing topological problems can be processed.

[0053] 3. An search front is maintained in the overhanging surface, which is constantly updated with the selection of new support points, so that the newly selected support points maintain a set distance from the existing support points, and the number of points of the search front is relatively small, which can ensure that the speed of support generation is relatively fast.

[0054] 4. The calculation of the influence domain of the point uses the grid point mapping method, which is fast in sampling points within a certain range around the support point, especially when the number of sampling points is very large, which can quickly exclude the discrete points that do not need to be supported near the support point. BRIEF DESCRIPTION OF DRAWINGS

[0055] The present application will be further described below according to the drawings.

[0056] Figure 1 The flowchart of a support structure generation method suitable for the photocuring process in the present application.

[0057] Figure 2 This is a schematic diagram of a hexagonal prism with a shelled bottom.

[0058] Figure 3 This is a schematic diagram illustrating the calculation of the influence domain of a point in this invention.

[0059] Figure 4 This is a diagram illustrating the process of generating support points in the suspended region in this invention.

[0060] Figure 5 This is a schematic diagram of the influence domain and search front edge of the first support point in step S63 of the present invention.

[0061] Figure 6 for Figure 5 A magnified view of a portion of the image.

[0062] Figure 7 This is a schematic diagram of selecting the second support point in step S64 of the present invention.

[0063] Figure 8 This is a schematic diagram showing the superposition of the leading edges searched in each step S65 of the present invention.

[0064] Figure 9 This is a schematic diagram of the bottom structure and the leading edge of the search for the hexagonal prism in this invention.

[0065] Figure 10 for Figure 9 The diagram shows a magnified view of the local area and a diagram showing the connection of points in the search front edge according to the minimum spanning tree.

[0066] Figure 11 for Figure 9 A diagram showing the selection of the second support point on the left.

[0067] Figure 12 for Figure 9 A diagram showing all support points selected and a diagram showing the connection of points according to the minimum spanning tree after updating the search front edge.

[0068] Figure 13 This is a schematic diagram for calculating the actual support point from the alternative support points when the suspended region is a spiral surface.

[0069] Figure 14 The method of this invention is used to select support points for a model cube and generate a schematic diagram of the supported cube.

[0070] Figure 15 The method of this invention is used to select support points for the model deer and generate a schematic diagram after support.

[0071] Figure 16 The method of this invention is used to select support points for the model lampshade and generate a schematic diagram after support. Detailed Implementation

[0072] The technical solutions in the embodiments of the present application will be described below with reference to the drawings in the embodiments of the present application.

[0073] As Figure 1 shown in a support structure generation method for a light curing process, to Figure 2 take the hexagonal prism with the bottom surface shell as an example, there are overhanging areas 1 and 2, wherein the overhanging area 2 is a long and narrow area, and the method comprises the following steps:

[0074] S1: constructing the topological connection relationship of the triangular mesh model.

[0075] S2: finding the overhanging points, overhanging edges and overhanging surfaces of the triangular mesh model, obtaining the corresponding point set {V}, edge set {E} and surface set {F}, and specifically comprising the following steps:

[0076] S21: calculating the unit normal of each triangular surface in the triangular mesh model, and putting the triangular surface with the normal z component less than the threshold value a into the surface set {F} as the overhanging surface set to be supported; when the critical angle of the overhanging surface is 45 degrees, the critical angle of the corresponding surface normal and the-z axis is 45 degrees, which is converted to the threshold value a of-0.707 in the program, and the critical angle of the overhanging surface is set by the user;

[0077] S22: when the normal z component of the triangular surface is not less than the threshold value a and the normal z component of the adjacent surface is also not less than the threshold value a, but the normal z component of the common adjacent edge is less than the threshold value a, the adjacent edge is saved to the edge set {E} as the overhanging edge set to be supported;

[0078] S23: finding all 1-neighborhood minimum points in the triangular mesh model, removing the local concave points on the upper surface, retaining the local convex points on the lower surface, saving them to the point set {V} to form the overhanging point set to be supported; respectively removing the elements in the point set {V}, the edge set {E} and the surface set {F} located on the z=0 plane, and the surface set, the edge set and the point set after removing the elements located on the z=0 plane are still denoted as the surface set {F}, the edge set {E} and the point set {V}; it can be understood that the order of this step can be adjusted, for example, the surface set {F} can be removed after step S21, before step S22, or after step S22 and before step S23; wherein the 1-neighborhood is all the triangular surfaces connected to a point.

[0079] The local concave points on the upper surface are not needed to be supported and can be removed because the lower part of the local concave points on the upper surface is the model; the model printed at z=0 is located on the substrate of the 3D printer, and no support needs to be set.

[0080] S3: filtering the point set {V} in a set manner to obtain a point set {V'}, wherein the set manner can be arranging in ascending or descending order of z coordinate and filtering by a set distance, or other filtering manners commonly used by those skilled in the art. Arranging in ascending order of z coordinate and filtering by a set distance to obtain the point set {V'} specifically comprises the following steps:

[0081] S31: arranging the vertices in the point set {V} in ascending or descending order of z coordinate, adding the lowest point q1 to the point set {V'} and marking it as "visited", and marking the points in the point set {V} having a distance less than a threshold value b (such as 2 mm) from the lowest point q1 as "visited";

[0082] S32: adding the lowest point q2 in the point set {V} not marked as "visited" to the point set {V'} and marking it as "visited", and marking the points in the point set {V} having a distance less than the threshold value b from the lowest point q2 as "visited";

[0083] S33: repeatedly performing step S32 until all the points in the point set {V} are marked as "visited", to obtain the final point set {V'}. The point set {V'} is the overhanging points actually needing support after filtering.

[0084] S4: connecting the edges in the edge set {E} into strings, calculating support points by a set interval for each string, and obtaining a point set {V2}, specifically comprising the following steps:

[0085] S41: for the overhanging edges possibly having a connection relationship in the edge set {E}, constructing a point-to-edge mapping, starting from the points having a degree greater than 2, taking one edge to search forward, if the degree of the other end point of the edge is 2, continuing to search along the next edge until a vertex having a degree greater than 2 or equal to 1 is encountered, recording the edges along the way in sequence to form a line string, saving it to the edge set {E'}, for the repeated line strings in the edge set {E'}, only keeping one, and marking the points in the line string in the edge set {E'} as "visited"; wherein the degree of a point is the number of edges connected to the point;

[0086] S42: starting from the vertices not marked as "visited" and having a degree of 1 to search forward, if the degree of the other end point of the edge is 2 and not marked as "visited", continuing to search along the next edge until a vertex having a degree equal to 1 is encountered, recording the edges along the way in sequence to form a line string, saving it to the edge set {E'}, and marking the points in the line string as "visited";

[0087] S43: repeatedly performing step S42 until all the points are marked as "visited";

[0088] S44: for each line string in the edge set {E'}, sampling by a set interval to obtain the point set {V2}.

[0089] S5: dividing the face set {F} into different overhanging areas according to the triangular adjacency relationship to obtain an area set {S} = {{S1}, {S2}, …, {S n}}, specifically including the following steps:

[0090] S51: mapping the triangular patches in the face set {F} to the sub-grid, and performing area division using the topological connection relationship of the sub-grid;

[0091] S52: taking any triangular patch t1 from the face set {F}, finding all triangular patches directly or indirectly connected to the triangular patch t1 in the sub-grid according to the topological connection relationship, to form an overhanging area set {S1}, and marking the corresponding triangular patch t1 as “visited”;

[0092] S53: taking a triangular patch t2 not marked as “visited” from the face set {F}, finding all triangular patches directly or indirectly connected to the triangular patch t2 in the sub-grid according to the topological connection relationship, to form an overhanging area set {S2}, and marking the corresponding triangular patch as “visited”, and so on, until all triangular patches in the face set {F} are set as “visited”, and finally obtaining the set of n overhanging areas {S} = {{S1}, {S2}, …, {S n}}.

[0093] Steps S3, S4, and S5 do not have to be performed in sequence, step S4 can be performed after step S5, but step S5 must be performed after step S3.

[0094] S6: for any overhanging area {S i} in the set of n overhanging areas {S}, uniformly and densely discretizing each triangular patch therein to obtain a point set {V i}, where i = 1, 2, …, n, deleting points in the point set {V i} that are less than a set value c from the point set {V'} in step S3, selecting candidate support points from the point set {V i} after deleting points less than the set value c from the point set {V'}, generating actual support points and adding them to the point set {V i '}, specifically including the following steps:

[0095] S61: for any overhanging area {S i} in the set of n overhanging areas {S}, uniformly and densely discretizing each triangular patch therein to obtain a point set {V iDiscretization can be performed using the centroid coordinate method, or by rotating the triangular facet to a horizontal position, calculating the xy grid of points according to a set discrete point spacing, selecting points inside the triangular facet (the discrete point spacing can be taken as 0.2 mm), and then rotating the points back to their original spatial positions to obtain the point set {V}. i}, where i = 1, 2, ..., n;

[0096] S62: Take any point p in the point set {V'} obtained in step S3. If the discrete point set {V'} i If there is a point in the set {V} whose distance from point p is less than a set value c, then delete that point. The set of points after deleting the point is still denoted as {V}. i};

[0097] This step is used to remove discrete points on the overhanging region that are close to the local minimum.

[0098] S63: Transfer the point set {V} obtained in step S62 to... i The discrete points in {V} are arranged in ascending or descending order of their z-coordinates. The point p1 with the smallest z-coordinate is selected as a candidate support point. After generating the actual support point from this point, it is added to the point set {V}. i Find all points whose distance from point p1 is less than a set threshold r+δ. Points whose distance is less than the threshold r are the influence domain of point p1. Mark these points as "visited". Add points whose distance is greater than or equal to the threshold r but less than the threshold r+δ to set {G}. Set {G} is the search front edge.

[0099] The threshold r is the spacing between support points, set by the user; the smaller the value, the denser the support. The threshold δ can be taken as the same value as the spacing between discrete points, which is 0.2mm here.

[0100] If the overhanging regions are on the same horizontal plane (i.e., z is equal), then all discrete points are also on the same horizontal plane. In this case, the point p1 with the smallest z-coordinate, i.e., the first support point p1, is selected as the point closest to the center of the bounding box of the overhanging region. If such a point does not exist, then the point set {V} is selected. i The first point in}; there are different methods for calculating the influence domain of a point, with the grid method being a preferred method.

[0101] like Figure 3 As shown, the hollow circles represent discrete points that fall within a square grid. In this example, assume X... i >0, Y j >0, with a grid side length of f. If the coordinates of a discrete point are (x, y), then (x / f, y / f), rounded, represents the coordinates of the lower left corner of the square containing that point, indicated by a solid small circle. For example, the corner points (X, f) of points p1 to p4 are... i+1 ,Y j ), and the corresponding corner points (X) of points p5 to p8. iY j+1 ), and vice versa, the points p1-p4 in the square represented by the corner point (X i+1 ,Y j ) can be found, the points p5-p8 in the square represented by the corner point (X i ,Y j+1 ). Thus, if a point p is given, to find all points whose distance from p is less than r, only need to find the square near p, such as the 9 squares intersecting the square with a side length of 4r represented by the thick solid line in Figure 3 , then find the discrete points in the squares from the lower left corner points of the squares, and then find the points whose distance from p is less than r from the discrete points;

[0102] S64: arrange the vertices in the search front {G} in ascending or descending order of z coordinate, take the point p2 with the smallest z coordinate as the candidate support point, generate the actual support point from the point and add it to the point set {V i '}, find all points whose distance from p2 is less than the set threshold r+δ, wherein the points whose distance from p2 is less than the threshold r are the influence domain of the point p2, mark these points as "visited", and update the influence domain of the existing support points: add the points whose distance from p2 is greater than or equal to r but less than r+δ to the search front {G}, and delete the points in the search front {G} that are in the influence domain of the point p2;

[0103] S65: repeat step S64, take the next lowest point p3 in the search front {G} as the candidate support point, generate the actual support point from the point and add it to the point set {V i '}, and the rest is similar, until all discrete points are "visited".

[0104] The support point generation process of the overhanging area 1 after steps S61-S65 is shown in Figure 4 .

[0105] The influence domain of the first support point p1 in step S63 and the search front {G} are shown in Figure 5 , wherein the influence domain is the points in the circle with a radius of r, represented by a small circle with a thin solid line, and the search front {G} is composed of points in the annular region between the concentric circles with radii r and r+δ, represented by a small circle with a thick solid line. In addition, the unvisited discrete points are distributed between the circle with a radius of r+δ and the hexagon, which are not shown in the figure.

[0106] As shown in Figure 6 , 3 is the dense discrete points in the support point influence area, and 4 is the discrete points in the search front {G}.

[0107] As shown in Figure 7As shown, when the second left support point p2 is selected, the search front {G} will expand, and the expanded part is shown as the left thick solid circle. At the same time, part of the original search front needs to be removed from the current search front, which is shown as the thin circle in the figure. The subsequent processing is similar.

[0108] Figure 8 For the superposition of the search front, these points (all thin solid circles in the figure) only account for a small part of all discrete points.

[0109] S66: After the points in the search front {G} are arranged in ascending or descending order of z coordinates, if there are multiple points with the minimum z coordinate, the number of lowest points is obtained. When the number of lowest points is less than a set threshold d (such as 40), it is considered that the discrete points are in a narrow region, and the discrete points are clustered according to the distance. The point closest to the center of the class with the least number of points is selected as the next support point. Through the above method, the middle point of the narrow region is selected as the support point as much as possible.

[0110] The overhanging region 2 is a narrow strip, and there is no discrete point in the center. The first support point is selected as the point with the minimum z coordinate, and the search front {G} is composed of two points far apart, as shown in Figure 9 .

[0111] As shown in Figure 10 , in order to select a point close to the central axis of the strip, the search front {G} is clustered according to the distance, and the class with the least number of points is selected. The point closest to the center of the bounding box of the class is selected as the support point. There are many clustering methods, and one preferred method is to construct a minimum spanning tree, as shown in Figure 10 . Then, the edges with a distance greater than a set value are set as "visited", so as to separate different classes. Then, from any endpoint of the "visited" edge, find the edge directly or indirectly connected to it and not marked as "visited", so as to obtain all points in a class.

[0112] This embodiment has two classes, and the number of points in each class is 5. The left class is finally selected, and a point close to the center of the strip is selected as the support point, as shown in Figure 11 . The support in the overhanging region 2 is finally as shown in Figure 12 .

[0113] S67: In most cases, the projection of the overhanging region to the z=0 plane does not have overlap, but the case of projection overlap still exists, such as when the overhanging region is a spiral surface. For this, the actual support points need to be generated according to the case of the spiral surface, that is, a ray is emitted upward from an alternative support point, and the ray intersects the overhanging region at multiple points that need to be supported. For this, a series of discrete points near the ray are found, and then clustered by distance, and the point closest to the ray in each class is taken as the actual support point. The clustering method is as follows: arrange these points in ascending or descending order of z coordinates, and then compare the z-direction distance from the lowest point two by two. When the distance is less than a certain threshold e (the threshold e is related to the discrete point spacing, when the discrete point spacing is 0.2 mm, the threshold e can be taken as 0.4 mm), it is considered to be the same class, otherwise it indicates the beginning of a new class.

[0114] One alternative support point may correspond to multiple actual support points, such as Figure 13 shown in the spiral surface in (b), the vertically upward ray intersects the spiral surface at 3 points, and 3 support points need to be generated. For this, first find the discrete points within a certain distance from the ray, and then arrange these discrete points in ascending or descending order of z coordinates, and then cluster by distance, and take the point closest to the ray in each class as the support point. There are many clustering methods, such as the aforementioned minimum spanning tree, as a priority option, here we directly use the z-direction distance to distinguish different classes. Since the discrete points have been arranged in ascending order of z coordinates, we only need to compare the z-direction distance from the lowest point two by two. When the distance is less than a certain threshold e, it is considered to be the same class, otherwise it indicates the beginning of a new class.

[0115] S7: Take the points in the point set {V1}, the point set {V2}, and the point set {V3} as the support points of the model, generate support structures in the -z direction for the points in the point set {V1} and the point set {V2}, and generate support structures in the normal direction of the face on which the point is located for the points in the point set {V3}. i i

[0116] Take a cube with the main diagonal placed in the vertical direction as an example. When the critical angle of the overhanging surface (the angle between the normal of the triangular face and the -Z axis) is 45 degrees, all triangular faces do not satisfy the overhanging condition, but there is a local minimum point and 3 edges that satisfy the overhanging edge condition, and the generated support is shown in (b). In contrast, CHITUBOX (the current version is v1.9.0) only generates a unique support at the lowest point, and when the cube is enlarged, the support cannot hold it. Figure 14

[0117] ​​​In addition to the support structure generation methods mentioned in the background section, such as CHITUBOX and the literature Free-Floating Support Structure Generation, the inventors also learned of another method that identifies overhanging areas requiring support by comparing the differences between two adjacent slice layers. This method is widely used in FDM and is referred to here as the inter-layer difference method. This method is computationally intensive; even if the model does not require support, the cross-sectional data and inter-layer differences still need to be calculated based on the set story height. Therefore, the taller and more complex the model, the greater the computational load. The following examples will compare and illustrate the various methods:

[0118] like Figure 15 The printed deer model shown is a schematic diagram of the support structure generated using the method of this invention. The antlers of the printed deer model have narrow, overhanging areas. The model measures 111.28 x 111.28 x 171.15 mm, with 114,033 points, 228,058 faces, a 45-degree overhanging face boundary angle, and a support spacing of 4 mm. The sampling time for the same printed deer model using the interlayer difference method is 11.515 s (excluding slicing time, the same applies below). The sampling time for the same printed deer model using the aforementioned Free-FloatingSupport Structure Generation method, after further optimization, is 2.587 s. The sampling time for the method of this invention is 1.422 s.

[0119] like Figure 16 The printed lampshade model shown is a schematic diagram of the support structure generated using the method of this invention. The model measures 70 x 70 x 120 mm, with 123,176 points and 246,664 faces. The overhanging face boundary angle is 40 degrees, and the support spacing is 4 mm. The sampling time using the interlayer difference method is 45.050 s, while the sampling time using the aforementioned Free-Floating Support Structure Generation method, after further optimization, is 897.636 s, close to 15 minutes, much slower than the interlayer difference method. However, it is superior to the interlayer difference method in most other cases. The method of this invention filters out a large number of overhanging areas that do not meet the overhanging angle requirements in the first instance, thus resulting in faster calculation and a sampling time of only 0.294 s.

[0120] The above are merely specific embodiments of the present invention, but the technical features of the present invention are not limited thereto. Any simple changes, equivalent substitutions, or modifications made based on the present invention to solve essentially the same technical problems and achieve essentially the same technical effects are all covered within the protection scope of the present invention.

Claims

1. A support structure generation method for a light solidification process, characterized by, The method comprises the following steps: Constructing a topological connection relationship of the triangular mesh model; Finding out overhanging points, overhanging edges and overhanging surfaces of the triangular mesh model to obtain corresponding point set {V}, edge set {E} and surface set {F}; Arranging the point set {V} in ascending or descending order of z coordinates and filtering according to a set distance to obtain a point set {V'}; Connecting the edges in the edge set {E} into strings and calculating support points according to a set interval to obtain a point set {V2}; and distinguishing different overhanging areas according to triangular adjacency relationship to obtain an area set {S} = {{S1}, {S2},..., {S n}}; For any overhanging region {S i} in the set {S}, uniformly and densely discretize each triangular facet in it to obtain a point set {V i}, where i = 1, 2, …, n, delete points in the point set {V i} that are less than a set value c away from the point set {V'}, select candidate support points from the point set {V i} after deleting points that are less than the set value c away from the point set {V'}, and thereby generate actual support points and add them to the point set {V i '}. Specifically, S11: arrange the discrete points in the obtained point set {V i} in ascending or descending order according to z coordinates, take the point p1 with the smallest z coordinate as a candidate support point, generate an actual support point from the point p1 and add the actual support point to the point set {V i}; find all points with a distance less than a set threshold r+δ from the point p1, wherein the points with a distance less than the threshold r are an influence domain of the point p1, mark these points as "visited", and add the points with a distance greater than or equal to the threshold r but less than the threshold r+δ to a set {G}, wherein the set {G} is a search front. S12: arrange the vertices in the search front {G} in ascending or descending order of z coordinate, take the point p2 with the smallest z coordinate as the candidate support point, generate the actual support point from the point p2 and add the point to the point set {V i}, find all points with a distance less than a set threshold r+δ from p2, wherein the points with a distance less than r are the influence domain of the point p2, mark these points as "visited", and update the influence domain of the existing support points: add the points with a distance greater than or equal to r but less than r+δ to the search front {G}, and delete the points in the search front {G} that are in the influence domain of the point p2; S13: repeat step S12 to find the next lowest point p3 in the search front {G} as a candidate support point, and generate an actual support point from this point and add it to the point set {V i}, and so on until all discrete points have been "visited"; The points in the point set {V1}, the point set {V2} and the point set {V i '} (i = 1, 2, …, n) are taken as support points of the model, the points in the point set {V1} and the point set {V2} generate support structures along the -z direction, and the points in the point set {V i '} generate support structures along the normal of the triangular face where the point is located.

2. The method for generating support structures for use in a photocuring process according to claim 1, wherein, The method for finding out overhanging points, overhanging edges and overhanging surfaces of the triangular mesh model to obtain corresponding point set {V}, edge set {E} and surface set {F} comprises the following steps: S21: calculating unit normals of each triangular surface of the triangular mesh model, and putting the triangular surface with a normal z component less than a threshold value a into the surface set {F} as an overhanging surface set to be supported; S22: when the normal z component of the triangular surface is not less than the threshold value a and the normal z components of adjacent surfaces are also not less than the threshold value a, but the normal z component of a common adjacent edge is less than the threshold value a, the adjacent edge is saved into the edge set {E} as an overhanging edge set to be supported; S23: finding out all 1-neighborhood minimum points in the triangular mesh model, removing local concave points on the upper surface and retaining local convex points on the lower surface, and saving them into the point set {V} to form an overhanging point set to be supported; and respectively removing elements on the z=0 plane in the point set {V}, the edge set {E} and the surface set {F}; wherein the 1-neighborhood is all triangular surfaces connected with a point. The method for filtering the point set {V} according to a set manner to obtain a point set {V'} comprises the following steps:

3. The method of claim 1, wherein the support structure is generated for a light solidification process. S31: arranging vertices in the point set {V} in ascending or descending order of z coordinates, adding a lowest point q1 into the point set {V'} and marking it as "visited", and marking points in the point set {V} with a distance less than a threshold value b from the lowest point q1 as "visited"; S32: adding a lowest point q2 in the point set {V} which is not marked as "visited" into the point set {V'} and marking it as "visited", and marking points in the point set {V} with a distance less than the threshold value b from the lowest point q2 as "visited"; S33: repeatedly performing step S32 until all points in the point set {V} are marked as "visited" to obtain the point set {V'}. The method for connecting the edges in the edge set {E} into strings and calculating support points according to a set interval to obtain a point set {V2} comprises the following steps:

4. The method of claim 1, wherein the support structure is generated for a light solidification process. S41: for overhanging edges in the edge set {E} which may have a connection relationship, mapping points to edges, starting from a point with a degree greater than 2, taking one edge to search forward, if the degree of the other end point of the edge is 2, continuing to search along the next edge until a vertex with a degree greater than 2 or equal to 1 is encountered, sequentially recording each edge along the way to form a string, saving it into an edge set {E'}, and only retaining one of repeated strings in the edge set {E'}, and marking points in the string in the edge set {E'} as "visited"; wherein the degree of a point is the number of edges connected with the point. ​ S42: Proceeding from the vertex which is not marked as "visited" and has a degree of 1, if the degree of the other end point of the edge is 2 and not marked as "visited", continue searching along the next edge until a vertex with a degree of 1 is encountered, record the edges along the way in order to form a string, save the string to the edge set {E'}, and mark the points on the string as "visited"; S43: Repeat step S42 until all points are marked as "visited"; S44: Sample the string in the edge set {E'} at a set interval to obtain a point set {V2}.

5. The method for generating support structures for use in a photocuring process according to claim 1, wherein, The different hanging areas are distinguished by the triangular abutment relationship of the face set {F}, and the area set {S} = {{S1}, {S2}, …, {S n}} is obtained, specifically including the following steps: S51: Map the triangular facets in the facet set {F} to the sub-grid, and divide the region using the topological connection relationship of the sub-grid; S52: Randomly select a triangular facet t1 from the facet set {F}, find all triangular facets directly or indirectly connected to the triangular facet t1 in the sub-grid according to the topological connection relationship to form a set of overhanging regions {S1}, and mark the corresponding triangular facet t1 as "visited"; S53: Take one triangle facet t2 from the facet set {F} which is not marked as "visited", find all the triangle facets which are directly or indirectly connected with the triangle facet t2 according to the topological connection relationship, form the set of overhang regions {S2}, and mark the corresponding triangle facet t2 as "visited", and so on until all the triangle facets in the facet set {F} are set as "visited", and finally obtain the set of n overhang regions {S} = {{S1}, {S2}, …, {S n}}.

6. The method of claim 1, wherein the support structure is generated for a light solidification process. The following steps are used to obtain the point set {V i} : S61: for any overhanging region {S i} in the set {S}, rotate each triangular facet in it to the horizontal direction, then calculate the xy grid points at a set discrete point interval, select the points inside the triangular facet, and rotate the points back to the original spatial position to obtain the point set {V i} where each point in the set {V} is a vertex of the overhanging region {S} i = 1, 2, …, n; S62: Take any point p in the point set {V'}, if there is a point in the point set {V i} whose distance to p is less than a set value c, delete the point, and the discrete point set after deleting the point is still recorded as the point set {V i}.

7. The method of claim 6, wherein the method is adapted for use in a stereolithography process. In step S63, when the discrete points z in the point set {V i} have equal z coordinates, the point p1 with the smallest z coordinate is selected as the point closest to the bounding box center of the overhang region; if such a point does not exist, the first point in the point set {V i} is selected.

8. The method of claim 6, wherein the method is adapted for use in a stereolithography process. In step S64, after the points in the front edge {G} are arranged in ascending or descending order according to the z coordinate, if there are multiple points with the minimum z coordinate, the number of lowest points is obtained, and when the number of lowest points is less than a threshold value d, it is considered that the discrete points are on a narrow region, and the discrete points are clustered according to the distance, and the nearest point to the center of the class with the least number of points is selected as the next support point.

9. The method of claim 6, wherein the method is adapted for use in a stereolithography process. In step S64, the overhanging region is treated as a spiral surface, that is, a ray is emitted from an alternative support point, if the ray intersects the overhanging region at multiple points that need support, a series of discrete points near the ray are found, then the discrete points are clustered according to the distance, and the nearest point to the ray in each class is taken as the actual support point; the distance clustering method is as follows: arrange the points in ascending or descending order according to the z coordinate, then compare the z distance of each two points from the lowest point, and when the distance is less than a threshold value e, it is considered that they belong to the same class, otherwise it indicates the beginning of a new class.

10. The method for generating support structures for use in a photocuring process according to claim 6, wherein: In step S63, the influence domain of a point is calculated as follows: using the grid method, the grid is composed of squares with a side length of f, and the coordinates of the vertices are integers; for any discrete point p(x, y), assuming that x and y are non-negative, if x and y are negative, a translation component can be applied to all discrete points to ensure that x and y are non-negative, the new point obtained by calculating p / f and rounding each coordinate component is the left lower corner point of the square in which the discrete point p is located, find the point p in the square from the left lower corner point of the square, find the 9 squares that intersect with the square with the center of the point p and the side length of 4r, then find the discrete points in the squares from the left lower corner points of the 9 squares, and finally find the points with a distance less than a threshold value r from the point p from the discrete points, which form the influence domain of the point p.

Citation Information

Patent Citations

  • Method and equipment for determining supporting points of 3D printer model and printer

    CN115339107A

  • Self-adaptive support structure generation method for pull-up photocuring 3D printing

    CN119329061A