Method for generating support element for three-dimensional model and non-volatile storage medium

By generating support anchor points in the target area of ​​the 3D model and optimizing the distribution of the support structure, the problem of missing support and material waste caused by uneven support points is solved, achieving high-quality 3D printed products and material savings.

CN120995552APending Publication Date: 2025-11-21GUANGZHOU HEIGE ZHIZAO INFORMATION TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202511105431.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-08-07
Publication Date
2025-11-21

AI Technical Summary

Technical Problem

Existing technologies for generating support structures for 3D models suffer from problems such as uneven distribution of support points leading to missing support at complex edges or excessively dense support resulting in material waste and post-processing difficulties.

Method used

By determining the target area of ​​the 3D model, its projection image on the target plane is obtained. The edge detection algorithm is used to identify the support projection points, and support anchor points are generated based on a predetermined distance offset. The distribution density of the support structure is optimized to ensure that the suspended area is fully supported and to reduce the use of materials.

Benefits of technology

It improves the support effect of 3D printing, reduces material waste, simplifies post-processing, and enhances printing efficiency and finished product quality.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120995552A_ABST
    Figure CN120995552A_ABST
Patent Text Reader

Abstract

The invention discloses a method of generating a support element for a three-dimensional model and a non-volatile storage medium. The method comprises the following steps: determining a target area of a three-dimensional model; determining a target plane for placing the three-dimensional model, and obtaining a projection image of a target area of the three-dimensional model on the target plane; determining a plurality of first support projection points on the first contour of the projection image; determining a second virtual contour of the projection image based on the predetermined distance, the first contour surrounding the second virtual contour, and determining a plurality of second support projection points on the second virtual contour; determining a first support anchor point of the target area of the three-dimensional model at least based on the first support projection point and the second support projection point; and generating a support element based on the determined first support anchor point. The technical problems that at present, due to uneven distribution of supporting points, a printed object lacks a support at the complex edge part, and due to too dense support, material waste is caused, and post-treatment is difficult are solved.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the field of 3D printing technology, in particular to a method for generating support elements for a three-dimensional model and a non-volatile storage medium. BACKGROUND

[0002] 3D printing support generation is an indispensable link in the light-curing forming 3D printing technology. In printing complex models (such as aerospace, medical devices and art), support structures can provide necessary support to prevent deformation or collapse during printing; in the product development process, rapid prototyping requires efficient support generation technology to quickly iterate design; with the increasing demand for personalization, support generation technology can help achieve customized product design to meet the needs of different users; by optimizing the support structure, material waste and printing time can be reduced, thereby reducing production costs.

[0003] Currently, when setting the support structure, it is set according to equal distance. However, when the edge of the projection image is complex and the anchor point distance is large, the collected points are not distributed along the edge of the projection image, so there are some parts missing anchor points. If the distance is set to be large, the support effect may not be good, especially for the complex object topography between adjacent supports (or distance). If the distance is set to be small, some supports are redundant, which not only wastes materials, but also increases the difficulty and efficiency of removing the supports in post-processing.

[0004] At present, there is no effective solution to the above problems. SUMMARY

[0005] The embodiments of the present application provide a method for generating support elements for a three-dimensional model and a non-volatile storage medium to at least solve the technical problems of missing support for printed objects in complex edge parts due to uneven distribution of support points, and material waste and post-processing difficulty caused by excessive support density.

[0006] According to an aspect of an embodiment of the present application, a method for generating support elements for a three-dimensional model is provided, comprising: determining a target region of the three-dimensional model; determining a target plane for placing the three-dimensional model, and obtaining a projection image of the target region of the three-dimensional model on the target plane; determining a plurality of first support projection points on a first contour of the projection image; biasing the first contour based on a predetermined distance to determine a second virtual contour of the projection image, wherein the first contour surrounds the second virtual contour, and determining a plurality of second support projection points on the second virtual contour; determining a first support anchor point of the target region of the three-dimensional model based on at least the first support projection point and the second support projection point; and generating the support elements based on the determined first support anchor point.

[0007] In some embodiments, determining the target region of the three-dimensional model comprises determining a target portion of a projection image of the three-dimensional model on a target plane, wherein the target region of the three-dimensional model is configured to face and align with the target portion of the projection image.

[0008] In some embodiments, the target region comprises a hanging region, and the hanging region comprises at least one of a hanging face, a hanging edge, and a hanging point.

[0009] In some embodiments, the target region further comprises an enhancement region, and the enhancement region is configured to at least partially surround the hanging region.

[0010] In some embodiments, the target region comprises an auxiliary region, and the auxiliary region comprises at least one of an inclined region, a center of gravity offset region, and a critical edge.

[0011] In some embodiments, a second support anchor point is disposed on at least one of the hanging region, the enhancement region, or the auxiliary region, and the support element is generated based on the second support anchor point.

[0012] In some embodiments, a distribution density of the second support anchor point is greater than a distribution density of the first support anchor point.

[0013] In some embodiments, the generated support element is removed when a minimum distance between the generated support element and the three-dimensional model is less than a threshold value, or when the generated support element interferes with the three-dimensional model.

[0014] In some embodiments, at least one of the hanging region, the enhancement region, or the auxiliary region is determined based on patch information of the three-dimensional model and / or slicing pattern information of the three-dimensional model.

[0015] In some embodiments, the target region comprises a first portion and a second portion, and an average density of support anchor points of the first portion is greater than an average density of support anchor points of the second portion.

[0016] According to yet another aspect of embodiments of the present application, a non-volatile storage medium is also provided, which comprises a stored program, wherein when the program is executed, the device in which the non-volatile storage medium is located is controlled to perform any of the above methods of generating a support element for a three-dimensional model.

[0017] According to still another aspect of embodiments of the present application, a 3D printing system is also provided, which comprises: a processor configured to perform any of the above methods of generating a support element for a three-dimensional model; and a 3D printing device configured to perform 3D printing based on the three-dimensional model and the generated support element.

[0018] In the embodiment of the present application, the method for generating support elements for a three-dimensional model is adopted, the target region of the three-dimensional model is determined, the target plane for placing the three-dimensional model is determined, and the projection image of the target region of the three-dimensional model on the target plane is obtained; a plurality of first support projection points are determined on a first contour of the projection image; a second virtual contour of the projection image is determined based on a predetermined distance, wherein the first contour surrounds the second virtual contour, and a plurality of second support projection points are determined on the second virtual contour; the first support anchor points of the target region of the three-dimensional model are determined based on at least the first support projection points and the second support projection points; and the support elements are generated based on the determined first support anchor points, so as to achieve the purpose of adding support structures for specific regions, thereby realizing the technical effects of improving the support effect and saving materials, and further solving the technical problems of missing support for the printed object at the complex edge part due to uneven distribution of support points, and the difficulty in post-processing caused by excessive dense support. BRIEF DESCRIPTION OF DRAWINGS

[0019] The accompanying drawings, which are included to provide a further understanding of the present application and are incorporated in and constitute a part of this application, illustrate embodiments of the present application and serve to explain the present application. In the drawings:

[0020] Figure 1 A hardware structure block diagram of a computer terminal for implementing the method for generating support elements for a three-dimensional model is shown;

[0021] Figure 2 A flowchart of the method for generating support elements for a three-dimensional model according to the embodiment of the present application is shown;

[0022] Figure 3 A schematic diagram of a suspended region of the method for generating support elements for a three-dimensional model according to the optional embodiment of the present application is shown;

[0023] Figure 4 A schematic diagram of a suspended surface of the method for generating support elements for a three-dimensional model according to the optional embodiment of the present application is shown;

[0024] Figure 5 A schematic diagram of a suspended edge of the method for generating support elements for a three-dimensional model according to the optional embodiment of the present application is shown;

[0025] Figure 6 A schematic diagram of a suspended point of the method for generating support elements for a three-dimensional model according to the optional embodiment of the present application is shown;

[0026] Figure 7 Another schematic diagram of a suspended point of the method for generating support elements for a three-dimensional model according to the optional embodiment of the present application is shown;

[0027] Figure 8 is a schematic view of an enhanced area of a method of generating support elements for a three-dimensional model according to alternative embodiments of the present invention;

[0028] Figure 9 is a schematic view of a general offset auxiliary area in an auxiliary area of a method of generating support elements for a three-dimensional model according to alternative embodiments of the present invention;

[0029] Figure 10 is a schematic view of a method of generating support elements for a three-dimensional model according to alternative embodiments of the present invention;

[0030] Figures 11A-11C shows a projected image of a target area of a three-dimensional model according to some embodiments. DETAILED DESCRIPTION

[0031] In order to make persons skilled in the art better understand the present application scheme, the technical solutions in the embodiments of the present application will be clearly and completely described below in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are only a part of the embodiments of the present application, rather than all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by persons skilled in the art without creative labor should belong to the scope of protection of the present application.

[0032] It should be noted that the terms "first", "second", and the like in the specification and claims of the present application and the above-described drawings are used to distinguish similar objects, and do not necessarily indicate a specific order or a chronological sequence. It should be understood that the data thus used can be interchanged under appropriate circumstances, so that the embodiments of the present application described herein can be implemented in an order other than that illustrated or described herein. In addition, the terms "include" and "have" and any variations thereof are intended to cover non-exclusive inclusion, for example, a process, method, system, product or device that includes a series of steps or units does not necessarily have to be limited to those steps or units clearly listed, but can include other steps or units not clearly listed or inherent to these processes, methods, products or devices.

[0033] According to an embodiment of the present application, a method embodiment of generating support elements for a three-dimensional model is provided. It should be noted that the steps shown in the flowchart of the drawings can be executed in a computer system such as a set of computer executable instructions, and although a logical order is shown in the flowchart, in some cases, the steps shown or described herein can be executed in an order different from that shown herein.

[0034] The method embodiment provided by the embodiment of the present application can be executed in a mobile terminal, a computer terminal or a similar computing device. Figure 1A hardware structure block diagram of a computer terminal for implementing a method of generating a support element for a three-dimensional model is shown. As shown in Figure 1 The computer terminal 10 can include one or more processors (processors can include, but are not limited to, processing devices such as microprocessors MCU or programmable logic devices FPGA, etc.), a memory 104 for storing data, as shown in 102a, 102b, …, 102n. In addition, it can also include a display, an input / output interface (I / O interface), a universal serial bus (USB) port (which can be included as one of the ports of the BUS bus), a network interface, a power supply and / or a camera. Those skilled in the art can understand that Figure 1 The structure shown is only schematic, which does not limit the structure of the above-mentioned electronic device. For example, the computer terminal 10 can include more or fewer components than those shown in Figure 1 or have a different configuration than that shown in Figure 1 .

[0035] It should be noted that the one or more processors and / or other data processing circuits described above can be referred to herein generally as "data processing circuits". The data processing circuits can be embodied in whole or in part as software, hardware, firmware, or any combination thereof. In addition, the data processing circuits can be a single independent processing module, or any one of the other elements incorporated into the computer terminal 10 in whole or in part. As referred to in the embodiments of the present application, the data processing circuit is a processor that controls, for example, the selection of the variable resistance terminal path connected to the interface.

[0036] The memory 104 can be used to store software programs and modules of application software, such as program instructions / data storage devices corresponding to the method of generating a support element for a three-dimensional model in the embodiments of the present application. The processor executes various functional applications and data processing by running the software programs and modules stored in the memory 104, i.e. implements the application program's method of generating a support element for a three-dimensional model described above. The memory 104 can include a high-speed random access memory, and can also include a non-volatile memory, such as one or more magnetic storage devices, flash memory, or other non-volatile solid-state memory. In some examples, the memory 104 can further include a memory remotely disposed with respect to the processor, which can be connected to the computer terminal 10 through 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.

[0037] The display can be, for example, a touch screen type liquid crystal display (LCD), which can enable a user to interact with the user interface of the computer terminal 10.

[0038] Figure 2 is a flowchart of a method for generating support elements for a three-dimensional model according to an embodiment of the present application, as shown in Figure 2 The method comprises the following steps:

[0039] In step S202, a target region of the three-dimensional model is determined.

[0040] In this step, the target region mainly refers to those parts of the model that need special support treatment during printing, including but not limited to overhanging points, edges, faces, and regions with high inclination or center of gravity offset. Once the target region is determined, the next step is to generate support anchor points, which will be used to fix the connection between the support structure and the model.

[0041] The model can be pre-processed first, such as model repair, kdtree generation, etc. The mesh quality of the model can also be checked automatically or manually, and any errors that may affect support detection, such as holes, overlapping patches, or non-closed surfaces, can be repaired. Then the target region is detected. Among them, the overhanging region, the enhanced region and the auxiliary region in the printed model can be detected. Among them, the overhanging region refers to the lowest part or region of the 3D model relative to the printing platform, mainly including overhanging points, overhanging edges and overhanging faces. These regions have no lower structure to support directly when printing, so they are most susceptible to deformation or collapse due to gravity during printing. The enhanced region is a region set to further reinforce the overhanging region or critical overhanging structure. These regions usually surround the overhanging region or overhanging structure, and by increasing the support density or special structure design, the stability of the model during printing is ensured. The auxiliary region refers to the part of the model that needs additional support but does not belong entirely to the lowest or enhanced region. The identification and support generation of these regions help improve the overall printing quality of the model and reduce the risk of deformation during printing. Among them, the auxiliary region can include general auxiliary points, which are inclined or inclined parts of the model surface, and the angle between the patch normal and the vertical direction is greater than the critical angle and less than 90°, which need auxiliary support to prevent deformation during printing. It can also include center of gravity offset auxiliary points, as the printing height increases, the change in the position of the center of gravity of the model can cause instability of the structure, and auxiliary support needs to be added in the region with inclination or risk of center of gravity offset. It can also include critical edge auxiliary points, if the regularity of the model edge is high and the angle between the faces is less than a certain threshold, the points on these edges may need additional support to improve the printing success rate of the structure.

[0042] Determining the target region of the three-dimensional model can ensure that the overhanging parts and unstable regions of the model are properly supported during 3D printing, thereby improving the printing success rate, reducing defects, and ultimately obtaining high-quality printed products.

[0043] Step S204, determine the target plane for placing the three-dimensional model, and obtain the projection image of the target region of the three-dimensional model on the target plane.

[0044] In this step, the three-dimensional model file can be imported through 3D printing software. According to the structure of the model and the needs of 3D printing, a suitable plane is selected as the printing base plane. The target plane can be the plane that provides the maximum stability and the least support for the model, so as to reduce material waste and simplify post-processing. Set the projection parameters in the software, including the projection direction (usually perpendicular to the target plane), the projection resolution, etc. The projection of the model on the target plane generates a two-dimensional image, which is usually a "slice" view, which is used to intuitively show the layout of the model on the printing plane. The projection image corresponding to the target region is determined in the projected image.

[0045] Step S206, on the first contour of the projection image, a plurality of first support projection points are determined.

[0046] In this step, the first contour usually refers to the outermost or innermost boundary of the projection image. It directly affects the layout and performance of the support structure in the 3D printing process. Edge detection algorithms such as Canny edge detection or Sobel operator can be used to clearly identify the outermost contour in the projection image. This step can convert the image to a black and white mode, where white represents the projection of the model and black represents the background space.

[0047] In order to ensure that the support points generated from the contour can fully cover the overhanging part, and not too dense so as to waste materials, an erosion or dilation algorithm can be used. On the first contour, equal distance erosion is performed first, and then edge points are collected to ensure that the support points are evenly distributed along the feature edges of the model. From the first contour after edge detection, edge points are collected as first support projection points. These points are represented as 2D pixel coordinates on the projection image. Then, these 2D pixel coordinate points are converted back to 3D coordinate points in the three-dimensional model coordinate system, which are the real support anchor points.

[0048] In some optional embodiments, the projection direction can be determined first, for example, the bottom surface of the model is usually selected downward, so that all the areas to be supported can be mapped into the same plane. A plane parallel to the printing platform can be set as the projection plane, which should be large enough to contain all the features of the model. According to the layer height parameter of the printer, the 3D model is divided into a plurality of two-dimensional layers, each layer representing the cross section of the model at a specific height. For each layer, the areas to be supported on the layer are projected onto the selected plane and converted into a binary image. In this image, the support area is usually white and the other areas are black. It can be ensured that the coordinates of each point after projection can correspond to the coordinates in the 3D model, so as to generate the support structure on the model subsequently. Then an edge detection algorithm (such as Canny edge detection, Sobel operator, etc.) is applied to identify the boundary in the binary image, i.e. the first contour. After edge detection, all the white-black junction points on the boundary are extracted, which correspond to the edge points of the model on the image, i.e. the first support projection points.

[0049] Through the above steps, a plurality of first support projection points can be effectively determined on the contour of the projection image, thereby guiding the accurate generation of the support structure and improving the 3D printing efficiency and the quality of the finished product.

[0050] Step S208, determining a second virtual contour of the projection image based on a predetermined distance, wherein the first contour surrounds the second virtual contour, and a plurality of second support projection points are determined on the second virtual contour.

[0051] In this step, the image erosion process can be repeated and new edge points can be collected to obtain more support anchor points until no new white pixel point appears, which means that all the overhanging features have been fully covered. The erosion operation distance should be moderate, too short will result in too dense support points, and too much may miss some key overhanging areas.

[0052] Step S210, determining a first support anchor point of the target area of the three-dimensional model based on at least the first support projection point and the second support projection point.

[0053] In this step, a ray can be defined from each first support projection point and second support projection point, which is perpendicular to the three-dimensional model direction from the projection image plane. Using the ray tracing algorithm, the intersection of these rays with the surface of the three-dimensional model is calculated. These intersection points are the candidate positions of the first support anchor points. Convert the two-dimensional coordinates of the first support projection point and the second support projection point into coordinates in the three-dimensional model space to determine the exact position of the model surface when the rays intersect. It can be checked whether the model surface point closest to the first support projection point is a hanging point, an edge or a face, and confirmed as a hanging point, which is preferred as a support anchor point. Add enhanced points around the first support anchor point according to certain rules (such as concentric circles, rectangles) to improve the stability of the hanging part. For auxiliary areas, such as areas with large face normal angles or user-defined areas that require additional support, locate auxiliary points. Ensure that the first support anchor point does not interfere with other parts of the model, and check whether the support structure will fuse with the model or cause printing failure. The first support anchor point can be optimized to reduce the use of support material while ensuring the stability of the model and the quality of the print.

[0054] Through the above steps, the first support anchor points can be determined on the target area of the three-dimensional model, and the generation of the support structure not only meets the needs of printing stability, but also reduces the use of materials as much as possible, improving the efficiency and economy of 3D printing.

[0055] Step S212, and based on the determined first support anchor points, generate support elements.

[0056] In this step, before generating the support elements, the basic geometric features of the support structure can be defined first, for example, the support type can be defined, which can be columnar, tree-like or grid-like support, and the support type that best suits the current model hanging characteristics is selected. Using ray tracing or nearest neighbor algorithm, a path can be constructed from each first support anchor point to the nearest stable surface or model bottom. The path should avoid collision with other parts of the model as much as possible to reduce the fusion of the support structure with the model. Based on the constructed support path, specific support elements can be generated. If it is a columnar support, a series of cylinders are generated along the path; if it is a tree-like support, a branching structure can be generated to disperse the force.

[0057] Through the above steps, based on the pre-determined first support anchor points, support elements can be generated that can fully support the hanging part while minimizing material use and post-processing difficulty, thereby optimizing the 3D printing process and improving the print quality.

[0058] As an optional embodiment, determining the target area of the three-dimensional model comprises: determining a target part of the projection image of the three-dimensional model on the target plane, wherein the target area of the three-dimensional model is configured to face and align with the target part of the projection image.

[0059] In some embodiments, the three-dimensional model can be oriented according to the design characteristics of the model and the printing requirements, ensuring that the overhanging or high- gradient parts of the model are directly facing the target plane. Then, the model is projected onto the target plane to generate its projection image in the two-dimensional plane. In the projection image, the parts of the model that need special attention are identified, which are the target parts. The target parts usually include overhanging surfaces, overhanging edges, overhanging points, and areas with high inclination. Among them, the target plane is usually the platform for 3D printing, i.e., the first contact surface of the model, generally at the minimum value of the Z-axis.

[0060] Specifically, selecting the target plane as the basis can ensure that the support structure is accurately generated under the overhanging area that needs support. The three-dimensional model can be projected onto the selected target plane using the projection principle of computer graphics to generate a two-dimensional projection image of the model on the target plane. In the generated projection image, the overhanging area, the enhanced area, and other auxiliary areas of the model are identified as target parts. These target parts usually have the following characteristics:

[0061] Overhanging area: the part of the model that does not contact the target plane during printing, which may include overhanging points, edges, or surfaces.

[0062] Enhanced area: the area around the overhanging area, used to enhance the stability of the overhanging part and prevent the model from deforming due to gravity during printing.

[0063] Auxiliary area: including general auxiliary points, center of gravity offset points, critical edge points, and user-defined points, used to provide additional support under certain conditions.

[0064] The target area of the three-dimensional model is configured to face and align with the target parts of the projection image. This means adjusting the pose of the model to ensure that the overhanging area, the enhanced area, and other auxiliary areas are clearly visible in the projection image and are located at the appropriate position of the target plane, facilitating the generation of support points and the construction of support structures.

[0065] Through the above steps, the target parts of the three-dimensional model in the target plane projection image can be accurately determined, thereby efficiently configuring the support structure and providing an important guarantee for the success of 3D printing.

[0066] Through the above steps, the target area of the three-dimensional model can be determined in detail, and the support structure can be configured in the target part of the projection image on the target plane, thereby effectively improving the efficiency of 3D printing and the quality of the finished product.

[0067] As an optional embodiment, the target area includes the overhanging area, and the overhanging area includes at least one of the overhanging surface, the overhanging edge, and the overhanging point.

[0068] In some embodiments, the target region can include overhanging regions, where the overhanging regions include overhanging faces, overhanging edges, and overhanging points, Figure 3 is a schematic diagram of an overhanging region of a method for generating support elements for a three-dimensional model according to an optional embodiment of the present application, as shown in Figure 3 , where the overhanging region is present in a higher slice layer but not in a lower slice layer, i.e. Figure 3 , the arrow points to the region, which is the overhanging region. All detected overhanging structures (overhanging faces, edges, points) are located in the model to obtain the specific location of the overhanging structure. The region where the overhanging structure is located is defined as the overhanging region, that is, the overhanging region, which usually means that the model lacks solid support in this region and additional support structures need to be added during printing. All detected overhanging regions can be integrated to form a comprehensive list of regions to be supported. Analyze the characteristics of each overhanging region (such as overhanging height, angle, shape), and evaluate the complexity and intensity of its support requirements.

[0069] Figure 4 is a schematic diagram of an overhanging face of a method for generating support elements for a three-dimensional model according to an optional embodiment of the present application, as shown in Figure 4 , the overhanging face refers to a planar region of the model that does not directly contact the print bed or existing model parts during the printing process. These faces are prone to deformation during the cooling process of thermoplastic material due to the lack of direct support. For overhanging faces, they can be projected onto a target plane (usually the plane of the print bed) to analyze their shape and size in two-dimensional space. Apply an erosion algorithm based on the projection of the overhanging face to generate a second virtual contour to ensure that the edges of the overhanging face are properly supported even with a sparse distribution of support points. Distribute support points evenly on the second virtual contour to ensure the stability of the overhanging face and prevent deformation. For the detection of overhanging faces, it can start from the lowest slice layer and traverse upwards layer by layer. For each triangular patch in a slice layer, calculate the angle between its normal vector and the first preset vector. Generally, the first preset vector is the unit vector perpendicular to the print platform, i.e. (0, 0, -1) or (0, 0, 1), depending on the orientation of the model placement and the printing technology. A first angle threshold can be used to determine whether a triangular patch is tilted to a sufficient degree to be considered overhanging. When a triangular patch in a certain layer (referred to as the first target slice layer) is detected to satisfy the first angle threshold, i.e. the angle between its normal vector and the preset vector is less than the preset threshold, it indicates that there may be an overhanging face in this layer. Then, check whether there are any triangular patches in the immediately next layer or a few layers below (adjacent slice layers) of the first target slice layer. If no triangular patches are found in the adjacent slice layers, it means that this part of the first target slice layer indeed has no support and can be determined as an overhanging face. If triangular patches are detected in the adjacent slice layers, this part may not be a true overhanging face or a preset support face and should not be considered as overhanging.

[0070] For example, the dangling face should satisfy that its normal vector should be close to 0 with the vector (0, 0, -1); if observed in a 0.05-thickness slice, the current dangling face is not connected with the face slice below it.

[0071] Specifically, the printing model is divided into multiple layers, each layer having a corresponding slice pattern. In the actual solidification forming process, the i-th layer is first formed, and then solidified to form the i+1-th layer. In identifying the patterns of the i-th layer and the i+1-th layer, if the pattern of the i+1-th layer has an isolated region compared to the pattern of the i-th layer, it is considered that the region of the three-dimensional model corresponding to the isolated region is a spatial dangling region (local minimum), or a dangling face.

[0072] Figure 5 is a schematic diagram of a dangling edge of a method for generating support elements for a three-dimensional model according to an optional embodiment of the present application, as shown in Figure 5 The dangling edge refers to the edge of the model or the line segment connecting two faces, which has not been sufficiently supported during printing. The dangling edge can appear on the side or top of the model, especially when one face ends abruptly and another has not yet begun. The detection of the dangling edge is usually based on the angle between the two edges, if the angle is close to horizontal (i.e. about 90°), then the edge can be considered as dangling. The dangling edge is easy to bend or break before the material is solidified without proper support. The dangling edge can be identified by analyzing the triangular face, considering its property that the angle with the vector (0, 0, 1) is close to 90°. For the dangling edge, support can be generated along its direction to ensure that both ends or the entire length of the edge is supported to prevent warping. Auxiliary points are added near the dangling edge to enhance the stability of the local structure.

[0073] For the detection of overhanging edges, one can start from the bottom slice and traverse through all the edges on each slice. The angle between the direction vector of each edge and a second preset vector is calculated. If the angle between the direction vector of an edge and the second preset vector is smaller than a second angle threshold, the edge is likely to be an overhanging edge, where the second preset vector is usually defined as a vector pointing vertically upwards, for example, (0, 0, 1). This is because overhanging edges mainly refer to those edges that are almost horizontal or slightly inclined downward. The second angle threshold is used to define what angle of the edge is considered as an overhanging edge. For example, if the angle between the direction vector of an edge and the second preset vector is smaller than 45°, the edge can be considered as an overhanging edge. For the detected potential overhanging edges, further check the triangular facets on both sides of the edge. The normal vectors of the triangular facets provide information about the direction of the surface. If the normal vectors of the triangular facets on both sides of the edge point downward, i.e., their angles with (0, 0, 1) are close to 90°, it indicates that the edge is located on two downward inclined surfaces, thus increasing the likelihood of the edge being considered as overhanging. If the angle between the direction vector of an edge and the second preset vector is smaller than the second angle threshold, and the normal vectors of the triangular facets on both sides of the edge satisfy the vector condition, i.e., the normal vectors of the two adjacent facets point downward but are not parallel, the edge can be determined as an overhanging edge. For the identified overhanging edges, appropriate support structures are designed and added.

[0074] Specifically, the method for identifying overhanging edges is as follows: the three-dimensional model is triangulated, and at least two facets share an edge. If: (1) the direction vector of the edge is close to 90° with the vector (0, 0, 1) (i.e., parallel to the horizontal plane); and (2) at least two normal lines of the at least two facets sharing the edge are not parallel, the edge is considered as an overhanging edge.

[0075] Through the above steps, overhanging edges in the model can be systematically detected, and appropriate support structures can be added to avoid model distortion or damage due to gravity during 3D printing, thereby improving the accuracy and quality of the printed part.

[0076] In some embodiments, Figure 6 is a schematic diagram of overhanging points for generating support elements for a three-dimensional model according to an optional embodiment of the present application, as Figure 6 shown, overhanging points are vertices in the model that are in a suspended state, unlike overhanging edges or surfaces, they do not have continuous structures, but exist independently on other structures or at the end of some structures. Overhanging points may not be able to be stably printed due to lack of sufficient support structures below, especially when the connection between the point and other structures is weak or the angle is large. The identification of overhanging points is usually based on the height difference between the point and adjacent points and whether it is directly connected to the slice below.

[0077] The original printing model can be sliced first. The slicing parameters can be set first, including layer height (usually between 0.1 mm and 0.2 mm), and whether to enable support structure generation and other related options, and then a plurality of slicing layers are obtained. The lowest layer can be identified from the slicing layers, which is the first layer of the model in contact with the printing platform. Starting from the lowest layer, the model is detected layer by layer to determine whether there is a suspended structure. The facets in each slicing layer can be detected, and if a facet has no entity part support in the next layer (or several layers), it is determined to be a suspended facet. For the edges of the model, if both ends of an edge have no entity part support in the next slicing layer, the edge can be a suspended edge. The vertices of the model are detected, and if a vertex has no entity part support in the next slicing layer, it is determined to be a suspended point.

[0078] Starting from the first slicing layer, layer by layer is detected to determine whether there is a point that is a suspended point in the adjacent region, i.e., the height of this point is lower than all other points in its adjacent region, wherein the adjacent region usually refers to other points within a certain radius of the target point (i.e., the point to be detected) on the current slicing layer. The radius size can be adjusted according to the model details and support requirements. If a suspended point (target point) that meets the conditions is found in the third target slicing layer, further check whether there is any point directly connected to the target point in the adjacent slicing layer (i.e., the next layer). This usually involves determining whether the target point is directly connected to a point in the next layer through the edges or faces of the model. If the model has no point directly connected below the target point in the slicing layer, the point can be in a suspended state. If the target point is a suspended point in the third target slicing layer and has no point directly connected to it in the adjacent slicing layer, it can be determined that the point is a suspended point.

[0079] That is, the suspended point needs to be lower than the height of any point in its field (multiple triangular facets share a point, which is lower than the height of other adjacent points); assuming that the slicing is observed with a thickness of 0.05 layers, the current suspended point needs to be connected to a vertex with a lower position.

[0080] Specifically, the method for identifying a suspended point is as follows: the three-dimensional model is triangulated, and if multiple triangles share a vertex and the height of the vertex is the lowest (i.e., lower than all other vertices of the triangles), the vertex is considered to be a suspended point.

[0081] The suspended point also includes a point that meets the following two conditions:

[0082] Condition 1: In a part of the model, the coordinates of the vertex are lower than those of the remaining points.

[0083] Condition 2: Based on the vertex, the i-th slice layer and the i+1-th slice layer are obtained, and all vertices in the i+1-th slice layer are not directly connected to the vertex. (Note that if connected, the connection between the two points on the object)

[0084] Figure 7 Another schematic diagram of the suspended point according to the method of generating a support element for a three-dimensional model according to an optional embodiment of the application is shown as Figure 7 As shown in the figure, black circle 1 and black circle 2 meet condition 1 but not condition 2 in a small range. Black circle 3 meets condition 1 and condition 2, so it is a suspended point.

[0085] Through the above steps, the suspended points in the 3D printing model can be accurately detected, and the support structure can be appropriately added to ensure that the suspended structure can be stably supported during the printing process, thereby avoiding printing failure or model deformation.

[0086] As an optional embodiment, the target area further includes an enhanced area, and the enhanced area is configured to at least partially surround the suspended area.

[0087] In some embodiments, the target area can include an enhanced area, wherein the enhanced area at least partially surrounds the suspended area. By adding additional support points in these areas, the stability of the suspended area can be enhanced to prevent deformation or deviation of the model during the printing process.

[0088] The maximum and minimum distances between the suspended area and its surrounding structure can be obtained first, and the distance range determines the range of enhanced support. For example, enhanced support can be added within a distance range of 5mm to 15mm outside the suspended area. The area shape refers to the geometric shape of the enhanced support surrounding the suspended area, which can be a circle, a rectangle, an ellipse, or other custom shapes, depending on the characteristics of the suspended area and the design requirements of the printed part. For example, if it is a suspended point, the points can be taken according to concentric circles; if it is a suspended edge, the points can be taken according to a rectangle; if it is a suspended surface, the points can be taken according to the edge shape of the suspended surface. Then the environment around each suspended area can be analyzed to determine which areas are directly adjacent to the suspended area and may affect the stability during the printing process. From the suspended area, according to the preset distance range, the areas that need to be enhanced are determined. For example, a concentric circle or envelope can be drawn from the suspended point, edge or surface. After determining the approximate range of the enhanced area, the boundary of the enhanced area is optimized or adjusted according to the area shape in the requirement data to ensure that the enhanced support can be effectively distributed within the shape.

[0089] Specifically, the enhanced area is used to assist the suspended area. The basic purpose is to add new support around the suspended area. Figure 8is a schematic diagram of an enhanced region of a method of generating support elements for a three-dimensional model according to an optional embodiment of the present application, as shown in Figure 8 wherein the dashed line in the figure represents an enhanced region. Specifically, in one image, the overhanging region is a single point, i.e. an overhanging point, and the enhanced region is a circle, a rectangle, etc. surrounding the point. When the overhanging region is a line, i.e. an overhanging edge, the enhanced region is an ellipse, a rectangle, etc. surrounding the edge. When the overhanging region is a pattern, i.e. an overhanging surface, the enhanced region is an enlarged pattern, such as an ellipse, a rectangle, etc. surrounding the pattern.

[0090] Through the above steps, the regions in the 3D printing model that need to be supported can be systematically analyzed and determined, so as to design and generate support structures that can effectively improve the printing stability and success rate.

[0091] As an optional embodiment, the target region includes an auxiliary region, and the auxiliary region includes at least one of an inclined region, a center of gravity offset region, and a critical edge.

[0092] In some embodiments, the target region can further include an auxiliary region, wherein the auxiliary region can include multiple types, such as an inclined region, a center of gravity offset region, a critical edge, etc.

[0093] The inclined region has a relatively high inclination angle, but is not completely overhanging, and may need additional support to prevent local deformation or warping during printing. Generally, the angle between the normal vector of these regions and the normal vector of the printing plane exceeds a certain threshold, but does not reach the standard of overhanging. The inclined region with an angle exceeding the critical value can be identified by analyzing the angle between the normal vector of the model patch and the normal of the printing plane. Uniformly distribute support points at the bottom of the inclined region to ensure that each face with a large inclination angle has sufficient support. According to the inclination angle and the size of the region, select appropriate support types, such as mesh or staggered support, to provide better structural stability and reduce material waste. Figure 9 is a schematic diagram of a general offset auxiliary region in a method of generating support elements for a three-dimensional model according to an optional embodiment of the present application, as shown in Figure 9 The wall surface of the model exhibits different degrees of inclination, and if the inclination is high (tending to be columnar), it is safe, and if the inclination is low (tending to be cantilevered), it is risky. At this time, new supports are added to the low-inclination model part. The figure sequentially shows high inclination to low inclination, and the right element can be an auxiliary region, i.e. a region that needs to add support.

[0094] The center of gravity offset region is because when the center of gravity of the 3D model is offset, especially when the model is high or asymmetric in shape during printing, the center of gravity offset can cause the model to be unstable or even collapse. Therefore, additional support points need to be added on the facets of the model that are in contact with the printing platform to balance the center of gravity and ensure the stability of the model during printing. When the center of gravity of the model is significantly offset from the printing plane, the model is prone to tilting or overturning when printing at a high level, affecting the printing quality and success rate. The center of gravity of each layer of the model can be calculated layer by layer, and its projection on the printing plane can be projected. Compare the projections of the centers of gravity of several consecutive layers on the XY plane to detect whether the offset exceeds the threshold. On the layer where the center of gravity offset is large, additional support structures are added to the facets facing the printing platform to balance the center of gravity and reduce instability caused by the offset.

[0095] For the center of gravity offset auxiliary point, the center of gravity position of each slice layer in the XY plane can be calculated first. This usually involves the calculation of the geometric center of all points or facets within each slice layer, ignoring the Z-axis coordinates of each point or facet. Then identify the overhanging points or regions in each slice layer, i.e. the position of the model closest to the printing platform on that layer. For each layer, calculate the projection distance (offset) of its center of gravity position and the lowest position on the XY plane. This can be achieved by calculating the Euclidean distance of the two points on the XY plane. A preset offset threshold can be set, and when the offset of the center of gravity position and the lowest position exceeds this threshold, it indicates that the layer has a risk of center of gravity offset and may need additional support. By analyzing the offset of all slice layers, find out those layers whose offset of the center of gravity position and the lowest position exceeds the preset threshold, that is, determine the center of gravity offset auxiliary point. They need special attention during printing to prevent the model from becoming unstable or deformed due to the center of gravity offset. If the offset of a certain layer (marked as the fourth target slice layer) is found to exceed the threshold in the multi-layer analysis, then this layer needs special auxiliary support.

[0096] Critical edges are edges in the edge region of the model where the angle between the normal vectors of two adjacent facets is small, but not perpendicular to the printing plane. Such edges are not as stable during printing, but do not require as dense support as overhanging edges. Adding support near these edges can increase the printing success rate of the structure, especially when the edge is regular (e.g. the angle between the facets is close to 90 degrees). A threshold for the angle between the normal vectors of the facets can be set to identify critical edges. Auxiliary points can be added near critical edges, but not as densely as overhanging edges. Auxiliary points can be placed at certain intervals to enhance the stability of the model. For critical edges, lighter support structures such as thin cylindrical supports can be chosen to reduce material consumption and reduce post-processing burden.

[0097] As an optional embodiment, second support anchors are set on at least one of the overhanging region, the reinforced region, or the auxiliary region, and support elements are generated based on the second support anchors.

[0098] In some embodiments, during the 3D printing process, second support anchors are set and support elements are generated on these anchors to ensure the stability of the overhanging part, the reinforced part, and the auxiliary part of the model. The second support anchors are selected in the overhanging region, the reinforced region, or the auxiliary region, and are used to generate additional support structures. Compared with the first support anchors, the second support anchors are usually used to enhance the stability of the model in more detail, especially in areas with complex shapes and high inclination angles.

[0099] Setting second support anchors in the overhanging region can be achieved by analyzing the model structure, identifying overhanging points, edges, and faces, especially the areas around the overhanging points. The second support anchors are selected at key positions in the overhanging region to ensure that each part is adequately supported. The positions and number of second support anchors are optimized according to the specific shape of the overhanging region.

[0100] Setting second support anchors in the reinforced region involves setting a reinforced region around the overhanging region and distributing second support anchors evenly in this region to enhance the structure of the model. Different support patterns, such as concentric circles, rectangles, or ellipses, can be used in the reinforced region depending on the characteristics of the overhanging structure, such as points, edges, or faces.

[0101] Setting second support anchors in the auxiliary region can involve setting second support anchors along the inclined surface in areas with high inclination angles to prevent material from sliding during the printing process. The center of gravity of each layer of the model can be detected to identify layers with severe center of gravity deviation, and second support anchors can be set on the facets facing the printing platform for these layers. Second support anchors can also be set near critical edges where the facet angles are close to but not completely perpendicular, to enhance the stability of the edges.

[0102] Once the second support anchors are determined, the next step is to generate support elements based on these anchors. The type of support element can be determined first, which can include columnar supports, mesh supports, bridging supports, etc. The distance between second support anchors can be adjusted reasonably to balance the support strength and material conservation. Then, the direction of the support elements can be optimized according to the geometric characteristics of the model to provide the best stability effect. It is also necessary to ensure that the support elements do not interfere with other parts of the model when generated, to avoid printing problems.

[0103] Specifically, the area that needs support can be projected into a binary image, and an erosion process can be performed to find the edge points, which serve as preliminary candidates for the second support anchor points. The two-dimensional coordinate points on the image are converted back to the corresponding points on the three-dimensional model, thereby determining the exact positions of the second support anchor points on the model. For each second support anchor point, ray tracing or intersection calculation is performed to determine the accurate shape and position of the support element on the model, avoiding conflicts with other model structures. According to the type of anchor point (such as a hanging point, an enhanced point, or an auxiliary point), the support elements are generated in order of priority, with the areas that need the most support being processed first. The modified model and support configuration are output as slice files, and the slice software is used to preview the model and its support structure, ensuring that the support elements are correctly generated and do not affect the final appearance of the model.

[0104] In some optional embodiments, different areas can be assigned priorities, which can be ordered according to the priorities of hanging areas, enhanced areas, and auxiliary areas. Specifically, the hanging points in the hanging area have the highest priority, as the hanging points are the most fragile parts of the model and are prone to displacement or breakage due to gravity during printing. The hanging edges follow, as they still need sufficient support to maintain their shape and prevent deformation, although they are relatively stable. Next are the hanging faces, which may exhibit warping during printing and need moderate support to maintain their flatness. Then come the enhanced areas, which are located around the hanging areas and are mainly used to reinforce the model, improving printing stability and quality. Finally, there are auxiliary areas, including general auxiliary points, center-of-gravity offset auxiliary points, critical edge auxiliary points, etc., which are used to improve the printing success rate of the overall structure. Anchor point parameters, such as anchor point spacing, can also be set, which can be determined according to the size, details, and material properties of the model. Smaller spacing will increase the amount of support material used but provide better support, while larger spacing will save material but may compromise the support effect. The size, shape, and minimum distance from the model surface of the anchor points can also be included. The anchor point sequence is traversed to check whether the spacing between adjacent anchor points meets the pre-set anchor point spacing parameter. If the spacing is too small, redundant anchor points are deleted to ensure consistency in spacing. The final anchor point list is determined based on the above filtering results, and these anchor points will serve as the starting or connecting points for the support structure.

[0105] Through the above steps, complex support requirements in 3D models can be systematically handled, ensuring that the support effectively supports the model while adhering to user-set parameters such as material conservation, printing efficiency, and post-processing convenience. This method not only improves the success rate of 3D printing but also optimizes the entire printing process, making it more efficient and economical.

[0106] Through the above process, the second support anchor point can be accurately set in the overhanging area, the enhanced area or the auxiliary area, and the targeted support element is generated, which significantly improves the stability and product quality of the 3D printing model.

[0107] In some embodiments, a three-dimensional coordinate system can be established with the plane where the binary image is located as the XY plane and the direction perpendicular to the XY plane as the Z axis. All edge points in the binary image are found through image processing methods such as Canny edge detection. These edge points appear as points at the junction of black and white in the image. Then, the two-dimensional coordinates (position on the XY plane) of each edge point are mapped back to the three-dimensional model to calculate their three-dimensional coordinates (XYZ) in the original model. From each point (i.e., edge point), a ray is emitted along the Z axis direction of the three-dimensional coordinate system. This ray represents the direction of the connecting line between a potential support point and the printing platform or the stable part of the model. The points intersected by these rays in the 3D model are candidate anchor points, and their actual corresponding positions on the model determine the starting point or contact point of the support structure. An erosion operation is performed on the binary image to gradually reduce the white area (representing the overhanging part of the model) and discover more internal edge points, which may also be candidate points that need to add support, i.e., support projection points. After each erosion, new edge points are detected and determined, and their two-dimensional coordinates are updated. The ray intersection to determine candidate anchor points and the image erosion operation are performed in a loop until all white pixel points in the binary image disappear, which means that all overhanging parts on the model have found suitable candidate anchor points. All candidate anchor points are screened, and only those that meet the preset conditions are kept as the final anchor points. These conditions may include but are not limited to: minimum distance of anchor point from model body, Z coordinate height of anchor point, distribution density of anchor point, etc.

[0108] The screened anchor points can be prioritized according to different functions and needs (such as overhanging points, enhanced points, auxiliary points), to ensure that the most important support is added first as the first support anchor point.

[0109] For the overhanging region in the region to be supported, i.e. the overhanging region, the corresponding anchor points are determined, the overhanging region can be projected on a horizontal plane to obtain an image, the contour in the image defines the projected region of the overhanging region. For example, it is a binary image (0 or 1, or white for the region to be solidified, black for the non-solidified region); the projected image is black and white, for example, the points at the junction of black and white can be taken as the corresponding points of the anchor points. For example, the origin with a size of 1 or 2 pixels is taken as the anchor point. (Note: the corresponding points of the anchor points are points on the image, which can be mapped to the anchor points on the three-dimensional model) The boundary of the white region is shifted inward by a certain distance to reduce the area of the white region. Then the points at the junction of black and white can be taken as the corresponding points of the anchor points. Repeat the above inward shifting step several times to obtain the corresponding points of all anchor points in the white region.

[0110] Through the above steps, the anchor points on the model can be accurately identified and determined, and the support structure that meets the structural requirements and minimizes material waste can be designed, which fully prepares for high-quality 3D printing.

[0111] As an optional embodiment, the distribution density of the second support anchor points is greater than the distribution density of the first support anchor points.

[0112] In some embodiments, in the overhanging or high-inclination region, the model is prone to deformation under the influence of gravity during printing. By increasing the density of the second support anchor points, a denser support network can be provided in these sensitive areas, effectively resisting gravity and maintaining the geometric shape and dimensional accuracy of the model.

[0113] The overhanging part of a complex model often has nonlinear edges or surfaces, and these areas require more detailed support to prevent any subtle deformation. The first support usually covers a wide area, while the second support anchor points are specifically used for these complex or sensitive areas, and therefore require a higher density to ensure comprehensive coverage and support.

[0114] In summary, the high-density distribution of the second support anchor points is to provide stronger and more detailed support in the areas that need the most support, to overcome the mechanical and material challenges of the model during 3D printing, and to ensure the structural integrity of the model and the success rate of printing.

[0115] As an optional embodiment, when the minimum distance between the generated support elements and the three-dimensional model is less than a threshold value, or when the generated support elements interfere with the three-dimensional model, the generated support elements are removed.

[0116] In certain embodiments, in 3D printing, the generation of support elements is to ensure the stability and shape accuracy of the model during the printing process, but the distance between the support elements and the model itself or other support structures is too small or interferes, which can cause a series of problems such as rough model surface, difficult support removal, printing failure, etc.

[0117] The shortest distance between the support element and the surface of the three-dimensional model can be calculated to ensure that this distance is greater than or equal to a preset minimum threshold. The setting of this threshold needs to consider the material properties, printing accuracy requirements and the convenience of subsequent support removal. Check whether the support element is in physical contact with other parts of the three-dimensional model or the generated support structure, i.e. whether there is any form of spatial overlap. If it is detected that the distance between the support element and the model is less than the threshold, or it is found that the support element interferes with the model, the support element that interferes with the model can be removed.

[0118] The position of the support element can also be slightly adjusted to create enough gap to avoid contact with the model. This can be achieved by repositioning the starting point or end point of the support to ensure that the support still provides sufficient support to the required area.

[0119] If the support is too dense and the position adjustment is not enough to solve the problem, the density of the support can be tried to be reduced. That is, when generating support points, the distance between points is increased to reduce the number of final support structures.

[0120] The support structure can also be optimized to choose different support design schemes, such as changing the shape, direction or thickness of the support, to reduce the possibility of contact between the support and the model. For example, change from columnar support to mesh support, or use support with tapered end to reduce contact area.

[0121] By detecting the minimum distance and interference, and timely adjusting or removing the support that does not meet the requirements, the printing quality can be greatly improved.

[0122] As an optional embodiment, at least one of the overhanging region, the enhanced region, or the auxiliary region is determined based on the patch information of the three-dimensional model and / or the slicing pattern information of the three-dimensional model.

[0123] In some embodiments, to ensure that the model can be properly shaped in the additive manufacturing process, especially for those with overhanging parts, areas that need additional structural support or enhanced stability, detailed analysis based on the model's facet information and slicing pattern information is needed. Using the triangular facet information of the model, the normal vector of each facet is calculated. The angle between the facet normal vector and the printing platform direction (vector (0, 0, -1)) is detected, and if it is less than a certain threshold (for example, 15° to 30°), the facet may be in an overhanging state. The model is sliced to obtain the slicing pattern of each layer. Compare consecutive slice layers (i layer and i+1 layer), if the white area (i.e. the area to be printed) of i+1 layer is not continuously vertically intersected with the white area of i layer, then these white areas in i+1 layer are considered as overhanging facets. For points and edges, it is detected whether the geometric conditions of overhanging are met (such as the point is lower than all points in the field, and the edge direction is close to 90° with the vertical direction). Identify the lowest point (overhanging point) and generate a surrounding area around it, such as a concentric circle or a rectangle. Analyze the morphology of the overhanging edge, and select an elliptical, rectangular, etc. enhanced area according to the morphology.

[0124] For areas with high slope (close to vertical), no additional support may be needed; while for areas with low slope (close to horizontal), the support density needs to be identified and increased. Calculate the angle between the facet and the vertical direction, and if it is greater than a certain threshold (such as 0° but less than 90°), it is identified as a candidate for auxiliary points. Calculate the center of gravity of the model layer by layer, compare the projection distance of the center of gravity of different layers on the XY plane, and if the difference exceeds the threshold, support needs to be added to the facet facing the platform. Identify those edges with an angle less than a given threshold, and if the normal of the edge is downward, add support points to these edges.

[0125] Through the above analysis method, the challenging parts in the 3D model can be accurately identified and processed, ensuring the rationality and efficiency of the support structure, and thus improving the overall printing effect.

[0126] The following is a specific embodiment, Figure 10 is a schematic diagram of a method for generating support elements for a three-dimensional model according to an optional embodiment of the present application, as Figure 10As shown, the original 3D model is imported. Before the model is printed, pre-processing can be performed. This includes checking the integrity of the model, fixing any possible errors such as closedness issues, and generating a kdtree structure for fast query to quickly identify and process the geometric features of the model in subsequent steps. Then the lowest regions are detected, identifying the overhanging points, edges and faces on the model, which are the most support-needed parts as they are prone to deformation during printing without support. The enhanced regions are detected, determining those regions that need additional support to enhance the stability and quality of printing. These regions usually surround the overhanging points or edges, requiring more intensive support to prevent possible deviation or distortion during printing. The auxiliary regions are detected, including those places that need general auxiliary points, barycentric offset auxiliary points or critical edge auxiliary points. These regions may not be directly overhanging, but their structural characteristics or inclination angles require additional support to ensure printing success. According to the different types of detected regions, the corresponding support anchor points are collected. After generating the support anchor points, filtering can be performed to remove those points that may interfere with the model itself or other support structures. The filtered support anchor points will be output as the final result of the pre-processing of the model before printing, which will be used to generate the actual support structure.

[0127] Through the above steps, the present scheme can intelligently identify the parts that need the most support and generate optimized support structures, which not only ensures the stability of the model during printing, but also avoids the overuse of materials, improving the printing efficiency and cost-effectiveness.

[0128] Currently, due to uneven distribution of support points, the printed object lacks support in complex edge parts, and the over-dense support causes material waste and difficult post-processing. It should be noted that for the foregoing method embodiments, in order to simply describe, they are all expressed as a combination of a series of actions, but those skilled in the art should know that the present application is not limited by the order of the described actions, because according to the present application, certain steps can be performed in other order or simultaneously. Secondly, those skilled in the art should know that the embodiments described in the specification are all preferred embodiments, and the actions and modules involved are not necessarily necessary for the present application.

[0129] Through the description of the above embodiments, those skilled in the art can clearly understand that the method for generating a support element for a three-dimensional model according to the above embodiments can be implemented by means of software and a necessary general hardware platform, and of course can also be implemented by hardware, but in many cases the former is a better embodiment. Based on such understanding, the technical solutions of the present application can be embodied in the form of a software product in essence or in the form of a part of the prior art that contributes to the present application. The computer software product is stored in a storage medium (such as a ROM / RAM, a magnetic disk, or an optical disk) and includes a plurality of instructions for causing a terminal device (which can be a mobile phone, a computer, a server, or a network device) to execute the method described in each embodiment of the present application.

[0130] According to still another aspect of the embodiments of the present application, a 3D printing system is also provided, which includes: a processor configured to execute the method for generating a support element for a three-dimensional model according to any one of the above; and a 3D printing device configured to perform 3D printing based on the three-dimensional model and the generated support element.

[0131] The embodiments of the present application can provide a computer device. Optionally, in the present embodiment, the computer device can be located in at least one network device of a plurality of network devices of a computer network. The computer device includes a memory and a processor.

[0132] The memory can be used to store software programs and modules, such as program instructions / modules corresponding to the method and device for generating a support element for a three-dimensional model in the embodiments of the present application. The processor executes various functional applications and data processing by running the software programs and modules stored in the memory, that is, implements the method for generating a support element for a three-dimensional model described above. The memory can include a high-speed random access memory, and can also include a non-volatile memory, such as one or more magnetic storage devices, a flash memory, or other non-volatile solid-state memories. In some examples, the memory can further include a memory remotely arranged with respect to the processor, which can be connected to the computer terminal through a network. Examples of the above network include but are not limited to the Internet, an intranet, a local area network, a mobile communication network, and a combination thereof.

[0133] The processor can invoke the information and application stored in the memory through the transmission device to perform the following steps: determining a target region of the three-dimensional model; determining a target plane for placing the three-dimensional model, and obtaining a projection image of the target region of the three-dimensional model on the target plane; determining a plurality of first support projection points on a first contour of the projection image; determining a second virtual contour of the projection image based on a predetermined distance, wherein the first contour surrounds the second virtual contour, and determining a plurality of second support projection points on the second virtual contour; determining a first support anchor point of the target region of the three-dimensional model based on at least the first support projection points and the second support projection points; and generating a support element based on the determined first support anchor point.

[0134] Optionally, the processor can further execute program codes of the following steps: determining the target region of the three-dimensional model comprises determining a target part of the projection image of the three-dimensional model on the target plane, wherein the target region of the three-dimensional model is configured to face and align with the target part of the projection image.

[0135] Optionally, the processor can further execute program codes of the following steps: the target region comprises a hanging region, and the hanging region comprises at least one of a hanging face, a hanging edge, and a hanging point.

[0136] Optionally, the processor can further execute program codes of the following steps: the target region further comprises an enhancement region, and the enhancement region is configured to at least partially surround the hanging region.

[0137] Optionally, the processor can further execute program codes of the following steps: the target region comprises an auxiliary region, and the auxiliary region comprises at least one of an inclined region, a center of gravity offset region, and a critical edge.

[0138] Optionally, the processor can further execute program codes of the following steps: the second support anchor points are arranged on at least one of the hanging region, the enhancement region, or the auxiliary region, and the support element is generated based on the second support anchor points.

[0139] Optionally, the processor can further execute program codes of the following steps: the distribution density of the second support anchor points is greater than the distribution density of the first support anchor points.

[0140] Optionally, the processor can further execute program codes of the following steps: when the minimum distance between the generated support element and the three-dimensional model is less than a threshold value, or when the generated support element interferes with the three-dimensional model, the generated support element is removed.

[0141] Optionally, the processor can further execute program codes of the following steps: at least one of the hanging region, the enhancement region, or the auxiliary region is determined based on face information of the three-dimensional model and / or slice pattern information of the three-dimensional model.

[0142] The embodiments of the present application provide a method for generating support elements for a three-dimensional model. First, a target area of the three-dimensional model where support elements are desired is determined. It is well known that support elements can extend from the lower part of the three-dimensional model to the base or bottom to support the printed object during 3D printing. However, the support elements are not necessary to support all parts of the three-dimensional model, for example, some parts of the three-dimensional model are stable by themselves, or some parts of the three-dimensional model are desired to have good surface quality and avoid using support elements. The target area allows the operator to arbitrarily specify.

[0143] After the target area of the three-dimensional model is determined, support anchor points located in the target area need to be determined. For example, the target area is projected to a target plane on which the three-dimensional model is placed to obtain a closed projection image. The projection image has an outer contour and an optional inner contour. For example, a substantially circular projection image has an outer contour, and a substantially annular projection image has an outer contour and an inner contour. Figures 11A-11C A projection image of a target area of a three-dimensional model according to some embodiments is shown.

[0144] In some embodiments, one or more support projection points are determined on the outer contour, for example, support projection points arranged substantially uniformly at intervals along the outer contour. In some embodiments, one or more support projection points are also determined on the inner contour, for example, support projection points arranged substantially uniformly at intervals along the inner contour. In some embodiments, the adjacent intervals of the plurality of support projection points arranged on the outer contour and the optional inner contour are different. Figure 11A The projection image 110 shown has an outer contour 111 on which a plurality of support projection points 119 are determined.

[0145] Thereafter, more support projection points also need to be determined. In some embodiments, the outer contour is biased to determine a new virtual contour, so as to determine a plurality of support projection points on the new virtual contour. For example, the outer contour is biased equidistantly. Figure 11B The outer contour 111 and the new virtual contour 112 of the projection image 110 are shown, and the new virtual contour 112 is determined by uniformly biasing the outer contour 111 by a predetermined distance (e.g., 0.5mm-5mm). There are a plurality of support projection points 118 on the new virtual contour 112, and the intervals of adjacent support projection points 118 are the same or different.

[0146] Similarly, more support projection points also need to be determined. In some embodiments, the contour (the outer contour or the virtual contour) is biased to determine a new virtual contour, so as to determine a plurality of support projection points on the new virtual contour. For example, the outer contour is biased non-equidistantly. Figure 11CThe outer contour 111 of the projection image 110 and the new virtual contour 112, 113 are displayed, and the new virtual contour 113 is determined by unevenly offsetting the contour 112 by a predetermined distance (for example, 0.5mm-5mm). The new virtual contour 113 has a plurality of support projection points 117, and the intervals of adjacent support projection points 117 are the same or different. In this way, a plurality of support projection points in the projection image can be determined.

[0147] According to the projection relationship, support anchor points associated with the plurality of support projection points are determined. It can be understood that the projection image is determined based on the projection of the target region of the three-dimensional model on the target plane, and then the associated support anchor points can be determined according to the support projection points in the projection image. In other words, the projection of the support anchor points on the target plane is the support projection point. Different support anchor points can not be at the same height, but their projection points (i.e., support projection points) are in the same projection image.

[0148] After the support anchor points are determined, different types of support elements can be generated, such as support elements with different sizes or shapes; a target plane for placing the three-dimensional model is determined, and a projection image of the target region of the three-dimensional model on the target plane is obtained; a plurality of first support projection points are determined on a first contour of the projection image; a second virtual contour of the projection image is determined based on a predetermined distance, wherein the first contour surrounds the second virtual contour, and a plurality of second support projection points are determined on the second virtual contour; at least based on the first support projection points and the second support projection points, first support anchor points of the target region of the three-dimensional model are determined; and based on the determined first support anchor points, support elements are generated, achieving the purpose of adding support structures for specific regions, thereby achieving the technical effects of improving support effect and saving materials, and further solving the technical problems of missing support for printed objects at complex edge parts due to uneven distribution of support points, and difficulty in post-processing caused by excessive density of support.

[0149] A person of ordinary skill in the art can understand that all or part of the steps in the above-mentioned embodiments can be completed by instructing the hardware related to the terminal device through a program, and the program can be stored in a non-volatile storage medium, which can include a flash disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk, etc.

[0150] The embodiments of the present application also provide a non-volatile storage medium. Optionally, in the present embodiment, the above-mentioned non-volatile storage medium can be used to save the program code executed by the method for generating support elements for a three-dimensional model provided by the above-mentioned embodiments.

[0151] Optionally, in the embodiment, the non-volatile storage medium can be located in any one of the computer terminals in the computer terminal group in the computer network, or in any one of the mobile terminals in the mobile terminal group.

[0152] Optionally, in the embodiment, the non-volatile storage medium is configured to store program code for performing the following steps: determining a target region of the three-dimensional model; determining a target plane for placing the three-dimensional model, and obtaining a projection image of the target region of the three-dimensional model on the target plane; determining a plurality of first support projection points on a first contour of the projection image; determining a second virtual contour of the projection image based on a predetermined distance, wherein the first contour encloses the second virtual contour, and determining a plurality of second support projection points on the second virtual contour; determining first support anchor points of the target region of the three-dimensional model based on at least the first support projection points and the second support projection points; and generating a support element based on the determined first support anchor points.

[0153] Optionally, in the embodiment, the non-volatile storage medium is configured to store program code for performing the following steps: determining a target region of the three-dimensional model includes determining a target portion of a projection image of the three-dimensional model on a target plane, wherein the target region of the three-dimensional model is configured to face and align with the target portion of the projection image.

[0154] Optionally, in the embodiment, the non-volatile storage medium is configured to store program code for performing the following steps: the target region includes a hanging region, and the hanging region includes at least one of a hanging face, a hanging edge, and a hanging point.

[0155] Optionally, in the embodiment, the non-volatile storage medium is configured to store program code for performing the following steps: the target region further includes an enhancement region, and the enhancement region is configured to at least partially surround the hanging region.

[0156] Optionally, in the embodiment, the non-volatile storage medium is configured to store program code for performing the following steps: the target region includes an auxiliary region, and the auxiliary region includes at least one of an inclined region, a center of gravity offset region, and a critical edge.

[0157] Optionally, in the embodiment, the non-volatile storage medium is configured to store program code for performing the following steps: the second support anchor points are arranged on at least one of the hanging region, the enhancement region, or the auxiliary region, and the support element is generated based on the second support anchor points.

[0158] Optionally, in the embodiment, the non-volatile storage medium is configured to store program code for performing the following steps: a distribution density of the second support anchor points is greater than a distribution density of the first support anchor points.

[0159] Optionally, in the embodiment, the non-volatile storage medium is configured to store program code for performing the following step: removing the generated support element when the minimum distance between the generated support element and the three-dimensional model is less than a threshold value, or when the generated support element interferes with the three-dimensional model.

[0160] Optionally, in the embodiment, the non-volatile storage medium is configured to store program code for performing the following step: determining at least one of the overhanging region, the enhanced region, or the auxiliary region based on the patch information of the three-dimensional model and / or the slicing pattern information of the three-dimensional model.

[0161] The embodiment of the present application also provides a computer program product, comprising a computer program, and optionally, in the embodiment, the computer program can be executed by a processor to achieve the following: determining a target region of a three-dimensional model; determining a target plane for placing the three-dimensional model, and obtaining a projection image of the target region of the three-dimensional model on the target plane; determining a plurality of first support projection points on a first contour of the projection image; determining a second virtual contour of the projection image based on a predetermined distance, wherein the first contour surrounds the second virtual contour, and determining a plurality of second support projection points on the second virtual contour; determining a first support anchor point of the target region of the three-dimensional model based on at least the first support projection points and the second support projection points; and generating a support element based on the determined first support anchor point.

[0162] The above-mentioned serial numbers of the embodiments of the present application are only for description, and do not represent the advantages and disadvantages of the embodiments.

[0163] In the above-mentioned embodiments of the present application, the description of each embodiment has its own emphasis, and the parts not described in detail in a certain embodiment can be referred to the related description of other embodiments.

[0164] In several embodiments provided in the present application, it should be understood that the disclosed technical contents can be implemented by other manners. Among them, the above-mentioned device embodiments are only schematic, for example, the division of the units can be a logical function division, and in actual implementation, there can be another division manner, for example, a plurality of units or components can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the coupling or direct coupling or communication connection between the units or modules shown or discussed can be indirect coupling or communication connection through some interfaces, units or modules, which can be electrical or other forms.

[0165] The units described as separate components can or can not be physically separate, and the components shown as units can or can not be physical units, that is, they can be located in one place, or can be distributed on multiple units. According to actual needs, part or all of the units can be selected to achieve the purpose of the embodiment scheme.

[0166] In addition, each function unit in each embodiment of the present application can be integrated in one processing unit, or each unit can be physically present separately, or two or more units can be integrated in one unit. The integrated unit can be realized in the form of hardware or in the form of a software function unit.

[0167] When the integrated unit is realized in the form of a software function unit and sold or used as an independent product, it can be stored in a non-volatile storage medium. Based on this understanding, the technical solutions of the present application or the entire or part of the technical solutions that essentially contribute to the prior art can be embodied in the form of a software product. The computer software product is stored in a storage medium and includes a plurality of instructions for causing a computer device (which can be a personal computer, a server or a network device, etc.) to execute all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes a U disk, a read-only memory (ROM, Read-Only Memory), a random access memory (RAM, Random Access Memory), a mobile hard disk, a magnetic disk or an optical disk, and various media that can store program codes.

[0168] The above is only the preferred embodiment of the present application. It should be noted that for those skilled in the art, without departing from the principles of the present application, a number of improvements and refinements can be made, and these improvements and refinements should be considered as the protection scope of the present application.

Claims

1. A method of generating a support element for a three-dimensional model, characterized in that, comprising: determining a target region of a three-dimensional model; determining a target plane for placing the three-dimensional model, and obtaining a projection image of the target region of the three-dimensional model on the target plane; determining a plurality of first support projection points on a first contour of the projection image; determining a second virtual contour of the projection image based on a predetermined distance offset of the first contour, wherein the first contour encloses the second virtual contour, and determining a plurality of second support projection points on the second virtual contour; determining first support anchor points of the target region of the three-dimensional model based on at least the first support projection points and the second support projection points; and generating support elements based on the determined first support anchor points.

2. The method of claim 1, wherein, The determining of the target region of the three-dimensional model comprises determining a target portion of a projection image of the three-dimensional model on the target plane, wherein the target region of the three-dimensional model is configured to face and align with the target portion of the projection image.

3. The method of claim 1, wherein, The target region comprises a hanging region, and the hanging region comprises at least one of a hanging face, a hanging edge, and a hanging point.

4. The method of claim 3, wherein, The target region further comprises an enhanced region, and the enhanced region is configured to at least partially surround the hanging region.

5. The method of claim 1, wherein, The target region comprises an auxiliary region, and the auxiliary region comprises at least one of an inclined region, a center of gravity offset region, and a critical edge.

6. The method according to any one of claims 3 to 5, characterized in that, Further comprising setting second support anchor points on at least one of the hanging region, the enhanced region, or the auxiliary region, and generating support elements based on the second support anchor points.

7. The method of claim 6, wherein, The second support anchor points have a distribution density greater than a distribution density of the first support anchor points. Further comprising:

8. The method according to claim 1 or 7, characterized in that, removing the generated support elements when a minimum distance between the generated support elements and the three-dimensional model is less than a threshold value, or when the generated support elements interfere with the three-dimensional model. Further comprising:

9. The method of claim 6, wherein, determining at least one of the hanging region, the enhanced region, or the auxiliary region based on face sheet information of the three-dimensional model and / or slice pattern information of the three-dimensional model. The target region comprises a first portion and a second portion, and an average density of support anchor points of the first portion is greater than an average density of support anchor points of the second portion.

10. The method of claim 1, wherein, comprising a program configured to perform the method of generating support elements for a three-dimensional model according to any one of claims 1 to 10.

11. A non-volatile storage medium, comprising: comprising:

12. A 3D printing system, characterized by a processor configured to perform the method of generating support elements for a three-dimensional model according to any one of claims 1 to 10; and a 3D printing device configured to perform 3D printing based on the three-dimensional model and the generated support elements. ​ ​