Method for maintaining shape in a solid model during material distribution in topology optimization using a distance field

By using a distance field method to maintain the shape of a solid model during topology optimization, the computational intensity of current methods is reduced, achieving efficient and accurate material distribution in CAD designs.

JP7698973B2Active Publication Date: 2025-06-26DASSAULT SYSTEMES SOLIDWORKS CORP
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2021069830
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-05-14
Filing Date
2021-04-16
Publication Date
2025-06-26
Estimated Expiration
2041-04-16

AI Technical Summary

Technical Problem

Current topology optimization methods in computer-aided design (CAD) are computationally intensive, leading to excessive use of computer resources and long processing times when redistributing material density in 3D models.

Method used

The method employs a distance field approach to maintain the shape of a solid model during material distribution in topology optimization. This involves generating a variable-void distance field and a frozen distance field, distributing density values among voxels, and performing distance field operations to preserve the boundary shape.

Benefits of technology

This approach significantly reduces computational load and processing time while accurately maintaining the boundary shape and performance parameters of the original model, resulting in a more efficient topology optimization process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007698973000010
    Figure 0007698973000010
  • Figure 0007698973000011
    Figure 0007698973000011
  • Figure 0007698973000012
    Figure 0007698973000012
Patent Text Reader

Abstract

To provide a method for preserving shapes in a solid model when distributing a material during topological optimization with distance fields.SOLUTION: A method for preserving shapes in a solid model when distributing a material during topological optimization is provided. A 3D geometric model of a part having a boundary shape is received. The geometric model is pre-processed to produce a variable-void distance field and to produce a frozen distance field representing the boundary shape. The geometric model is divided into a plurality of voxels, and a density value is adjusted for each voxel according to an optimization process. An iso-surface mesh is extracted from voxel data, and an iso-surface distance field is generated from the extracted iso-surface mesh. A distance field intersection of the iso-surface distance field and the variable-void distance field is derived. A distance field union operation of the distance field intersection and the frozen distance field is performed, and a result iso-surface mesh is produced from the distance field union.SELECTED DRAWING: Figure 10A
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Field of the Invention The present invention relates to computer-aided drafting, and more specifically, to topology optimization.

Background Art

[0002] Background of the Invention In computer-aided design (CAD), a 3D geometry model is represented on a computer based on a geometry modeling method and a solid modeling method. Topology optimization can be used to optimize the material distribution in the 3D model based on physical load conditions, for example, to reduce the mass while maintaining the performance under load. The resulting geometry shape can be used as a reference for further CAD design. The modeling part, for example, the 3D modeling part, can first be defined from a block of material having a specific boundary shape, for example, holes and / or cutoffs. Various performance constraints, such as directional loads (force points), and / or external dimension constraints may be applied to the above part. In some cases, it is desirable to reform the above part to maintain the boundary shape and match the performance parameters while reducing the volume and / or mass of the completed part.

[0003] Currently, this topology optimization is performed by processing a model of a portion represented by 3D elements such as hexahedral elements represented as a quadrilateral mesh or tetrahedral elements represented as a triangular mesh. For example, topology optimization can be performed using TOSCA, a powerful and well-known topology optimization software package by Dassault Systemes, e.g., in the 3D Experience platform. The topology optimization in 3D Experience starts from a normal FEM problem using normal FEM elements, loads, and constraints. Topology optimization repeatedly redistributes the density in those elements using the same finite elements (e.g., hexahedra, tetrahedra, etc.). However, the complexity of the calculations involved in remeshing a 3D model that can have hundreds or thousands of FEM elements can result in a high computational load, thereby causing excessive use of computer resources and / or computational time. Therefore, there is a need in the art to address one or more of these drawbacks. SUMMARY OF THE INVENTION MEANS FOR SOLVING THE PROBLEM

[0004] SUMMARY OF THE INVENTION Embodiments of the present invention provide a method for maintaining a shape in a solid model during material distribution in topology optimization using a distance field. Briefly described, a 3D geometry model of a portion having a boundary shape is received. The geometry model is preprocessed to generate a variable-void distance field and a frozen distance field representing the boundary shape. The geometry model is distributed among a plurality of voxels, and density values are adjusted for each voxel according to the optimization process. An isosurface mesh is extracted from the voxel data, and an isosurface distance field is generated from the extracted isosurface mesh. A distance field product set of the isosurface distance field and the variable-void distance field is derived. A distance field union operation of the distance field product set and the frozen distance field is performed, and a resulting isosurface mesh is generated from the distance field union.

[0005] Other systems, methods, and features of the present invention will be apparent or will become apparent to those skilled in the art upon consideration of the following drawings and detailed description. All such additional systems, methods, and features are intended to be included herein, within the scope of the present invention, and protected by the accompanying claims.

[0006] Brief Description of the Drawings The accompanying drawings are included to provide a further understanding of the present invention and are incorporated in and constitute a part of this specification. The components of the drawings are not necessarily to scale, and instead, emphasis has been placed on clearly illustrating the principles of the present invention. The drawings illustrate embodiments of the present invention and, together with the detailed description of the invention, serve to explain the principles of the invention.

Brief Description of the Drawings

[0007]

Figure 1A

Figure 1B

Figure 2A

Figure 2B

Figure 2C

Figure 3A

Figure 3B

Figure 3C

Figure 4A

Figure 4B

Figure 5A

Figure 5B

Figure 5C

Figure 6

Figure 7A

Figure 7B

Figure 8

Figure 9

Figure 10A

Figure 10B

MODE FOR CARRYING OUT THE INVENTION

[0008] Detailed Description The following definitions serve to interpret the terms applied to the features of the embodiments disclosed herein and are for the sole purpose of defining the elements within this disclosure.

[0009] Within the present disclosure, "solid modeling" generally refers to the virtual manipulation of a model formed from a solid block of material while removing unnecessary material and / or adjusting the density of the remaining material to conform to size and performance parameters, while maintaining selected physical features and voids. In this specification, regions of the model are referred to as variable regions, void regions, and frozen regions. A variable region refers to a portion of the model where the density of the material can vary according to the constraints of the model. A void region refers to a portion of the model where no material is present. A frozen region is a fixed material face that the designer wishes to keep in its original state after optimization of the model.

[0010] As used within the present disclosure, "voxel" refers to a set of uniform three-dimensional blocks that can be used to approximate the mass of a three-dimensional modeling object. The embodiments described herein generally refer to cubic-shaped voxels, although in alternative embodiments, voxels of different shapes may be used.

[0011] As used within the present disclosure, "mesh" refers to a mathematical structure of triangles used to model adjacent surfaces.

[0012] As used within the present disclosure, "solver" refers to a software module configured to receive as input the parameters of a model and criteria regarding a desired operation of the model and to derive an adjusted and / or manipulated output. A particular solver may be targeted at a particular task; for example, the topology optimization solver described in detail herein is a voxel-based solver.

[0013] Reference will now be made in detail to embodiments of the invention, examples of which are illustrated in the accompanying drawings. Whenever possible, the same reference numbers will be used throughout the drawings and the detailed description to refer to the same or like parts.

[0014] As described in the background section, the optimization of material distribution in a direct 3D model from FEM elements accurately maintains the specified boundaries, but the process is computationally intensive, which can lead to excessive use of computer resources and / or long waiting times for results.

[0015] Embodiments described herein relate to a more efficient method for modeling 3D objects using general voxel elements (e.g., cubes) for topology optimization. Voxels simplify topology optimization, and operations on voxel operations are generally very efficient in terms of computer resource and time utilization. After the voxel model is adjusted for topology optimization / operation, e.g., using a voxel-based topology optimization solver 1024, the resulting voxel model can be further processed using known isosurface extraction methods such as the marching cubes method and / or the dual contouring method to obtain a smooth triangular or quadrilateral mesh. However, the isosurface based on the optimized voxel model generally does not accurately maintain the boundary shape of the desired model. Embodiments of this specification are directed towards maintaining the boundary shape when using a voxel-based solver.

[0016] As shown in FIG. 10A, the XDesign design guidance function module 1010 uses a voxel-based topology optimization solver 1024 to convert the initial geometry model 100 into a topology optimization model. In the first embodiment shown in FIG. 10A, the XDesign design guidance function module 1010 includes sub-modules for input model and load conditions 1012, topology optimization 1014, and result display 1016. The input model and load condition module 1012 uses a preprocessing module 1022. In the first embodiment, as further described below, the preprocessing module 1022 uses a solid modeling and boolean module 1032 and a mesh generation module 1034. The result module 1026 uses an isosurface generation module 1036 and a mesh boolean module 1038.

[0017] The initial geometry model 100 (e.g., CAD model) is divided into uniform voxel cubes as shown in Figure 1B. The XDesign design guidance function module 1010 uses three cases where local geometry shapes are used to hold desired features in topology optimization problems. These three cases correspond to three types of regions of the initial geometry model that the user desires to hold in the topology optimization model. 1. Variable region: The design space limited by some geometry models, 2. Void region: The required empty space limited by some geometry models, and 3. Frozen region: The faces that the user desires to maintain after optimization.

[0018] Each of the variable region, void region, and frozen region is defined by the geometry model and can be of any shape. Generally, the void region and frozen region are invariant, but the XDesign design guidance function module 1010 manipulates the variable region to meet the desired physical and performance characteristics of the topology optimization model.

[0019] The user expects the final result to maintain the geometry shapes of the original void region and frozen region for accuracy. Since voxels, by their nature, simply represent an approximation of the volume model, the resulting voxel model does not accurately represent the defined regions. Any geometry model can be divided simply as a group of small regular-sized voxels called a voxel model.

[0020] Figure 1A is a schematic diagram showing the initial geometry model 100 that defines the design space delimiting the boundary of the completed model. Figure 1B is a schematic diagram showing the voxelization grid generated on the initial geometry model of Figure 1A, which is used to generate the initial voxelized model 150.

[0021] The optimization process redistributes the mass of the initial voxelization model 150 by varying the density of the voxels. As further explained below, after topology optimization, in the resulting module 1026 (FIG. 10A), voxels of low importance are removed and a threshold is calculated to achieve the user-defined target mass reduction rate. The user can also manually adjust the threshold to add or remove voxels based on the design requirements. For example, the optimization process calculates a voxel density parameter value for each voxel and sets a corresponding threshold. Voxels can be retained when they exceed this threshold and removed when they fall below it.

[0022] After optimization, based on such a threshold, some voxels are removed, thereby obtaining a topology optimization voxel model 200, which generally still only approximates the desired model and is a group of voxel blocks that do not result in a smooth surface. To obtain a smooth result, an isosurface (triangular or quadrilateral mesh) is extracted from the voxel data of the topology optimization voxel model 200, thereby obtaining a voxel extraction isosurface mesh model 250. However, since voxels were used to approximate three types of regions, the resulting voxel extraction isosurface mesh model 250 does not accurately represent the features of the initial geometry model 100. For example, there may be missing material at the surface boundary, i.e., the material that should extend to the boundary does not extend because voxels were removed, or there may be protruding material within an area intended to be a void, and a part of the retained voxels extends beyond the boundary into the void region. The voxel extraction isosurface mesh model 250 obtained by the optimization process does not accurately capture the desired surface.

[0023] Figure 2A shows how well the voxel approximation of the topology optimization voxel model 200 preserves the smooth surface of the initial geometry model 100. Even after smoothing, the voxel extraction isosurface mesh model 250 similarly does not accurately represent the smooth surface of the initial geometry model 100. The cylindrical portion 120 is intended to have a hole with a circular cross-section, and similarly, the elliptical portion 130 is intended to have a smooth elliptical cross-section. The concave area 140 is intended to be hemispherical. As seen in FIGS. 2A-2C, the voxel extraction isosurface mesh model 250 does not retain the intended surface shape of the initial geometry model 100.

[0024] Exemplary embodiments of the present invention provide a systematic and reliable way to preserve shape in the results from a voxel-based topology optimization solver 1024 by using geometric Boolean operations to preserve shape. Two exemplary embodiments provide different implementations. The first exemplary method embodiment uses a mesh Boolean approach that defines three types of regions and divides them into meshes. A manifold isosurface mesh is generated from the results of the voxel-based topology optimization solver 1024. By using a series of mesh Boolean operations to finalize the results, the required shape is accurately preserved in the resulting model.

[0025] The second exemplary method embodiment uses a distance field Boolean approach. At a high level, in the second embodiment, three types of regions are defined to generate a signed distance field. The results of the voxel-based topology optimization solver 1024 generate an isosurface mesh with a corresponding signed distance field. Using a series of signed distance field Boolean operations, a final signed distance field is provided, and an isosurface mesh is generated from the final signed distance field, thereby accurately preserving the void / frozen boundary region from the initial geometry model 100 in the resulting model.

[0026] The first exemplary method embodiment (mesh bool) can be described as a series of the following general steps. First, the preprocessing module 1022 (FIG. 10A) combines the variable region, the void region, and the frozen region with the mesh generation of the associated geometry model. Voxel data is collected from these regions and optimized by the topology optimization solver module 1024 (FIG. 10A) to generate an optimized voxel model with voxels having assigned density values. The isosurface generation module 1036 extracts an isosurface mesh from the optimized voxel model based on a given threshold. Finally, the mesh bool module 1038 uses a mesh bool operation to generate the retained shape of the geometry model by polishing the isosurface.

[0027] Given a geometry model 100 (e.g., box-shaped or another shape), for a standard topology optimization problem, the user first defines the variable region within the geometry model 100. The user defines the applied load and / or applies constraints to one or more faces, edges, and / or vertices of the geometry model 100. Further, the user may identify one or more surfaces (frozen regions) to be maintained and regions (void regions without material) that may need to be empty. Each of these regions can be represented as a geometry model, and each of these geometry models is triangulated into a mesh for post-processing. In the preprocessing module, solid modeling bool operations, including intersection operations, union operations, and difference operations, are used. Given two solid models M1 and M2 in 3D space, the three bool operations are defined as follows. The intersection operation is all the points in the 3D space R belonging to M1 and M2 3 inside

Number

Number

Mathematics

Mathematics

Mathematics

Mathematics

[0028] Boolean operations are standard functions in solid modeling. The processing of variable regions and void regions is described in connection with FIG. 4A as follows. For variable regions, all selected variable region geometry models 410 are integrated into one combined variable region 420. For void regions, all selected void geometry models 415 are integrated into one void model 425. As shown by block 430, the void region integration model 425 is subtracted from the variable region integration model 420. The resulting geometry model is triangulated into a variable-void mesh 450 via a mesh generation module 440.

[0029] The processing of frozen regions is described as follows in connection with FIGS. 4B and 3A - 3C. It should be understood that any process description or block in the flowchart represents a module, segment, code portion, or step that includes one or more instructions for performing a specific logical function of the process, and alternative embodiments are included within the scope of the present invention in which the functions may be executed in an order different (including substantially simultaneously or in the reverse order) from the illustrated or recited order, depending on the functionality involved.

[0030] As shown by block 460, the user selects the faces 120, 130, 140 of one or more frozen regions within block 100. The user assigns a thickness to the area of the material to be retained, for example, by defining a volume that includes the portion of block material 100 surrounding the desired void region, as shown by block 465. By the solid modeling thickening method, the faces 120, 130, 140 are thickened to the solid model. The thickening direction is towards the inside of the model to which it belongs. If the faces 120, 130, 140 are thickened beyond the boundary of the model to which they belong, as shown by block 470, the extra volume must be cut so that only the intersection (Boolean operation) of the thickened model and the model to which it belongs is retained. The thickened models of each face 120, 130, 140 are integrated to form one frozen model that includes the thickened portions 320, 330, 340 corresponding to the selected faces 120, 130, 140. Finally, as shown by block 490, the frozen model is divided into a variable-void mesh 300 by the mesh generation module 480. The above preprocessing combines the geometry models for triangulation in preparation for the implementation of the postprocessing described in detail below.

[0031] The cubic design space is calculated according to the setup of the topology optimization problem. In the case of the voxel-based topology optimization solver 1024, each geometry model is divided by regular-sized voxels (e.g., cubes). For example, the cubic design space is partitioned into 32*32*32 voxels, or 64*64*64 voxels. In other examples, higher resolutions, such as 128*128*128, or 256*256*256, may be used. Each voxel is assigned a density value from 0 to 1 according to the density of the material of the geometry model occupied by the corresponding voxel. A density of 0 indicates that there is no material within the voxel dimension, i.e., a void region, and 1 means that the voxel dimension is filled with material, or the voxel contains a frozen region.

[0032] For the variable region, all voxels mapped inside and / or on any boundary of the geometry model are collected and marked as containing variable material. The density values of the voxels marked as variable can be adjusted by the voxel-based topology optimization solver 1024.

[0033] For the void region, all voxels mapped to the parts of the geometry model where no material should be included are collected and marked with a fixed zero material (value 0).

[0034] For the frozen region, all voxels contacting the selected face are marked as having a complete material (value 1). This ensures that all parts of the frozen region are encompassed by complete material voxels.

[0035] This information ensures that the voxel-based topology optimization solver 1024 generates voxel results according to the region classification.

[0036] The relationship between the geometry model and the voxels can be determined in multiple different ways. For example, the display triangle mesh of the model to be tested can be used for testing with voxels. Each triangle of the mesh is a boundary of the model, and the voxels contacting the triangle are the boundaries of the original model. All mesh triangles can be traversed to find all voxels on the boundary. To collect all internal voxels, start from one internal voxel and repeatedly search all adjacent voxels that border the boundary voxels.

[0037] The voxel-based topology optimization solver 1024 receives, as input, the initial density values of the voxels and the loading conditions. As further described below, the voxel-based topology optimization solver 1024 is configured to minimize the compliance of the model subject to a user-defined maximum mass. The voxel-based topology optimization solver 1024 generates an output having density values of the voxels corresponding to the calculated favorable results.

[0038] The voxel-based topology optimization solver 1024 minimizes the compliance of the model by iteratively changing the density values of the voxels marked as belonging to the variable region (i.e., having values between 0 and 1 excluding 0 and 1). The voxel-based topology optimization solver 1024 can assign different density values to different variable region voxels. The density value can be regarded as indicating the relative importance of each voxel. The smaller the density value, the lower the importance of the voxel. The larger the density value, the higher the importance of the voxel.

[0039] The voxel-based topology optimization solver 1024 corrects the density values for the voxels in the variable region. The voxels in the void region always have a density value of 0. The voxels in the frozen region always have a density value of 1.

[0040] The voxel-based topology optimization solver 1024 solves the following optimization problem.

Equation

[0041] In the formula, U is the displacement vector, F is the force vector. K(x) is the stiffness matrix that is a function of the density value vector x. V(x) is the material mass, and V0 is the initial material mass. r is the fixed user-assigned mass reduction ratio.

[0042] The objective is to find the density value vector x that minimizes T T K(x)U, subject to the constraints: 1. the mass ratio is less than or equal to the user-assigned mass reduction ratio, 2. the load conditions are satisfied, and 3. the density value is between 0 and 1, where compliance c(x)=U.

[0043] The output of the voxel-based topology optimization solver 1024 is an array of density data for all voxels. The user can then set a density threshold between 0 and 1 to remove voxels with small values and retain voxels with larger values. The density-mapped voxel model can be converted to a mesh surface using the conventional marching cubes method for generating triangular meshes. Subsequently, a manifold mesh can be generated as an isosurface. The resulting topology optimization isosurface mesh 250 (Figure 5B) is a triangular mesh.

[0044] At the variable region boundary, e.g., the boundary between the variable region and the frozen region, or the boundary between the variable region and the void region, the isosurface can extend outside the variable region within one voxel size. At the void region boundary, the isosurface can extend within the void region within one voxel size. In the frozen region, the isosurface can extend beyond the frozen region within one voxel size. The resulting isosurface can be regarded as a rough approximation of the original variable region, void region, and frozen region.

[0045] Figures 5A-5B show the input of the mesh boolean technique, while Figure 5C shows the output. For each of Figures 5A-5C, a solid rendering is shown in the upper figure and a wireframe rendering is shown below. As shown in Figures 5A-5C, the mesh boolean technique can be applied, for example, by a mesh boolean module, to remove surface material irregularities of an isosurface resulting from voxel model conversion. The mesh boolean operation is similar to a solid modeling boolean operation. Mesh boolean operations such as union operation, intersection operation, and difference operation can be applied to triangular or quadrilateral meshes. The mesh boolean model generates a resulting mesh (not shown) by performing a mesh union operation of a topology-optimized isosurface mesh 250 and a variable-void mesh 100, and then performs a mesh union operation of the resulting mesh and a frozen mesh 300. All boundary shapes are accurately retained in the final mesh 500.

[0046] The user can increase the voxel density threshold to allow for more material or more voxels for isosurface extraction, or can decrease the voxel density to include less material or fewer voxels. For example, the adjustment of the voxel density can be performed as an iterative process for the user. When the density threshold is modified, as shown in FIG. 6, the topology optimization isosurface mesh 250 is regenerated, and the mesh Boolean operation is performed again using the variable-void mesh 100 and the frozen mesh 300 to generate the final result 500. As shown by block 620, input voxel density data 610, load data 611, and boundary conditions 612 are provided to the voxel-based topology optimization solver 1024 module to generate a voxel-based model by optimizing the input parameters. An isosurface model is generated from the voxel-based model as shown by block 630. A mesh union model is generated by the mesh binary union operation of the isosurface model and the variable-void mesh 642 as shown by block 640. A resulting mesh 660 is generated by the mesh binary union operation of the mesh union model and the frozen mesh 652 as shown by block 650. The resulting mesh 660 can be adjusted iteratively by adjusting the density threshold 632 and repeating blocks 630, 640, and 650.

[0047] In a second embodiment of a method for optimizing the surface of a 3D CAD model, instead of using a mesh Boolean operation (as in the first embodiment) to obtain a final result, a signed distance field method and its Boolean operation are used. The advantages of the distance field Boolean operation are simplicity and speed. In the second embodiment, a signed distance field is generated from each of the three input regions (variable, void, and frozen) and the final isosurface mesh. The signed distance field Boolean operation is used to generate a final isosurface mesh that retains the required shape.

[0048] As shown in FIG. 10B, as in the first embodiment, in the second embodiment, the XDesign design guidance function module 1010 uses a voxel-based topology optimization solver 1024 to convert the initial geometry model 100 into a topology optimization model. The XDesign design guidance function module 1010 includes sub-modules for input model and load conditions 1012, topology optimization 1014, and result display 1016. The input model and load condition module 1012 uses a preprocessing module 1022. In the second embodiment, as further described below, the preprocessing module 1022 uses a solid modeling and Boolean module, and a distance field function module 1035. The result module 1026 uses an isosurface generation module 1036 and a distance field function Boolean module 1037. The solid geometry model is surrounded by a plurality of closed surfaces. The closed surface S of the space can be represented by the function f(x, y, z) = 0, (x, y, z) ∈ S. This function is not unique. One natural choice is the signed distance from a point (x, y, z) to the surface S, the signed distance field f(x, y, z) = Dist((x, y, z), S), (x, y, z) ∈ S 3 If this point is outside the model, the distance is positive. If the point is inside the model, the distance is negative. Given two surfaces S1 and S2 and their signed distance field functions f1 and f2, the three Boolean operations can be expressed as follows. Intersection operation: max(f1(x, y, z), f2(x, y, z)) = 0 (Equation 4) Union operation: min(f1(x, y, z), f2(x, y, z)) = 0 (Equation 5) Difference operation: max(f1(x, y, z), -f2(x, y, z)) = 0 (Equation 6)

[0049] As described above with respect to the first embodiment, assuming that the geometry model is voxelized, the signed distance function is sampled at the center of the voxels of the distance field voxel model within the design space, thereby generating a vector of distance values for each voxel of the distance field voxel model. The voxel-based topology optimization solver 1024 generates distance data for each voxel of the distance field voxel model in a manner similar to the output density data of the first embodiment. Next, the field distance isosurface is extracted from the distance field voxel model.

[0050] The signed distance field does not maintain sharp features or crease features. Instead, the oriented distance field method is an extension that preserves features. Since it is extended from the scalar distance, a vector of three distance values along the x-axis, y-axis, and z-axis is used to define the oriented distance field.

Number

[0051] Dist i ((x, y, z), S) is the signed distance function along the i-axis, where the i-axis is the x-axis, y-axis, or z-axis. The Boolean operation can also be extended to each of the x-axis, y-axis, and z-axis. For example, the intersection operation of S1 and S2 is as follows.

Number

[0052] In the second embodiment, since the direction of the distance is known for the oriented distance value, the calculation is simpler than the scalar signed distance of the first embodiment. From any point along the x-direction, y-direction, or z-direction, a ray can be cast to intersect the surface, and then the distance to the intersection point can be calculated.

[0053] The steps of the directed distance field method of the second embodiment are shown in FIGS. 7A and 7B. To emphasize the differences between the first embodiment (FIGS. 4A - 4B) and the second embodiment (FIGS. 7A - 7B), these steps are described below with reference to FIGS. 4A and 4B. In the pre - processing of the second embodiment shown in FIG. 7A, a variable - void distance field is generated instead of a mesh. Similarly, in FIG. 7B, a frozen distance field is generated instead of a mesh. The directed distance field is generated directly from the variable - void model and the frozen model. Voxel data is collected from the above - mentioned region and optimized by a solver module to generate an optimized voxel model. Regarding the variable regions, all the selected variable region geometry models 710 are integrated into one combined variable region 720. Regarding the void regions, all the selected void geometry models 715 are integrated into one void region integration model 725. As shown in block 730, the void region integration model 725 is subtracted from the variable region integration model 720. Note that blocks 710, 715, 720, 725, and 730 are substantially similar to blocks 410, 415, 420, 425, and 430 of the first embodiment. After an isosurface mesh is obtained from the solver result, as shown by block 750, a directed distance field generation block 740 generates a variable - void isosurface distance field.

[0054] As shown in FIG. 7B, in the second embodiment, the processing of the freezing region is similar to that of the first embodiment (FIG. 4B), except that the distance field is generated as the final product instead of the mesh. The user selects the faces 120, 130, 140 of one or more freezing regions within block 100, as indicated by block 760. The user assigns a thickness to the area of the material to be retained, for example, by defining a volume that includes a portion of block material 100 surrounding the desired void region, as indicated by block 765. By the solid modeling thickening method, faces 120, 130, 140 are thickened to the solid model. The thickening direction is towards the inside of the geometry to which it belongs. If faces 120, 130, 140 are thickened beyond the boundaries of the model to which they belong, extra volume must be cut off. That is, only the intersection (Boolean operation) of the thickened model and the model to which it belongs, as indicated by block 770, must be retained. The thickened models of each face 120, 130, 140 are integrated to form one frozen model that includes the thickened portions 320, 330, 340 corresponding to the selected faces 120, 130, 140. Finally, as indicated by block 790, the frozen model is divided by the distance field generation module 780 into the variable-void distance field 300. The above preprocessing combines the geometry model for triangle meshing in preparation for the implementation of the postprocessing described in detail below.

[0055] In the second embodiment, the distance field Boolean technique can be applied to remove surface material irregularities of the isosurface resulting from voxel model conversion, for example, by a distance field function Boolean module 1037, instead of the mesh Boolean operation. Distance field Boolean operations such as intersection operation, union operation, and difference operation can be applied to triangular or quadrilateral meshes. The distance field function Boolean model 1037 generates a resulting distance field (not shown) by performing a distance field intersection operation of a topology-optimized isosurface distance field and a variable-void distance, and then performs a distance field union operation of the resulting distance field and a frozen distance field. All boundary shapes are accurately maintained in the final distance field.

[0056] Similar to the first embodiment, the user can increase the voxel density threshold to allow for more material or more voxels for isosurface extraction, or decrease the voxel density to include less material or fewer voxels. For example, the adjustment of the voxel density can be performed as an iterative process for the user. When the density threshold is modified, as shown in FIG. 8, the topology optimization isosurface mesh 250 is regenerated, and in order to generate the final result, the distance field Boolean operation is performed again using the variable-void distance field and the freezing distance field 300. As shown by block 620, the input voxel density data 610, the load data 611, and the boundary conditions 612 are provided to the voxel-based solver module to generate a voxel-based model by optimizing the input parameters. An isosurface model is generated from the voxel-based model as shown by block 630. Distance field data regarding the isosurface model is generated as shown by block 835. A distance field intersection model is generated by the distance field binary intersection operation of the generated distance field and the variable-void distance field 842 as shown by block 840. A resulting distance field is generated by the distance field binary union operation of the variable-void intersection model and the freezing distance field 852 as shown by block 850. As shown by block 860, the resulting mesh 870 is generated from the resulting distance field by isosurface extraction. The resulting mesh 870 can be adjusted iteratively by adjusting the density threshold 632 and repeating blocks 630, 835, 840, 850, and 860. To better handle sharp geometry features or crease geometry features in the original model, an extended marching cubes method or a dual contouring method may be used.

[0057] As described above, the system for performing the functionality described in detail above may be a computer, an example of which is shown in the schematic diagram of FIG. 9. System 900 includes a processor 502, a storage device 504, a memory 506 that stores internally software 508 that defines the functionality described above, an input / output (I / O) device 510 (or peripheral device), and a local bus or a local interface 512 that enables communication within system 900. Local interface 512 may be, for example, one or more buses or other wired or wireless connections, as known in the art, but is not limited thereto. Local interface 512 may have additional elements such as controllers, buffers (caches), drivers, repeaters, and receivers (which are omitted for clarity). Further, local interface 512 may include address, control, and / or data connections to enable proper communication among the components described above.

[0058] Processor 502 is a hardware device for executing software stored particularly in memory 506. Processor 502 may be any custom or commercially available single-core or multi-core processor, a central processing unit (CPU), an auxiliary processor among several processors associated with system 900, a semiconductor-based microprocessor (in the form of a microchip or chipset), a macroprocessor, or generally any device for executing software instructions.

[0059] Memory 506 may include either a volatile memory device (e.g., a random access memory (RAM) such as DRAM, SRAM, SDRAM, etc.) or a non-volatile memory device (e.g., ROM, hard drive, tape, CDROM, etc.), or a combination thereof. Further, memory 506 may incorporate electronic, magnetic, optical, and / or other types of storage media. Note that memory 506 may have a distributed architecture where various components are located far apart from each other but are accessible by processor 502.

[0060] Software 508 defines the functionality performed by system 900 in accordance with the present invention. Software 508 in memory 506 may include one or more separate programs, each containing an ordered list of executable instructions for implementing the logical functions of system 900 as follows. Memory 506 may include an operating system (O / S) 520. The operating system basically controls the execution of programs within system 900 and provides scheduling, input / output control, file and data management, memory management, and communication control and related services.

[0061] The I / O device 510 may include, but is not limited to, input devices such as a keyboard, mouse, scanner, microphone, etc. Further, the I / O device 510 may also include, but is not limited to, output devices such as a printer, display, etc. Finally, the I / O device 510 may further include devices that communicate using both input and output, such as a modem (for accessing another device, system, or network), a radio frequency (RF) or other transceiver, a telephone interface, a bridge, a router, or other devices, but is not limited thereto.

[0062] When the system 900 operates, the processor 502 is configured to execute the software 508 stored in the memory 506, exchange data with the memory 506, and generally control the operation of the system 900 according to the software 508, as described above.

[0063] When the functions of the system 900 operate, the processor 502 is configured to execute the software 508 stored in the memory 506, exchange data with the memory 506, and generally control the operation of the system 900 according to the software 508. The operating system 520 is read by the processor 502, perhaps buffered within the processor 502, and then executed.

[0064] When system 900 is implemented in software 508, it should be noted that the instructions for implementing system 900 can be stored by any computer-related device, system, or method, or in any computer-readable medium used in connection with any computer-related device, system, or method. Such a computer-readable medium may, in some embodiments, correspond to one or both of memory 506 and storage device 504. In the context of this specification, a computer-readable medium is an electronic, magnetic, optical, or other physical device or means that can contain or store a computer program used by or in connection with a computer-related device, system, or method. The instructions for implementing the system can be embodied by a processor, or other such instruction-executing system, apparatus, or device, or in any computer-readable medium used in connection with a processor, or other such instruction-executing system, apparatus, or device. Although processor 502 has been described as an example, such an instruction-executing system, apparatus, or device may, in some embodiments, be any computer-based system, processor-containing system, or other system capable of fetching instructions from the instruction-executing system, apparatus, or device and executing those instructions. In the context of this specification, "computer-readable medium" may be any means capable of storing, communicating, propagating, or transporting a program used by a processor, or other such instruction-executing system, apparatus, or device, or in connection with a processor, or other such instruction-executing system, apparatus, or device.

[0065] Such computer-readable media may be, for example, but not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, devices, or propagation media. More specific examples (a non-exhaustive list) of computer-readable media include the following: an electrical connection (electronic) having one or more electrical wires, a portable floppy disk (magnetic), a random access memory (RAM) (electronic), a read-only memory (ROM) (electronic), an erasable programmable read-only memory (EPROM, EEPROM, or flash memory) (electronic), an optical fiber (optical), and a portable compact disc read-only memory (CDROM) (optical). Note that the computer-readable media may also be paper or other suitable media on which a program is printed, as the program can be electronically captured, for example, by optical scanning of the paper or other media, and then, if necessary, compiled, interpreted, or processed in a suitable manner and then stored in a computer memory.

[0066] In an alternative embodiment where system 900 is implemented in hardware, system 900 may be implemented using any one of the following techniques well known in the art: one or more discrete logic circuits comprising logic gates that implement logical functions on data signals, an application specific integrated circuit (ASIC) comprising appropriate combinational logic gates, one or more programmable gate arrays (PGA), a field programmable gate array (FPGA), or a combination thereof.

[0067] It will be apparent to those skilled in the art that various changes and modifications can be made to the structure of the present invention without departing from the scope or spirit of the invention. In view of the foregoing, the present invention is intended to cover such changes and modifications of the present invention provided they fall within the scope of the following claims and their equivalents.

Claims

1. Receiving a partial 3D geometric model, wherein the 3D geometric model includes a boundary shape; Preprocessing the 3D geometric model to generate a variable-void distance field; Preprocessing the 3D geometric model to generate a frozen distance field representing the boundary shape; Allocating the 3D geometric model to a plurality of voxels; Adjusting density values for each of the plurality of voxels according to an optimization process; Extracting an isosurface mesh from voxel data; Generating an extracted isosurface distance field from the extracted isosurface mesh; Deriving a distance field product set of the extracted isosurface distance field and the variable-void distance field; Performing a union operation of the distance field product set and the frozen distance field to derive a distance field union set including all points belonging to the distance field product set or the frozen distance field; Generating a result isosurface mesh from the distance field union set; A computer-based method comprising the above steps.

2. Preprocessing the 3D geometric model to generate a variable-void distance field further includes: Defining a variable model including regions of the 3D geometric model where the material density is variable; Defining a void model including regions of the 3D geometric model where no material exists; Generating a variable-void model by subtracting the void model from the variable model; Generating the variable-void distance field from the variable-void model; The method according to claim 1, further comprising the above steps.

3. Defining a plurality of variable regions; Combining the plurality of variable regions into the variable model; Defining a plurality of void regions; Combining the plurality of void regions into the void model; The method according to claim 2, further comprising the above steps.

4. Preprocessing the initial model to generate the frozen distance field further includes: Defining a frozen region further including at least one face of the boundary shape; Thickening each of the at least one face; coupling each of said at least one thickened face to a freezing model; deriving said freezing distance field from said freezing model; The method according to any one of claims 1 to 3, further comprising.

5. The method according to any one of claims 1 to 4, wherein each of said variable-void distance field, said freezing distance field, and said extracted isosurface distance field comprises a signed distance field.

6. adjusting density values for each of said plurality of voxels according to an optimization process, assigning an initial density value to each of said plurality of voxels; adjusting density values for each of said plurality of voxels to minimize overall model compliance; The method according to any one of claims 1 to 5, further comprising.

7. The method according to claim 6, further comprising setting an initial voxel density threshold at which voxels are excluded if they fall below.

8. The method according to claim 7, further comprising iteratively adjusting said initial voxel density threshold.

9. The method according to any one of claims 1 to 8, wherein said 3D geometry model comprises a boundary representation (Brep).

Citation Information

Patent Citations

  • Computing the mass of an object

    US20130163836A1

  • Methods and Systems for Volumetric Reconstruction Based on a Confidence Field

    US20190266783A1

  • Structure optimization device, structure optimization method, and structure optimization program

    WO2010029810A1

  • Method and system enabling 3D printing of three-dimensional object models

    WO2011042899A1

  • Method for creating three dimensional lattice structures in computer-aided design models for additive manufacturing

    WO2015106020A1