Support structure generation method, device, electronic device and storage medium

By automatically generating uniform bottom support structures and specific support units, the problem of automatic support generation for interlayer structures and side concave feature models in light-curing 3D printing is solved, thereby improving the printing success rate and efficiency.

CN114722438BActive Publication Date: 2025-09-09SHENZHEN CBD TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202210321591.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-04-29
Publication Date
2025-09-09
Estimated Expiration
2042-04-29

AI Technical Summary

Technical Problem

Existing photo-curing 3D printing technology cannot effectively and automatically generate support structures for models with interlayer structures or concave side features, resulting in printing failure.

Method used

A method for automatically generating a uniform bottom support structure is provided. The method obtains a triangular mesh model, divides it into preset squares, obtains intersection points and sorts them by height, selects target support vertices, connects support root points, generates support units, and provides specific support structure generation solutions for suspension points, suspension edges, and inclined surfaces.

Benefits of technology

It realizes efficient automatic support generation for common convex models, interlayer structures and side concave feature models, ensures uniform support for narrow and thin structures and large areas, and improves the printing success rate.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114722438B_ABST
    Figure CN114722438B_ABST
Patent Text Reader

Abstract

The present invention belongs to the technical field of 3D printing model preprocessing, and in particular relates to a support structure generation method, device, electronic device and storage medium; the method comprises: obtaining a triangular mesh model of a 3D model; zero-plane aligning and elevating the triangular mesh model; dividing a preset grid on the zero plane and obtaining a projection range S1 and a super-projection range S2 of the model mesh edge endpoints; taking intersection points and coordinates of a straight line drawn upward along the Z axis from the center point of the preset grid in S2 and the mesh triangular plane and sorting them by height; determining the sorted intersection points on each straight line as support vertices, support root points or non-support points; selecting a target support vertex from each support vertex and drawing a support unit downward from the target support vertex to connect to the nearest support root point; storing the overall three-dimensional data of the 3D model and the support unit in a computer storage unit; the method can realize one-click automatic addition of model support structures, and in particular can realize automatic generation of supports for models with interlayer structures.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention belongs to the technical field of 3D printing model preprocessing, and specifically relates to a support structure generation method, device, electronic equipment and storage medium. Background Art

[0002] Three Dimensional (3D) printing technology is a new type of rapid prototyping technology based on digital models. It manufactures models by printing layer by layer, which is a molding technology completely different from traditional mold production and manufacturing. In the existing light-curing 3D printing technology, 3D pre-processing software is generally used to pre-process the 3D model composed of triangular meshes generated by industrial design software such as SOLIDWORKS, and then light-curing 3D printing is performed based on the generated slice data. The 3D printing process is to first divide the digital model into several layer slices according to the specified layer height, and print them layer by layer from low to high. Each layer is superimposed on the previous layer. If the previous layer of the current layer is empty, the current layer cannot be supported, and the printing of this position will fail. Therefore, it is necessary to add equal-height support units to the suspended position of the model so that the model body is supported.

[0003] The current prior art, such as the support structure generation method disclosed in the invention application with published application number CN202010730219.2, "A support structure generation method, device, electronic device, and storage medium," provides a simple support structure generation method that can obtain evenly distributed target sampling points for a 3D model and then add evenly distributed model supports. However, this method cannot automatically generate supports for interlayer structures or concave positions on models with interlayer structures or concave side features, and based on this, it can provide a substantial automatic generation solution for suspension points, hanging edges, and inclined surface supports. Summary of the Invention

[0004] In response to the situation in the background technology, the present invention provides a method for automatically generating a relatively uniform bottom support structure for an ordinary convex model; provides a method for automatically generating a relatively uniform bottom support structure and an interlayer support structure for a model with an interlayer structure or a concave feature on the side; provides a method for automatically generating a suspension point support structure for a model suspension point; provides a method for automatically generating a suspension edge support structure for a model suspension edge; and provides a method for automatically generating a slope support structure for a model slope.

[0005] The technical solutions adopted in the present invention are as follows:

[0006] According to a first aspect of the present invention, there is provided a method for generating a support structure, comprising the following steps:

[0007] S100, obtaining a triangular mesh model of a 3D model;

[0008] S200, zero plane alignment and elevation of triangular mesh model;

[0009] S300, dividing a preset grid on the zero plane and obtaining a projection range S1 of the model grid edge endpoints and a super-projection range S2 that exceeds and includes the projection range S1;

[0010] S400, drawing a straight line upward along the Z axis from the center point of the preset grid in S2 and obtaining the intersection points and coordinates with the grid triangle plane and sorting them by height;

[0011] S500, determining the sorted intersection points on each straight line as supporting vertices, supporting roots, or non-support points;

[0012] S600, selecting a target supporting vertex from each supporting vertex and extending a supporting unit downward from the target supporting vertex to connect to the nearest supporting root point;

[0013] S700: storing the overall three-dimensional data of the 3D model and the support unit in a computer storage unit.

[0014] Accordingly, the step S200 further includes:

[0015] S202, aligning the center of the zero plane with the bottom center of the minimum model frame;

[0016] S204 , raising the triangular mesh model upward from the zero plane by a preset distance H mm.

[0017] Accordingly, the step S300 further includes:

[0018] S302, traverse all triangular meshes that form the 3D model;

[0019] S304, obtaining all edge endpoints of the triangular mesh as a first set of sampling points;

[0020] S306, performing vertical projection of all edge endpoints in the first set onto the zero plane;

[0021] S308, obtaining the projection points on the zero plane and the zero plane coordinates of each projection point;

[0022] S310, dividing the zero plane into preset squares with a side length of X mm with the center as the origin;

[0023] S312, obtaining the projection range S1 of the projection point on the zero plane;

[0024] S314: Obtain a super-projection range S2 that exceeds and includes the projection range S1.

[0025] Accordingly, the step S400 further includes:

[0026] S402, projecting straight lines upward along the Z-axis from the center point of the preset square within the hyperprojection range S2 as a second set of straight lines;

[0027] S404, obtaining the intersection points and coordinates of each straight line in the second set and all triangular mesh planes;

[0028] S406. Sort the intersection points on each straight line from low to high according to their heights.

[0029] Accordingly, the step S500 further includes:

[0030] S502, determining the 2K+1th point as a supporting vertex for each line;

[0031] S504, determining the 2Kth point as the support root point for each straight line;

[0032] S506: Determine the highest point of each straight line as a non-support point.

[0033] Accordingly, the step S600 further includes:

[0034] S602: Selecting support vertices whose distance from each other exceeds X0 mm from each other in sequence as target support vertices;

[0035] S604: Draw support units downward from each target support vertex and connect to the nearest support root point.

[0036] Furthermore, the support structure generation method further includes the following steps:

[0037] S520, intercept all triangular meshes in layers to obtain independent closed paths of each layer, and overlap and match the independent closed paths of adjacent layers, and determine the lowest endpoint of the triangular mesh edge where the independent closed path that is not overlapped is located as the hanging vertex and generate the support unit.

[0038] Accordingly, the step S520 further includes:

[0039] S522, traverse all triangular meshes that form the 3D model;

[0040] S524, intercepting all triangular meshes of the 3D model in layers according to a preset layer thickness of Y mm using a cross-sectional plane;

[0041] S526, obtain M on each cross-sectional plane i Independent closed paths;

[0042] S528, the M in the Nth layer n independent closed paths and M in the N+1th layer n+1 Independent closed paths are overlapped and matched;

[0043] S530, determining the lowest endpoint of the triangular mesh edge where the independent closed path that does not overlap and pair in the N+1th layer is located as a hanging vertex;

[0044] S532, using each suspension vertex as the center of a circle, determine the supporting vertices within a preset radius of R1 mm as non-supporting points;

[0045] S534, draw a straight line vertically downward from each suspension vertex and intersect it with the nearest plane to obtain an intersection point as the suspension root point;

[0046] S536: Extend support units downward from each suspension vertex to connect to the suspension root point.

[0047] Specifically, M and N are positive integers.

[0048] Furthermore, the support structure generation method further includes the following steps:

[0049] S540. Obtain the number of intersections of the induced straight lines, and compare the number of intersections of the inner boundary straight line L1 and the outer boundary straight line L2 at the intersection of ranges S1 and S2. Refer to the fact that there is no intersection on L2 to determine that the 2K+1th point on the L1 straight line is the vertex of the hanging edge and the 2Kth point is the root point of the hanging edge, and generate a support unit.

[0050] Accordingly, the step S540 further includes:

[0051] S542, traverse and obtain the number of intersection points on each derivation line in the second set;

[0052] S544, comparing the number of intersections of the line L1 inside the adjacent boundary at the intersection of the ranges S1 and S2 with the adjacent line L2 outside the adjacent boundary one by one;

[0053] S546, refer to the adjacent line L2 outside the adjacent boundary and find that there is no intersection point to determine the line L1 inside the adjacent boundary as the line to be selected;

[0054] S548, determining the 2K+1th point as the vertex of the hanging edge for each of the lines to be selected;

[0055] S550, determining the 2Kth point as the root point of the hanging edge for each of the lines to be selected;

[0056] S552, determining the highest point of each of the lines to be selected as a non-support point;

[0057] S554, with each hanging edge vertex as the center of the circle, determine the support vertices within the preset radius R2 mm as non-support points; S556, lead support units downward from each hanging edge vertex to connect to the hanging edge root point.

[0058] Specifically, K is a natural number.

[0059] Furthermore, the support structure generation method further includes the following steps:

[0060] S560: Obtain the support vertex of the inclined plane where the tilt normal vector is located as a candidate support point, and draw a straight line from the candidate support point along the normal vector direction to extend L mm to determine the inflection point, and generate a support unit from the inflection point.

[0061] Accordingly, the step S560 further includes:

[0062] S562, traverse and stitch all triangular meshes that form the 3D model;

[0063] S564. Obtain the normal vector of the inclined plane where the supporting vertex is located;

[0064] S566, obtaining the supporting vertex of the inclined plane where the tilt normal vector is located as a candidate supporting point;

[0065] S568, using each candidate support point as the center of a circle, determine the support vertices within a preset radius of R3 mm as non-support points;

[0066] S570: Draw a straight line from the candidate support point along the normal vector direction of the inclined surface on which it is located and extend it L mm to determine the inflection point;

[0067] S572, draw a straight line vertically downward from the inflection point and intersect it with the nearest grid plane to obtain an intersection point as a candidate root point;

[0068] S574. Draw out support units from each candidate support point and connect them downward along the inflection point to the candidate root point.

[0069] According to a second aspect of the present invention, there is provided a support structure generating device, comprising:

[0070] Model mesh acquisition module, used to obtain the triangular mesh model of the 3D model;

[0071] Model mesh alignment and elevation module, used to align and elevate triangular mesh models to the zero plane;

[0072] A grid and projection range acquisition module is used to divide the preset grid on the zero plane and obtain the model grid edge endpoint projection range S1 and the super-projection range S2 that exceeds and includes the projection range S1;

[0073] The intersection point acquisition and sorting module is used to extract the intersection points and coordinates of the grid triangle plane from the center point of the preset grid in S2 along the Z axis and sort them by height;

[0074] A support point determination module is used to determine the sorted intersection points on each straight line as support vertices, support roots or non-support points;

[0075] A target support generation module is used to select a target support vertex from each support vertex and to extend a support unit downward from the target support vertex to connect to the nearest support root point;

[0076] The data storage module is used to store the overall three-dimensional data of the 3D model and the support unit in a computer storage unit.

[0077] Accordingly, the model grid alignment and elevation module further includes:

[0078] Model grid alignment module, used to align the zero plane center with the bottom center of the minimum model frame;

[0079] The model mesh raising module is used to raise the triangular mesh model from the zero plane by a preset distance H mm.

[0080] Correspondingly, the grid and projection range acquisition module further includes:

[0081] The first model mesh traversal module is used to traverse and stitch all the triangular meshes that make up the 3D model;

[0082] A mesh edge endpoint acquisition module, used to acquire all edge endpoints of the triangular mesh as a first set of sampling points;

[0083] An endpoint projection module, configured to project all edge endpoints in the first set perpendicularly to the zero plane;

[0084] A projection point acquisition module is used to obtain the projection points on the zero plane and the zero plane coordinates of each projection point;

[0085] A preset grid generation module is used to divide the zero plane into preset grids with a side length of X mm with the center as the origin;

[0086] A projection range acquisition module is used to obtain the projection range S1 of the projection point on the zero plane;

[0087] The super-projection range acquisition module is used to acquire a super-projection range S2 that exceeds and includes the projection range S1.

[0088] Correspondingly, the intersection acquisition and sorting module further includes:

[0089] An ejection straight line module, configured to eject straight lines upward along the Z-axis from the center point of a preset square within the super-projection range S2 as a second set of straight lines;

[0090] An intersection point acquisition module, used to obtain the intersection points and coordinates of each straight line in the second set and all triangular mesh planes;

[0091] The intersection point sorting module is used to sort the intersection points on each straight line from low to high according to their height.

[0092] Accordingly, the support point determination module further includes:

[0093] The supporting vertex determination module is used to determine the 2K+1th point as the supporting vertex for each line;

[0094] The support root point determination module is used to determine the 2Kth point as the support root point for each line;

[0095] The non-support point determination module is used to determine the highest point of each straight line as a non-support point.

[0096] Correspondingly, the target support generation module further includes:

[0097] A target support vertex selection module is used to sequentially select support vertices with a distance of more than X0 mm from each support vertex as target support vertices;

[0098] The support unit generation module is used to derive support units downward from each target support vertex to connect to the nearest support root point.

[0099] Furthermore, the support structure generating device further includes:

[0100] The suspension point support generation module is used to hierarchically intercept all triangular meshes to obtain independent closed paths for each layer, and to overlap and match the independent closed paths of adjacent layers. The lowest endpoint of the triangular mesh edge where the independent closed path that is not overlapped and paired is located is determined as the suspension vertex and the support unit is generated.

[0101] Correspondingly, the suspension point support generation module further includes:

[0102] The second model mesh traversal module is used to traverse and stitch all the triangular meshes that make up the 3D model;

[0103] The model layered interception module is used to intercept all triangular meshes of the 3D model in layers according to the preset layer thickness Y mm and the cross-sectional plane;

[0104] The slice path acquisition module is used to obtain the M on each cross-sectional plane. i Independent closed paths;

[0105] Path overlap matching module is used to combine the M n independent closed paths and M in the N+1th layer n+1 Independent closed paths are overlapped and matched;

[0106] A hanging vertex determination module is used to determine the lowest endpoint of the triangular mesh edge where the independent closed path that does not overlap and is paired in the N+1th layer is located as a hanging vertex;

[0107] The suspension range non-support point determination module is used to determine the support vertices within a preset radius R1 mm as non-support points with each suspension point as the center of the circle;

[0108] A suspension root point acquisition module is used to draw a straight line vertically downward from each suspension vertex and intersect the nearest plane to obtain an intersection point as the suspension root point;

[0109] The suspension support generation module is used to extend support units downward from each suspension vertex to connect to the suspension root point.

[0110] Furthermore, the support structure generating device further includes:

[0111] The overhang support generation module is used to obtain the number of intersection points of the induced straight lines, and compare the number of intersection points of the inner boundary straight line L1 and the outer boundary straight line L2 at the intersection of ranges S1 and S2. Referring to the fact that there is no intersection on L2, the 2K+1th point on the L1 straight line is determined as the vertex of the overhang and the 2Kth point is the root point of the overhang, and a support unit is generated.

[0112] Correspondingly, the cantilever support generation module further includes:

[0113] An intersection number acquisition module, used for traversing and acquiring the number of intersection points on each derivation line in the second set;

[0114] The adjacent line intersection comparison module is used to compare the number of intersections of the line L1 inside the adjacent boundary at the intersection of the ranges S1 and S2 with the adjacent line L2 outside the adjacent boundary one by one;

[0115] A candidate line reference determination module is used to determine the line L1 inside the adjacent boundary as the candidate line by referring to the adjacent line L2 outside the adjacent boundary without an intersection point;

[0116] A hanging edge vertex determination module is used to determine the 2K+1th point of each selected straight line as a hanging edge vertex;

[0117] A hanging edge root point determination module is used to determine the 2Kth point as the hanging edge root point for each selected straight line;

[0118] A module for determining non-support points to be selected is used to determine the highest point of each straight line to be selected as a non-support point;

[0119] The non-support point determination module within the overhang range is used to determine the support vertices within the preset radius R2 mm as non-support points with each candidate support point as the center of the circle;

[0120] The overhang support generation module is used to extend support units downward from each overhang vertex to connect the overhang root point.

[0121] Furthermore, the support structure generating device further includes:

[0122] The inclined plane support generation module is used to obtain the support vertex of the inclined plane where the inclined normal vector is located as an alternative support point, and to extend a straight line L mm along the normal vector direction from the alternative support point to determine the inflection point, and to generate a support unit from the inflection point.

[0123] Correspondingly, the inclined support generation module further includes:

[0124] The third module of model mesh traversal is used to traverse and stitch all the triangular meshes that make up the 3D model;

[0125] The slope normal vector acquisition module is used to obtain the normal vector of the slope where the supporting vertex is located;

[0126] The candidate support point acquisition module is used to obtain the support vertex of the inclined plane where the tilt normal vector is located as a candidate support point;

[0127] The module for determining non-support points within the slope range is used to determine the support vertices within the preset radius R3 mm as non-support points with each candidate support point as the center of the circle;

[0128] A turning point determination module is used to determine the turning point by extending a straight line L mm from the candidate support point along the normal vector direction of the inclined surface on which the candidate support point is located;

[0129] A candidate root point acquisition module is used to draw a straight line vertically downward from the inflection point and intersect the line with the nearest grid plane to obtain the intersection point as the candidate root point;

[0130] The inclined support generation module is used to draw support units from each candidate support point and connect the candidate root points downward along the inflection point.

[0131] According to a third aspect of the present invention, an electronic device is provided, comprising: at least one processor; and a storage unit communicatively connected to the at least one processor; wherein the storage unit stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor so that the at least one processor can execute the support structure generation method as described in the present application.

[0132] According to a fourth aspect of the present invention, a non-transitory computer-readable storage medium is provided, wherein the non-transitory computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps of the support structure generation method as described above are implemented.

[0133] According to a fifth aspect of the present invention, a computer program product is provided, which includes computer instructions. When the computer instructions are run on a computer, the computer executes the support structure generation method as described in the present invention.

[0134] Compared with the prior art, the present invention has the following beneficial effects:

[0135] 1. The support structure generation method provided by the present invention enables a relatively uniform bottom support structure to be automatically generated from a conventional convex model. The present invention can set a denser grid in the pre-set grid stage, ensuring that support vertices at narrow, long, and small structures are not missed. Furthermore, by sequentially selecting support vertices with a distance of more than X0 mm as target support vertices, the final addition of support units is not overly dense. This facilitates the generation of support for narrow, long, and small structures while also preventing overly dense support for large, flat areas. The method also achieves the same effect as in the prior art application, which controls the pre-set grid density and then traverses each grid to obtain a sparse range.

[0136] 2. The support structure generation method provided by this invention can automatically generate relatively uniform bottom and interlayer support structures for models with interlayer structures or concave side features. This invention specifically addresses models with interlayer structures, such as E-shaped models, or models with concave side features, such as crescent models, by proposing a specific and efficient method for adding interlayer supports. However, prior art has not provided a substantive and specific solution for these specific models.

[0137] 3. Based on the above method, which enables both support generation for common convex models and the addition of interlayer support to interlayer structures, the present invention also provides a method for automatically generating suspension point support structures for model suspension points. Furthermore, the present invention proposes a specific method for obtaining suspension points by using layered cross-sectional model triangular meshes to obtain independent closed paths, then positioning the suspension triangular meshes after overlapping and matching adjacent layers. This method not only enables automatic support generation for the bottom suspension points of common convex models, but also efficiently adds support to suspension points on each layer of an E-shaped model. However, prior art has not proposed a substantive and specific solution for suspension points in such specific structural models.

[0138] 4. Based on the above method for automatically generating supports for common convex models and adding interlayer supports to interlayer structures, the present invention also provides a method for automatically generating support structures for overhanging edges of models. Furthermore, the present invention proposes a specific method for adding overhanging edge supports by referencing the absence of intersections on adjacent straight lines outside the adjacent boundary to determine the straight lines within the adjacent boundary as candidate lines. This method not only enables automatic support generation for the bottom overhanging edges of common convex models, but also efficiently achieves automatic support generation for overhanging edges on each layer of an E-shaped model. However, the prior art does not provide a substantive and specific solution for interlayer overhanging edges in this specific structural model.

[0139] 5. Building on the above method for automatically generating supports for common convex models and adding interlayer supports to interlayer structures, the present invention also provides a method for automatically generating inclined support structures for model slopes. This method not only automatically generates supports for the bottom slopes of common convex models, but also efficiently adds supports to the slopes on each layer of an E-shaped model. However, prior art has not yet proposed a substantive and specific solution for interlayer slopes in this specific structural model.

[0140] 6. Based on the above method that can realize automatic support generation for ordinary convex models and add interlayer support to interlayer structures, the method of the present invention provides a comprehensive and complete automatic support addition solution for special models that have interlayer structures, interlayer suspension points, interlayer suspension edges, and interlayer inclined structures. The solution is based on different priorities, with suspension points taking priority, suspension edges taking second place, inclined surfaces taking third place, and finally selecting support vertices with a distance of more than X0 mm as target support vertices. This makes the automatic support generation step in the model preprocessing process more efficient and quick. BRIEF DESCRIPTION OF THE DRAWINGS

[0141] Figure 1 A basic flow chart of the support structure generation method of the present invention;

[0142] Figure 2 This is an expanded flow chart of the support structure generation method of the present invention;

[0143] Figure 3 A detailed flow chart of the support structure generation method of the present invention;

[0144] Figure 4A A flow chart of a method for generating a suspension point support structure according to the present invention;

[0145] Figure 4B A flow chart of a method for generating a suspended edge support structure according to the present invention;

[0146] Figure 4C A flow chart of a method for generating an inclined support structure according to the present invention;

[0147] Figure 5 A comprehensive flow chart of the support structure generation method of the present invention;

[0148] Figure 6 This is an expanded structural diagram of the support structure generating device of the present invention;

[0149] Figure 7 A detailed structural diagram of the support structure generating device of the present invention;

[0150] Figure 8A Generate a module structure diagram for the suspension point support of the present invention;

[0151] Figure 8BA structural diagram of a cantilever support generation module according to the present invention;

[0152] Figure 8C This is a structural diagram of the inclined support generation module of the present invention;

[0153] Figure 9A This is a schematic diagram of the grid alignment of the model of the present invention;

[0154] Figure 9B This is a schematic diagram of the model grid elevation of the present invention;

[0155] Figure 10A This is a schematic diagram of endpoint projection of the present invention;

[0156] Figure 10B This is a schematic diagram of the projection range of the present invention;

[0157] Figure 11A Schematic diagram of the intersection of the ejection straight line of the present invention Figure 1 ;

[0158] Figure 11B Schematic diagram of the intersection of the ejection straight line of the present invention Figure 2 ;

[0159] Figure 12A Schematic diagram of target support vertex selection for the present invention Figure 1 ;

[0160] Figure 12B Example 1 is generated to support the present invention;

[0161] Figure 13A This is the model 1 to be processed of the present invention;

[0162] Figure 13B This is a cross-sectional diagram of the model of the present invention Figure 1 ;

[0163] Figure 14A This is a cross-sectional diagram of the model of the present invention Figure 2 ;

[0164] Figure 14B This is a schematic diagram of path overlap matching in the present invention;

[0165] Figure 15A A schematic diagram for determining the suspension vertex of the present invention;

[0166] Figure 15B Generate an embodiment for the suspension point support of the present invention;

[0167] Figure 16A A schematic diagram of determining the vertex of a hanging edge according to the present invention;

[0168] Figure 16B Determine an embodiment of overhang support generation for the present invention;

[0169] Figure 17A Generate an embodiment for the slope support of the present invention;

[0170] Figure 17B Generate a schematic diagram for the inclined support of the present invention;

[0171] Figure 18A Schematic diagram of target support vertex selection for the present invention Figure 2 ;

[0172] Figure 18B Schematic diagram of target support vertex selection for the present invention Figure 3 ;

[0173] Figure 19A A block diagram of the structure of an electronic device used to implement the support structure generation method according to an embodiment of the present invention;

[0174] Figure 19B The figure is a structural block diagram of a 3D printing device used to implement the support structure generation method according to an embodiment of the present invention.

[0175] Description of labels:

[0176] Support unit 10; support column 11; support raft 12; boundary 15; independent closed path 16; electronic device 19; control unit 191; storage unit 192; computer program 193; additive printing device 800; controller 801; memory 802; printing control program 803;

[0177] Model grid acquisition module 100; Model grid alignment and elevation module 200; Grid and projection range acquisition module 300; Intersection acquisition and sorting module 400; Support point determination module 500; Target support generation module 600; Data storage module 700;

[0178] Model grid alignment module 202; Model grid elevation module 204; Model grid traversal first module 302; Grid edge endpoint acquisition module 304; Endpoint projection module 306; Projection point acquisition module 308; Preset grid generation module 310; Projection range acquisition module 312; Super projection range acquisition module 314;

[0179] Inducing line module 402; intersection acquisition module 404; intersection sorting module 406; supporting vertex determination module 502; supporting root point determination module 504; non-support point determination module 506; target supporting vertex selection module 602; support unit generation module 604;

[0180] Model mesh traversal second module 522; model layer interception module 524; interception path acquisition module 526; path overlap matching module 528; suspension vertex determination module 530; suspension range non-support point determination module 532; suspension root point acquisition module 534; suspension support generation module 536;

[0181] Intersection number acquisition module 542; adjacent line intersection comparison module 544; candidate line reference determination module 546; hanging edge vertex determination module 548; hanging edge root point determination module 550; candidate non-support point determination module 552; hanging edge range non-support point determination module 554; hanging edge support generation module 556;

[0182] Model mesh traversal third module 562; slope normal vector acquisition module 564; alternative support point acquisition module 566; slope range non-support point determination module 568; inflection point determination module 570; alternative root point acquisition module 572; slope support generation module 574. DETAILED DESCRIPTION

[0183] The following description of exemplary embodiments of the present invention is made in conjunction with the accompanying drawings, in which various details of the embodiments of the present invention are included to facilitate understanding. These details should be considered as merely exemplary. Therefore, it should be appreciated by those skilled in the art that various changes and modifications may be made to the embodiments described herein without departing from the scope and spirit of the present invention. Similarly, for the sake of clarity and conciseness, descriptions of well-known functions and structures are omitted in the following description.

[0184] Figure 1 The basic flow chart of the support structure generation method of the present invention is shown in the figure. As shown in the figure, the support structure generation method of the present invention includes the following steps:

[0185] S100, obtaining a triangular mesh model of a 3D model;

[0186] S200, zero plane alignment and elevation of triangular mesh model;

[0187] S300, dividing a preset grid on the zero plane and obtaining a projection range S1 of the model grid edge endpoints and a super-projection range S2 that exceeds and includes the projection range S1;

[0188] S400, drawing a straight line upward along the Z axis from the center point of the preset grid in S2 and obtaining the intersection points and coordinates with the grid triangle plane and sorting them by height;

[0189] S500, determining the sorted intersection points on each straight line as supporting vertices, supporting roots, or non-support points;

[0190] S600, selecting a target supporting vertex from each supporting vertex and extending a supporting unit downward from the target supporting vertex to connect to the nearest supporting root point;

[0191] S700: storing the overall three-dimensional data of the 3D model and the support unit in a computer storage unit.

[0192] In addition, the subsequent 3D printing steps are included:

[0193] S800: Import the overall three-dimensional slice data into the 3D printing device through a removable storage device for additive printing.

[0194] Figure 2 This is an expanded flow chart of the support structure generation method of the present invention. As shown in the figure, the expanded flow chart is Figure 1 The following steps are also included:

[0195] S520, intercepting all triangular meshes in layers to obtain independent closed paths of each layer, and overlapping and matching the independent closed paths of adjacent layers, and determining the lowest endpoint of the triangular mesh edge where the independent closed path that is not overlapped and matched is located as the hanging vertex and generating a support unit.

[0196] S540. Obtain the number of intersections of the induced straight lines, and compare the number of intersections of the inner boundary straight line L1 and the outer boundary straight line L2 at the intersection of ranges S1 and S2. Refer to the fact that there is no intersection on L2 to determine that the 2K+1th point on the L1 straight line is the vertex of the hanging edge and the 2Kth point is the root point of the hanging edge, and generate a support unit.

[0197] S560: Obtain the support vertex of the inclined plane where the tilt normal vector is located as a candidate support point, and draw a straight line from the candidate support point along the normal vector direction to extend L mm to determine the inflection point, and generate a support unit from the inflection point.

[0198] Figure 3 The detailed flow chart of the support structure generation method of the present invention is shown in the figure. Figure 1 The following steps correspond to the following:

[0199] S100, obtaining a triangular mesh model of a 3D model;

[0200] S202, aligning the center of the zero plane with the bottom center of the minimum model frame;

[0201] S204, lifting the triangular mesh model upward from the zero plane by a preset distance H mm;

[0202] S302, traverse all triangular meshes that form the 3D model;

[0203] S304, obtaining all edge endpoints of the triangular mesh as a first set of sampling points;

[0204] S306, performing vertical projection of all edge endpoints in the first set onto the zero plane;

[0205] S308, obtaining the projection points on the zero plane and the zero plane coordinates of each projection point;

[0206] S310, dividing the zero plane into preset squares with a side length of X mm with the center as the origin;

[0207] S312, obtaining the projection range S1 of the projection point on the zero plane;

[0208] S314, obtaining a super-projection range S2 that exceeds and includes the projection range S1;

[0209] S402, projecting straight lines upward along the Z-axis from the center point of the preset square within the hyperprojection range S2 as a second set of straight lines;

[0210] S404, obtaining the intersection points and coordinates of each straight line in the second set and all triangular mesh planes;

[0211] S406, sorting the intersection points on each straight line from low to high according to their height;

[0212] S502, determining the 2K+1th point as a supporting vertex for each line;

[0213] S504, determining the 2Kth point as the support root point for each straight line;

[0214] S506, determining the highest point of each straight line as a non-support point;

[0215] S602: Selecting support vertices whose distance from each other exceeds X0 mm from each other in sequence as target support vertices;

[0216] S604, extending support units downward from each target support vertex to connect to the nearest support root point;

[0217] S700: storing the overall three-dimensional data of the 3D model and the support unit in a computer storage unit.

[0218] In addition, the subsequent 3D printing steps are included:

[0219] S800: Import the entire 3D slice data into a 3D printing device via a removable storage device for additive printing. This method can provide uniform support over a wide range for both conventional convex models and models with interlayer structures or concave side features.

[0220] Figure 4A This is a flow chart of the method for generating a suspension point support structure according to the present invention. As shown in the figure, the method specifically corresponds to the following steps:

[0221] S522, traverse all triangular meshes that form the 3D model;

[0222] S524, intercepting all triangular meshes of the 3D model in layers according to a preset layer thickness of Y mm using a cross-sectional plane;

[0223] S526, obtain M on each cross-sectional plane i Independent closed paths;

[0224] S528, the M in the Nth layer n independent closed paths and M in the N+1th layer n+1 Independent closed paths are overlapped and matched;

[0225] S530, determining the lowest endpoint of the triangular mesh edge where the independent closed path that does not overlap and pair in the N+1th layer is located as a hanging vertex;

[0226] S532, with each suspension point as the center of the circle, determine the support vertices within the preset radius R1 mm as non-support points;

[0227] S534, draw a straight line vertically downward from each suspension vertex and intersect it with the nearest plane to obtain an intersection point as the suspension root point;

[0228] S536: Extend support units downward from each suspension vertex to connect to the suspension root point.

[0229] Figure 4B This is a flow chart of the method for generating a suspended edge support structure according to the present invention. As shown in the figure, the method specifically corresponds to the following steps:

[0230] S542, traverse and obtain the number of intersection points on each derivation line in the second set;

[0231] S544, comparing the number of intersections of the straight line L1 within the adjacent boundary 15 at the intersection of the ranges S1 and S2 with the adjacent straight line L2 outside the adjacent boundary 15 one by one;

[0232] S546, referring to the adjacent straight line L2 outside the adjacent boundary 15, which has no intersection, to determine the straight line L1 inside the adjacent boundary 15 as a candidate straight line; S548, determining the 2K+1th point as the vertex of the hanging edge for each candidate straight line;

[0233] S550, determining the 2Kth point as the root point of the hanging edge for each of the lines to be selected;

[0234] S552, determining the highest point of each of the lines to be selected as a non-support point;

[0235] S554, with each hanging edge vertex as the center of the circle, determine the support vertices within the preset radius R2 mm as non-support points; S556, lead support units downward from each hanging edge vertex to connect to the hanging edge root point.

[0236] Specifically, K is a natural number.

[0237] Figure 4C This is a flow chart of the method for generating an inclined support structure according to the present invention. As shown in the figure, the method specifically corresponds to the following steps:

[0238] S562, traverse and stitch all triangular meshes that form the 3D model;

[0239] S564. Obtain the normal vector of the inclined plane where the supporting vertex is located;

[0240] S566, obtaining the supporting vertex of the inclined plane where the tilt normal vector is located as a candidate supporting point;

[0241] S568, determining the support vertices within the preset radius R3 mm as non-support points with each candidate support point as the center of the circle;

[0242] S570: Draw a straight line from the candidate support point along the normal vector direction of the inclined surface on which it is located and extend it L mm to determine the inflection point;

[0243] S572, draw a straight line vertically downward from the inflection point and intersect it with the nearest grid plane to obtain an intersection point as a candidate root point;

[0244] S574. Draw out support units from each candidate support point and connect them downward along the inflection point to the candidate root point.

[0245] Figure 5 This is a comprehensive flow chart of the support structure generation method of the present invention. As shown in the figure, it Figure 4A 、 Figure 4B 、 Figure 4C Combination of steps Figure 1 The basic steps provide specific methods for automatically generating supports for suspension points, overhanging edges, and inclined surfaces, and determine the order of generating supports according to different priorities. The specific steps include the following:

[0246] S100, obtaining a triangular mesh model of a 3D model;

[0247] S200, zero plane alignment and elevation of triangular mesh model;

[0248] S300, dividing a preset grid on the zero plane and obtaining a model grid edge endpoint projection range S1 and a super-projection range S2;

[0249] S400, drawing a straight line upward along the Z axis from the center point of the preset grid in S2 and obtaining the intersection points and coordinates with the grid triangle plane and sorting them by height;

[0250] S500, determining the sorted intersection points on each straight line as supporting vertices, supporting roots, or non-support points;

[0251] S522, traverse all triangular meshes that form the 3D model;

[0252] S524, intercepting all triangular meshes of the 3D model in layers according to a preset layer thickness of Y mm using a cross-sectional plane;

[0253] S526, obtain M on each cross-sectional plane i Independent closed paths;

[0254] S528, the M in the Nth layer n independent closed paths and M in the N+1th layer n+1 Independent closed paths are overlapped and matched;

[0255] S530, determining the lowest endpoint of the triangular mesh edge where the independent closed path that does not overlap and pair in the N+1th layer is located as a hanging vertex;

[0256] S532, with each suspension point as the center of the circle, determine the support vertices within the preset radius R1 mm as non-support points;

[0257] S534, draw a straight line vertically downward from each suspension vertex and intersect it with the nearest plane to obtain an intersection point as the suspension root point;

[0258] S536, extending support units downward from each suspension vertex to connect to the suspension root point;

[0259] S542, traverse and obtain the number of intersection points on each derivation line in the second set;

[0260] S544, comparing the number of intersections of the straight line L1 within the adjacent boundary 15 at the intersection of the ranges S1 and S2 with the adjacent straight line L2 outside the adjacent boundary 15 one by one;

[0261] S546, referring to the adjacent straight line L2 outside the adjacent boundary 15, which has no intersection, to determine the straight line L1 inside the adjacent boundary 15 as a candidate straight line; S548, determining the 2K+1th point as the vertex of the hanging edge for each candidate straight line;

[0262] S550, determining the 2Kth point as the root point of the hanging edge for each of the lines to be selected;

[0263] S552, determining the highest point of each of the lines to be selected as a non-support point;

[0264] S554, using each candidate support point as the center of a circle, determine the support vertices within a preset radius of R2 mm as non-support points;

[0265] S556, extending support units downward from the vertices of each hanging edge to connect to the root point of the hanging edge;

[0266] S562, traverse and stitch all triangular meshes that form the 3D model;

[0267] S564. Obtain the normal vector of the inclined plane where the supporting vertex is located;

[0268] S566, obtaining the supporting vertex of the inclined plane where the tilt normal vector is located as a candidate supporting point;

[0269] S568, determining the support vertices within the preset radius R3 mm as non-support points with each candidate support point as the center of the circle;

[0270] S570: Draw a straight line from the candidate support point along the normal vector direction of the inclined surface on which it is located and extend it L mm to determine the inflection point;

[0271] S572, draw a straight line vertically downward from the inflection point and intersect it with the nearest grid plane to obtain an intersection point as a candidate root point;

[0272] S574, leading support units from each candidate support point downward along the inflection point to connect to the candidate root point;

[0273] S602, sequentially selecting support vertices whose distance from each other exceeds X0 mm from each other as target support vertices;

[0274] S604, extending support units downward from each target support vertex to connect to the nearest support root point;

[0275] S700: storing the overall three-dimensional data of the 3D model and the support unit in a computer storage unit.

[0276] Specifically, M and N are positive integers.

[0277] In addition, the subsequent 3D printing steps are included:

[0278] S800: Import the overall three-dimensional slice data into the 3D printing device through a removable storage device for additive printing.

[0279] In particular, this method can be used for ordinary convex models and models with interlayer structures or concave features on the side, or for models with features such as suspension points, hanging edges, and inclined surfaces. Support can be automatically generated scientifically and reasonably in the order of giving priority to adding supports to suspension points, adding supports to hanging edges secondarily, adding supports to inclined surfaces again, and adding supports to ordinary positions last.

[0280] Figure 6 This is an expanded structural diagram of the support structure generation device of the present invention. As shown in the figure, the expanded structural diagram of the device includes:

[0281] The model mesh acquisition module 100 is used to acquire a triangular mesh model of a 3D model;

[0282] A model mesh alignment and elevation module 200 is used for zero-plane alignment and elevation of triangular mesh models;

[0283] A grid and projection range acquisition module 300 is used to divide a preset grid on the zero plane and obtain a projection range S1 of the model grid edge endpoints and a super-projection range S2 that exceeds and includes the projection range S1;

[0284] The intersection point acquisition and sorting module 400 is used to extract the intersection points and coordinates of the mesh triangle plane from the center point of the preset grid in S2 along the Z axis and sort them by height;

[0285] A support point determination module 500 is used to determine the sorted intersection points on each straight line as support vertices, support roots or non-support points;

[0286] The suspension point support generation module 520 is used to intercept all triangular meshes in layers to obtain independent closed paths in each layer, and to overlap and match the independent closed paths of adjacent layers. The lowest endpoint of the triangular mesh edge where the independent closed paths are not overlapped is determined as the suspension vertex and a support unit is generated.

[0287] The overhang support generation module 540 is used to obtain the number of intersection points of the projected lines, compare the number of intersection points of the inner-boundary line L1 and the outer-boundary line L2 at the intersection of ranges S1 and S2, refer to the absence of intersection points on L2 to determine the 2K+1th point on line L1 as the overhang vertex and the 2Kth point as the overhang root point, and generate a support unit;

[0288] Inclined support generation module 560 is used to obtain the support vertex of the inclined surface where the inclined normal vector is located as a candidate support point, and to extend a straight line L mm from the candidate support point along the normal vector direction to determine the inflection point, and to generate a support unit from the inflection point;

[0289] A target support generation module 600 is configured to select a target support vertex from each support vertex and to extend support units downward from the target support vertex to connect to the nearest support root point;

[0290] The data storage module 700 is used to store the overall three-dimensional data of the 3D model and the support unit in a computer storage unit.

[0291] In addition, subsequent 3D printing equipment is also included:

[0292] The 3D printing device 800 is used to import the overall three-dimensional slice data into the 3D printing device through a removable storage device for additive printing.

[0293] Figure 7 This is a detailed structural diagram of the support structure generating device of the present invention. As shown in the figure, the detailed structural diagram of the device includes:

[0294] The model mesh acquisition module 100 is used to acquire a triangular mesh model of a 3D model;

[0295] A model grid alignment module 202 is used to align the center of the zero plane with the bottom center of the minimum model frame;

[0296] The model mesh raising module 204 is used to raise the triangular mesh model from the zero plane upward by a preset distance H mm.

[0297] The first model mesh traversal module 302 is used to traverse all triangular meshes that form a 3D model;

[0298] A mesh edge endpoint acquisition module 304 is used to acquire all edge endpoints of the triangular mesh as a first set of sampling points;

[0299] An endpoint projection module 306 is configured to perform vertical projection of all edge endpoints in the first set onto the zero plane;

[0300] The projection point acquisition module 308 is used to obtain the projection points on the zero plane and the zero plane coordinates of each projection point;

[0301] A preset grid generation module 310 is used to divide the zero plane into preset grids with a side length of X mm, with the center as the origin;

[0302] The projection range acquisition module 312 is used to obtain the projection range S1 of the projection point on the zero plane;

[0303] The super-projection range acquisition module 314 is configured to acquire a super-projection range S2 that exceeds and includes the projection range S1.

[0304] The directing line module 402 is configured to direct a straight line upward along the Z-axis from the center point of a preset square within the super-projection range S2 as a second set of straight lines;

[0305] The intersection point acquisition module 404 is used to obtain the intersection points and coordinates of each straight line in the second set and all triangular mesh planes;

[0306] The intersection point sorting module 406 is used to sort the intersection points on each straight line from low to high according to their height.

[0307] A supporting vertex determination module 502 is configured to determine the 2K+1th point as a supporting vertex for each line;

[0308] A support root point determination module 504 is used to determine the 2Kth point as the support root point for each line;

[0309] The non-support point determination module 506 is configured to determine the highest point of each straight line as a non-support point.

[0310] A target support vertex selection module 602 is configured to sequentially select support vertices whose distance from each other exceeds X0 mm from each other as target support vertices;

[0311] A support unit generating module 604 is configured to generate support units downward from each target support vertex and connect to the nearest support root point;

[0312] The data storage module 700 is used to store the overall three-dimensional data of the 3D model and the support unit in a computer storage unit.

[0313] In addition, subsequent 3D printing equipment is also included:

[0314] The 3D printing device 800 is used to import the overall three-dimensional slice data into the 3D printing device through a removable storage device for additive printing.

[0315] Figure 8A The structure diagram of the suspension point support module of the present invention is shown in the figure. As shown in the figure, the structure diagram includes:

[0316] The second model mesh traversal module 522 is used to traverse and stitch all the triangular meshes that constitute the 3D model;

[0317] The model layered interception module 524 is used to intercept all triangular meshes of the 3D model in layers according to a preset layer thickness Y mm using a cross-sectional plane;

[0318] The slice path acquisition module 526 is used to obtain the M on each cross-sectional plane. i Independent closed paths;

[0319] The path overlap matching module 528 is used to match the M n independent closed paths and M in the N+1th layer n+1 Independent closed paths are overlapped and matched;

[0320] A dangling vertex determination module 530 is configured to determine the lowest endpoint of the triangular mesh edge of the non-overlapping paired independent closed path in the N+1th layer as a dangling vertex;

[0321] The suspension range non-support point determination module 532 is used to determine the support vertices within a preset radius R1 mm as non-support points with each suspension point as the center of the circle;

[0322] A suspension root point acquisition module 534 is configured to draw a straight line vertically downward from each suspension vertex and intersect the line with the nearest plane to obtain an intersection point as a suspension root point;

[0323] The suspension support generation module 536 is used to extend support units downward from each suspension vertex to connect to the suspension root point.

[0324] Figure 8BThis is a structural diagram of the cantilever support generation module of the present invention. As shown in the figure, its structural diagram includes:

[0325] The intersection number acquisition module 542 is used to traverse and acquire the number of intersection points on each derivation line in the second set;

[0326] The adjacent line intersection comparison module 544 is used to compare the number of intersections of the line L1 within the adjacent boundary 15 at the intersection of the ranges S1 and S2 with the adjacent line L2 outside the adjacent boundary 15 one by one;

[0327] A candidate line reference determination module 546 is configured to determine the line L1 inside the adjacent boundary 15 as a candidate line by referring to the adjacent line L2 outside the adjacent boundary 15 and finding no intersection point;

[0328] A dangling vertex determination module 548 is configured to determine the 2K+1th point of each selected line as a dangling vertex;

[0329] A hanging edge root point determination module 550 is used to determine the 2Kth point as the hanging edge root point for each of the selected lines;

[0330] A candidate non-support point determination module 552 is used to determine the highest point of each candidate straight line as a non-support point;

[0331] The non-support point determination module 554 is configured to determine the supporting vertices within a preset radius of R2 mm as non-support points with each vertex of the hanging edge as the center of a circle;

[0332] The overhang support generation module 556 is used to extend support units downward from each overhang vertex to connect to the overhang root point.

[0333] Figure 8C This is a structural diagram of the inclined support generation module of the present invention. As shown in the figure, its structural diagram includes:

[0334] The model mesh traversal third module 562 is used to traverse and stitch all the triangular meshes that constitute the 3D model;

[0335] The slope normal vector acquisition module 564 is used to obtain the normal vector of the slope where the supporting vertex is located;

[0336] The candidate support point acquisition module 566 is used to obtain the support vertex of the inclined plane where the tilt normal vector is located as a candidate support point;

[0337] The slope range non-support point determination module 568 is used to determine the support vertices within a preset radius R3 mm as non-support points with each candidate support point as the center of the circle;

[0338] The inflection point determination module 570 is configured to determine the inflection point by extending a straight line L mm from the candidate support point along the normal vector direction of the inclined surface on which the candidate support point is located;

[0339] A candidate root point acquisition module 572 is configured to draw a straight line vertically downward from the inflection point and intersect the line with the nearest grid plane to obtain an intersection point as a candidate root point;

[0340] The inclined support generating module 574 is used to draw support units from each candidate support point and connect the support units downward along the inflection point to the candidate root point.

[0341] Figure 9A This is a schematic diagram of the model grid alignment of the present invention. As shown in the figure, according to the present invention Figure 3 In step S202, the triangular mesh model in the figure needs to be aligned with the center of the zero plane S with the bottom center of the minimum model frame.

[0342] Figure 9B This is a schematic diagram of the model grid elevation of the present invention. As shown in the figure, according to the present invention Figure 3 In step S204, the triangular mesh model in the figure needs to be raised by a preset distance H mm from the zero plane S. In this step, raising the model by H mm helps to add support to the bottom of the model, making it easier to separate the printed model from the printer build platform.

[0343] Figure 10A This is a schematic diagram of endpoint projection of the present invention. As shown in the figure, according to the present invention Figure 1 In step S300, the zero plane S is divided into a plurality of preset squares S0 with a length of X mm, and then Figure 9B After projecting the endpoints of the model mesh edge, the projection range S1 surrounded by the four projection points D1 is obtained.

[0344] Figure 10B This is a schematic diagram of the projection range of the present invention. Figure 10A The projection range S1 in the image can be used to obtain the super-projection range S2. After obtaining the super-projection range S2, a straight line can be drawn upward along the Z axis from the center point of the preset square in the super-projection range S2 in the next step. The boundary 15 where the projection range S1 and the super-projection range S2 intersect is Figure 4B The boundaries in steps S544 and S546.

[0345] Figure 11A Schematic diagram of the intersection of the ejection straight line of the present invention Figure 1 As shown in the figure, according to the present invention Figure 1 In step S400, a line projected upward along the Z axis from the center of the pre-set grid in S2 intersects the mesh triangle planes and their coordinates, sorting them by height. This yields four intersection points P1, P2, P3, and P4 on the projected line, as shown in the figure. Accordingly, it is determined that support units 10 need to be generated below point P1 and between points P2 and P3. Specifically, solid circles in the figure represent support vertices or root points, while hollow circles represent non-support points.

[0346] Figure 11B Schematic diagram of the intersection of the ejection straight line of the present invention Figure 2 As shown in the figure, the figure uses an E-shaped model with an interlayer structure as an example. Figure 1 In step S400, the intersection points and coordinates of the line projected upward along the Z axis from the center point of the preset square in S2 and the mesh triangle plane are obtained and sorted by height; 6 intersection points P1, P2, P3, P4, P5, and P6 on the projected line are obtained as shown in the figure; they correspond to the 2Kth point or the 2K+1th point respectively, that is, when K=0, the 2K+1th point corresponds to the P1th point; when K=1, the 2Kth point corresponds to the P2th point, and the 2K+1th point corresponds to the P3th point; when K=2, the 2Kth point corresponds to the P4th point, and the 2K+1th point corresponds to the P6th point; when K=3, the 2Kth point corresponds to the P6th point. In particular, although the point P0 in the figure is not an intersection point, when K=0, the 2Kth point corresponds to the P0th point; it can be conveniently used as a supporting root point on the zero plane. Combined with Figure 1 In step S500, the sorted intersection points on each straight line are determined as supporting vertices, supporting root points, or non-supporting points; the 2K+1th point is the supporting vertex, i.e., P1, P3, and P5 are supporting vertices; the 2Kth point is the supporting root point, i.e., P0, P2, and P4 are supporting root points; the highest point P6 can be determined as a non-supporting point;

[0347] Recombination Figure 1 In step S600, a target supporting vertex is selected from each supporting vertex and a supporting unit 10 is extended downward from the target supporting vertex to connect to the nearest supporting root point, so that a supporting unit 10 can be generated between points P1 and P0, between points P3 and P2, and between points P5 and P4.

[0348] Therefore, this method can conveniently add interlayer support to E-shaped models with interlayer structural features, or other models with concave features on the side.

[0349] In particular, the solid circles in the figure represent supporting vertices or supporting roots, and the hollow circles represent non-supporting points.

[0350] Figure 12A Schematic diagram of target support vertex selection for the present invention Figure 1 As shown in the figure, this figure is based on Figure 3 In step S602, the support vertices with a distance of X0 mm are selected from each support vertex in pairs as the target support vertex. In the figure, X0 is set to be greater than or equal to 2X mm, and points are selected according to the full coverage path of the bow shape, starting from the first support vertex in the lower left corner, and the points with a distance of less than 2X mm are excluded. The remaining support vertices are the target support vertices; then according to Figure 3 In step S604, support units 10 are drawn downward from each target support vertex to connect to the nearest support root point.

[0351] The necessity of doing so is Figure 11B The induced straight line in the figure is taken from the center point of the preset grid. Therefore, if the side length X of the preset grid is too large, the support units 10 added in the end will be too dense. Therefore, in order to reduce unnecessary support units 10 in subsequent printing to save printing materials and save the workload of trimming support columns after printing, the support units 10 generated on each support vertex need to be sparsely and evenly distributed.

[0352] In particular, the solid circles in this figure represent supporting vertices, and the hollow circles represent non-supporting points.

[0353] Figure 12B This is support generation embodiment 1 of the present invention. As shown in the figure, after the examples and support generation of the corresponding figures above, the E-shaped model in the figure can generate support units 10 between the bottom of the E-shaped model and the zero plane S, as shown in this figure, and support units 10 are generated between the interlayer structure of the E-shaped model.

[0354] Figure 13A This is the model 1 to be processed according to the present invention. As shown in the figure, a side-opening model with a suspended vertebral body is selected to demonstrate the process of generating the suspension point support according to the present invention.

[0355] Figure 13B This is a cross-sectional diagram of the model of the present invention Figure 1 As shown in the figure, specifically, in conjunction with step S524, the 3D model is cut into all triangular meshes using cross-sectional planes at a preset layer thickness of Y mm to obtain cross-sectional planes at each layer. In the figure, the model is cut into using cross-sectional planes J1, J2, J3, J4, and J5 with a layer thickness of Y mm.

[0356] Figure 14A This is a cross-sectional diagram of the model of the present invention Figure 2 As shown in the figure, this figure corresponds to Figure 13B The model is cut with cross-sectional planes J1, J2, J3, J4, and J5 with a layer thickness of Y mm.

[0357] Figure 14B This is a schematic diagram of the path overlap matching of the present invention. As shown in the figure, this figure corresponds to Figure 13A and Figure 13B Specifically, combined with step S526, obtain the M on each cross-sectional plane i Independent closed paths 16 are obtained on each cross-sectional plane on the left side of the figure. Combined with step S528, the M n Independent closed paths 16 and M in the N+1th layer n+1The independent closed paths 16 are overlapped and matched; the pattern-filled independent closed paths 16 on the cross-sectional planes of the adjacent layers on the left side of the figure are overlapped in pairs, and the overlapped result on the right side of the figure is obtained. It can be seen from the figure that there is a circular isolated area on the cross-sectional planes of J4 & J3. This area is the closed area intercepted on the suspended vertebra. Combined with step S530, the lowest endpoint of the triangular mesh edge of the independent closed path 16 in the N+1th layer that is not overlapped is determined to be the suspended vertex; the lowest endpoint of the triangular mesh edge of the above-mentioned circular isolated area (alone area) on the model that is not overlapped can be located at the lowest suspended vertex of the suspended vertebra.

[0358] Figure 15A This is a schematic diagram for determining the suspension vertex of the present invention. As shown in the figure, correspond this figure to Figure 14A The interception result is then combined with step S532, and the support vertices within the preset radius R1 mm are determined as non-support points with each suspension point as the center of the circle. In the figure, the support vertices within the radius R1 are determined as non-support points with the lowest suspension vertex Px as the center. This is because the necessity of generating support units 10 at the suspension points is higher. After adding supports first, supports within a certain range do not need to be added densely. Therefore, determining the support vertices within the radius R1 as non-support points can avoid the support units 10 being too dense, or placing the support units 10 too close to each other, which is not conducive to thickening the supported diameter.

[0359] In addition, when the lowest hanging vertex Px is taken as the center, the radius R can also be a radius within the cylindrical range. However, the setting of the cylindrical height should not affect the generation of the support vertex and its support at the bottom of the model.

[0360] Combined with step S534, a straight line is drawn vertically downward from the suspension vertex Px and intersects with the nearest plane to obtain an intersection point Pa as the suspension root point.

[0361] In particular, the solid circles in the figure represent supporting vertices or supporting roots, and the hollow circles represent non-supporting points.

[0362] Figure 15B This is an embodiment of the present invention's suspension point support generation. As shown in the figure, Figure 15A On this basis, combined with step S536, the support unit 10 is led downward from the suspension vertex Px to connect the suspension root point Pa; the support generation of the suspension point can be achieved. Figure 1 In step S536, a target support vertex is selected from each support vertex and a support unit 10 is extended downward from the target support vertex to connect to the nearest support root point; thus, support generation at other positions can be achieved.

[0363] In particular, the solid circles in the figure represent supporting vertices or supporting roots, and the hollow circles represent non-supporting points.

[0364] Figure 16A The schematic diagram of determining the vertex of the hanging edge of the present invention is shown in the figure. As shown in the figure, in combination with step S540, the number of intersection points of the induced straight lines is obtained and the number of intersection points of the inner-boundary straight line L1 and the outer-boundary straight line L2 at the intersection of ranges S1 and S2 is compared with the reference point L2, which has no intersection points, to determine that the 2K+1th point on the L1 line is the vertex of the hanging edge and the 2Kth point is the root point of the hanging edge and generate a support unit 10; the figure compares the number of intersection points on the straight line L2.1 and L1.1, and it can be confirmed that the Q1 point on the straight line L1.1 is the vertex of the hanging edge; the number of intersection points on the straight line L1.2 and L2.2 is compared, and it can be confirmed that the points P1, P3, and P5 on the straight line L1.2 are the vertices of the hanging edge; the reference logic is that there is no intersection point on the outer-boundary straight line L1.2 adjacent to the straight line L1.1, so the straight line L1.1 can be determined to be the straight line closest to the edge of the model, the support vertex where the straight line is located is the vertex of the hanging edge, and the support root point where the straight line is located is the root point of the hanging edge. Accordingly, a supporting unit 10 of the hanging edge can be generated between the hanging edge vertex and the hanging edge root point.

[0365] Figure 16B Determine the embodiment of the generation of the cantilever support for the present invention. As shown in the figure, based on Figure 16A In this figure, support units 10 are generated for the vertices of the hanging edges close to the out-of-bounds reference lines L2.1 and L2.2.

[0366] Figure 17A This is an example of the present invention's sloped support generation. The figure illustrates an E-shaped model with both interlayer structures and sloped surfaces. As shown, the top right side of the E-shaped model has a slope. A straight line drawn from the slope is extended L mm to determine the inflection point and generate a support column 11. Then, support units 10 are generated perpendicularly downwards, extending downwards to zero plane S. The figure retains the support units 10 at the bottom, omitting those between the interlayer structures.

[0367] In particular, the support unit 10 in the figure also includes a support raft 12; during actual printing, the support raft 12 can enhance the adhesion of the support column to the forming platform of the 3D printing equipment to prevent the model from falling off during printing.

[0368] Figure 17B This is a schematic diagram of the slope support generated by the present invention. As shown in the figure, this figure is a Figure 16A Detailed instructions. Figure 2 In step S400-step S500, after determining P1, P3, and P5 as supporting vertices; then according to Figure 2In step S560, the support vertex P5 of the inclined normal vector's plane is obtained as an alternative support point, and a straight line is extended L millimeters along the normal vector direction from the alternative support point P5 to determine the folding point, and the support unit 10 is generated from the folding point. The part where the straight line is extended L millimeters is the support folding column 11.

[0369] Specifically, when obtaining the inclined normal vector, first obtain the coordinates of the three endpoints of the same triangular mesh, and obtain the vectors of any two sides. The plane normal vector of the triangular mesh can be obtained by the cross product of the vectors, and then the angle between the normal vector and the zero plane is calculated. Generally, the inclined normal vector plane with an angle between 30 degrees and 60 degrees is defined as the support plane to be added.

[0370] In addition, combined with step S568, the support vertices within the range of the preset radius R3 millimeters with the alternative support point R5 as the center are determined as non-support points. This is because the necessity of generating the support unit 10 for the inclined plane is higher than that of the ordinary support vertex. Determining the support vertices within the radius R3 as non-support points can avoid the over-density of the support units 10 or the placement of the support units 10 being too close to each other, which is not conducive to thickening the diameter of the support. In this figure, exactly P6 is already a non-support point.

[0371] Figure 18A Schematic diagram of the selection of the target support vertex of the present invention Figure 2 As shown in the figure, corresponding to Figure 3 In step S602, and different from the point selection method of the bow-shaped full-coverage path in Fig. 12, in this figure, X0 is set to be greater than or equal to 2X millimeters, and the points are selected according to the inner spiral path of the square shape. Starting from the first support vertex in the lower left corner, the points with a distance less than 2X millimeters from each other are excluded, and the remaining unexcluded support vertices are the target support vertices; then according to Figure 3 In step S604, the support unit 10 is led downward from each target support vertex to connect to the nearest support root point. The purpose is also to make the finally generated support columns sparsely and evenly distributed.

[0372] Specifically, the solid dots in this figure represent support vertices, and the hollow dots represent non-support points.

[0373] Figure 18B Schematic diagram of the selection of the target support vertex of the present invention Figure 3 As shown in the figure, corresponding to Figure 5 In step S602, because Figure 5The method can automatically generate supports for a special model that simultaneously has an interlayer structure, interlayer suspension points, interlayer suspension edges, and an interlayer inclined plane structure. Therefore, in this figure, point Px is used as an example of the suspension vertex, points Q1, Q2, Q3, Q4, Q5, and Q6 are used as examples of the suspension edge vertices, and point P5 is used as an example of the alternative support point for the inclined plane to illustrate the method of selecting other support vertices. In this figure, it is set that X0 is greater than or equal to 2X millimeters, and the points are selected according to the inner spiral path of the square frame. Starting from the first support vertex in the lower left corner, the points with a distance less than 2X millimeters from each other are excluded, and the remaining unexcluded support vertices are the target support vertices; since the support vertices within the radius R1 of the suspension vertex Px are determined as non-support points, the support vertices within the radius R2 of the suspension edge vertices Q1, Q2, Q3, Q4, Q5, and Q6 are also determined as non-support points, and the support vertices within the radius R3 of the alternative support point P5 of the inclined plane are also determined as non-support points. Therefore, the non-support points represented by these hollow dots are excluded when selecting points; and then according to Figure 3 In step S604 in, a support unit 10 is led downward from each target support vertex to connect to the nearest support root point. The purpose is also to make the finally generated support columns sparsely and evenly distributed.

[0374] Specifically, the solid dots in this figure represent support vertices, and the hollow dots represent non-support points.

[0375] Figure 19A It is a block diagram of an electronic device structure for implementing the support structure generation method of the embodiment of the present invention. As shown in the figure, in this figure, the electronic device 19 takes a control unit 191 as an example. As shown in the figure, an electronic device 19 includes a control unit 191 and a storage unit 192; wherein the storage unit 192 stores a computer program 193 or instructions that can be executed by the control unit 191, and the computer program 193 or instructions are executed by the control unit 191 so that the control unit 191 can execute steps S100 - step 700 of any method flow as in Figure 1-Figure 5 In.

[0376] The storage unit 192 is the third aspect of the present invention, which provides a non-transitory computer-readable storage medium. Wherein, the storage unit 192 stores instructions that can be executed by at least one control unit 191 so that when the at least one control unit 191 executes, it realizes steps S100 - step 700 of any method flow as in Figure 1-Figure 5 In.

[0377] The storage unit 192, as a non-transitory computer-readable storage medium, can be used to store non-transitory software programs, non-transitory computer-executable programs, and modules, such as program instructions / modules corresponding to steps S100 - step 700 of any method flow as in [[ID=%]] Figure 1-Figure 5 In.

[0378] The control unit 191 executes the non-transient computer program 193, instructions and modules stored in the storage unit 192 to execute various functional applications and data processing of the server, that is, to achieve the above Figure 1-Figure 5 Steps S100 to 700 of any method flow.

[0379] The storage unit 192 may include a program storage area and a data storage area, wherein the program storage area may store an operating system and applications required for at least one function; the data storage area may store data created when the electronic device 19 uses method 2, etc. In addition, the storage unit 192 may include a high-speed random access storage unit, and may also include a non-transient storage unit, such as at least one disk storage unit device, a flash memory device, or other non-transient solid-state storage unit device. In some embodiments, the storage unit 192 may optionally include a storage unit remotely located relative to the control unit 191, and these remote storage units may be connected to the electronic device generated by the support structure via a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.

[0380] Various embodiments of the systems and techniques described herein can be realized in digital electronic circuit systems, integrated circuit systems, dedicated ASICs (application specific integrated circuits), computer hardware, firmware, software, and / or combinations thereof. These various embodiments can include being implemented in one or more computer programs that can be executed and / or interpreted on a programmable system that includes at least one programmable control unit, which can be a special purpose or general purpose programmable control unit that can receive data and instructions from a storage system, at least one input unit, and at least one output device, and transmit data and instructions to the storage system, the at least one input unit, and the at least one output device.

[0381] These computer programs 193 (also referred to as programs, software, software applications, or code) include machine instructions for the programmable control unit and can be implemented using high-level procedural and / or object-oriented programming languages, and / or assembly / machine languages. As used herein, the terms "machine-readable medium" and "computer-readable medium" refer to any computer program product, device, and / or apparatus (e.g., a disk, an optical disk, a storage unit, a programmable logic device (PLD)) for providing machine instructions and / or data to a programmable control unit, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term "machine-readable signal" refers to any signal used to provide machine instructions and / or data to a programmable control unit.

[0382] It should be understood that the various forms of the processes shown above can be used to reorder, add, or delete steps. For example, the steps described in this application can be performed in parallel, sequentially, or in a different order, as long as the desired results of the technical solutions disclosed in this application can be achieved. This is not a limitation herein.

[0383] Figure 19B The block diagram of a 3D printing device used to implement the method of an embodiment of the present invention is shown. As shown, a 3D printing device 800 includes a controller 801 and a memory 802. The memory 802 stores a printing control program 803 or instructions executable by the controller 801. The printing control program 803 or instructions are executed by the controller 801 to enable the controller 801 to expose and print a slice mask image obtained by slicing after generating a support structure using the method of the present invention.

[0384] The above specific embodiments do not limit the scope of protection of the present invention. Those skilled in the art will appreciate that various modifications, combinations, sub-combinations, and substitutions may be made based on design requirements and other factors. Any modifications, equivalent substitutions, and improvements made within the spirit and principles of the present invention are intended to be included within the scope of protection of the present invention.

Claims

1. A method for generating a support structure, characterized in that: The following steps are involved: S100, obtaining a triangular mesh model of a 3D model; S200, zero plane alignment and elevation of triangular mesh model; S300, dividing a preset grid on the zero plane and obtaining a projection range S1 of the model grid edge endpoints and a super-projection range S2 that exceeds and includes the projection range S1; S400, drawing a straight line upward along the Z axis from the center point of the preset grid in S2 and obtaining the intersection points and coordinates with the grid triangle plane and sorting them by height; S500, determining the sorted intersection points on each straight line as supporting vertices, supporting roots, or non-support points; S600, selecting a target supporting vertex from each supporting vertex and extending a supporting unit downward from the target supporting vertex to connect to the nearest supporting root point; S700: storing the overall three-dimensional data of the 3D model and the support unit in a computer storage unit.

2. The method for generating a support structure according to claim 1, wherein: The step S200 further includes: S202, aligning the center of the zero plane with the bottom center of the minimum model frame; S204 , raising the triangular mesh model upward from the zero plane by a preset distance H mm.

3. The support structure generation method according to claim 1, characterized in that: The step S300 further includes: S302, traverse all triangular meshes that form the 3D model; S304, obtaining all edge endpoints of the triangular mesh as a first set of sampling points; S306, performing vertical projection of all edge endpoints in the first set onto the zero plane; S308, obtaining the projection points on the zero plane and the zero plane coordinates of each projection point; S310, dividing the zero plane into preset squares with a side length of X mm with the center as the origin; S312, obtaining the projection range S1 of the projection point on the zero plane; S314: Obtain a super-projection range S2 that exceeds and includes the projection range S1.

4. The method for generating a support structure according to claim 1, wherein: The step S400 further includes: S402, directing straight lines upward along the Z-axis from the center point of the preset square within the hyperprojection range S2 as a second set of straight lines; S404, obtaining the intersection points and coordinates of each straight line in the second set and all triangular mesh planes; S406. Sort the intersection points on each straight line from low to high according to their heights.

5. The method for generating a support structure according to claim 4, wherein: The following steps are also included: S540. Obtain the number of intersection points on the induced straight line, and compare the number of intersection points of the inner boundary straight line L1 and the outer boundary straight line L2 at the intersection of ranges S1 and S2. Refer to the fact that there is no intersection on L2 to determine that the 2K+1th point on the L1 straight line is the vertex of the hanging edge, and the 2Kth point is the root point of the hanging edge, and generate a support unit.

6. The method for generating a support structure according to claim 5, wherein: The step S540 further includes: S542, traverse and obtain the number of intersection points on each derivation line in the second set; S544, comparing the number of intersections of the line L1 inside the adjacent boundary at the intersection of the ranges S1 and S2 with the adjacent line L2 outside the adjacent boundary one by one; S546, refer to the adjacent line L2 outside the adjacent boundary and find that there is no intersection point to determine the line L1 inside the adjacent boundary as the line to be selected; S548, determining the 2K+1th point as the vertex of the hanging edge for each of the lines to be selected; S550, determining the 2Kth point as the root point of the hanging edge for each of the lines to be selected; S552, determining the highest point of each of the lines to be selected as a non-support point; S554, using each hanging edge vertex as the center of a circle, determine the supporting vertices within a preset radius of R2 mm as non-supporting points; S556. Extend support units downward from the vertices of each hanging edge and connect to the root points of the hanging edge.

7. The method for generating a support structure according to claim 1, wherein: The step S500 further includes: S502, determining the 2K+1th point as a supporting vertex for each line; S504, determining the 2Kth point as the support root point for each straight line; S506: Determine the highest point of each straight line as a non-support point.

8. The method for generating a support structure according to claim 1, wherein: The step S600 further includes: S602, sequentially selecting support vertices whose distance from each other exceeds X0 mm from each other as target support vertices; S604: Draw support units downward from each target support vertex and connect to the nearest support root point.

9. The method for generating a support structure according to claim 1, wherein: The following steps are also included: S520, intercept all triangular meshes in layers, obtain independent closed paths of each layer, and overlap and match the independent closed paths of adjacent layers, determine the lowest endpoint of the triangular mesh edge where the independent closed paths that are not overlapped are located as the hanging vertex and generate the support unit.

10. The method for generating a support structure according to claim 9, wherein: The step S520 further includes: S522, traverse all triangular meshes that form the 3D model; S524, intercepting all triangular meshes of the 3D model in layers according to a preset layer thickness of Y mm using a cross-sectional plane; S526, obtain M on each cross-sectional plane i Independent closed paths; S528, the M in the Nth layer n independent closed paths and M in the N+1th layer n+1 Independent closed paths are overlapped and matched; S530, determining the lowest endpoint of the triangular mesh edge where the independent closed path that does not overlap and pair in the N+1th layer is located as a hanging vertex; S532, using each suspension vertex as the center of a circle, determine the supporting vertices within a preset radius of R1 mm as non-supporting points; S534, draw a straight line vertically downward from each suspension vertex and intersect it with the nearest plane to obtain an intersection point as the suspension root point; S536: Extend support units downward from each suspension vertex to connect to the suspension root point.

11. The method for generating a support structure according to claim 1, wherein: The following steps are also included: S560: Obtain the support vertex of the inclined plane where the tilt normal vector is located as a candidate support point, and draw a straight line from the candidate support point along the normal vector direction to extend L mm to determine the inflection point, and generate a support unit from the inflection point.

12. The method for generating a support structure according to claim 11, wherein: The step S560 further includes: S562, traverse and stitch all triangular meshes that form the 3D model; S564. Obtain the normal vector of the inclined plane where the supporting vertex is located; S566, obtaining the supporting vertex of the inclined plane where the tilt normal vector is located as a candidate supporting point; S568, determining the support vertices within the preset radius R3 mm as non-support points with each candidate support point as the center of the circle; S570: Draw a straight line from the candidate support point along the normal vector direction of the inclined surface on which it is located and extend it L mm to determine the inflection point; S572, draw a straight line vertically downward from the inflection point and intersect it with the nearest grid plane to obtain an intersection point as a candidate root point; S574. Draw out support units from each candidate support point and connect them downward along the inflection point to the candidate root point.

13. A support structure generating device, characterized in that: include: Model mesh acquisition module, used to obtain the triangular mesh model of the 3D model; Model mesh alignment and elevation module, used to align and elevate triangular mesh models to the zero plane; A grid and projection range acquisition module is used to divide the preset grid on the zero plane and obtain the model grid edge endpoint projection range S1 and the super-projection range S2 that exceeds and includes the projection range S1; The intersection point acquisition and sorting module is used to extract the intersection points and coordinates of the grid triangle plane from the center point of the preset grid in S2 along the Z axis and sort them by height; A support point determination module is used to determine the sorted intersection points on each straight line as support vertices, support roots or non-support points; A target support generation module is used to select a target support vertex from each support vertex and to extend a support unit downward from the target support vertex to connect to the nearest support root point; The data storage module is used to store the overall three-dimensional data of the 3D model and the support unit in a computer storage unit.

14. The support structure generating device according to claim 13, characterized in that: Also includes: The suspension point support generation module is used to intercept all triangular meshes in layers, obtain independent closed paths in each layer, and overlap and match the independent closed paths of adjacent layers. The lowest endpoint of the triangular mesh edge where the independent closed paths are not overlapped is determined as the suspension vertex and the support unit is generated. The overhang support generation module is used to obtain the number of intersection points of the projected straight lines, and compare the number of intersection points of the inner boundary straight line L1 and the outer boundary straight line L2 at the intersection of ranges S1 and S2. Referring to the absence of intersection points on L2, the module determines the 2K+1th point on the line L1 as the vertex of the overhang and the 2Kth point as the root point of the overhang, and generates a support unit. The inclined plane support generation module is used to obtain the support vertex of the inclined plane where the inclined normal vector is located as an alternative support point, and to extend a straight line L mm along the normal vector direction from the alternative support point to determine the inflection point, and to generate a support unit from the inflection point.

15. An electronic device, characterized in that: include: at least one processor; and a storage unit communicatively connected to the at least one processor; wherein the storage unit stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to execute the support structure generation method according to any one of claims 1 to 12.

16. A non-transitory computer-readable storage medium, characterized in that The non-transitory computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps of the support structure generating method according to any one of claims 1 to 12 are implemented.

17. A computer program product, characterized in that The computer program product comprises computer instructions, and when the computer instructions are run on a computer, the computer is caused to perform the support structure generating method according to any one of claims 1 to 12.

Citation Information

Patent Citations

  • Support structure generation method, device, electronic device and storage medium

    CN111859488B

  • Group support unit generation method and device, electronic equipment and storage medium

    CN116551992A