Method of maintaining shape in solid model when assigning material during topology optimization
By using a voxel-based topology optimization method and leveraging grid Boolean or directional distance field Boolean operations, the problems of computational complexity and resource waste in existing topology optimization methods are solved, achieving efficient boundary shape preservation and improved computational efficiency.
Patent Information
- Application Number
- CN202110502339.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-05-14
- Filing Date
- 2021-05-08
- Publication Date
- 2026-02-10
- Estimated Expiration
- 2041-05-08
AI Technical Summary
Existing topology optimization methods suffer from excessive computational complexity and resource consumption, especially when dealing with 3D models with a large number of FEM elements, resulting in excessive computation time and resource waste.
A voxel-based topology optimization method is adopted, which discretizes the geometric model into uniform voxels and uses grid Boolean or directional distance field Boolean operations to preserve the boundary shape and optimize the voxel density to meet performance and quality requirements.
It effectively reduces computational complexity and resource requirements, accurately preserves the boundary shape and features of the initial geometric model, and improves computational efficiency.
Smart Images

Figure CN113673005B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to computer-aided drawing, and more specifically, to topology optimization. Background Technology
[0002] In Computer-Aided Design (CAD), a three-dimensional (3D) geometric model is described in a computer based on geometric modeling and solid modeling methods. Topology optimization can be used to optimize material distribution in the 3D model based on physical load conditions (e.g., reducing mass while maintaining performance under load). The resulting geometry can be used as a reference for further CAD design. The modeled part (e.g., a 3D-modeled part) may initially be defined by a block of material with specific boundary shapes (e.g., holes and / or cuts). Various performance constraints (e.g., directional load (force point) limits and / or external dimensional limits) can be imposed on this part. In some cases, it is necessary to reshape the part to maintain its boundary shape and meet performance parameters while reducing the volume and / or mass of the finished part.
[0003] Currently, this topology optimization is performed by processing part models represented by 3D elements, such as hexahedral elements represented as quadrilateral meshes or tetrahedral elements represented as triangular meshes. For example, topology optimization can be performed using TOSCA, a powerful and popular topology optimization software package developed by Dassault Systèmes (e.g., in the 3DExperience platform). In 3DExperience, TOSCA's topology optimization begins with a conventional FEM problem with standard finite element method (FEM) elements, standard loads, and standard constraints. Topology optimization uses the same finite elements (e.g., hexahedral, tetrahedral, etc.) to iteratively redistribute the density in the elements. However, the computational complexity involving the remapping of a 3D model that may have hundreds or thousands of FEM elements can be computationally intensive, leading to and / or excessive use of computation time and / or computational resources. Therefore, there is an industrial need to address one or more of these shortcomings. Summary of the Invention
[0004] Embodiments of the present invention provide a method for preserving shape in a solid model when allocating material during topology optimization. Briefly, a 3D geometric model of a component is received, the 3D geometric model having boundary shapes. The geometric model is preprocessed to generate a variable-void mesh and a frozen mesh representing the boundary shapes. The geometric model is divided into multiple voxels, and density values are adjusted for each voxel according to the optimization process. Isosurface meshes are extracted from the voxel data, and a mesh Boolean intersection is derived between the extracted isosurface meshes and the variable-void meshes. A mesh Boolean union is performed between the mesh Boolean intersection and the frozen meshes.
[0005] Other systems, methods, and features of the present invention will be apparent or become apparent to those skilled in the art upon studying the following drawings and detailed description. It is intended that all such additional systems, methods, and features be included in this specification, covered within the scope of the invention, and protected by the appended claims. Attached Figure Description
[0006] The accompanying drawings are included to provide a further understanding of the invention, and are incorporated in and constitute a part of this specification. Components in the drawings are not necessarily drawn to scale, but their placement is emphasized to clearly illustrate the principles of the invention. The drawings illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention.
[0007] Figure 1A A schematic diagram of the initial geometric model is shown, which defines the design space that defines the boundaries of the final model.
[0008] Figure 1B To show the passage Figure 1A A schematic diagram of the voxelized mesh generated from the initial geometric model and used to generate the initial voxelized model.
[0009] Figure 2A Describes the optimization of the solver for Figure 1B The topology-optimized voxel model is obtained by processing the initial voxelized model.
[0010] Figure 2B It shows that by... Figure 2A A perspective view of the isosurface mesh model obtained by processing the topology-optimized voxel model.
[0011] Figure 2C It shows Figure 2B A top view of the isosurface mesh model with voxels extracted.
[0012] Figure 3A A geometric block with a selected frozen surface surrounding a void region is depicted.
[0013] Figure 3B Depicting the surrounding Figure 3A The selection of the thickened area of the selected frozen surface.
[0014] Figure 3C Depicting Figure 3B An isolated view of the thickened area.
[0015] Figure 4A The flowchart illustrates the preprocessing of the variable porosity mesh in the first embodiment.
[0016] Figure 4BThe flowchart illustrates the preprocessing of the frozen mesh in the first embodiment.
[0017] Figure 5A The diagram is shown in solid form (top) and wireframe (bottom). Figure 1B The initial geographic model has a variable porosity grid.
[0018] Figure 5B The isosurface mesh for surface optimization is shown, represented by solids (top) and wireframes (bottom).
[0019] Figure 5C The final Boolean isosurface mesh is shown, represented by solids (top) and wireframes (bottom).
[0020] Figure 6 A diagram illustrating iterative threshold adjustment in a first method embodiment is provided.
[0021] Figure 7A The flowchart illustrates the preprocessing of the variable porosity mesh in the second embodiment.
[0022] Figure 7B The flowchart illustrates the preprocessing of the frozen mesh in the second embodiment.
[0023] Figure 8 A diagram illustrating the iterative threshold adjustment of a second method embodiment is provided.
[0024] Figure 9 A schematic diagram illustrating an example of a system for performing the functions of the present invention.
[0025] Figure 10A This is a block diagram of a system for performing the first method embodiment.
[0026] Figure 10B This is a block diagram of a system for performing the second method embodiment. Detailed Implementation
[0027] The following limitations are useful for interpreting the terminology applied to the features of the embodiments disclosed herein, and are intended only to limit the elements in this disclosure.
[0028] As used in this disclosure, "solid modeling" generally refers to the virtual manipulation of a model formed by solid material blocks to preserve selected physical features and voids while removing unwanted material and / or adjusting the density of the remaining material to meet dimensional and performance parameters. In this document, the regions of a model refer to variable regions, void regions, and frozen regions. A variable region is a portion of the model where the material density can vary according to model constraints. A void region is a portion of the model where no material exists. A frozen region is a fixed material surface that the designer wishes to maintain after model optimization.
[0029] As used in this disclosure, a "voxel" refers to a set of uniform three-dimensional blocks that can be used to roughly estimate the quality of a three-dimensional modeled object. Although the embodiments described herein generally involve cubic voxels, voxels of different shapes may be used in alternative embodiments.
[0030] As used in this disclosure, "mesh" refers to a mathematical fabric of triangles used to model adjacent surfaces.
[0031] As used herein, "solver" refers to a software module configured to receive parameters of a model and criteria for desired operations on the model as input, and to derive conditioned and / or manipulated output. A particular solver may be designed for a specific task; for example, the topology optimization solver described in detail herein is a voxel-based solver.
[0032] Now, reference will be made in detail to embodiments of the invention, examples of which are shown in the accompanying drawings. Where possible, the same reference numerals may be used in the drawings and description to denote the same or similar parts.
[0033] As described in the background section, although optimization of material allocation in a 3D model based directly on FEM elements precisely maintains specific boundaries, the process is computationally intensive, which can lead to excessive use of computer resources and / or excessively long waiting times for results.
[0034] The embodiments described herein relate to a more efficient method for modeling 3D objects for topology optimization using conventional voxel elements (e.g., cubes). Voxels simplify topology optimization, and voxel operations are generally very efficient in terms of computational resources and time usage. After conditioning the voxel model for topology optimization / operations (e.g., via a voxel-based topology optimization solver 1024), the resulting voxel model can be further processed to obtain a smooth triangular or quadrilateral mesh using known isosurface extraction methods (e.g., the moving cube method and / or the double-contour method). However, isosurfaces based on optimized voxel models often fail to accurately preserve the desired boundary shape of the model. The embodiments described herein relate to the preservation of boundary shape when using a voxel-based solver.
[0035] like Figure 10A As shown, the XDesign design guidance module 1010 uses a voxel-based topology optimization solver 1024 to convert the initial geometric model 100 into a topology-optimized model. Figure 10AIn the first embodiment shown, the XDesign design guidance function module 1010 includes an input model and loading condition submodule 1012, a topology optimization submodule 1014, and a result display submodule 1016. The input model and loading 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.
[0036] like Figure 1B As shown, the initial geometric model 100 (e.g., a CAD model) is discretized into uniform voxel cubes. The XDesign design guidance module 1010 uses three cases where local geometry is used to preserve the desired features in the topology optimization problem. These three cases correspond to the following three types of regions of the initial geometric model that the user wants to preserve in the topology optimization model:
[0037] 1. Variable region: The design space defined by several geometric models;
[0038] 2. Void region: The required empty space defined by several geometric models; and
[0039] 3. Frozen area: The area that the user wants to keep after optimization.
[0040] Each of the variable, void, and frozen regions is defined by a geometric model and can be of any shape. Typically, the void and frozen regions are immutable, while the XDesign design guidance module 1010 operates on the variable regions to meet the physical and performance characteristics desired by the topology optimization model.
[0041] Users expect the final result to preserve the geometry of the original voids and frozen regions to ensure accuracy. Because voxels, by their nature, can only represent approximations of a volumetric model, the resulting voxel model cannot precisely represent the defined region. Any geometric model can only be discretized into a small set of voxels of conventional size, and these voxels are called a voxel model.
[0042] Figure 1A A schematic diagram of an initial geometric model 100 is shown, which defines the design space that defines the boundaries of the final model. Figure 1B To show the passage Figure 1A A schematic diagram of the voxelized mesh generated from the initial geometric model and used to generate the initial voxelized model 150.
[0043] The optimization process redistributes the mass of the initial voxelized model 150 by changing the density of voxels. As further described below, after topology optimization, in the results module 1026 ( Figure 10A The system calculates thresholds to filter out less important voxels and meet the user-defined target mass reduction rate. Users can also manually adjust the thresholds to add or remove voxels based on design requirements. For example, the optimization process calculates a voxel density parameter value for each voxel and sets a corresponding threshold; voxels above the threshold can be retained, while those below the threshold can be removed.
[0044] After optimization, some voxels are removed based on such a threshold, resulting in a topology-optimized voxel model 200. However, the topology-optimized voxel model 200 is generally still a collection of voxel blocks that only roughly estimate the desired model and cannot produce a smooth surface. To obtain a smooth result, isosurfaces (triangular or quadrilateral meshes) are extracted from the voxel data of the topology-optimized voxel model 200, resulting in a voxel-extracted isosurface mesh model 250. However, since voxels have already been used to roughly estimate the three types of regions, the resulting voxel-extracted isosurface mesh model 250 cannot accurately represent the characteristics of the initial geometric model 100. For example, there may be a lack of material at the surface boundaries, i.e., material that should extend to the boundaries due to voxel removal, or there may be material protruding into regions intended to be voids, where a portion of the retained voxels crosses the boundaries and extends into the void regions. The voxel-extracted isosurface mesh model 250 obtained by the optimization process cannot accurately obtain the desired surface.
[0045] Figure 2A This illustrates how a coarse estimation of voxels in a topology-optimized voxel model 200 does not preserve the smooth surface of the initial geometry model 100. Even after smoothing, the isosurface mesh model 250 with extracted voxels similarly fails to accurately represent the smooth surface of the initial geometry model 100. The cylindrical portion 120 is designed to have a hole with a circular cross-section, and similarly, the elliptical portion 130 is designed to have a smooth elliptical cross-section. The concave region 140 is designed to be hemispherical. (As can be seen in...) Figure 2A-2C As seen in the image, the voxel-extracted isosurface mesh model 250 cannot retain the expected surface shape of the initial geometric model 100.
[0046] Exemplary embodiments of the present invention provide a systematic and reliable method for preserving shape using geometric Boolean operations, which maintains shape in the results from a voxel-based topology optimization solver 1024. Two exemplary embodiments provide different implementations. A first exemplary method embodiment uses a mesh Boolean method that defines three types of regions and discretizes these regions into a mesh. A manifold isosurface mesh is generated based on the results of the voxel-based topology optimization solver 1024. A series of mesh Boolean operations are used to finalize the result, thereby accurately preserving the desired shape in the resulting model.
[0047] The second exemplary method embodiment uses a distance field Boolean approach. In this second embodiment, three types of regions are defined at a high level to generate a directional distance field. The results of a voxel-based topology optimization solver 1024 generate an isosurface mesh with the corresponding directional distance field. A series of directional distance field Boolean operations are used to provide the final directional distance field, and an isosurface mesh is generated based on the final directional distance field, thereby accurately preserving the void / frozen boundary regions from the initial geometric model 100 in the resulting model.
[0048] The first exemplary method embodiment (mesh Boolean) can be described as a series of the following general steps. First, the preprocessing module 1022 ( Figure 10A Mesh generation combines variable regions, void regions, and frozen regions with associated geometric models. Voxel data is collected from such regions and processed by the topology optimization solver module 1024. Figure 10A The voxel data is optimized to produce an optimized voxel model with voxels of specified density values. The isosurface generation module 1036 extracts an isosurface mesh from the optimized voxel model based on a given threshold. Finally, the mesh Boolean module 1038 uses mesh Boolean operations to modify the isosurface to produce the shape of the preserved geometric model.
[0049] Given a geometric model 100 (e.g., a box or another shape), for a standard topology optimization problem, the user first defines a variable region within the geometric model 100. The user defines the applied loads and / or imposes constraints on one or more faces, edges, and / or vertices of the geometric model 100. Additionally, the user can identify one or more surfaces that are preserved (i.e., frozen regions) and regions that may need to be empty (i.e., void regions without material). Each of these regions can be represented as a geographic model, and each geometric model within the geometric model is triangulated into a mesh for subsequent processing. In the preprocessing module, Boolean operations, including intersection, union, and difference, are used for solid modeling. Given two solid models M1 and M2 in 3D space, the three Boolean operations are defined as follows:
[0050] The intersection is a 3D space R 3All points belonging to M1 and M2
[0051]
[0052] Union of 3D space R 3 All points belonging to M1 or M2
[0053]
[0054] The difference set is in 3D space R 3 All points that belong to M1 but not M2
[0055]
[0056] Boolean operations are standard functions in solid modeling. See below for reference. Figure 4A The processing of variable and void regions is described. For variable regions, all selected variable region geometric models 410 are merged into a single combined variable region 420. For void regions, all selected void geometric models 415 are merged into a single void model 425. As shown in box 430, the void region combined model 425 is subtracted from the variable region combined model 420. The resulting geometric model triangles are then divided into variable void meshes 450 using the mesh generation module 440.
[0057] The following is for Figure 4B and Figures 3A-3C Describe the handling of frozen regions. It should be noted that any process description or block in the flowchart should be understood as representing a module, segment, code section, or step including one or more instructions for implementing a specific logical function within the process, and alternative implementations are included within the scope of this invention, within which, depending on the function involved, functions may be executed in an order different from the order shown or discussed, including execution in substantially simultaneous or reverse order, as understood by those skilled in the art.
[0058] As shown in box 460, the user selects one or more faces of frozen regions 120, 130, 140 in block 100. As shown in box 465, the user specifies the thickness of the material region to be maintained, for example, by defining the volume of a portion of block material 100 surrounding the desired void region. Faces 120, 130, 140 are thickened into solid models using a solid modeling thickening method. As shown in box 470, the thickening direction is towards the interior of the model, and if faces 120, 130, 140 are thickened beyond the boundary of the model, the additional volume must be cut off to preserve only the intersection (Boolean operation) between the thickened model and the model. The thickened models for each face 120, 130, 140 are merged to form a frozen model that includes thickened portions 320, 330, 340 corresponding to the selected faces 120, 130, 140. Finally, as shown in box 490, the frozen model is discretized into a variable void mesh 300 by the mesh generation module 480. The preprocessing described above incorporates a geometric model of triangle partitioning to prepare for subsequent processing, which will be described in detail below.
[0059] The cube design space is calculated based on the settings of the topology optimization problem. For the voxel-based topology solver 1024, each geometric model is discretized using voxels of a standard size (e.g., cubes). For example, the cube design space is divided into 32*32*32 voxels or 64*64*64 voxels. In other examples, higher resolutions, such as 128*128*128 or 256*256*256, can be used. Each voxel is assigned a density value between 0 and 1, based on the material density in the geometric model occupied by the corresponding voxel. A density of 0 indicates no material or a void region within the voxel dimension, while a density of 1 indicates that the voxel dimension is filled with material or includes frozen regions.
[0060] For variable regions, all voxels mapped within and / or on any boundary of the geometric model are collected and labeled as including variable material. The density values of the voxels labeled as variable can be adjusted by a voxel-based topology optimization solver 1024.
[0061] For void regions, collect all voxels that are mapped to the geometric model and do not contain any material, and label all voxels with a fixed zero material (value 0).
[0062] For frozen regions, all voxels in contact with the selected face are marked as full material (value 1). This ensures that all parts of the frozen region are surrounded by full material voxels.
[0063] This information ensures that the voxel-based topology optimization solver 1024 produces voxel results based on the region partitioning.
[0064] The relationship between the geometric model and voxels can be determined in different ways. For example, the displayed triangular mesh of the model to be tested can be used for voxel testing. Each triangle in the mesh represents the boundary of the model, and the voxels that touch the triangles represent the boundaries of the original model. All mesh triangles can be traversed to find all voxels on the boundaries. To collect all internal voxels, start with the internal voxels and then iteratively search for all neighboring voxels bounded by the boundary voxels.
[0065] The voxel-based topology optimization solver 1024 receives initial density values of voxels and load conditions as input. As further described below, the voxel-based topology optimization solver 1024 is configured to minimize the compliance of the model constrained by a user-defined maximum mass. The voxel-based topology optimization solver 1024 produces outputs with density values of voxels corresponding to the calculated optimal results.
[0066] The voxel-based topology optimization solver 1024 minimizes model compliance by iteratively changing the density values of voxels labeled as belonging to variable regions, which have values between 0 and 1, but excluding 0 and 1. The voxel-based topology optimization solver 1024 can assign different density values to voxels in different variable regions. The density value can be seen as an indication of the relative importance of each voxel. The smaller the density value, the less important the voxel; the larger the density value, the more important the voxel.
[0067] The voxel-based topology optimization solver 1024 modifies the density values of voxels in variable regions. Voxels in void regions always have a density value of 0. Voxels in frozen regions always have a density value of 1.
[0068] The voxel-based topology optimization solver 1024 solves the following optimization problems:
[0069]
[0070] obey:
[0071] Where U is the displacement vector, F is the force vector, K(x) is the stiffness matrix as a function of the density vector x, V(x) is the material mass, and V0 is the initial material mass. r is a user-specified fixed mass reduction ratio.
[0072] The goal is to find a condition that satisfies the compliance c(x) = U. T The density vector x that K(x)U minimizes is subject to the following constraints: 1. The mass ratio is not greater than the mass reduction ratio specified by the user; 2. The load condition is met; 3. The density value is between 0 and 1.
[0073] The output of the voxel-based topology optimization solver 1024 is a density data array for all voxels. The user can then set a density threshold between 0 and 1 to filter out voxels with smaller values and retain those with larger values. The density-value-mapped voxel model can be converted into a mesh surface using the conventional moving cube method to produce a triangular mesh. Subsequently, a manifold mesh can be generated as an isosurface. The resulting topology-optimized isosurface mesh 250 ( Figure 5B () is a triangular mesh.
[0074] At the boundaries of variable regions, such as the boundary between a variable region and a frozen region, or the boundary between a variable region and a void region, isosurfaces can extend beyond the variable region, but not exceeding one voxel size. At the boundaries of void regions, isosurfaces can extend within the void region, but not exceeding one voxel size. In frozen regions, isosurfaces can extend beyond the frozen region, but not exceeding one voxel size. The resulting isosurfaces can be considered as coarse estimates of the original variable region, void region, and frozen region.
[0075] Figures 5A-5B The input to the grid Boolean technique is shown, while Figure 5C The output is shown. For Figures 5A-5C Each diagram in the image shows a solid drawing on top and a wireframe drawing on the bottom. For example... Figures 5A-5C As shown, mesh Boolean techniques can be applied, for example, via the mesh Boolean module to remove surface material irregularities in isosurfaces caused by voxel model transformation. Mesh Boolean operations are similar to Boolean operations in solid modeling. Mesh Boolean operations (such as intersection, union, and difference) can be applied to triangular or quadrilateral meshes. The mesh Boolean model performs mesh intersection between the topology-optimized isosurface mesh 250 and the variable porosity mesh 100 to produce a result mesh (not shown), and then performs mesh merging between the result mesh and the frozen mesh 300. All boundary shapes are precisely preserved in the final mesh 500.
[0076] Users can increase the voxel density threshold to allow more material or more voxels for isosurface extraction, or they can decrease the voxel density to include less material or fewer voxels for isosurface extraction. For example, adjusting the voxel density can be implemented as an iterative process for the user. Figure 6As shown, if the density threshold is modified, the topology-optimized isosurface mesh 250 is regenerated, and mesh Boolean operation is re-executed using the variable porosity mesh 100 and the frozen mesh 300 to generate the final result 500. As shown in box 620, the input voxel density data 610, load data 611, and boundary conditions 612 are provided to the voxel-based topology optimization solver module 1024 to generate a voxel-based model by optimizing the input parameters. As shown in box 630, the isosurface model is generated from the voxel-based model. As shown in box 640, a mesh intersection model is generated by the mesh binary intersection of the isosurface model and the variable porosity mesh 642. As shown in box 650, the resulting mesh 660 is generated by merging the mesh binary of the mesh intersection model and the frozen mesh 652. The resulting mesh 660 can be iteratively adjusted by adjusting the density threshold 632 and repeating boxes 630, 640, and 650.
[0077] In a second embodiment of the method for optimizing the surface of a 3D CAD model, a directional distance field method and its Boolean operations are used instead of mesh Boolean (according to the first embodiment) to obtain the final result. The advantage of distance field Boolean is its simplicity and speed. In the second embodiment, a directional distance field is generated from each of three input regions (variable region, void region, and frozen region) and the final isosurface mesh. The directional distance field Boolean operations are used to generate the final isosurface mesh that retains the desired shape.
[0078] like Figure 10B As shown, according to 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 geometric model 100 into a topology-optimized model. The XDesign design guidance function module 1010 includes an input model and loading condition submodule 1012, a topology optimization submodule 1014, and a result display submodule 1016. The input model and loading 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 geometric model is surrounded by multiple closed surfaces. A closed surface S in space can be represented by the function f(x, y, z) = 0, (x, y, z) ∈ S. This function is not unique. A natural selection is a signed distance field f(x,y,z) = Dist((x,y,z),S),(x,y,z)∈R 3, which is the signed distance from a point (x,y,z) to surface S. The distance is positive if the point is outside the model, and negative if the point is inside the model. Given two surfaces S1 and S2 and their signed distance field functions f1 and f2, these three Boolean operations can be expressed as:
[0079] Intersection: max(f1(x,y,z),f2(x,y,z))=0 (Formula 4)
[0080] Union: min(f1(x,y,z),f2(x,y,z))=0 (Formula 5)
[0081] Difference: max(f1(x,y,z),-f2(x,y,z))=0 (Formula 6)
[0082] Assuming the geometric model is voxelized, as described above regarding the first embodiment, a signed distance function can be sampled at the center of the voxels of the distance field voxel model in the design space to generate 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. Then, field distance isosurfaces are extracted from the distance field voxel model.
[0083] Signed range fields do not preserve sharp or creased features. Instead, oriented range field methods preserve feature extensions. Extensions are made using scalar distances, with vectors of three distance values along the x, y, and z axes used to define the oriented range field:
[0084]
[0085] Dist i ((x,y,z),S) is a signed distance function along the i-axis, where the i-axis is the x-axis, y-axis, or z-axis. Boolean operations can also be extended to each of the x, y, and z axes. For example, the intersection of S1 and S2 is:
[0086]
[0087] In the second embodiment, since the distance direction is known, the directional distance value is easier to calculate than the signed scalar distance in the first embodiment. A ray can be projected along any point in the x, y, or z direction to intersect the surface, and then the distance to the intersection point is calculated.
[0088] The steps of the directional distance field method in the second embodiment are as follows: Figure 7A and Figure 7B As shown below, see reference. Figure 4A and Figure 4B right Figure 7A and Figure 7B To be discussed in order to highlight the first embodiment ( Figures 4A-4B ) and the second embodiment ( Figures 7A-7B The differences between them. In, for example... Figure 7A In the second embodiment shown, the preprocessing generates a variable void distance field instead of a mesh. Similarly, in Figure 7B A frozen distance field is generated instead of a mesh. An oriented distance field is generated directly from the variable void model and the frozen model. Voxel data is collected from the regions and optimized by the solver module to produce an optimized voxel model. For variable regions, all selected variable region geometry models 710 are merged into a combined variable region 720. For void regions, all selected void geometry models 715 are merged into a void region merged model 725. As shown in box 730, the void region merged model 725 is subtracted from the variable region merged model 720. Note that boxes 710, 715, 720, 725, and 730 are substantially similar to boxes 410, 415, 420, 425, and 430 of the first embodiment. As shown in box 750, after obtaining the isosurface mesh from the solver results, the oriented distance field generation block 740 generates the variable void isosurface distance field.
[0089] like Figure 7B As shown, in the second embodiment, the treatment of the frozen area is similar to that in the first embodiment. Figure 4B In addition to generating a distance field as the final product, rather than a mesh, the user selects one or more faces of frozen regions 120, 130, 140 in block 100, as shown in box 760. As shown in box 765, the user specifies the thickness of the material region to be maintained, for example, by defining the volume of a portion of blocky material 100 surrounding the desired void region. Faces 120, 130, 140 are thickened into solid models using a solid modeling thickening method. As shown in box 770, the thickening direction is towards the interior of the model, and if faces 120, 130, 140 are thickened beyond the boundary of the model, the additional volume must be cut off, meaning that only the intersection (Boolean operation) between the thickened model and the model is maintained. The thickened models for each face 120, 130, 140 are merged to form a frozen model that includes the thickened portions 320, 330, 340 corresponding to the selected faces 120, 130, 140. Finally, as shown in box 790, the frozen model is discretized into a variable-gap distance field 300 by the distance field generation module 780. The preprocessing described above combines the triangularly partitioned geometric model to prepare for subsequent processing, which will be described in detail below.
[0090] In the second embodiment, distance field Boolean techniques, rather than mesh Boolean operations, can be applied, for example, via the distance field function Boolean module 1037, to remove surface material irregularities in the isosurfaces caused by the voxel model transformation. Distance field Boolean operations such as intersection, union, and difference can be applied to triangular or quadrilateral meshes. The distance field function Boolean model 1037 performs a distance field intersection between the topology-optimized isosurface distance field and the variable void distance to produce a result distance field (not shown), and then performs a distance field union between the result distance field and the frozen distance field. All boundary shapes are precisely preserved in the final distance field.
[0091] Similar to the first embodiment, the user can increase the voxel density threshold to allow more material or more voxels for isosurface extraction, or decrease the voxel density to include less material or fewer voxels for isosurface extraction. For example, adjusting the voxel density can be implemented as an iterative process for the user. Figure 8 As shown, if the density threshold is modified, the topology-optimized isosurface mesh 250 is regenerated, and the distance field Boolean operation is re-executed using the variable void distance field and the frozen distance field 300 to generate the final result. As shown in box 620, the input voxel density data 610, load data 611, and boundary conditions 612 are provided to the voxel-based solver module to generate a voxel-based model by optimizing the input parameters. As shown in box 630, the isosurface model is generated from the voxel-based model. As shown in box 835, the distance field data for the isosurface model is generated. As shown in box 840, a distance field intersection model is generated by the binary intersection of the generated distance field and the variable void distance field 842. As shown in box 850, the resulting distance field is generated by the binary merging of the variable void intersection model and the frozen distance field 852. As shown in box 860, the resulting mesh 870 is generated from the resulting distance field by isosurface extraction. The resulting mesh 870 can be iteratively adjusted by adjusting the density threshold 632 and repeating boxes 630, 835, 840, 850, and 860. To better support sharp or creased geometric features in the original model, an extended moving cube method or a dual-contour method can be used.
[0092] As mentioned above, the system used to perform the functions described in the detailed description above can be a computer, an example of which is shown in [example of computer]. Figure 9The schematic diagram illustrates this. System 900 includes a processor 502, a storage device 504, a memory 506, input and output (I / O) devices 510 (or peripheral devices), and a local bus or local interface 512 that enables communication within system 900. The memory 506 stores software 508 defining the aforementioned functions. As is known in the art, the local interface 512 may be, for example, but not limited to, one or more buses or other wired or wireless connections. The local interface 512 may have additional elements to enable communication; for simplicity, these additional elements are omitted, such as controllers, buffers (caches), drivers, repeaters, and receivers. Furthermore, the local interface 512 may include address, control, and / or data connections to enable appropriate communication between the aforementioned components.
[0093] Processor 502 is a hardware device for executing software, particularly software stored in memory 506. Processor 502 may be any custom or commercially available single-core or multi-core processor, central processing unit (CPU), auxiliary processor among several processors associated with the system 900, semiconductor-based microprocessor (in the form of a microchip or chipset), macroprocessor, or any device typically used for executing software instructions.
[0094] Memory 506 may include any one or a combination of volatile memory elements (such as random access memory (RAM, such as dynamic random access memory (DRAM), static random access memory (SRAM), synchronous dynamic random access memory (SDRAM), etc.)) and non-volatile memory elements (such as read-only memory (ROM), hard disk drive, magnetic tape, optical disk read-only memory (CDROM), etc.). Furthermore, memory 506 may incorporate electrical, magnetic, optical, and / or other types of storage media. It should be noted that memory 506 may have a distributed architecture, where the components are geographically separated but are all accessible to processor 502.
[0095] According to the present invention, software 508 defines the functions performed by system 900. As described below, software 508 in memory 506 may include one or more individual programs, each containing an ordered list of executable instructions for implementing the logical functions of system 900. Memory 506 may contain operating system (O / S) 520. The operating system essentially 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.
[0096] I / O device 510 may include input devices, such as, but not limited to, a keyboard, mouse, scanner, microphone, etc. Furthermore, I / O device 510 may also include output devices, such as, but not limited to, a printer, monitor, etc. Finally, I / O device 510 may further include devices that communicate via input and output, such as, but not limited to, modulator / demodulators (modems; used to access another device, system, or network), radio frequency (RF) or other transceivers, telephone interfaces, bridges, routers, or other devices.
[0097] As explained above, when the system 900 is running, the processor 502 is configured to execute software 508 stored in memory 506 to transfer data to and from memory 506, and typically controls the operation of the system 900 according to software 508.
[0098] When system 900 is running, processor 502 is configured to execute software 508 stored in memory 506 to transfer data to and from memory 506, and typically controls the operation of system 900 based on software 508. Operating system 520 is read by processor 502, perhaps buffered within processor 502, and then executed.
[0099] When implementing system 900 in software 508, it should be noted that the instructions for implementing system 900 can be stored on any computer-readable medium for use by or in conjunction with any computer-related device, system, or method. In some embodiments, such a computer-readable medium may correspond to one or both of memory 506 and storage device 504. In the context of this document, a computer-readable medium is an electronic, magnetic, optical, or other physical device or apparatus that can contain or store a computer program for use by or in conjunction with a computer-related device, system, or method. The instructions for implementing the system can be embodied in any computer-readable medium for use by or in conjunction with a processor or other such instruction execution system, apparatus, or device. Although processor 502 has been mentioned by way of example, in some embodiments, such instruction execution system, apparatus, or device can be any computer-based system, a processor-integrated system, or other system that can fetch and execute instructions from and from an instruction execution system, apparatus, or device. In the context of this document, "computer-readable medium" can mean any means capable of storing, transmitting, propagating or transporting programs for use by or in conjunction with a processor or other such instruction execution system, apparatus or device.
[0100] Such computer-readable media can be, for example, but not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, devices, equipment, or propagation media. More specific examples (a non-exhaustive list) of computer-readable media may include the following: electrical connections with one or more cables (electronic), portable computer disks (magnetic), random access memory (RAM) (electronic), read-only memory (ROM) (electronic), erasable programmable read-only memory (EPROM, EEPROM, or flash memory) (electronic), fiber optic (optical), and portable optical disc read-only memory (CDROM) (optical). It should be noted that computer-readable media can even be paper or another suitable medium on which programs are printed, because programs can be electronically captured by optical scanning of, for example, paper or other media, and then compiled, interpreted, or otherwise processed as needed, and then stored in computer memory.
[0101] In an alternative embodiment, system 900 is implemented in hardware and may be implemented using any one or a combination of the following techniques (each of which is well known in the art): discrete logic circuits (having logic gates for implementing logic functions on data signals), application-specific integrated circuits (ASICs, having appropriate combinational logic gates), programmable gate arrays (PGAs), field-programmable gate arrays (FPGAs), etc.
[0102] It will be apparent to those skilled in the art that various modifications and variations can be made to the structure of the invention without departing from the scope or spirit of the invention. In view of the foregoing, it is intended that this invention cover modifications and variations thereof, provided that such modifications and variations fall within the scope of the appended claims and their equivalents.
Claims
1. A computer-based method for maintaining shape in a solid model when allocating material during topology optimization, comprising the following steps: A three-dimensional geometric model of the receiving component, the 3D geometric model including the boundary shape; The 3D geometric model is preprocessed to generate a variable-pore mesh; The 3D geometric model is preprocessed to generate a frozen mesh representing the shape of the boundary. The 3D geometric model is divided into multiple voxels; The density value of each voxel among the plurality of voxels is adjusted according to the optimization process; Extract the extracted isosurface mesh from the data of the multiple voxels; Export the Boolean intersection of the extracted isosurface mesh and the variable porosity mesh; and Perform a Boolean union of the grids between the grid Boolean intersection and the frozen grid.
2. The method according to claim 1, wherein, The preprocessing of the 3D geometric model to generate a variable-void mesh further includes the following steps: A variable model is defined, wherein the variable model includes regions in the 3D geometric model where the material density is variable; A defined void model is defined, wherein the void model includes regions in the 3D geometric model where no material exists; Subtract the void model from the variable model to create a variable void model; and The variable porosity mesh is generated based on the variable porosity model.
3. The method according to claim 2, further comprising the following steps: Multiple variable regions are defined, wherein each of the multiple variable regions is a region in the 3D geometric model where the material density is variable; The multiple variable regions are combined to form the variable model; Multiple void regions are defined, wherein each void region is a region in the 3D geometric model where no material exists; and The multiple void regions are combined to form the void model.
4. The method according to any one of claims 1-3, wherein, The preprocessing of the 3D geometric model to generate a frozen mesh further includes the following steps: Define a frozen region, the frozen region including at least one face of the boundary shape; Thicken each of the at least one face; Each of the thickened surfaces in at least one thickened surface is combined to form a frozen model; and The frozen mesh is generated based on the frozen model.
5. The method according to any one of claims 1-3, wherein, Each of the variable porosity grid, the frozen grid, and the extracted isosurface grid contains a triangularly divided grid.
6. The method according to any one of claims 1-3, wherein, The step of adjusting the density value of each voxel among the plurality of voxels according to the optimization process further includes the following steps: Assign an initial density value to each of the plurality of voxels; and Adjust the voxel density value to minimize overall model compliance.
7. The method of claim 6, further comprising the following steps: An initial threshold is set for the voxel density value, and voxels below the initial threshold are excluded.
8. The method of claim 7, further comprising the following steps: The initial threshold for the voxel density value is iteratively adjusted.
9. The method according to any one of claims 1-3, wherein, The 3D geometric model includes a boundary representation Brep, which represents the shape of the boundary.
Citation Information
Patent Citations
Design of a 3D finite element mesh of a 3D part that comprises a lattice structure
CN110008495A
System and Method for Identifying Original Design Intents Using 3D Scan Data
US20080040080A1