METHOD FOR GENERATING A COMPONENT MESH, USE OF A COMPONENT MESH, COMPUTER PROGRAM AND COMPUTER-READABLE MEDIUM
20220374567 · 2022-11-24
Inventors
Cpc classification
G06T19/00
PHYSICS
G06F2113/10
PHYSICS
International classification
Abstract
A method is disclosed for generating a component mesh of a component that may be built-up layer by layer in an additive manufacturing build-up process. The method includes providing a three-dimensional initial component mesh composed of initial mesh elements of uniform shape which include initial mesh nodes and initial mesh edges extending between the initial mesh nodes; slicing the initial component mesh by at least one cutting plane such that initial mesh elements are divided into at least two resulting mesh elements, wherein at the intersection points of the at least one cutting plane with edges of initial mesh elements resulting mesh nodes are defined; determining the position of each initial mesh element with respect to each cutting plane and thus which initial mesh element is divided into resulting mesh elements and which is not; and determining the shape of each resulting mesh element.
Claims
1. A method for generating a component mesh of a component, wherein the component is configured to be built-up layer by layer in an additive manufacturing build-up process, wherein the component mesh is configured to be used in simulating the component and/or the additive manufacturing build-up process of the component, wherein the component mesh is configured to be used to get information on thermal issues during the build-up and to capture a preview on distortions that might arise due to the complex thermo-mechanical process during the additive manufacturing build-up process, and wherein the component mesh is generated by dividing a volume of the component into a finite number of elements, the method comprising: providing a three-dimensional initial component mesh composed of initial mesh elements of uniform shape which comprise initial mesh nodes and initial mesh edges extending between the initial mesh nodes; slicing the initial component mesh by at least one cutting plane such that initial mesh elements are divided into at least two resulting mesh elements, wherein at the intersection points of the at least one cutting plane with edges of initial mesh elements resulting mesh nodes are defined; determining a position of each initial mesh element with respect to each cutting plane and thus which initial mesh element is divided into resulting mesh elements and which initial mesh element is not divided; and determining the shape of each resulting mesh element.
2. The method of claim 1, wherein the slicing of the initial component mesh comprises slicing the initial component mesh by several cutting planes which run parallel to each other to generate a component mesh composed of several mesh layers superimposed upon each other.
3. The method of claim 2, wherein the slicing of the initial component mesh further comprises selecting a distance between the cutting planes such that each initial mesh element is cut a maximum of three times.
4. The method of claim 1, wherein the providing of the three-dimensional initial component comprises providing a tetrahedron mesh composed of tetrahedron-shaped mesh elements each having four initial mesh nodes.
5. The method of claim 1, wherein the determining of the position of each initial mesh element comprises calculating, for each initial mesh element a cutting code cc or cutting codes cc's which indicate(s) the position(s) of the initial mesh element with respect to the cutting plane(s).
6. The method of claim 5, wherein the calculating of the cutting code cc of an initial mesh element related to a particular cutting plane comprises: creating an unsorted list n.sub.us={n.sub.us,1, n.sub.us,2, n.sub.us,3,. . . , n.sub.us,1} of i characters n.sub.us,1, n.sub.us,2, n.sub.us,3, . . . , n.sub.us,i, such as numbers or letters, which represent the initial mesh nodes of the initial mesh element; assigning a cutting index m.sub.us,1, m.sub.us,2, m.sub.us,3, . . . , m.sub.us,i to each initial mesh node, wherein an initial mesh node which is below the particular cutting plane is assigned the cutting index 0, an initial mesh node which is in the particular cutting plane is assigned the cutting index 1 and an initial mesh node which is above the particular cutting plane is assigned the cutting index 2; creating an unsorted list m.sub.us={m.sub.us,1, m.sub.us,2, m.sub.us,3, . . . , m.sub.us,i} of the i cutting indices m.sub.us,1, m.sub.us,2, m.sub.us,3, . . . , m.sub.us,i; sorting the cutting indices m.sub.us,1, m.sub.us,2, m.sub.us,3, . . . , m.sub.us,i of the list m.sub.us={m.sub.us,1, m.sub.us,2, m.sub.us,3, . . . , m.sub.us,i} in ascending order to create a sorted list m.sub.s={m.sub.s,1, m.sub.s,2, m.sub.s,3, . . . , m.sub.s,i} and permutating the characters n.sub.us,1, n.sub.us,2, n.sub.us,3, . . . , n.sub.us,i of the list n.sub.us={n.sub.us,1, n.sub.us,2, n.sub.us,3, . . . , n.sub.us,i} to create a sorted list n.sub.s={n.sub.s,1, n.sub.s,2, n.sub.s,3, . . . , n.sub.s,i} which is sorted in correspondence with the sorted list m.sub.s={m.sub.s,1, m.sub.s,2, m.sub.s,3, . . . , m.sub.s,i}; and calculating the cutting code cc using the sorted cutting indices m.sub.s,1, m.sub.s,2, m.sub.s,3, . . . , m.sub.s,i.
7. The method of claim 6, wherein the cutting code cc which has one to four digits is calculated using the following formula:
cc=m.sub.s,1*1000+m.sub.s,2*100+m.sub.s,3*10+m.sub.s,4.
8. The method of claim 7, wherein, for each initial mesh element, it is determined whether the respective initial mesh element is cut by one or more cutting planes and divided into resulting mesh elements or not cut based on the calculated cutting codes cc's, wherein: when a cutting code cc is 0 or 2222, the respective cutting plane does not cut the respective initial mesh element, when a cutting code cc is 1 or 1222, one initial mesh node of the respective initial mesh element belongs to the respective cutting plane, when a cutting code cc is 11 or 1122, one edge of the respective initial mesh element (5) belongs to the respective cutting plane, when a cutting code cc is 111 or 1112, one face of the respective initial mesh element (5) belongs to the respective cutting plane, when a cutting code cc is 2, 12, 22, 112, 122 or 222, the respective initial mesh element is cut by the respective cutting plane, and when a cutting code cc is 1111, the respective initial mesh element is degenerated.
9. The method of claim 8, wherein, when it is determined that a respective initial mesh element is cut by only one cutting plane and thus divided into two resulting mesh elements, the shape of the two resulting mesh elements is determined by the cutting code cc associated with the respective initial mesh element and the cutting plane which cuts the respective initial mesh element, wherein: when the cutting code cc is 2 or 222, this indicates that the cutting plane divides the initial mesh element in a triangular prism and a tetrahedron, when the cutting code cc is 12 or 122, this indicates that the cutting plane divides the initial mesh element in a quadrangular pyramid and a tetrahedron, when the cutting code cc is 22, this indicates that the cutting plane divides the initial mesh element in two triangular prisms, and when the cutting code cc is 112, this indicates that the cutting plane divides the initial mesh element in two tetrahedrons.
10. The method according to of claim 8, wherein, when it is determined that a respective initial mesh element is cut by at least two cutting planes, a first cutting code cc1 associated with the respective initial mesh element and a first cutting plane and a second cutting code cc2 associated with the respective initial mesh element and a second cutting plane, the first and second cutting planes being adjacent to each other and cut the respective initial mesh element, are considered to determine the shape of one or two resulting mesh elements delimited by the first and second cutting planes between the first and second cutting planes within the respective initial mesh element, wherein: when the first cutting code cc1 is 2, 12 or 112 and the second cutting code cc2 is 0 or 1, or when the first cutting code cc1 is greater than 1111 and the second cutting code cc2 is 0, 1, 11, 12, 111, 112, 122 or 222, this indicates that a tetrahedron is delimited by the first and second cutting planes, when the first cutting code cc1 is 2, 12 or 112 and the second cutting code cc2 is 2, or when the first cutting code cc1 is 22 and the second cutting code cc2 is 0, 1 or 11, or when the first cutting code cc1 is 222 and the second cutting code cc2 is 0, 1, 11 or 111, or when the first cutting code cc1 is 222 and the second cutting code cc2 is 112, 122 or 222, or when the first cutting code cc1 is greater than 1111 and the second cutting code cc2 is 2 or 22, this indicates that a triangular prism is delimited by the first and second cutting planes, when the first cutting code cc1 is 122 and the second cutting code cc2 is 0, 1 or 11, this indicates that a quadrangular pyramid is delimited by the first and second cutting planes, when the first cutting code cc1 is 22 and the second cutting code cc2 is 22, this indicates that a hexahedron is delimited by the first and second cutting planes, when the first cutting code cc1 is 22 or 122 and the second cutting code cc2 is 12, or when the first cutting code cc1 is 122 and the second cutting code cc2 is 22, this indicates that a degenerated hexahedron is delimited by the first and second cutting planes, when the first cutting code cc1 is 22 and the second cutting code cc2 is 2, or when the first cutting code cc1 is 222 and the second cutting code cc2 is 22, this indicates that a degenerated hexahedron and a tetrahedron are delimited by the first and second cutting planes, when the first cutting code cc1 is 122 and the second cutting code cc2 is 2, or when the first cutting code cc1 is 222 and the second cutting code cc2 is 12, this indicates that two triangular prisms, one of which is degenerated, are delimited by the first and second cutting planes, and when the first cutting code cc1 is 222 and the second cutting code cc2 is 2, this indicates that two triangular prisms are delimited by the first and second cutting planes.
11. The method claim 10, wherein the cases in which two resulting mesh elements are delimited by the first and second cutting planes within the respective initial mesh element are due to the fact that, when the trace of the first and second cutting planes in a tetrahedron face of the respective initial mesh element defines a pentagon, the pentagon is divided into a quadrangle and a triangle.
12. The method of claim 1, further comprising: projecting at least one initial mesh node, especially all initial mesh nodes, whose distance to a cutting plane is less than a predetermined threshold value, in particular less than one tenth of the smallest resulting mesh element thickness near this initial mesh node, into the cutting plane.
13. The method of claim 1, further comprising: saving all resulting mesh elements which replace the initial mesh elements on a storage medium.
14. The method of claim 1, wherein the at least one cutting plane is a boundary plane of a boundary of the component, and wherein resulting mesh elements outside the boundary are excluded from the component mesh.
15. The method of claim 1, further comprising: thermally simulating, mechanically simulating, and/or thermos-mechanically simulating, with the generated component mesh, the component and/or an additive manufacturing build-up process of the component.
16. (canceled)
17. A non-transitory computer-readable medium comprising instructions which, when executed on at least one computer, cause the at least one computer to: provide a three-dimensional initial component mesh composed of initial mesh elements of uniform shape which comprise initial mesh nodes and initial mesh edges extending between the initial mesh nodes; slicing the initial component mesh by at least one cutting plane such that initial mesh elements are divided into at least two resulting mesh elements, wherein at the intersection points of the at least one cutting plane with edges of initial mesh elements resulting mesh nodes are defined; determining a position of each initial mesh element with respect to each cutting plane and thus which initial mesh element is divided into resulting mesh elements and which initial mesh element is not divided; and determining the shape of each resulting mesh element.
18. The method of claim 2, wherein the several cutting planes are uniformly spaced from each other.
19. The method of claim 2, wherein the slicing of the initial component mesh further comprises selecting a distance between the cutting planes such that each initial mesh element is cut a maximum of two times.
20. The method of claim 12, wherein all initial mesh nodes are projected.
21. The method of claim 12, wherein the predetermined threshold is less than one tenth of a smallest resulting mesh element thickness near the respective projected initial mesh node.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0048] Further features and advantages of the present disclosure become clear from the following description of embodiments with reference to the enclosed drawings.
[0049]
[0050]
[0051]
[0052]
DETAILED DESCRIPTION
[0053]
[0054]
[0055] The layered component mesh 2 may be used for simulating the additive manufacturing build-up process of the component 1 and has been generated by a method according to an embodiment described below.
[0056] The method for generating the layered component mesh 2 starts with providing a tetrahedron mesh 4 as a three-dimensional initial component mesh composed of tetrahedron-shaped initial mesh elements, in short tetrahedrons 5, which each include four initial mesh nodes 6 and six initial mesh edges 7 extending between or rather connecting the initial mesh nodes 6. The tetrahedron mesh 4 may be already available from digital construction data, especially CAD data, for the component or may be generated especially based on such digital construction data.
[0057] The tetrahedron mesh 4 is then sliced by a plurality of cutting planes 8 which run parallel to each other and are uniformly spaced from each other such that each tetrahedron 5 of the tetrahedron mesh 4 is divided into at least two resulting mesh elements 9. In this example, the distance d between two adjacent cutting planes 8 is selected such that each tetrahedron 5 is cut maximum three times. At the intersection points of the cutting planes 8 with edges 7 of tetrahedrons 5, resulting mesh nodes 10 are defined.
[0058] However, the desired layered component mesh 2 also includes the knowledge of the shape of the resulting mesh elements 9. Therefore, in a next act, the position of each tetrahedron 5 with respect to each cutting plane 8 and thus which tetrahedron 5 is divided into resulting mesh elements 9 and which is not, is determined. More precisely, for each tetrahedron 5, cutting codes cc's which indicate the positions of the tetrahedron 5 with respect to the cutting planes 8 are calculated. In order to calculate the cutting code cc of a tetrahedron 5 related to a particular cutting plane 8, first an unsorted list n.sub.us={n.sub.us,1, n.sub.us,2, n.sub.us,3, n.sub.us,4} of four characters is created, in this example numbers n.sub.us,1, n.sub.us,2, n.sub.us,3, n.sub.us,4 which represent the four initial mesh nodes 6 of the tetrahedron 5. A cutting index m.sub.us,1, m.sub.us,2, m.sub.us,3, m.sub.us,4 is then assigned to each initial mesh node 6, wherein an initial mesh node 6 which is below the particular cutting plane 8 is assigned the cutting index 0, an initial mesh node 6 which is in the particular cutting plane 8 is assigned the cutting index 1, and an initial mesh node 6 which is above the particular cutting plane 8 is assigned the cutting index 2. An unsorted list m.sub.us={m.sub.us,1, m.sub.us,2, m.sub.us,3, m.sub.us,4} of the four cutting indices m.sub.us,1, m.sub.us,2, m.sub.us,3, m.sub.us,4 is created. In a next act, the cutting indices m.sub.us,1, m.sub.us,2, m.sub.us,3, m.sub.us,4 of the list m.sub.us={m.sub.us,1, m.sub.us,2, m.sub.us,3, m.sub.us,4} are sorted in ascending order to create a sorted list m.sub.s={m.sub.s,1, m.sub.s,2, m.sub.s,3, m.sub.s,4} and the numbers n.sub.us,1, n.sub.us,2, n.sub.us,3, n.sub.us,4 of the list n.sub.us={n.sub.us,1, n.sub.us,2, n.sub.us,3, n.sub.us,4} are permutated to create a sorted list n.sub.s={n.sub.s,1, n.sub.s,2, n.sub.s,3, n.sub.s,4}, which is sorted in correspondence with the sorted list m.sub.s={m.sub.s,1, m.sub.s,2, m.sub.s,3, m.sub.s,4}. Finally, the cutting code cc which has one to four digits is calculated using the sorted cutting indices m.sub.s,1, m.sub.s,2, m.sub.s,3, m.sub.s,4 and the following formula:
cc=m.sub.s,1*1000+m.sub.s,2*100+m.sub.s,3*10+m.sub.s,4
[0059] For each tetrahedron 5, it is determined whether the tetrahedron is cut by one or more cutting planes 8 and thus divided into resulting mesh elements 9 or not based on the calculated cutting codes. When a cutting code cc is 0 or 2222, the respective cutting plane 8 does not cut the respective tetrahedron 5. When a cutting code cc is 1 or 1222, one initial mesh node 6 of the respective tetrahedron 5 belongs to the respective cutting plane 8. When a cutting code cc is 11 or 1122, one initial mesh edge 7 of the respective tetrahedron 5 belongs to the respective cutting plane 8. When a cutting code is 111 or 1112, one initial mesh face 11 of the respective tetrahedron 5 belongs to the respective cutting plane 8. When a cutting code cc is 2, 12, 22, 112, 122 or 222, the respective tetrahedron 5 is cut by the respective cutting plane 8, and when a cutting code cc is 1111, the respective tetrahedron 5 is degenerated, e.g., flat.
[0060] As may be seen from
[0061] When it is determined that a respective tetrahedron 5 is cut by only one cutting plane 8 and thus divided into two resulting mesh elements 9, the shape of the two resulting mesh elements 9 is determined by the cutting code cc associated with the respective tetrahedron 5 and the cutting plane 8 which cuts the respective tetrahedron 5. When the cutting code cc is 2 or 222, this indicates that the cutting plane 8 divides the tetrahedron 5 in a triangular prism and a tetrahedron. When the cutting code cc is 12 or 122, this indicates that the cutting plane 8 divides the tetrahedron 5 in a quadrangular pyramid and a tetrahedron. When the cutting code cc is 22, this indicates that the cutting plane 8 divides the tetrahedron 5 in two triangular prisms, and when the cutting code cc is 112, this indicates that the cutting plane 8 divides the tetrahedron 5 in two tetrahedrons.
[0062]
[0063] When it is determined that a respective tetrahedron 5 is cut by at least two, in this example two or three cutting planes 8, a first cutting code cc1 associated with the respective tetrahedron 5 and a first cutting plane 8 and a second cutting code cc2 associated with the respective tetrahedron 5 and a second cutting plane 8, the first and second cutting planes 8 being adjacent to each other and cut the respective tetrahedron 5, are considered to determine the shape of one or two resulting mesh elements 9 delimited by the first and second cutting planes 8 between the first and second cutting planes 8 within the respective tetrahedron 5. When the first cutting code cc1 is 2, 12 or 112 and the second cutting code cc2 is 0 or 1, or when the first cutting code cc1 is greater than 1111 and the second cutting code cc2 is 0, 1, 11, 12, 111, 112, 122 or 222, this indicates that a tetrahedron is delimited by the first and second cutting planes 8. When the first cutting code cc1 is 2, 12 or 112 and the second cutting code cc2 is 2, or when the first cutting code cc1 is 22 and the second cutting code cc2 is 0, 1 or 11, or when the first cutting code cc1 is 222 and the second cutting code cc2 is 0, 1, 11 or 111, or when the first cutting code cc1 is 222 and the second cutting code cc2 is 112, 122 or 222, or when the first cutting code cc1 is greater than 1111 and the second cutting code cc2 is 2 or 22, this indicates that a triangular prism is delimited by the first and second cutting planes 8. When the first cutting code cc1 is 122 and the second cutting code cc2 is 0, 1 or 11, this indicates that a quadrangular pyramid is delimited by the first and second cutting planes 8. When the first cutting code cc1 is 22 and the second cutting code cc2 is 22, this indicates that a hexahedron is delimited by the first and second cutting planes 8. When the first cutting code cc1 is 22 or 122 and the second cutting code cc2 is 12, or when the first cutting code cc1 is 122 and the second cutting code cc2 is 22, this indicates that a degenerated hexahedron is delimited by the first and second cutting planes 8. When the first cutting code cc1 is 22 and the second cutting code cc2 is 2, or when the first cutting code cc1 is 222 and the second cutting code cc2 is 22, this indicates that a degenerated hexahedron and a tetrahedron are delimited by the first and second cutting planes 8. When the first cutting code cc1 is 122 and the second cutting code cc2 is 2, or when the first cutting code cc1 is 222 and the second cutting code cc2 is 12, this indicates that two triangular prisms, one of which is degenerated, are delimited by the first and second cutting planes 8. Finally, when the first cutting code cc1 is 222 and the second cutting code cc2 is 2, this indicates that two triangular prisms are delimited by the first and second cutting planes 8.
[0064] When the trace of the first and second cutting planes 8 in a tetrahedron face 11 of the respective tetrahedron 5 defines a pentagon, this pentagon is divided into a quadrangle and a triangle. This results in one of the above-mentioned cases in which two resulting mesh elements 9 are delimited by the first and second cutting planes 8 within the respective tetrahedron 5, see for example tetrahedron 5d in
[0065]
[0066] In the above manner, the shape(s) of the resulting mesh element(s) 9 between pairs of adjacent cutting planes 8 which cut the respective tetrahedron 5 are determined. The shapes of all remaining resulting mesh elements 9 may be determined based on the determined shape(s) of the resulting mesh element(s) between pairs of adjacent cutting planes 8 and/or by considering at least one of the cutting codes cc's associated with the cutting planes 8 which cut the respective tetrahedron 5.
[0067] In this way, for each tetrahedron 5 the shapes of the resulting mesh elements 9, into which the tetrahedron 5 is divided, and thus the shapes of all resulting mesh elements 9 of the layered component mesh 2 are determined.
[0068] Optionally, at least one initial mesh node 6 whose distance to a respective cutting plane 8 is less than one tenth of the smallest resulting mesh element thickness near this initial mesh node 6 is projected into the respective cutting plane 8.
[0069] All resulting mesh elements 9 are saved on a disk.
[0070] In
[0071] It is to be understood that the elements and features recited in the appended claims may be combined in different ways to produce new claims that likewise fall within the scope of the present disclosure. Thus, whereas the dependent claims appended below depend from only a single independent or dependent claim, it is to be understood that these dependent claims may, alternatively, be made to depend in the alternative from any preceding or following claim, whether independent or dependent, and that such new combinations are to be understood as forming a part of the present specification.
[0072] Although the present disclosure has been described in detail with reference to various embodiments, it is to be understood that the present disclosure is not limited by the disclosed examples, and that numerous additional modifications and variations may be made thereto by a person skilled in the art without departing from the scope of the disclosure.