US20210082182A1 - Layered Meshing for Additive Manufacturing Simulations - Google Patents
Layered Meshing for Additive Manufacturing Simulations Download PDFInfo
- Publication number
- US20210082182A1 US20210082182A1 US16/665,747 US201916665747A US2021082182A1 US 20210082182 A1 US20210082182 A1 US 20210082182A1 US 201916665747 A US201916665747 A US 201916665747A US 2021082182 A1 US2021082182 A1 US 2021082182A1
- Authority
- US
- United States
- Prior art keywords
- mesh
- surface mesh
- virtual layer
- nodes
- planes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B29—WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
- B29C—SHAPING OR JOINING OF PLASTICS; SHAPING OF MATERIAL IN A PLASTIC STATE, NOT OTHERWISE PROVIDED FOR; AFTER-TREATMENT OF THE SHAPED PRODUCTS, e.g. REPAIRING
- B29C64/00—Additive manufacturing, i.e. manufacturing of three-dimensional [3D] objects by additive deposition, additive agglomeration or additive layering, e.g. by 3D printing, stereolithography or selective laser sintering
- B29C64/30—Auxiliary operations or equipment
- B29C64/386—Data acquisition or data processing for additive manufacturing
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B29—WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
- B29C—SHAPING OR JOINING OF PLASTICS; SHAPING OF MATERIAL IN A PLASTIC STATE, NOT OTHERWISE PROVIDED FOR; AFTER-TREATMENT OF THE SHAPED PRODUCTS, e.g. REPAIRING
- B29C64/00—Additive manufacturing, i.e. manufacturing of three-dimensional [3D] objects by additive deposition, additive agglomeration or additive layering, e.g. by 3D printing, stereolithography or selective laser sintering
- B29C64/30—Auxiliary operations or equipment
- B29C64/386—Data acquisition or data processing for additive manufacturing
- B29C64/393—Data acquisition or data processing for additive manufacturing for controlling or regulating additive manufacturing processes
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B33—ADDITIVE MANUFACTURING TECHNOLOGY
- B33Y—ADDITIVE MANUFACTURING, i.e. MANUFACTURING OF THREE-DIMENSIONAL [3-D] OBJECTS BY ADDITIVE DEPOSITION, ADDITIVE AGGLOMERATION OR ADDITIVE LAYERING, e.g. BY 3-D PRINTING, STEREOLITHOGRAPHY OR SELECTIVE LASER SINTERING
- B33Y50/00—Data acquisition or data processing for additive manufacturing
-
- G06F17/5018—
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/23—Design optimisation, verification or simulation using finite element methods [FEM] or finite difference methods [FDM]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/08—Volume rendering
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B33—ADDITIVE MANUFACTURING TECHNOLOGY
- B33Y—ADDITIVE MANUFACTURING, i.e. MANUFACTURING OF THREE-DIMENSIONAL [3-D] OBJECTS BY ADDITIVE DEPOSITION, ADDITIVE AGGLOMERATION OR ADDITIVE LAYERING, e.g. BY 3-D PRINTING, STEREOLITHOGRAPHY OR SELECTIVE LASER SINTERING
- B33Y50/00—Data acquisition or data processing for additive manufacturing
- B33Y50/02—Data acquisition or data processing for additive manufacturing for controlling or regulating additive manufacturing processes
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2113/00—Details relating to the application field
- G06F2113/10—Additive manufacturing, e.g. 3D printing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/18—Manufacturability analysis or optimisation for manufacturability
Definitions
- the present disclosure relates generally to the field of engineering simulation, and, more specifically, to computer-aided design models and additive manufacturing.
- CAD models can be useful in various engineering efforts involved in developing and/or testing of a particular physical, real world object.
- 3D three-dimensional
- Simulation of the additive manufacturing process utilizes volume meshes.
- An optimum volume mesh represents the layers of the object being fabricated without significant deviation from the geometry of the 3D object (i.e., the distance between volume mesh boundary and CAD surface at a given location) with optimal element count (i.e., not too many mesh elements).
- optimal element count i.e., not too many mesh elements.
- additive simulation time highly depends on volume mesh element count. Too few mesh elements can result in inaccurate simulation. Too many mesh elements prolongs simulation processing during the mesh creation or simulation stages.
- the mesh can contain elements having faces which cross layer boundaries. Inaccurate simulations can result from these faces crossing layer boundaries as each layer of additive manufacturing should include self-contained faces.
- a layered volume mesh of a physical object to be created by an additive manufacturing process is generated by identifying a plurality of virtual layer planes slicing across a surface mesh representing the physical object.
- the surface mesh includes a plurality of nodes.
- the surface mesh is modified by projecting a subset of the plurality of nodes to the plurality of virtual planes. One of the subset of the plurality of nodes is within a predetermined distance from an intersection between the surface mesh and one of the virtual layer planes.
- the one node is moved onto the one virtual layer plane. Volume meshing of the modified surface mesh is performed to generate the layered volume mesh.
- Non-transitory computer program products i.e., physically embodied computer program products
- store instructions which when executed by one or more data processors of one or more computing systems, cause at least one data processor to perform operations herein.
- computer systems are also described that can include one or more data processors and memory coupled to the one or more data processors.
- the memory can temporarily or permanently store instructions that cause at least one processor to perform one or more of the operations described herein.
- methods can be implemented by one or more data processors either within a single computing system or distributed among two or more computing systems.
- Such computing systems can be connected and can exchange data or commands or other instructions or the like via one or more connections, including but not limited to a connection over a network (e.g., the Internet, a wireless wide area network, a local area network, a wide area network, a wired network, or the like), via a direct connection between one or more of the multiple computing systems, etc.
- a network e.g., the Internet, a wireless wide area network, a local area network, a wide area network, a wired network, or the like
- a direct connection between one or more of the multiple computing systems etc.
- the current subject matter provides a single button, automatic meshing tool that generates a layered volume mesh conforming to the geometry of a modeled physical object.
- Use of the subject matter described herein eliminates the use of manual software tools and minimizes the amount of user input to generate a simulation quality mesh.
- FIG. 1A illustrates an example CAD model of a physical, real world object.
- FIG. 1B illustrates an example layered volume mesh generated using the methods described herein.
- FIG. 2 illustrates an example process flow diagram for generating a layered volume mesh of a physical object to be created by an additive manufacturing process.
- FIG. 3 illustrates an example surface mesh of the physical world object of FIG. 1 .
- FIG. 4 illustrates a two-dimensional view of an example surface mesh.
- FIG. 5A illustrates a zoomed-in view of an example surface mesh imperfections around virtual layer planes.
- FIG. 5B illustrates a zoomed-in view of an example surface mesh imperfections around virtual layer planes after node perfection.
- FIG. 6A illustrates a zoomed-in view of another example surface mesh imperfections around virtual layer planes.
- FIG. 6B illustrates a zoomed-in view of another example surface mesh imperfections around virtual layer planes after node perfection.
- FIG. 7A illustrates a zoomed-in view of an example surface mesh imperfections around virtual layer planes.
- FIG. 7B illustrates a zoomed-in view of an example surface mesh imperfections around virtual layer planes after node perfection and before reverting projected nodes back to fix overlappings within surface mesh created by the node projection.
- FIG. 8 illustrates an example surface mesh after node projection.
- FIG. 9 illustrates example join surfaces (i.e., surfaces overlapping with virtual layer planes) of an example surface mesh.
- FIG. 10 illustrates a 3D view of a portion of an example surface mesh prior to intersection with virtual layer planes.
- FIG. 11 illustrates a 3D view of a portion of the surface mesh after intersection with virtual layer planes.
- FIG. 12 is an example layer plane having both join loops and intersect loops created using series of nodes on virtual layer planes.
- FIG. 13 illustrates an example layer interface created by triangulating join loops and intersect loops created using series of nodes on virtual layer planes.
- FIG. 14 illustrates an example layer interface having overlapping surface mesh (i.e., join surfaces).
- FIG. 15 illustrates an example layer interface having the overlapping surfaces corrected by deletion.
- FIG. 16 illustrates a 2D view of an example sliced surface mesh after correction of the overlapping surfaces and prior to the deletion of layer interfaces outside of the surface mesh domain.
- FIG. 17 illustrates a 3D view of an example sliced surface mesh of FIG. 16 .
- FIG. 18 illustrates an example sliced surface mesh after layer interface cleanup and prior to surface mesh optimization.
- FIG. 19 illustrates a transparent view of a sliced surface mesh with opaque view of layer interfaces.
- FIG. 20A illustrates an example surface mesh having a number of surface mesh proximal surfaces.
- FIG. 20B illustrates a corrected surface mesh having proximal surfaces of the surface mesh of FIG. 20A .
- FIG. 21 illustrates a cross-sectional view of example layered volume mesh illustrated in FIG. 1B .
- FIG. 22 illustrates an example process flow diagram for generating a layered volume mesh of a physical object to be created by an additive manufacturing process.
- FIG. 23 is another example process flow diagram for generating a layered volume mesh of a physical object to be created by an additive manufacturing process.
- FIG. 24 illustrates an example computer-implemented environment for implementing various aspects described herein.
- FIG. 25 illustrates an example computing architecture for implementing various aspects described herein.
- Object simulations using modeling can inform users of various physical responses of objects when subjected to real world conditions such as stress or other mechanical forces.
- Physical, real world objects can be modeled with a CAD model.
- a physical replica of the CAD-modeled object can be made using additive manufacturing or 3D printing. With 3D printing, a 3D object can be fabricated through the deposition of successive layers of material.
- a layered volume mesh representing the layers of the CAD model can be used to simulate such fabrication.
- Such simulation using the volume mesh of a CAD model having conformal layers (e.g., single interface shared between layers) with cells self-contained within each layer, facilitates improved additive manufacturing.
- the subject matter described herein generates a layered volume mesh of a physical, real world object from a surface mesh representation.
- the subject matter described herein slices the surface mesh to create layered surface mesh and fills the layered surface mesh layers with cells to create layered volume mesh.
- a 3D physical object can be fabricated by depositing successive layers of material by an additive manufacturing process.
- Systems and methods are provided to generate layered volume mesh representing the layers of physical object.
- a plurality of virtual layer planes mathematically representing bottom and top planes of the layers, are constructed or identified.
- a surface mesh representing the physical object surfaces (e.g., a two-dimensional area that may or may not have a curvature), includes a plurality of nodes.
- Surface mesh imperfections around virtual layer planes are corrected, by projecting plurality of nodes of the imperfections, onto closest virtual layer plane (e.g., transforming points in n-space to m-space, where m is less than n, the projection of a point to a plane, as an example, may correspond to a closest point on the plane from the point).
- Surface mesh imperfection may correspond to one or more elements (e.g. node, face, edges etc.) of a mesh that satisfy one or more conditions related to spatial relations between the elements and/or with respect to a virtual layer plane.
- a virtual layer plane may be represented as mathematical representation of a two dimensional surface.
- Modified surface mesh is intersected with the plurality of virtual layer planes.
- Series of surface mesh nodes created by the intersection are collected and triangulated (e.g., generate a set of triangles to cover a surface partly or totally) to create layer interfaces (e.g., interface between the layers).
- Layer interfaces overlapping with surface mesh or outside surface mesh domain are identified and deleted.
- a layered surface mesh formed by surface mesh and layer interfaces is optimized or updated using various surface mesh quality improve algorithms.
- Surface mesh surfaces proximal to layer interfaces remaining after node projection and/or created by surface mesh optimization are identified.
- the identified surface mesh proximal surfaces are corrected, by moving plurality of nodes of the proximal surfaces, to predetermined distance away from closest layer interface.
- a volume mesh is generated by filling layered surface mesh layers.
- the volume mesh is optimized or updated using volume mesh quality improve algorithms.
- the optimized volume mesh is validated for additive manufacturing simulations using virtual layer planes.
- FIG. 1A is an example CAD model 100 of a physical, real world object.
- FIG. 1B is an example layered volume mesh 110 generated using the methods described herein.
- Layered volume mesh 110 includes a plurality of layers (e.g., 120 , 130 , 140 ). Each layer includes a plurality of tetrahedrons (e.g., a solid having four triangular faces such as tetrahedron 132 of layer 130 ).
- FIG. 2 illustrates an example process flow diagram for generating a layered volume mesh of a physical object to be created by an additive manufacturing process.
- a layered volume mesh such as volume mesh 110 of FIG. 1B is generated using an input CAD model, such as CAD model 100 of FIG. 1A , at the end of the process.
- Software can check the input CAD model to determine, at 204 , whether surface re-meshing is required. Surface re-meshing may be required, for example, if the input CAD model has no associated mesh (e.g., a discrete representation of a geometry of individual region of the physical, real world object having a number of triangles and vertices), but is rather just a 3D object representation.
- a surface mesh is generated, at 206 , as described in FIG. 3 . If surface re-meshing is not required, then the faceted data (e.g., two-dimensional triangle representations that together make up the CAD model) is retrieved, at 208 . Virtual layer planes are constructed, at 210 , as described in more detail in FIG. 4 .
- Node projection at 212 can be performed to remedy layering failures, to a surface mesh.
- surface mesh nodes e.g., points along edge of the mesh representation
- FIGS. 5B, 6B, and 7B can be projected (e.g., the nodes within the predetermined threshold range from the virtual layer planes are moved onto the virtual layer planes) as described in more detail in FIGS. 5B, 6B, and 7B .
- a number of different layering operations 230 are performed to the surface mesh after node projection. These layering operations 230 can include, but are not limited to, identifying join surfaces 231 (e.g., surface with having all nodes within the virtual layer plane). The identification of join surfaces are described in more detail in FIG. 8 .
- Join and intersect loops can be created, at 234 , as described in more detail in FIGS. 9-10 .
- a join loop is created by a series of outer nodes of join surface. Surface mesh is intersected with virtual layer planes as described in more detail in FIG. 10 .
- An intersect loop is created by a set of nodes (e.g., a number of nodes) of surface mesh faces (e.g., one-dimensional side of a two-dimensional surface) with only two nodes on virtual layer planes after the surface mesh intersection with virtual layer planes.
- layer interfaces are created. Further details on the join and intersect loop triangulation described in FIG. 13 .
- additional surfaces of layer interface that overlap with join surfaces are identified using join loops.
- one of the overlapping surface is deleted, at 237 , as described in more detail in FIGS. 14-15 .
- additional surfaces of layer interfaces created outside of the surface mesh domain are deleted, at 238 , as described in more detail in FIGS. 16-18 .
- Additional post-layering operations 240 can be performed to further improve a mesh such as additional surface re-meshing 242 , improvement of face quality 244 , and/or fixing overlapping and proximal faces (e.g., faces having a gap less than predetermined tolerance between each other) using node inflation 246 .
- Node inflation is performed by moving nodes of the input which are close and proximal to layer interfaces away from these layer interfaces as described in more detail in FIGS. 5B, 6B, and 7B .
- Volume meshing 250 is used to fill the layered surface mesh with tetrahedrons.
- Volume meshing 250 identifies tetrahedrons with quality that is worse than a quality of the simulation mesh quality and then tries to improve such quality of the tetrahedrons.
- the layered volume mesh such as the one described in FIG. 1B can be validated, at 260 , by identifying tetrahedrons elements spanning across layer planes as well as identifying layers having missing tetrahedrons elements.
- the example CAD model 100 of FIG. 1A can be represented by a surface mesh (e.g., a discrete representation of a geometry having triangular faces and vertices), such as the surface mesh 300 illustrated in FIG. 3 .
- Surface mesh 300 can be generated using any suitable surface mesh generating algorithm.
- FIG. 4 is an example two-dimensional (2D) view of a surface mesh 400 having virtual layer planes overlaid (e.g., surface mesh 300 with virtual layer planes 410 , 420 , 430 ).
- the 2D view represents the cross-sectional plane when the y-axis, as defined in FIG. 1A , is equal to zero.
- the mesh surfaces and virtual layer planes are shown as a lines in the images of two-dimensional view, example FIG. 4 . These surfaces and virtual layer planes in 2D view are referred as line segments.
- the surface mesh 300 is divided into a number of virtual layer planes (e.g., virtual layer planes 410 , 420 , 430 ).
- Virtual layer planes 410 , 430 are layer planes created by defining a mathematical formula rather than using an actual surface defined by triangle facets (e.g., 2 dimensional triangle with three nodes).
- each virtual layer plane 410 , 420 , 430 can be defined by
- Equation (1) Using Equation (1) to define each virtual layer plane, no facets are required. As illustrated in FIG. 4 , virtual layer planes 410 , 420 , 430 virtually slice the surface mesh 300 into a number of layers.
- Imperfections can exist within the surface mesh 400 which can lead to mesh failures during volume meshing or tetrahedron quality issues.
- Mesh failures can occur, for example, when surfaces of the mesh overlap or when element edges have intricate curvatures or acute angles (e.g., less than 30 degrees).
- a surface mesh imperfections 440 around virtual layer planes can exist where there is a low acute angle between two surfaces (e.g., between line segment 480 and mesh imperfection 460 as well as between line segment 490 and mesh perfection 470 ), a zoomed in version of this surface mesh imperfections around virtual layer planes is illustrated in FIG. 5A .
- Line segments 480 , 490 are aligned with virtual layer plane 410 .
- line segment 422 of surface mesh 400 closely parallels virtual layer plane 420 .
- line segment 424 of surface mesh 400 crosses virtual layer plane 420 creating acute angles between line segment 424 and virtual layer plane 420 .
- Another surface mesh imperfection 450 around virtual layer planes exists, as illustrated in more detail in FIG. 6A , where line segment 452 of surface mesh 400 crosses virtual layer plane 430 .
- Another example surface mesh imperfection 460 around virtual layer planes exists, as illustrated in more detail in FIG. 7A , where line segment 462 of surface mesh 400 creates an acute angle (e.g., sharp angle) between line segment 462 and virtual layer plane 410 . More specifically, the acute angle occurs within a portion of line segment 462 (e.g., portion 464 ).
- Surface mesh imperfection 470 around virtual layer planes has similar characteristics as surface mesh imperfection 460 around virtual layer planes.
- nodes of the surface mesh 300 e.g., points along a triangular element of the mesh
- nodes of the surface mesh 300 which are too close to the virtual layer planes are identified.
- nodes may be too close if the distance between the node and the virtual layer plane is within a given projection threshold (e.g., a predetermined distance from one of the virtual layer planes).
- the identified nodes can be projected onto the virtual layer planes. In other words, the nodes can be moved to a different location so as to be on the virtual layer plane, rather than close to it, to avoid slicing failures.
- the faces with all three nodes on virtual layer planes can be treated as join surfaces.
- FIG. 5B illustrates example line segments 522 , 524 after node projection is performed on line segments 422 , 424 , respectively of FIG. 5A .
- line segment 522 is flush with virtual layer plane 420 .
- the gap existing between line segment 422 and virtual layer plane 420 has been eliminated after projection of the nodes of line segment 422 .
- FIG. 6B illustrates an example line segment 652 after node projection is performed on line segment 452 of FIG. 6A .
- a portion of line segment 652 e.g., portion 654
- virtual layer plane 430 after the node projection, rather than crossing virtual layer plane 430 as occurred in FIG. 6A .
- FIG. 7B illustrates a zoomed-in view of an example surface mesh imperfections around virtual layer planes after node perfection and before reverting projected nodes back to fix overlapping within surface mesh created by the node projection.
- portion 464 of line segment 462 is completely overlapping with surface mesh line 480 , which will lead into slicing failures as there are two surface mesh segments overlapping the virtual layer plane.
- These areas are identified and the projected nodes are moved back to the original position before projection as described in more detail in FIG. 8 .
- Such surface mesh imperfections cannot be corrected by projection and will be addressed using one node inflation operation as illustrated in FIG. 20A-B .
- FIG. 8 illustrates an example surface mesh 800 after node projection (e.g., surface mesh 400 after node projection).
- join surfaces occur for faces which have all corresponding nodes within a virtual layer plane.
- join surfaces 810 , 820 have all corresponding nodes within virtual layer plane 420 .
- join surface 830 has all corresponding nodes within virtual layer plane 410 .
- Join surface 840 has all corresponding nodes within virtual layer plane 430 .
- FIG. 9 illustrates 3D view of example join surfaces 900 , 910 (i.e., 3D view of join surfaces 810 , 820 respectively of surface mesh 800 in FIG. 8 .) along with join loops extracted using outer nodes of join surfaces.
- join loop is 2d line representation of join surface.
- a join loop is a loop defined by a set of nodes within a mesh (e.g., a subset of nodes of the mesh). Defining a join loop helps in identifying layer interfaces created for virtual layer plane where there already a join surface from surface mesh representing portion of virtual layer plane and delete layer interface version of surface to avoid overlapping surfaces.
- FIG. 10 illustrates a 3D view of a portion of an example surface mesh 400 prior to intersection with virtual layer planes.
- the surface mesh with face side e.g., pair nodes representing side of triangle face
- a virtual layer plane i.e., one node above and another node below virtual layer plane
- a face is a flat or planar, one-dimensional area that forms a boundary of a solid object.
- face edge 1010 intersecting virtual layer plane 430 .
- the face is split at intersection point with virtual layer plane by creating new node at the intersection point as described in more detail in FIG. 11 .
- the face split is performed one by one for all the face sides interesting any virtual layer plane until there are no face side remain intersecting any virtual layer plane.
- FIG. 11 illustrates a 3D view of a portion of an example surface mesh 400 after intersection with virtual layer planes.
- Face edges which intersect a virtual plane e.g., virtual plane 420 , 430
- Those face edges can be split at the virtual layer planes.
- face edge 1010 is split into face edges 1010 , 1110 as illustrated in FIG. 11 .
- Face edges 1010 and 1110 are split by virtual layer plane 430 such that faces of 1010 are sliced with virtual layer plane 430 .
- the face split is performed one by one for all the face sides interesting any virtual layer plane until there are no face side remain intersecting any virtual layer plane.
- All the surface mesh nodes (e.g., including the new nodes created by split) on virtual layer plane and not part of join loop are identified as intersect nodes.
- An intersect loop for each virtual layer plane is created using series of the identified nodes.
- FIG. 12 is an example virtual layer plane 1200 having both join loops 1220 , 1230 and intersect loops 1210 created using series of nodes on the virtual layer plane.
- Join loops 1220 , 1230 and intersect loop 1210 are triangulated to create a layer interface for virtual layer plane 420 .
- FIG. 13 illustrates an example layer interface 1300 created by triangulating join loops 1220 , 1230 and intersect loops 1210 created using series of nodes on virtual layer planes.
- Layer interface 1300 includes layer interface surfaces 1310 , 1320 and 1330 .
- Layer interface 1300 is the layer interface created for virtual layer plane 420 .
- the nodes of the surface mesh which are used to create the loops are used for the triangulation, hence the layer interfaces conformally gets connected to surface mesh.
- the join loops however, already have join surfaces (e.g., join surfaces 900 , 910 ) connected. For example, the overlap in FIG.
- FIG. 14 illustrates an example layer interface 1400 (i.e., layer interface surfaces 1410 , 1420 ) having overlapping surface mesh (i.e., join surfaces 1320 , 1330 ). These overlapping layer interface surfaces 1320 , 1330 are identified and deleted. Layer interface 1300 is conformally connected surface mesh.
- FIG. 15 illustrates an example layer interface 1500 having the overlapping surfaces corrected by deletion.
- FIG. 16 illustrates a 2D view of an example sliced surface mesh 1600 after correction of the overlapping surfaces and prior to the deletion of layer interfaces outside of the surface mesh domain.
- FIG. 17 illustrates a 3D view of an example sliced surface mesh 1600 of FIG. 16 . Areas 1710 , 1720 represent layer interfaces outside of the domain.
- Areas 1710 , 1720 can be identified using, for example, an auto-identify algorithm which recognizes intersect layer planes exposed to outer space of surface mesh. Once areas 1710 , 1720 are identified, then can be deleted. This auto-identification and deletion process can continue until there are no layer interfaces exposed to the outer space of the mesh.
- FIG. 18 illustrates an example sliced surface mesh 1800 after layer interface cleanup and prior to surface mesh optimization.
- FIG. 19 illustrates a transparent view of a sliced surface mesh 1900 with opaque view of layer interfaces.
- Sliced surface mesh 1900 can include deteriorated sections (e.g., area 1910 ) caused by surface mesh intersection with virtual layer planes and triangulation of join and intersect loops.
- Sliced surface mesh 1900 can be re-meshed to improve triangle quality. Face quality can be further improved using one or more of smooth, swap, split, and/or collapse algorithms.
- FIG. 20A illustrates an example surface mesh 2000 having a number of surface mesh proximal surfaces (i.e., cluster of faces with all nodes with in predetermined distance from layer interfaces) including proximal surfaces 2001 , 2003 , 2005 , 2007 .
- Node inflation i.e., moving a node to predetermined distance away from layer interface in perpendicular direction of the layer interface
- node inflation increases the robustness of volume meshing a layered surface mesh.
- FIG. 20B illustrates a corrected surface mesh 2050 having proximal surfaces 2051 , 2053 , 2055 , 2057 of the surface mesh 2000 of FIG. 20A .
- Proximal surfaces 2051 , 2053 , 2055 , 2057 have faces proximal to layer interface corrected using node inflation.
- FIG. 21 illustrates a cross-sectional view 2100 of example layered volume mesh illustrated in FIG. 1B .
- FIG. 22 is an example process flow diagram 2200 for generating a layered volume mesh of a physical object to be created by an additive manufacturing process.
- a plurality of virtual layer planes that mathematically represent a bottom plane or a top plane of a layer of the physical object are constructed, at 2210 .
- Surfaces of the physical object are modeled by a surface mesh comprising a plurality of nodes.
- One or more imperfections of the surface mesh surrounding the plurality of virtual layer planes are corrected, at 2220 , by projecting a subset of the plurality of nodes of the one or more imperfections onto a virtual layer plane of the plurality of the virtual layer planes that is closest to the subset.
- a modified surface mesh includes the surface mesh having the one or more imperfections corrected.
- the modified surface mesh is intersected, at 2230 , with the plurality of virtual layer planes.
- a layered surface mesh is generated, at 2240 , which includes a plurality of layer interfaces between layers of the modified surface mesh by triangulating a series of surface mesh nodes on the plurality of virtual layer planes.
- the layered surface mesh is optimized or updated, at 2250 , using triangular mesh optimization algorithms.
- One or more proximal surfaces including imperfections of the layered surface mesh remaining after node projection or created by the triangular mesh optimization algorithms are corrected, at 2260 , by moving a subset of the plurality of nodes of the one or more proximal surfaces to a predetermined distance away from layer interface of the plurality of the layer interfaces that is closest to the subset.
- An optimized or updated surface mesh includes the surface mesh having the one or more proximal surfaces corrected. Volume meshing of the optimized or updated surface mesh is performed, at 2270 , to generate the layered volume mesh. The layered volume mesh is optimized, at 2280 , using volume mesh optimization algorithms.
- FIG. 23 is another example process flow diagram 2300 for generating a layered volume mesh of a physical object to be created by an additive manufacturing process.
- a CAD model of a physical object is received, at 2310 .
- the CAD model includes a surface mesh representing the physical object.
- Virtual layer planes are generated, at 2320 , across a surface mesh. Nodes of the surface mesh are projected, at 2330 , toward the virtual layer planes in order to update the surface mesh.
- Conformal layer planes according to the virtual layer planes are generated, at 2340 , to slice the updated surface mesh.
- Mesh optimizations for improving the quality of the surface mesh with the layer planes are performed, at 2250 , and the surface mesh is prepared (e.g., node inflation of proximal surfaces) for volume filling. Volume filling is performed, at 2260 , of the optimized surface mesh and the volume mesh is optimized.
- Validation occurs, at 2270 , to determine whether the mesh surface having the layer planes interfaces with an additive solver.
- FIG. 24 illustrates an example computer-implemented environment 2400 wherein users 2402 can interact with a simulation module 2404 having the various additive manufacturing simulation capabilities as described herein hosted on one or more servers 2406 through a network 2408 .
- the simulation module 2404 can assist the users 2402 with interfacing between an object-oriented modeling language based interface and a hardware description language based interface.
- the users 2402 can interact with the simulation module 2404 through a number of ways, such as over one or more networks 2408 .
- One or more servers 2406 accessible through the network(s) 2408 can host the simulation module 2404 .
- the one or more servers 2406 can also contain or have access to one or more data stores 2410 for storing data for the simulation module 2404 .
- One or more aspects or features of the subject matter described herein can be realized in digital electronic circuitry, integrated circuitry, specially designed application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs) computer hardware, firmware, software, and/or combinations thereof.
- ASICs application specific integrated circuits
- FPGAs field programmable gate arrays
- These various aspects or features can include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which can be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
- the programmable system or computing system can include clients and servers.
- a client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
- computer programs which can also be referred to as programs, software, software applications, applications, components, or code, can include machine instructions for a programmable processor, and/or can be implemented in a high-level procedural language, an object-oriented programming language, a functional programming language, a logical programming language, and/or in assembly/machine language.
- computer-readable medium refers to any computer program product, apparatus and/or device, such as for example magnetic discs, optical disks, solid-state storage devices, memory, and Programmable Logic Devices (PLDs), used to provide machine instructions and/or data to a programmable data processor, including a machine-readable medium that receives machine instructions as a computer-readable signal.
- PLDs Programmable Logic Devices
- the term “computer-readable signal” refers to any signal used to provide machine instructions and/or data to a programmable data processor.
- the computer-readable medium can store such machine instructions non-transitorily, such as for example as would a non-transient solid-state memory or a magnetic hard drive or any equivalent storage medium.
- the computer-readable medium can alternatively or additionally store such machine instructions in a transient manner, for example as would a processor cache or other random access memory associated with one or more physical processor cores.
- a module or processor includes but is not limited to a unit of code that performs a software operation, and can be implemented for example as a subroutine unit of code, or as a software function unit of code, or as an object (as in an object-oriented paradigm), or as an applet, or in a computer script language, or as another type of computer code.
- the software components and/or functionality can be located on a single computer or distributed across multiple computers depending upon the situation at hand.
- FIG. 25 is a diagram 2500 illustrating a sample computing device architecture for implementing various aspects described herein.
- a bus 2504 can serve as the information highway interconnecting the other illustrated components of the hardware.
- a processing system 2508 labeled CPU (central processing unit) e.g., one or more computer processors/data processors at a given computer or at multiple computers
- CPU central processing unit
- a non-transitory processor-readable storage medium such as read only memory (ROM) 2512 and random access memory (RAM) 2516 , can be in communication with the processing system 2508 and can include one or more programming instructions for the operations specified here.
- program instructions can be stored on a non-transitory computer-readable storage medium such as a magnetic disk, optical disk, recordable memory device, flash memory, or other physical storage medium.
- a disk controller 2548 can interface one or more optional disk drives to the system bus 2504 .
- These disk drives can be external or internal floppy disk drives such as 2560 , external or internal CD-ROM, CD-R, CD-RW or DVD, or solid state drives such as 2552 , or external or internal hard drives 2556 .
- the system bus 2504 can also include at least one communication port 2520 to allow for communication with external devices either physically connected to the computing system or available externally through a wired or wireless network.
- the communication port 2520 includes or otherwise comprises a network interface.
- the subject matter described herein can be implemented on a computing device having a display device 2540 (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information obtained from the bus 2504 to the user and an input device 2532 such as keyboard and/or a pointing device (e.g., a mouse or a trackball) and/or a touchscreen by which the user can provide input to the computer.
- a display device 2540 e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor
- an input device 2532 such as keyboard and/or a pointing device (e.g., a mouse or a trackball) and/or a touchscreen by which the user can provide input to the computer.
- input devices 2532 can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback by way of a microphone 2536 , or tactile feedback); and input from the user can be received in any form, including acoustic, speech, or tactile input.
- feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback by way of a microphone 2536 , or tactile feedback); and input from the user can be received in any form, including acoustic, speech, or tactile input.
- the input device 2532 and the microphone 2536 can be coupled to and convey information via the bus 2504 by way of an input device interface 2528 .
- Other computing devices such as dedicated servers, can omit one or more of the display 2540 and display interface 2514 , the input device 2532 , the microphone 2536 , and input device interface 2528 .
- phrases such as “at least one of” or “one or more of” may occur followed by a conjunctive list of elements or features.
- the term “and/or” may also occur in a list of two or more elements or features. Unless otherwise implicitly or explicitly contradicted by the context in which it is used, such a phrase is intended to mean any of the listed elements or features individually or any of the recited elements or features in combination with any of the other recited elements or features.
- the phrases “at least one of A and B;” “one or more of A and B;” and “A and/or B” are each intended to mean “A alone, B alone, or A and B together.”
- a similar interpretation is also intended for lists including three or more items.
- the phrases “at least one of A, B, and C;” “one or more of A, B, and C;” and “A, B, and/or C” are each intended to mean “A alone, B alone, C alone, A and B together, A and C together, B and C together, or A and B and C together.”
- use of the term “based on,” above and in the claims is intended to mean, “based at least in part on,” such that an unrecited feature or element is also permissible.
- the methods and systems described herein may be implemented on many different types of processing devices by program code comprising program instructions that are executable by the device processing subsystem.
- the software program instructions may include source code, object code, machine code, or any other stored data that is operable to cause a processing system to perform the methods and operations described herein and may be provided in any suitable language such as C, C++, JAVA, for example, or any other suitable programming language.
- Other implementations may also be used, however, such as firmware or even appropriately designed hardware configured to carry out the methods and systems described herein.
- the systems' and methods' data may be stored and implemented in one or more different types of computer-implemented data stores, such as different types of storage devices and programming constructs (e.g., RAM, ROM, Flash memory, flat files, databases, programming data structures, programming variables, IF-THEN (or similar type) statement constructs, etc.).
- storage devices and programming constructs e.g., RAM, ROM, Flash memory, flat files, databases, programming data structures, programming variables, IF-THEN (or similar type) statement constructs, etc.
- data structures describe formats for use in organizing and storing data in databases, programs, memory, or other computer-readable media for use by a computer program.
- a module or processor includes but is not limited to a unit of code that performs a software operation, and can be implemented for example as a subroutine unit of code, or as a software function unit of code, or as an object (as in an object-oriented paradigm), or as an applet, or in a computer script language, or as another type of computer code.
- the software components and/or functionality may be located on a single computer or distributed across multiple computers depending upon the situation at hand.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Chemical & Material Sciences (AREA)
- Materials Engineering (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- Manufacturing & Machinery (AREA)
- Software Systems (AREA)
- Mechanical Engineering (AREA)
- Optics & Photonics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
Description
- This application claims priority to Indian Application No. 201941036917, filed Sep. 13, 2019, entitled “Layered Meshing for Additive Manufacturing Simulations,” which is incorporated herein by reference in its entirety.
- The present disclosure relates generally to the field of engineering simulation, and, more specifically, to computer-aided design models and additive manufacturing.
- Computer-aided design (CAD) models can be useful in various engineering efforts involved in developing and/or testing of a particular physical, real world object. Using three-dimensional (3D) printing or additive manufacturing, a 3D object can be fabricated by depositing successive layers of material using a CAD model. Simulation of the additive manufacturing process utilizes volume meshes. An optimum volume mesh represents the layers of the object being fabricated without significant deviation from the geometry of the 3D object (i.e., the distance between volume mesh boundary and CAD surface at a given location) with optimal element count (i.e., not too many mesh elements). Traditionally, additive simulation time highly depends on volume mesh element count. Too few mesh elements can result in inaccurate simulation. Too many mesh elements prolongs simulation processing during the mesh creation or simulation stages. Additionally, with the traditional meshing approach, the mesh can contain elements having faces which cross layer boundaries. Inaccurate simulations can result from these faces crossing layer boundaries as each layer of additive manufacturing should include self-contained faces.
- In one aspect, a layered volume mesh of a physical object to be created by an additive manufacturing process is generated by identifying a plurality of virtual layer planes slicing across a surface mesh representing the physical object. The surface mesh includes a plurality of nodes. The surface mesh is modified by projecting a subset of the plurality of nodes to the plurality of virtual planes. One of the subset of the plurality of nodes is within a predetermined distance from an intersection between the surface mesh and one of the virtual layer planes. The one node is moved onto the one virtual layer plane. Volume meshing of the modified surface mesh is performed to generate the layered volume mesh.
- Non-transitory computer program products (i.e., physically embodied computer program products) are also described that store instructions, which when executed by one or more data processors of one or more computing systems, cause at least one data processor to perform operations herein. Similarly, computer systems are also described that can include one or more data processors and memory coupled to the one or more data processors. The memory can temporarily or permanently store instructions that cause at least one processor to perform one or more of the operations described herein. In addition, methods can be implemented by one or more data processors either within a single computing system or distributed among two or more computing systems. Such computing systems can be connected and can exchange data or commands or other instructions or the like via one or more connections, including but not limited to a connection over a network (e.g., the Internet, a wireless wide area network, a local area network, a wide area network, a wired network, or the like), via a direct connection between one or more of the multiple computing systems, etc.
- The subject matter described herein provides many technical advantages. For example, the current subject matter provides a single button, automatic meshing tool that generates a layered volume mesh conforming to the geometry of a modeled physical object. Use of the subject matter described herein eliminates the use of manual software tools and minimizes the amount of user input to generate a simulation quality mesh.
- The details of one or more variations of the subject matter described herein are set forth in the accompanying drawings and the description below. Other features and advantages of the subject matter described herein will be apparent from the description and drawings, and from the claims.
-
FIG. 1A illustrates an example CAD model of a physical, real world object. -
FIG. 1B illustrates an example layered volume mesh generated using the methods described herein. -
FIG. 2 illustrates an example process flow diagram for generating a layered volume mesh of a physical object to be created by an additive manufacturing process. -
FIG. 3 illustrates an example surface mesh of the physical world object ofFIG. 1 . -
FIG. 4 illustrates a two-dimensional view of an example surface mesh. -
FIG. 5A illustrates a zoomed-in view of an example surface mesh imperfections around virtual layer planes. -
FIG. 5B illustrates a zoomed-in view of an example surface mesh imperfections around virtual layer planes after node perfection. -
FIG. 6A illustrates a zoomed-in view of another example surface mesh imperfections around virtual layer planes. -
FIG. 6B illustrates a zoomed-in view of another example surface mesh imperfections around virtual layer planes after node perfection. -
FIG. 7A illustrates a zoomed-in view of an example surface mesh imperfections around virtual layer planes. -
FIG. 7B illustrates a zoomed-in view of an example surface mesh imperfections around virtual layer planes after node perfection and before reverting projected nodes back to fix overlappings within surface mesh created by the node projection. -
FIG. 8 illustrates an example surface mesh after node projection. -
FIG. 9 illustrates example join surfaces (i.e., surfaces overlapping with virtual layer planes) of an example surface mesh. -
FIG. 10 illustrates a 3D view of a portion of an example surface mesh prior to intersection with virtual layer planes. -
FIG. 11 illustrates a 3D view of a portion of the surface mesh after intersection with virtual layer planes. -
FIG. 12 is an example layer plane having both join loops and intersect loops created using series of nodes on virtual layer planes. -
FIG. 13 illustrates an example layer interface created by triangulating join loops and intersect loops created using series of nodes on virtual layer planes. -
FIG. 14 illustrates an example layer interface having overlapping surface mesh (i.e., join surfaces). -
FIG. 15 illustrates an example layer interface having the overlapping surfaces corrected by deletion. -
FIG. 16 illustrates a 2D view of an example sliced surface mesh after correction of the overlapping surfaces and prior to the deletion of layer interfaces outside of the surface mesh domain. -
FIG. 17 illustrates a 3D view of an example sliced surface mesh ofFIG. 16 . -
FIG. 18 illustrates an example sliced surface mesh after layer interface cleanup and prior to surface mesh optimization. -
FIG. 19 illustrates a transparent view of a sliced surface mesh with opaque view of layer interfaces. -
FIG. 20A illustrates an example surface mesh having a number of surface mesh proximal surfaces. -
FIG. 20B illustrates a corrected surface mesh having proximal surfaces of the surface mesh ofFIG. 20A . -
FIG. 21 illustrates a cross-sectional view of example layered volume mesh illustrated inFIG. 1B . -
FIG. 22 illustrates an example process flow diagram for generating a layered volume mesh of a physical object to be created by an additive manufacturing process. -
FIG. 23 is another example process flow diagram for generating a layered volume mesh of a physical object to be created by an additive manufacturing process. -
FIG. 24 illustrates an example computer-implemented environment for implementing various aspects described herein. -
FIG. 25 illustrates an example computing architecture for implementing various aspects described herein. - Like reference symbols in the various drawings indicate like elements.
- Object simulations using modeling, such as CAD modeling, can inform users of various physical responses of objects when subjected to real world conditions such as stress or other mechanical forces. Physical, real world objects can be modeled with a CAD model. A physical replica of the CAD-modeled object can be made using additive manufacturing or 3D printing. With 3D printing, a 3D object can be fabricated through the deposition of successive layers of material. A layered volume mesh representing the layers of the CAD model can be used to simulate such fabrication. Such simulation using the volume mesh of a CAD model, having conformal layers (e.g., single interface shared between layers) with cells self-contained within each layer, facilitates improved additive manufacturing. The subject matter described herein generates a layered volume mesh of a physical, real world object from a surface mesh representation. The subject matter described herein slices the surface mesh to create layered surface mesh and fills the layered surface mesh layers with cells to create layered volume mesh.
- A 3D physical object can be fabricated by depositing successive layers of material by an additive manufacturing process. Systems and methods are provided to generate layered volume mesh representing the layers of physical object. A plurality of virtual layer planes mathematically representing bottom and top planes of the layers, are constructed or identified. A surface mesh representing the physical object surfaces (e.g., a two-dimensional area that may or may not have a curvature), includes a plurality of nodes. Surface mesh imperfections around virtual layer planes are corrected, by projecting plurality of nodes of the imperfections, onto closest virtual layer plane (e.g., transforming points in n-space to m-space, where m is less than n, the projection of a point to a plane, as an example, may correspond to a closest point on the plane from the point). Surface mesh imperfection may correspond to one or more elements (e.g. node, face, edges etc.) of a mesh that satisfy one or more conditions related to spatial relations between the elements and/or with respect to a virtual layer plane. A virtual layer plane may be represented as mathematical representation of a two dimensional surface. Modified surface mesh is intersected with the plurality of virtual layer planes. Series of surface mesh nodes created by the intersection are collected and triangulated (e.g., generate a set of triangles to cover a surface partly or totally) to create layer interfaces (e.g., interface between the layers). Layer interfaces overlapping with surface mesh or outside surface mesh domain are identified and deleted. A layered surface mesh formed by surface mesh and layer interfaces is optimized or updated using various surface mesh quality improve algorithms. Surface mesh surfaces proximal to layer interfaces, remaining after node projection and/or created by surface mesh optimization are identified. The identified surface mesh proximal surfaces are corrected, by moving plurality of nodes of the proximal surfaces, to predetermined distance away from closest layer interface. A volume mesh is generated by filling layered surface mesh layers. The volume mesh is optimized or updated using volume mesh quality improve algorithms. The optimized volume mesh is validated for additive manufacturing simulations using virtual layer planes.
-
FIG. 1A is anexample CAD model 100 of a physical, real world object.FIG. 1B is an examplelayered volume mesh 110 generated using the methods described herein.Layered volume mesh 110 includes a plurality of layers (e.g., 120, 130, 140). Each layer includes a plurality of tetrahedrons (e.g., a solid having four triangular faces such astetrahedron 132 of layer 130). -
FIG. 2 illustrates an example process flow diagram for generating a layered volume mesh of a physical object to be created by an additive manufacturing process. A layered volume mesh, such asvolume mesh 110 ofFIG. 1B is generated using an input CAD model, such asCAD model 100 ofFIG. 1A , at the end of the process. Software can check the input CAD model to determine, at 204, whether surface re-meshing is required. Surface re-meshing may be required, for example, if the input CAD model has no associated mesh (e.g., a discrete representation of a geometry of individual region of the physical, real world object having a number of triangles and vertices), but is rather just a 3D object representation. If it is determined that surface re-meshing is required, then a surface mesh is generated, at 206, as described inFIG. 3 . If surface re-meshing is not required, then the faceted data (e.g., two-dimensional triangle representations that together make up the CAD model) is retrieved, at 208. Virtual layer planes are constructed, at 210, as described in more detail inFIG. 4 . - Surface mesh imperfections around virtual layer planes can exist in a surface mesh that can lead to failures during layering, volume meshing or tetrahedron quality issues. For examples, layering or mesh failures can occur when edges of the surface mesh closely, parallel, and/or cross the virtual layer planes. Node projection at 212, can be performed to remedy layering failures, to a surface mesh. With node projection, surface mesh nodes (e.g., points along edge of the mesh representation) can be projected (e.g., the nodes within the predetermined threshold range from the virtual layer planes are moved onto the virtual layer planes) as described in more detail in
FIGS. 5B, 6B, and 7B . - A number of
different layering operations 230 are performed to the surface mesh after node projection. Theselayering operations 230 can include, but are not limited to, identifying join surfaces 231 (e.g., surface with having all nodes within the virtual layer plane). The identification of join surfaces are described in more detail inFIG. 8 . Join and intersect loops can be created, at 234, as described in more detail inFIGS. 9-10 . A join loop is created by a series of outer nodes of join surface. Surface mesh is intersected with virtual layer planes as described in more detail inFIG. 10 . An intersect loop is created by a set of nodes (e.g., a number of nodes) of surface mesh faces (e.g., one-dimensional side of a two-dimensional surface) with only two nodes on virtual layer planes after the surface mesh intersection with virtual layer planes. By triangulating the intersect loops and the join loops corresponding to the same virtual layer plane together, at 235, layer interfaces are created. Further details on the join and intersect loop triangulation described inFIG. 13 . With triangulation, additional surfaces of layer interface that overlap with join surfaces are identified using join loops. In order to remedy potential mesh failures that can be caused by overlapping surfaces, one of the overlapping surface is deleted, at 237, as described in more detail inFIGS. 14-15 . Additionally, additional surfaces of layer interfaces created outside of the surface mesh domain are deleted, at 238, as described in more detail inFIGS. 16-18 . - Additional
post-layering operations 240 can be performed to further improve a mesh such asadditional surface re-meshing 242, improvement offace quality 244, and/or fixing overlapping and proximal faces (e.g., faces having a gap less than predetermined tolerance between each other) usingnode inflation 246. Node inflation is performed by moving nodes of the input which are close and proximal to layer interfaces away from these layer interfaces as described in more detail inFIGS. 5B, 6B, and 7B . - Volume meshing 250, at 252, is used to fill the layered surface mesh with tetrahedrons. Volume meshing 250, at 254, identifies tetrahedrons with quality that is worse than a quality of the simulation mesh quality and then tries to improve such quality of the tetrahedrons. The layered volume mesh such as the one described in
FIG. 1B can be validated, at 260, by identifying tetrahedrons elements spanning across layer planes as well as identifying layers having missing tetrahedrons elements. - The
example CAD model 100 ofFIG. 1A can be represented by a surface mesh (e.g., a discrete representation of a geometry having triangular faces and vertices), such as thesurface mesh 300 illustrated inFIG. 3 .Surface mesh 300 can be generated using any suitable surface mesh generating algorithm. -
FIG. 4 is an example two-dimensional (2D) view of asurface mesh 400 having virtual layer planes overlaid (e.g.,surface mesh 300 with virtual layer planes 410, 420, 430). The 2D view represents the cross-sectional plane when the y-axis, as defined inFIG. 1A , is equal to zero. It should be understood that the mesh surfaces and virtual layer planes are shown as a lines in the images of two-dimensional view, exampleFIG. 4 . These surfaces and virtual layer planes in 2D view are referred as line segments. Thesurface mesh 300 is divided into a number of virtual layer planes (e.g., virtual layer planes 410, 420, 430). Virtual layer planes 410, 430 are layer planes created by defining a mathematical formula rather than using an actual surface defined by triangle facets (e.g., 2 dimensional triangle with three nodes). For example, each 410, 420, 430 can be defined byvirtual layer plane -
z=b+nh, (1) - where z is the virtual layer plane, b is a base of the virtual layer plane, n is a current layer number, and h is a height of the layer. Using Equation (1) to define each virtual layer plane, no facets are required. As illustrated in
FIG. 4 , virtual layer planes 410, 420, 430 virtually slice thesurface mesh 300 into a number of layers. - Imperfections can exist within the
surface mesh 400 which can lead to mesh failures during volume meshing or tetrahedron quality issues. Mesh failures can occur, for example, when surfaces of the mesh overlap or when element edges have intricate curvatures or acute angles (e.g., less than 30 degrees). For example, asurface mesh imperfections 440 around virtual layer planes can exist where there is a low acute angle between two surfaces (e.g., betweenline segment 480 andmesh imperfection 460 as well as betweenline segment 490 and mesh perfection 470), a zoomed in version of this surface mesh imperfections around virtual layer planes is illustrated inFIG. 5A . 480, 490 are aligned withLine segments virtual layer plane 410. As illustrated inFIG. 5A ,line segment 422 ofsurface mesh 400 closely parallelsvirtual layer plane 420. Similarly,line segment 424 ofsurface mesh 400 crossesvirtual layer plane 420 creating acute angles betweenline segment 424 andvirtual layer plane 420. - Another
surface mesh imperfection 450 around virtual layer planes exists, as illustrated in more detail inFIG. 6A , whereline segment 452 ofsurface mesh 400 crossesvirtual layer plane 430. Another examplesurface mesh imperfection 460 around virtual layer planes exists, as illustrated in more detail inFIG. 7A , whereline segment 462 ofsurface mesh 400 creates an acute angle (e.g., sharp angle) betweenline segment 462 andvirtual layer plane 410. More specifically, the acute angle occurs within a portion of line segment 462 (e.g., portion 464).Surface mesh imperfection 470 around virtual layer planes has similar characteristics assurface mesh imperfection 460 around virtual layer planes. - In order to identify imperfections within a surface mesh 300 (e.g.,
440, 450, 460, 470), nodes of the surface mesh 300 (e.g., points along a triangular element of the mesh) which are too close to the virtual layer planes are identified. For example, nodes may be too close if the distance between the node and the virtual layer plane is within a given projection threshold (e.g., a predetermined distance from one of the virtual layer planes). The identified nodes can be projected onto the virtual layer planes. In other words, the nodes can be moved to a different location so as to be on the virtual layer plane, rather than close to it, to avoid slicing failures. The faces with all three nodes on virtual layer planes can be treated as join surfaces.surface mesh imperfections -
FIG. 5B illustrates 522, 524 after node projection is performed onexample line segments 422, 424, respectively ofline segments FIG. 5A . As illustrated inFIG. 5B ,line segment 522 is flush withvirtual layer plane 420. In other words, the gap existing betweenline segment 422 andvirtual layer plane 420 has been eliminated after projection of the nodes ofline segment 422. -
FIG. 6B illustrates anexample line segment 652 after node projection is performed online segment 452 ofFIG. 6A . As illustrated inFIG. 6B , a portion of line segment 652 (e.g., portion 654) is aligned withvirtual layer plane 430 after the node projection, rather than crossingvirtual layer plane 430 as occurred inFIG. 6A . -
FIG. 7B illustrates a zoomed-in view of an example surface mesh imperfections around virtual layer planes after node perfection and before reverting projected nodes back to fix overlapping within surface mesh created by the node projection. As illustrated inFIG. 7B byline segment 762, after node projection,portion 464 ofline segment 462 is completely overlapping withsurface mesh line 480, which will lead into slicing failures as there are two surface mesh segments overlapping the virtual layer plane. These areas are identified and the projected nodes are moved back to the original position before projection as described in more detail inFIG. 8 . Such surface mesh imperfections cannot be corrected by projection and will be addressed using one node inflation operation as illustrated inFIG. 20A-B . -
FIG. 8 illustrates anexample surface mesh 800 after node projection (e.g.,surface mesh 400 after node projection). As illustrated inFIG. 8 , join surfaces occur for faces which have all corresponding nodes within a virtual layer plane. For example, join 810, 820 have all corresponding nodes withinsurfaces virtual layer plane 420. Similarly, joinsurface 830 has all corresponding nodes withinvirtual layer plane 410. Joinsurface 840 has all corresponding nodes withinvirtual layer plane 430. These surfaces are identified and marked as join surfaces and join loops and are extracted using a series of outer nodes of the join surfaces. -
FIG. 9 illustrates 3D view of example joinsurfaces 900, 910 (i.e., 3D view of join surfaces 810, 820 respectively ofsurface mesh 800 inFIG. 8 .) along with join loops extracted using outer nodes of join surfaces. In other words join loop is 2d line representation of join surface. A join loop is a loop defined by a set of nodes within a mesh (e.g., a subset of nodes of the mesh). Defining a join loop helps in identifying layer interfaces created for virtual layer plane where there already a join surface from surface mesh representing portion of virtual layer plane and delete layer interface version of surface to avoid overlapping surfaces. -
FIG. 10 illustrates a 3D view of a portion of anexample surface mesh 400 prior to intersection with virtual layer planes. The surface mesh with face side (e.g., pair nodes representing side of triangle face) intersecting a virtual layer plane (i.e., one node above and another node below virtual layer plane) are identified. A face is a flat or planar, one-dimensional area that forms a boundary of a solid object. Forexample face edge 1010 intersectingvirtual layer plane 430. The face is split at intersection point with virtual layer plane by creating new node at the intersection point as described in more detail inFIG. 11 . The face split is performed one by one for all the face sides interesting any virtual layer plane until there are no face side remain intersecting any virtual layer plane. -
FIG. 11 illustrates a 3D view of a portion of anexample surface mesh 400 after intersection with virtual layer planes. Face edges which intersect a virtual plane (e.g.,virtual plane 420, 430) can be identified such asface edge 1010. Those face edges can be split at the virtual layer planes. For example,face edge 1010 is split into 1010, 1110 as illustrated inface edges FIG. 11 . Face edges 1010 and 1110 are split byvirtual layer plane 430 such that faces of 1010 are sliced withvirtual layer plane 430. The face split is performed one by one for all the face sides interesting any virtual layer plane until there are no face side remain intersecting any virtual layer plane. All the surface mesh nodes (e.g., including the new nodes created by split) on virtual layer plane and not part of join loop are identified as intersect nodes. An intersect loop for each virtual layer plane is created using series of the identified nodes. -
FIG. 12 is an examplevirtual layer plane 1200 having both join 1220, 1230 and intersectloops loops 1210 created using series of nodes on the virtual layer plane. Combining both join loops 1220 (i.e., join loop of join surface 900), 1230 (i.e., join loop of join surface 910) and intersectloop 1210 ofvirtual layer plane 420 together forms edge loops required to create layer interface forvirtual layer plane 420. Join 1220, 1230 and intersectloops loop 1210 are triangulated to create a layer interface forvirtual layer plane 420. -
FIG. 13 illustrates anexample layer interface 1300 created by triangulating 1220, 1230 and intersectjoin loops loops 1210 created using series of nodes on virtual layer planes.Layer interface 1300 includes 1310, 1320 and 1330.layer interface surfaces Layer interface 1300 is the layer interface created forvirtual layer plane 420. The nodes of the surface mesh which are used to create the loops are used for the triangulation, hence the layer interfaces conformally gets connected to surface mesh. The join loops, however, already have join surfaces (e.g., joinsurfaces 900, 910) connected. For example, the overlap inFIG. 14 illustrates an example layer interface 1400 (i.e.,layer interface surfaces 1410, 1420) having overlapping surface mesh (i.e., joinsurfaces 1320, 1330). These overlapping 1320, 1330 are identified and deleted.layer interface surfaces Layer interface 1300 is conformally connected surface mesh.FIG. 15 illustrates anexample layer interface 1500 having the overlapping surfaces corrected by deletion.FIG. 16 illustrates a 2D view of an example slicedsurface mesh 1600 after correction of the overlapping surfaces and prior to the deletion of layer interfaces outside of the surface mesh domain.FIG. 17 illustrates a 3D view of an example slicedsurface mesh 1600 ofFIG. 16 . 1710, 1720 represent layer interfaces outside of the domain.Areas 1710, 1720 can be identified using, for example, an auto-identify algorithm which recognizes intersect layer planes exposed to outer space of surface mesh. OnceAreas 1710, 1720 are identified, then can be deleted. This auto-identification and deletion process can continue until there are no layer interfaces exposed to the outer space of the mesh.areas FIG. 18 illustrates an example slicedsurface mesh 1800 after layer interface cleanup and prior to surface mesh optimization. -
FIG. 19 illustrates a transparent view of a slicedsurface mesh 1900 with opaque view of layer interfaces.Sliced surface mesh 1900 can include deteriorated sections (e.g., area 1910) caused by surface mesh intersection with virtual layer planes and triangulation of join and intersect loops.Sliced surface mesh 1900 can be re-meshed to improve triangle quality. Face quality can be further improved using one or more of smooth, swap, split, and/or collapse algorithms. -
FIG. 20A illustrates anexample surface mesh 2000 having a number of surface mesh proximal surfaces (i.e., cluster of faces with all nodes with in predetermined distance from layer interfaces) including 2001, 2003, 2005, 2007. Node inflation (i.e., moving a node to predetermined distance away from layer interface in perpendicular direction of the layer interface) can be performed on face nodes of these proximal surfaces to cure possibility of issues which could lead to volume meshing failures or poor quality volume mesh elements. Hence, node inflation increases the robustness of volume meshing a layered surface mesh. For example, a subset of nodes onproximal surfaces 2001, 2003, 2005, 2007 are moved to a predetermined distance away from a layer interface in perpendicular direction of the layer interface. Node inflation provides customized identification and correction of proximal surfaces.proximal surfaces FIG. 20B illustrates a correctedsurface mesh 2050 having 2051, 2053, 2055, 2057 of theproximal surfaces surface mesh 2000 ofFIG. 20A . 2051, 2053, 2055, 2057 have faces proximal to layer interface corrected using node inflation.Proximal surfaces -
FIG. 21 illustrates across-sectional view 2100 of example layered volume mesh illustrated inFIG. 1B . -
FIG. 22 is an example process flow diagram 2200 for generating a layered volume mesh of a physical object to be created by an additive manufacturing process. A plurality of virtual layer planes that mathematically represent a bottom plane or a top plane of a layer of the physical object are constructed, at 2210. Surfaces of the physical object are modeled by a surface mesh comprising a plurality of nodes. One or more imperfections of the surface mesh surrounding the plurality of virtual layer planes are corrected, at 2220, by projecting a subset of the plurality of nodes of the one or more imperfections onto a virtual layer plane of the plurality of the virtual layer planes that is closest to the subset. A modified surface mesh includes the surface mesh having the one or more imperfections corrected. The modified surface mesh is intersected, at 2230, with the plurality of virtual layer planes. A layered surface mesh is generated, at 2240, which includes a plurality of layer interfaces between layers of the modified surface mesh by triangulating a series of surface mesh nodes on the plurality of virtual layer planes. The layered surface mesh is optimized or updated, at 2250, using triangular mesh optimization algorithms. One or more proximal surfaces including imperfections of the layered surface mesh remaining after node projection or created by the triangular mesh optimization algorithms are corrected, at 2260, by moving a subset of the plurality of nodes of the one or more proximal surfaces to a predetermined distance away from layer interface of the plurality of the layer interfaces that is closest to the subset. An optimized or updated surface mesh includes the surface mesh having the one or more proximal surfaces corrected. Volume meshing of the optimized or updated surface mesh is performed, at 2270, to generate the layered volume mesh. The layered volume mesh is optimized, at 2280, using volume mesh optimization algorithms. -
FIG. 23 is another example process flow diagram 2300 for generating a layered volume mesh of a physical object to be created by an additive manufacturing process. A CAD model of a physical object is received, at 2310. The CAD model includes a surface mesh representing the physical object. Virtual layer planes are generated, at 2320, across a surface mesh. Nodes of the surface mesh are projected, at 2330, toward the virtual layer planes in order to update the surface mesh. Conformal layer planes according to the virtual layer planes are generated, at 2340, to slice the updated surface mesh. Mesh optimizations for improving the quality of the surface mesh with the layer planes are performed, at 2250, and the surface mesh is prepared (e.g., node inflation of proximal surfaces) for volume filling. Volume filling is performed, at 2260, of the optimized surface mesh and the volume mesh is optimized. Validation occurs, at 2270, to determine whether the mesh surface having the layer planes interfaces with an additive solver. -
FIG. 24 illustrates an example computer-implementedenvironment 2400 whereinusers 2402 can interact with asimulation module 2404 having the various additive manufacturing simulation capabilities as described herein hosted on one ormore servers 2406 through anetwork 2408. Thesimulation module 2404 can assist theusers 2402 with interfacing between an object-oriented modeling language based interface and a hardware description language based interface. - As shown in
FIG. 24 , theusers 2402 can interact with thesimulation module 2404 through a number of ways, such as over one ormore networks 2408. One ormore servers 2406 accessible through the network(s) 2408 can host thesimulation module 2404. The one ormore servers 2406 can also contain or have access to one ormore data stores 2410 for storing data for thesimulation module 2404. - One or more aspects or features of the subject matter described herein can be realized in digital electronic circuitry, integrated circuitry, specially designed application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs) computer hardware, firmware, software, and/or combinations thereof. These various aspects or features can include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which can be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device. The programmable system or computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
- These computer programs, which can also be referred to as programs, software, software applications, applications, components, or code, can include machine instructions for a programmable processor, and/or can be implemented in a high-level procedural language, an object-oriented programming language, a functional programming language, a logical programming language, and/or in assembly/machine language. As used herein, the term “computer-readable medium” refers to any computer program product, apparatus and/or device, such as for example magnetic discs, optical disks, solid-state storage devices, memory, and Programmable Logic Devices (PLDs), used to provide machine instructions and/or data to a programmable data processor, including a machine-readable medium that receives machine instructions as a computer-readable signal. The term “computer-readable signal” refers to any signal used to provide machine instructions and/or data to a programmable data processor. The computer-readable medium can store such machine instructions non-transitorily, such as for example as would a non-transient solid-state memory or a magnetic hard drive or any equivalent storage medium. The computer-readable medium can alternatively or additionally store such machine instructions in a transient manner, for example as would a processor cache or other random access memory associated with one or more physical processor cores.
- The computer components, software modules, functions, data stores and data structures described herein can be connected directly or indirectly to each other in order to allow the flow of data needed for their operations. It is also noted that a module or processor includes but is not limited to a unit of code that performs a software operation, and can be implemented for example as a subroutine unit of code, or as a software function unit of code, or as an object (as in an object-oriented paradigm), or as an applet, or in a computer script language, or as another type of computer code. The software components and/or functionality can be located on a single computer or distributed across multiple computers depending upon the situation at hand.
-
FIG. 25 is a diagram 2500 illustrating a sample computing device architecture for implementing various aspects described herein. Abus 2504 can serve as the information highway interconnecting the other illustrated components of the hardware. Aprocessing system 2508 labeled CPU (central processing unit) (e.g., one or more computer processors/data processors at a given computer or at multiple computers), can perform calculations and logic operations required to execute a program. A non-transitory processor-readable storage medium, such as read only memory (ROM) 2512 and random access memory (RAM) 2516, can be in communication with theprocessing system 2508 and can include one or more programming instructions for the operations specified here. Optionally, program instructions can be stored on a non-transitory computer-readable storage medium such as a magnetic disk, optical disk, recordable memory device, flash memory, or other physical storage medium. - In one example, a
disk controller 2548 can interface one or more optional disk drives to thesystem bus 2504. These disk drives can be external or internal floppy disk drives such as 2560, external or internal CD-ROM, CD-R, CD-RW or DVD, or solid state drives such as 2552, or external or internalhard drives 2556. As indicated previously, these 2552, 2556, 2560 and disk controllers are optional devices. Thevarious disk drives system bus 2504 can also include at least onecommunication port 2520 to allow for communication with external devices either physically connected to the computing system or available externally through a wired or wireless network. In some cases, thecommunication port 2520 includes or otherwise comprises a network interface. - To provide for interaction with a user, the subject matter described herein can be implemented on a computing device having a display device 2540 (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information obtained from the
bus 2504 to the user and aninput device 2532 such as keyboard and/or a pointing device (e.g., a mouse or a trackball) and/or a touchscreen by which the user can provide input to the computer. Other kinds ofinput devices 2532 can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback by way of amicrophone 2536, or tactile feedback); and input from the user can be received in any form, including acoustic, speech, or tactile input. In theinput device 2532 and themicrophone 2536 can be coupled to and convey information via thebus 2504 by way of aninput device interface 2528. Other computing devices, such as dedicated servers, can omit one or more of thedisplay 2540 and display interface 2514, theinput device 2532, themicrophone 2536, andinput device interface 2528. - In the descriptions above and in the claims, phrases such as “at least one of” or “one or more of” may occur followed by a conjunctive list of elements or features. The term “and/or” may also occur in a list of two or more elements or features. Unless otherwise implicitly or explicitly contradicted by the context in which it is used, such a phrase is intended to mean any of the listed elements or features individually or any of the recited elements or features in combination with any of the other recited elements or features. For example, the phrases “at least one of A and B;” “one or more of A and B;” and “A and/or B” are each intended to mean “A alone, B alone, or A and B together.” A similar interpretation is also intended for lists including three or more items. For example, the phrases “at least one of A, B, and C;” “one or more of A, B, and C;” and “A, B, and/or C” are each intended to mean “A alone, B alone, C alone, A and B together, A and C together, B and C together, or A and B and C together.” In addition, use of the term “based on,” above and in the claims is intended to mean, “based at least in part on,” such that an unrecited feature or element is also permissible.
- The subject matter described herein can be embodied in systems, apparatus, methods, and/or articles depending on the desired configuration. The implementations set forth in the foregoing description do not represent all implementations consistent with the subject matter described herein. Instead, they are merely some examples consistent with aspects related to the described subject matter. Although a few variations have been described in detail above, other modifications or additions are possible. In particular, further features and/or variations can be provided in addition to those set forth herein. For example, the implementations described above can be directed to various combinations and subcombinations of the disclosed features and/or combinations and subcombinations of several further features disclosed above. In addition, the logic flows depicted in the accompanying figures and/or described herein do not necessarily require the particular order shown, or sequential order, to achieve desirable results. Other implementations may be within the scope of the following claims.
- Additionally, the methods and systems described herein may be implemented on many different types of processing devices by program code comprising program instructions that are executable by the device processing subsystem. The software program instructions may include source code, object code, machine code, or any other stored data that is operable to cause a processing system to perform the methods and operations described herein and may be provided in any suitable language such as C, C++, JAVA, for example, or any other suitable programming language. Other implementations may also be used, however, such as firmware or even appropriately designed hardware configured to carry out the methods and systems described herein.
- The systems' and methods' data (e.g., associations, mappings, data input, data output, intermediate data results, final data results, etc.) may be stored and implemented in one or more different types of computer-implemented data stores, such as different types of storage devices and programming constructs (e.g., RAM, ROM, Flash memory, flat files, databases, programming data structures, programming variables, IF-THEN (or similar type) statement constructs, etc.). It is noted that data structures describe formats for use in organizing and storing data in databases, programs, memory, or other computer-readable media for use by a computer program.
- The computer components, software modules, functions, data stores and data structures described herein may be connected directly or indirectly to each other in order to allow the flow of data needed for their operations. It is also noted that a module or processor includes but is not limited to a unit of code that performs a software operation, and can be implemented for example as a subroutine unit of code, or as a software function unit of code, or as an object (as in an object-oriented paradigm), or as an applet, or in a computer script language, or as another type of computer code. The software components and/or functionality may be located on a single computer or distributed across multiple computers depending upon the situation at hand.
- While the disclosure has been described in detail and with reference to specific embodiments thereof, it will be apparent to one skilled in the art that various changes and modifications can be made therein without departing from the spirit and scope of the embodiments. Thus, it is intended that the present disclosure cover the modifications and variations of this disclosure provided they come within the scope of the appended claims and their equivalents.
Claims (20)
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| IN201941036917 | 2019-09-13 | ||
| IN201941036917 | 2019-09-13 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20210082182A1 true US20210082182A1 (en) | 2021-03-18 |
| US11763524B2 US11763524B2 (en) | 2023-09-19 |
Family
ID=74869697
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US16/665,747 Active 2041-06-16 US11763524B2 (en) | 2019-09-13 | 2019-10-28 | Layered meshing for additive manufacturing simulations |
Country Status (1)
| Country | Link |
|---|---|
| US (1) | US11763524B2 (en) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116720234A (en) * | 2023-08-11 | 2023-09-08 | 中国空气动力研究与发展中心计算空气动力研究所 | Curved surface grid generation method, device, equipment and storage medium |
| US11763524B2 (en) * | 2019-09-13 | 2023-09-19 | Ansys, Inc. | Layered meshing for additive manufacturing simulations |
| CN120354649A (en) * | 2025-03-11 | 2025-07-22 | 中国科学院空间应用工程与技术中心 | Grid division method for slice type multilayer structure in additive manufacturing |
Citations (37)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6445390B1 (en) * | 1997-12-29 | 2002-09-03 | The United States Of America As Represented By The Adminstrator Of The National Aeronautics And Space Administration | Triangle geometry processing for surface modeling and cartesian grid generation |
| US20050038549A1 (en) * | 2003-08-14 | 2005-02-17 | Loughran Stephen A. | System and method for performing adaptive modification of rapid prototyping build files |
| US6879324B1 (en) * | 1998-07-14 | 2005-04-12 | Microsoft Corporation | Regional progressive meshes |
| US20070097117A1 (en) * | 2005-10-27 | 2007-05-03 | Coretech System Co., Ltd. | Automated mesh creation method for injection molding flow simulation |
| US20070273688A1 (en) * | 2006-05-24 | 2007-11-29 | Yifan Chen | System and method of applying geometric surface features to volumetric CAE mesh models |
| US20120109594A1 (en) * | 2010-11-01 | 2012-05-03 | Johan Arendt Grape | Determining a distribution of multiple layers of a composite material within a structural volume |
| US20120203512A1 (en) * | 2011-02-03 | 2012-08-09 | Rolls-Royce Plc | Method of connecting meshes |
| US8970590B1 (en) * | 2012-11-27 | 2015-03-03 | Msc.Software Corporation | Surface mesh generation systems and methods |
| US20150201500A1 (en) * | 2014-01-12 | 2015-07-16 | Zohar SHINAR | System, device, and method of three-dimensional printing |
| WO2016044006A1 (en) * | 2014-09-16 | 2016-03-24 | 3D Systems, Inc. | Fracturing a shell of a three-dimensional object |
| US20160086376A1 (en) * | 2014-09-19 | 2016-03-24 | Siemens Product Lifecycle Management Software Inc. | Computer-Aided Simulation of Multi-Layer Selective Laser Sintering and Melting Additive Manufacturing Processes |
| WO2016133679A1 (en) * | 2015-02-20 | 2016-08-25 | Siemens Product Lifecycle Management Software Inc. | Computer-aided simulation of additive manufacturing processes |
| US20170116779A1 (en) * | 2015-10-26 | 2017-04-27 | Microsoft Technology Licensing, Llc | Volumetric representation of objects |
| US20170120554A1 (en) * | 2015-10-28 | 2017-05-04 | Tamicare Ltd. | Product or Sheet, Combined with a Mesh or Meshes |
| US20170129179A1 (en) * | 2015-11-11 | 2017-05-11 | Xerox Corporation | Additive manufacturing system with layers of reinforcing mesh |
| US9824493B1 (en) * | 2014-05-20 | 2017-11-21 | Ansys, Inc. | Systems and methods for quadrilateral mesh generation |
| US20180166251A1 (en) * | 2016-03-25 | 2018-06-14 | Technology Research Association For Future Additive Manufacturing | Three-dimensional layer-by-layer shaping apparatus, three-dimensional layer-by-layer shaping apparatus control method, and three-dimensional layer-by-layer shaping apparatus control program |
| WO2018140019A1 (en) * | 2017-01-26 | 2018-08-02 | Siemens Product Lifecycle Management Software Inc. | System and method for adaptive domain reduction for thermo-structural simulation of additive manufacturing process |
| US20180293792A1 (en) * | 2017-04-05 | 2018-10-11 | Aerion Intellectual Property Management Corporation | Solid modeler that provides spatial gradients of 3d cad models of solid objects |
| US10121279B1 (en) * | 2014-07-14 | 2018-11-06 | Ansys, Inc. | Systems and methods for generating a mesh |
| US20180361510A1 (en) * | 2017-06-15 | 2018-12-20 | Howmedica Osteonics Corp. | Porous structures produced by additive layer manufacturing |
| EP3418979A1 (en) * | 2017-06-21 | 2018-12-26 | OCE Holding B.V. | Providing a three-dimensional object |
| US20190035150A1 (en) * | 2017-07-28 | 2019-01-31 | The Boeing Company | Resolution adaptive mesh for performing 3-d metrology of an object |
| US20190118476A1 (en) * | 2017-10-24 | 2019-04-25 | Formlabs, Inc. | Techniques for debris removal in stereolithography and related systems and methods |
| US20200009862A1 (en) * | 2018-07-09 | 2020-01-09 | Xyzprinting, Inc. | Inkjet width adjustment method and three-dimensional printing equipment |
| US20200027269A1 (en) * | 2018-07-23 | 2020-01-23 | Fudan University | Network, System and Method for 3D Shape Generation |
| US20200142384A1 (en) * | 2017-07-13 | 2020-05-07 | Stratasys Ltd. | Method of printing a 3d model from point cloud data |
| US10657301B1 (en) * | 2016-02-17 | 2020-05-19 | National Technology & Engineering Solutions Of Sandia, Llc | Systems, methods and computer program products for constructing complex geometries using layered and linked hexahedral element meshes |
| US10706623B1 (en) * | 2017-01-17 | 2020-07-07 | Ansys, Inc. | Systems and methods for preparing a virtual three-dimensional (3D) object for 3D printing |
| US20200242204A1 (en) * | 2019-01-25 | 2020-07-30 | Autodesk, Inc. | Predictive machining for forging distortions |
| US10769850B1 (en) * | 2017-02-13 | 2020-09-08 | Ansys, Inc. | Systems and methods for efficient updating of an analysis mesh |
| US20200292239A1 (en) * | 2019-03-14 | 2020-09-17 | United Technologies Corporation | Method of creating a component via transformation of representative volume elements |
| US10803661B1 (en) * | 2016-09-06 | 2020-10-13 | Ansys, Inc. | Adaptive polyhedra mesh refinement and coarsening |
| US20210012049A1 (en) * | 2018-02-16 | 2021-01-14 | Coventor, Inc. | System and method for multi-material mesh generation from fill-fraction voxel data |
| US20210019939A1 (en) * | 2019-07-18 | 2021-01-21 | Sony Corporation | Shape-refinement of triangular three-dimensional mesh using a modified shape from shading (sfs) scheme |
| US20210069482A1 (en) * | 2019-09-06 | 2021-03-11 | Industry-Academic Cooperation Foundation, Yonsei University | Microneedle patch, micro needle system and method of fabricating the same |
| WO2021073719A1 (en) * | 2019-10-15 | 2021-04-22 | Siemens Industry Software Nv | Method for generating a component mesh, use of a component mesh, computer program and computer-readable medium |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11763524B2 (en) * | 2019-09-13 | 2023-09-19 | Ansys, Inc. | Layered meshing for additive manufacturing simulations |
-
2019
- 2019-10-28 US US16/665,747 patent/US11763524B2/en active Active
Patent Citations (38)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6445390B1 (en) * | 1997-12-29 | 2002-09-03 | The United States Of America As Represented By The Adminstrator Of The National Aeronautics And Space Administration | Triangle geometry processing for surface modeling and cartesian grid generation |
| US6879324B1 (en) * | 1998-07-14 | 2005-04-12 | Microsoft Corporation | Regional progressive meshes |
| US20050038549A1 (en) * | 2003-08-14 | 2005-02-17 | Loughran Stephen A. | System and method for performing adaptive modification of rapid prototyping build files |
| US20070097117A1 (en) * | 2005-10-27 | 2007-05-03 | Coretech System Co., Ltd. | Automated mesh creation method for injection molding flow simulation |
| US20070273688A1 (en) * | 2006-05-24 | 2007-11-29 | Yifan Chen | System and method of applying geometric surface features to volumetric CAE mesh models |
| US20120109594A1 (en) * | 2010-11-01 | 2012-05-03 | Johan Arendt Grape | Determining a distribution of multiple layers of a composite material within a structural volume |
| US20120203512A1 (en) * | 2011-02-03 | 2012-08-09 | Rolls-Royce Plc | Method of connecting meshes |
| US8970590B1 (en) * | 2012-11-27 | 2015-03-03 | Msc.Software Corporation | Surface mesh generation systems and methods |
| US20150201500A1 (en) * | 2014-01-12 | 2015-07-16 | Zohar SHINAR | System, device, and method of three-dimensional printing |
| US9824493B1 (en) * | 2014-05-20 | 2017-11-21 | Ansys, Inc. | Systems and methods for quadrilateral mesh generation |
| US10121279B1 (en) * | 2014-07-14 | 2018-11-06 | Ansys, Inc. | Systems and methods for generating a mesh |
| WO2016044006A1 (en) * | 2014-09-16 | 2016-03-24 | 3D Systems, Inc. | Fracturing a shell of a three-dimensional object |
| US20160086376A1 (en) * | 2014-09-19 | 2016-03-24 | Siemens Product Lifecycle Management Software Inc. | Computer-Aided Simulation of Multi-Layer Selective Laser Sintering and Melting Additive Manufacturing Processes |
| US20160246908A1 (en) * | 2014-09-19 | 2016-08-25 | Siemens Product Lifecycle Management Software Inc. | Computer-aided simulation of additive manufacturing processes |
| WO2016133679A1 (en) * | 2015-02-20 | 2016-08-25 | Siemens Product Lifecycle Management Software Inc. | Computer-aided simulation of additive manufacturing processes |
| US20170116779A1 (en) * | 2015-10-26 | 2017-04-27 | Microsoft Technology Licensing, Llc | Volumetric representation of objects |
| US20170120554A1 (en) * | 2015-10-28 | 2017-05-04 | Tamicare Ltd. | Product or Sheet, Combined with a Mesh or Meshes |
| US20170129179A1 (en) * | 2015-11-11 | 2017-05-11 | Xerox Corporation | Additive manufacturing system with layers of reinforcing mesh |
| US10657301B1 (en) * | 2016-02-17 | 2020-05-19 | National Technology & Engineering Solutions Of Sandia, Llc | Systems, methods and computer program products for constructing complex geometries using layered and linked hexahedral element meshes |
| US20180166251A1 (en) * | 2016-03-25 | 2018-06-14 | Technology Research Association For Future Additive Manufacturing | Three-dimensional layer-by-layer shaping apparatus, three-dimensional layer-by-layer shaping apparatus control method, and three-dimensional layer-by-layer shaping apparatus control program |
| US10803661B1 (en) * | 2016-09-06 | 2020-10-13 | Ansys, Inc. | Adaptive polyhedra mesh refinement and coarsening |
| US10706623B1 (en) * | 2017-01-17 | 2020-07-07 | Ansys, Inc. | Systems and methods for preparing a virtual three-dimensional (3D) object for 3D printing |
| WO2018140019A1 (en) * | 2017-01-26 | 2018-08-02 | Siemens Product Lifecycle Management Software Inc. | System and method for adaptive domain reduction for thermo-structural simulation of additive manufacturing process |
| US10769850B1 (en) * | 2017-02-13 | 2020-09-08 | Ansys, Inc. | Systems and methods for efficient updating of an analysis mesh |
| US20180293792A1 (en) * | 2017-04-05 | 2018-10-11 | Aerion Intellectual Property Management Corporation | Solid modeler that provides spatial gradients of 3d cad models of solid objects |
| US20180361510A1 (en) * | 2017-06-15 | 2018-12-20 | Howmedica Osteonics Corp. | Porous structures produced by additive layer manufacturing |
| EP3418979A1 (en) * | 2017-06-21 | 2018-12-26 | OCE Holding B.V. | Providing a three-dimensional object |
| US20200142384A1 (en) * | 2017-07-13 | 2020-05-07 | Stratasys Ltd. | Method of printing a 3d model from point cloud data |
| US20190035150A1 (en) * | 2017-07-28 | 2019-01-31 | The Boeing Company | Resolution adaptive mesh for performing 3-d metrology of an object |
| US20190118476A1 (en) * | 2017-10-24 | 2019-04-25 | Formlabs, Inc. | Techniques for debris removal in stereolithography and related systems and methods |
| US20210012049A1 (en) * | 2018-02-16 | 2021-01-14 | Coventor, Inc. | System and method for multi-material mesh generation from fill-fraction voxel data |
| US20200009862A1 (en) * | 2018-07-09 | 2020-01-09 | Xyzprinting, Inc. | Inkjet width adjustment method and three-dimensional printing equipment |
| US20200027269A1 (en) * | 2018-07-23 | 2020-01-23 | Fudan University | Network, System and Method for 3D Shape Generation |
| US20200242204A1 (en) * | 2019-01-25 | 2020-07-30 | Autodesk, Inc. | Predictive machining for forging distortions |
| US20200292239A1 (en) * | 2019-03-14 | 2020-09-17 | United Technologies Corporation | Method of creating a component via transformation of representative volume elements |
| US20210019939A1 (en) * | 2019-07-18 | 2021-01-21 | Sony Corporation | Shape-refinement of triangular three-dimensional mesh using a modified shape from shading (sfs) scheme |
| US20210069482A1 (en) * | 2019-09-06 | 2021-03-11 | Industry-Academic Cooperation Foundation, Yonsei University | Microneedle patch, micro needle system and method of fabricating the same |
| WO2021073719A1 (en) * | 2019-10-15 | 2021-04-22 | Siemens Industry Software Nv | Method for generating a component mesh, use of a component mesh, computer program and computer-readable medium |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11763524B2 (en) * | 2019-09-13 | 2023-09-19 | Ansys, Inc. | Layered meshing for additive manufacturing simulations |
| CN116720234A (en) * | 2023-08-11 | 2023-09-08 | 中国空气动力研究与发展中心计算空气动力研究所 | Curved surface grid generation method, device, equipment and storage medium |
| CN120354649A (en) * | 2025-03-11 | 2025-07-22 | 中国科学院空间应用工程与技术中心 | Grid division method for slice type multilayer structure in additive manufacturing |
Also Published As
| Publication number | Publication date |
|---|---|
| US11763524B2 (en) | 2023-09-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11361503B2 (en) | Systems and methods for generating volumetric models | |
| US10974446B2 (en) | B-rep of the result of a two-axis 3D printing process | |
| US9881388B2 (en) | Compression and decompression of a 3D modeled object | |
| EP2750108B1 (en) | Parameterizing a 3D modeled object for tessellation | |
| JP5045853B2 (en) | Calculation data generation apparatus, calculation data generation method, and calculation data generation program | |
| CN102812463A (en) | Method And System Enabling 3D Printing Of Three-dimensional Object Models | |
| CN110059332B (en) | Design of 3D finite element meshes for 3D parts containing lattice structures | |
| KR20110111259A (en) | Design of parts modeled by parallel geodesic curves | |
| EP2474930B1 (en) | Updating a modeled object | |
| CN105761303A (en) | Creation Of Bounding Boxes On 3d Modeled Assembly | |
| US20150127301A1 (en) | Updating A CAD Model To Reflect Global Or Local Shape Changes | |
| US20170148228A1 (en) | Distance field coupled fitted deformation lattices for shape modification | |
| US11763524B2 (en) | Layered meshing for additive manufacturing simulations | |
| US9196085B2 (en) | Interactively shaping terrain through composable operations | |
| CN109983509B (en) | An instant boolean method using geometric faces | |
| Bronson et al. | Lattice cleaving: A multimaterial tetrahedral meshing algorithm with guarantees | |
| US20210141869A1 (en) | Automated Analysis of Mechanical Designs | |
| CN110009742B (en) | System and method for finite element mesh repair | |
| Schmidt et al. | Adaptive mesh booleans | |
| Liu et al. | Repair of STL errors | |
| Georgiadis et al. | Indirect all-quadrilateral meshing based on bipartite topological labeling | |
| US20220405447A1 (en) | Machine learning-based selective incarnation of computer-aided design objects | |
| US11900542B2 (en) | Computer-aided techniques for designing 3D surfaces based on gradient specifications | |
| US11302075B1 (en) | Medial surface construction for solid models using tetrahedral meshes | |
| US20250148169A1 (en) | Mirror Finite Element Mesh Generation |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| AS | Assignment |
Owner name: ANSYS, INC., PENNSYLVANIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:GUDE, VENKATA NARAYANA;REEL/FRAME:050859/0966 Effective date: 20191030 |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE AFTER FINAL ACTION FORWARDED TO EXAMINER |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |