Method of generating component including mixed lattice

In the method of mixing lattice generation component model, the mixing radius is dynamically adjusted by using the combination of segmented scalar domain function h(p) and combining concave and convex mixing, the uplift and stress concentration problems in the prior art are solved, and a more accurate and efficient hybrid lattice structure generation is achieved.

CN119948483APending Publication Date: 2025-05-06SIMENS INDASTRI SOFTVEAR INK
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202280100572.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-09-30
Filing Date
2022-11-10
Publication Date
2025-05-06

AI Technical Summary

Technical Problem

When generating mixed lattice structures, the prior art is prone to stress concentration caused by uplift problems and constant radius mixing, which is difficult to meet the demand for material quantity in different application areas.

Method used

By providing a computer-implemented method to generate component models from the hybrid lattice, the surface of the hybrid lattice is evaluated and generated using the segmented scalar domain function h(p), combining a combination of concave and convex mixing, dynamically adjusting the mixing radius to reduce uplift and stress concentration.

Benefits of technology

It is achieved without adding materials, reducing the uplift and stress concentration in the mixed lattice structure, improving the accuracy and calculation efficiency of the model, and being able to dynamically adjust the material amount according to the needs of different regions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119948483A_ABST
    Figure CN119948483A_ABST
Patent Text Reader

Abstract

A computer-implemented method of generating a part model from a mixed lattice is described. A segmented scalar domain function h (p) of the mixed lattice is evaluated as part of a traveling cube algorithm. F (p) = 0 and g2 (p) = 0 are the same contour surface away from any mix, and g (p) = 0 and g2 (p) = 0 are the same contour surface away from any convex mix, where f (p) is a domain function of an unmixed lattice, g (p) is a domain function of a mixed lattice, and g2 (p) is a domain function of a double mixed lattice. A part model comprising a mixed lattice is then generated using the segmented scalar domain function h (p).
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This patent document claims the benefit of PCT Application No. PCT / US2022 / 045344, filed on September 30, 2022, which is hereby incorporated by reference in its entirety. Technical Field

[0002] The present disclosure relates to a computer-implemented method of generating a component model from a hybrid lattice, wherein the hybrid lattice includes multiple lattice topologies bonded together. Background Art

[0003] Computer-aided design (CAD) systems are commonly used in many areas of engineering, manufacturing, and design to create and manipulate solid modeling representations of objects, such as in additive manufacturing. Boundary representation (B-rep) techniques dominate CAD modeling. B-rep techniques provide efficient and adaptable representations of parts by combining classical geometric structures: analytic surfaces and curves, non-uniform rational basis splines (NURBS), and procedural surfaces and curves with topology, which captures the connectivity and interactions between geometric elements. Additive manufacturing is the process of creating three-dimensional objects using a three-dimensional printer based on a CAD or other digital three-dimensional model. Objects can be scanned as a precursor for creating a CAD model, or can be designed from scratch and stored as an STL (stereolithography file format) or AMF (additive manufacturing file format) file for future printing. Lattices are a common type of internal space filler used in additive manufacturing because their light weight and rigid construction make them ideal for this purpose - the object is reinforced but its mass density remains relatively low. In B-rep (boundary representation) modeling, such a space is surrounded by a collection of closed, connected faces, where each face is part of a two-dimensional surface. The faces have boundary edges defined by curves where the faces intersect each other. The lattice includes multiple lattice topologies, where the lattice topology is a rod or a ball. The rod can be cylindrical or conical, and the ball is a sphere. Each rod is connected to other rods through a ball to form a lattice structure.

[0004] Due to their energy absorption, mechanical strength and other physical qualities, complex lattice structures can be used for heat transfer, filtering and structural components, which have a wide range of applications from automotive to medical technology. However, a particular problem with lattice structures is that stresses arise at the points where the rods and spheres intersect. This can be caused by sharp, concave edges generated in the lattice surface. Stress points can cause problems because they lead to problems with the lattice structure deforming or even breaking in the final component. For example, if the intersection between the rods and the spheres is an area of ​​high stress, it will take very little mechanical strength or pressure to break the lattice at the intersection. One solution to this is to create a hybrid lattice structure in which the intersections between the rods and spheres within the lattice have smooth surfaces, thereby removing the sharp concave edges and the starting points of stress areas. In the Figure 1a An example of mixing is shown in Figure 1a is a schematic perspective view of four rods connected together at a sphere using a blending surface. The four rods 1, 2, 3, 4 meet the sphere 5, which is no longer visible due to the blending surface, which effectively obscures the intersection between the rods 1, 2, 3, 4 and the sphere 5. There is a smooth blending surface 6, 7, 8, 9 between each pair of adjacent rods (1, 2), (2, 3), (3, 4), (4, 1).

[0005] However, one problem with available hybrid applications is that too much material may be added at the intersection, causing bulges. Figure 1b It is shown in Figure 1b is a schematic perspective view of four rods connected together at a ball using a raised mixing surface. Figure 1a Unlike the hybrid surfaces 6, 7, 8, 9 seen in Figure 1, which are in the plane of the long axes of rods 1, 2, 3, 4, a distinct ridge 12 can be seen at the intersection. This makes the box size of the materialized hybrid lattice larger in model space than the box size of the materialized unmixed lattice, which may (i) cause interference problems when incorporated into an assembly containing other parts, and (ii) make the calculation of the box more computationally intensive. Additional material is added to flat or convex surfaces, and the areas of interest for smoothing are the sharp concave edges between lattice topologies.

[0006] The second issue is the freedom the user has to choose the degree of blending at each lattice intersection. Blending is regulated using a blend radius, which is a value that represents the amount of material added at each intersection. In existing blending applications, the blend radius is constant so that the same blending is applied at each intersection of the lattice. However, in some applications, different amounts of material may need to be added, depending on the desired characteristics of the final model or product. For example, a heat sink may require different thermal characteristics at different locations, or a component may require different mechanical strengths in certain areas. Without the ability to vary the blend radius at different locations in the lattice, these options are not possible.

[0007] Therefore, there is a need for an improved method of generating components from hybrid lattices that takes into account the problems encountered with raised, constant radius hybrids. Summary of the invention

[0008] In a first aspect, the present disclosure aims to solve these problems by providing a computer-implemented method for generating a component model from a hybrid lattice, wherein the hybrid lattice comprises a plurality of lattice topologies combined together, at least some of the combinations being a combination of concave and convex hybrids. The method comprises dividing a volume containing an input lattice into a plurality of cubes, each cube forming a voxel with a side length of v. The method also includes evaluating h(p) on the volume for each value of a position p occurring at a corner of a cube, wherein h(p) is a piecewise scalar domain function of the mixed lattice; wherein the surface of an unmixed lattice is defined by the domain function f(p), the surface of a mixed lattice for a concave mix is ​​defined by the domain function g(p), and the surface of a double mixed lattice for a combination of concave and convex mixes is defined by the domain function g2(p), wherein away from any mix, f(p)=0, g2(p)=0 are the same isosurface, and away from any convex mix, g(p)=0 and g2(p)=0 are the same isosurface, and wherein, at a position p where f1(p) and f2(p) satisfy f1(p)≤f2(p) for the two closest lattice topologies i1, i2, the value of h(p) is given by:

[0009] If f1(p)≤-v, then h(p)=f(p);

[0010] If f2(p)≥2r+v, then h(p)=f(p);

[0011] If f1(p)+f2(p)≥2r and f1(p)≥v, then h(p)=f(p);

[0012] If g(p)≥v, then h(p)=g(p);

[0013] If g(p)≤-s and g(p)≤-v, then h(p)=g(p);

[0014] Otherwise, h(p) = g2(p);

[0015] Where r is a concave blending radius and s is a convex blending radius. The method also includes generating a component model including a blending lattice using a scalar domain function h(p).

[0016] By integrating the piecewise computation of the scalar domain function h(p) of the blend lattice into the marching cubes algorithm, and utilizing the ability to equate h(p) with the domain function f(p) of the unmixed lattice for values ​​of position p outside the boundaries set by the voxel resolution v and the blend radius r, various embodiments provide an accurate blending process that avoids adding extra material in flat or convex regions. Additionally, only the domain function g(p) or g2(p) in the blend region needs to be determined for a small number of values ​​of position p, and computation time is reduced by virtue of faster computation of the unmixed lattice domain function f(p), thereby providing a more controllable final part in less time during the manufacturing or design process. By using the dual blend domain function g2(p) as part of the piecewise computation, a convex blend can be applied to a concave blend to reduce the appearance of sharp edges and points that would otherwise appear where two concave blends intersect or where a single concave blend self-intersects.

[0017] Each lattice topology i can be a rod or a sphere.

[0018] The domain function f(p) of the unmixed lattice can be given by:

[0019]

[0020] where f i (p) is the signed distance from position p to the surface of the lattice topology i, and N is the number of lattice topologies in the lattice; and wherein the domain function g(p) of the mixed lattice is given by:

[0021]

[0022] where q is the position within the volume of a sphere of radius r centered at p, and where the domain function of the double hybrid lattice is given by:

[0023]

[0024] where q is the position within the volume of a sphere with radius r+s centered at c, and c is the position within the volume of a sphere with radius s centered at p.

[0025] Evaluation of the following:

[0026]

[0027] can stop at the value of i where f i (p)≤-v.

[0028] Evaluation of the following:

[0029]

[0030] It can stop at the value q where f(q)-r≥v.

[0031] If you have already calculated the value of h(p') at position p', you can set the value of h(p) to the lower limit:

[0032] h lower =h(p')+min(-||p-p'′||r(p′)-r max ,s min -s(p′)), if h lower ≥v,

[0033] Or set to the upper limit:

[0034] h upper =h(p')+max(||p-p'||, r(p')-r min ,s max -s(p′)), if h upper ≤-v.

[0035] In one option, g(p) and the corresponding position q may be determined exactly. Alternatively, g(p) and the corresponding position q may be estimated. Yet further alternatively, g(p) and the corresponding position q may be determined by travelling within the sphere.

[0036] The mixing radius r may be constant over the lattice structure. Alternatively, the mixing radius r may be a function of the position p.

[0037] The method may further include materializing the hybrid lattice into a mesh surface before generating the component model. The method may further include outputting the component model to an additive manufacturing device and manufacturing the component.

[0038] In a second aspect, the present disclosure provides a data processing system configured to generate a component model from a hybrid lattice, wherein the hybrid lattice includes a plurality of lattice topologies combined together, at least some of the combinations being a combination of concave and convex blends, the data processing system including a processor configured to: divide a volume containing an input lattice into a plurality of cubes, each cube forming voxels with a side length of v; evaluate h(p) on the volume for each value of a position p occurring at a vertex of a cube, wherein h(p) is a piecewise scalar domain function of the hybrid lattice; and generate a component model comprising the scalar domain function h(p) using the scalar domain function h(p). A component model of a hybrid lattice; wherein the surface of the unmixed lattice is defined by a domain function f(p), the surface of the hybrid lattice for concave mixing is defined by a domain function g(p), and the surface of the doubly hybrid lattice for a combination of concave and convex mixing is defined by a domain function g2(p), wherein away from any mixing, f(p)=0, g2(p)=0 are the same isosurface, and away from any convex mixing, g(p)=0 and g2(p)=0 are the same isosurface, and wherein, at a position p where f1(p) and f2(p) satisfy f1(p)≤f2(p) for the two closest lattice topologies i1, i2, the value of h(p) is given by:

[0039] If f1(p)≤-v, then h(p)=f(p);

[0040] If f2(p)≥2r+v, then h(p)=f(p);

[0041] If f1(p)+f2(p)≥2r and f1(p)≥v, then h(p)=f(p);

[0042] If g(p)≥v, then h(p)=g(p);

[0043] If g(p)≤-s and g(p)≤-v, then h(p)=g(p);

[0044] Otherwise, h(p) = g2(p);

[0045] Where r is the concave blend radius and s is the convex blend radius.

[0046] The data processing system may also include an output to a three-dimensional printing device.

[0047] In a third aspect, the present disclosure provides a computer program, which, when executed on a computer, causes the computer to perform the steps of the above method. BRIEF DESCRIPTION OF THE DRAWINGS

[0048] The present disclosure will now be described, by way of example only, with reference to the accompanying drawings, in which:

[0049] Figure 1a is a schematic perspective view of four rods connected together at a sphere by a blending surface;

[0050] Figure 1b is a schematic perspective view of four rods connected together at a ball by a raised mixed surface;

[0051] Figure 2 is a flow chart of a method for generating a hybrid lattice, wherein a single hybrid function is used;

[0052] Figure 3 are schematic diagrams of two lattice topologies at sharp concave edges;

[0053] Figure 4 is a schematic representation of a series of cross sections of the isosurfaces of f(p) and g(p);

[0054] Figure 5 It is a schematic diagram for finding the exact maximum value on a sphere;

[0055] Figure 6 is a schematic diagram for estimating the maximum value on a sphere;

[0056] Figure 7 The steps involved in a method of progression for estimating a maximum on a sphere are shown;

[0057] FIG8 is a diagram of mixing two balls using methods according to various embodiments;

[0058] Fig. 9 is an illustration of mixing two balls using a method according to various embodiments;

[0059] Fig.10 The piecewise domain function h(p) of the mixed lattice is shown;

[0060] Fig.11 is a flow chart of a method according to one embodiment;

[0061] Fig.12 is a flow chart of the method of proceeding to estimate the value on the sphere;

[0062] Fig.13 are diagrams of three different lattice configurations with a k value of zero;

[0063] Fig.14 yes Fig.13 A diagram of a mixture of where the k value is 1 / 3;

[0064] Fig.15 yes Fig.13 A diagram of a mixture of where the k value is 2 / 3;

[0065] Fig.16 yes Fig.13 where the k value is 0.95; and

[0066] Fig.17 An example of a data processing system in which embodiments of the present disclosure may be implemented is shown, such as a CAD system configured to perform the processes as described herein. DETAILED DESCRIPTION

[0067] In order to provide background technology for the embodiments of the present disclosure, Figure 2 is a flow chart of a method of generating a hybrid lattice, wherein a single hybrid function is used. The method 200 generates a component model from a hybrid lattice, wherein the hybrid lattice includes multiple lattice topologies bonded together.

[0068] At step 202, the volume containing the input lattice is divided into a plurality of cubes, each cube (or "voxel") having a side length v ("voxel resolution").

[0069] In step 204, for each value of position p occurring at a corner of a cube, h(p) is evaluated consistently over the volume, where h(p) is a piecewise scalar domain function of the mixed lattice. The surface of the unmixed lattice is defined by the domain function f(p), and the surface of the mixed lattice is defined by the domain function g(p). Away from any mixing, f(p) = 0 and g(p) = 0 are the same isosurface. At a position p where f1(p) and f2(p) satisfy f1(p) ≤ f2(p) for the two closest lattice topologies i1, i2, the value of h(p) is given by:

[0070] If f1(p)≤-v, then h(p)=f(p);

[0071] If f2(p)≥2r+v, then h(p)=f(p);

[0072] If f1(p)+f2(p)≥2r and f1(p)≥v, then h(p)=f(p);

[0073] Otherwise, h(p) = g(p),

[0074] where r is the blend radius.

[0075] In step 206, a component model including a hybrid lattice is generated using the scalar domain function h(p). Depending on the purpose of the component, the method 200 may further include optional steps.

[0076] At step 208 , the hybrid lattice may be materialized into a mesh surface before generating a part model.

[0077] At step 210 , the part model may be output to an additive manufacturing device and the part may be manufactured.

[0078] The above mathematical relationship is Figure 3 It is schematically shown in Figure 3 is a schematic representation of two lattice topologies at a sharp concave edge. The steps of method 200 are described in more detail below.

[0079] The mixed lattice surface is defined by a scalar domain function h(p)=0 at position p, h(p)<0 inside the lattice surface, and h(p)>0 outside the lattice surface. Far enough away from any mixing, the scalar domain function h(p) is equal to the domain function f(p) of the unmixed lattice. Near the mixing, h(p) is equal to the mixed domain function g(p), which is based on the offset function for constant radius mixing described in "Blending Operations for the Functionally Based Constructive Geometry" (Alexander A, Pasko and Vladimir V. Savchenko, Set Theoretic Solid Modelling: Techniques and Applications, CSG94 Conference Proceedings). For lattices containing only sharp concave edges, mixing is performed by offsetting the lattice outward by a mixing radius r and then inward to generate a rolling ball blend. The mixing radius r can be a constant across the lattice, or a position function that varies across the lattice. Embodiments of the present disclosure directed to generating components from a hybrid lattice having a constant hybrid radius r are now described.

[0080] Non-mixing and single-mixing domain functions

[0081] The domain function representing the signed distance from a position p to the surface of a lattice topology i such as a rod is f i (p), which has a value of 0 at the lattice topological surface, is positive outside the lattice topological surface, and is negative inside the lattice topological surface. The domain function f(p) of an unmixed lattice constructed as a union of N lattice topologies is given by:

[0082]

[0083] After mixing with a mixing radius r, the mixing domain function g(p) is given by:

[0084]

[0085] where q is the position within the volume of a sphere centered at p and of radius r.

[0086] Figure 4is a schematic diagram of a series of cross sections of isosurfaces of f(p) and g(p). Each domain function is positive outside the lattice, zero on the lattice surface, and negative inside the lattice. Figure 4 a shows the domain function when f(p)=0, where the center line 20 is the surface of the unmixed lattice. Figure 4 b shows the case where the domain function minus the mixing radius is zero or f(q)-r = 0. This mixing can be thought of as a set of points traced out by the center of a solid sphere 21 with a radius equal to the mixing radius r, which rolls around the interior of an offset lattice that is an unmixed lattice extended by the mixing radius r. The center of the sphere represents the domain function g(p) = 0, and the surface of the sphere 21 remains in continuous contact with the isosurface at f(q)-r = 0, as Figure 4 c. Finally, Figure 4 d shows the domain function when g(p) = 0. The function value is equal to the distance from the lattice surface only in some areas, for example, when the unmixed lattice has very sharp edges, g(p) can be several times smaller than the distance from the mixed surface. It is necessary to find the maximum value of f(q)-r on the volume of the sphere rather than on the surface of the sphere (‖qp‖=r). If at any point the maximum on the surface is negative, but the maximum on the volume is positive, and only the surface maximum is used, the mixed surface will contain unwanted disconnected elements. This can only happen if the offset lattice contains void regions, and it can happen even when the unmixed lattice does not contain any void regions.

[0087] Combining unmixed and mixed domain functions

[0088] Computing the mixed domain function g(p) is slower than computing the unmixed domain function f(p) because this may require marching to find a maximum. As mentioned above, away from any mixed region, f(p) and g(p) have the same isosurface (where f(p) = g(p) = 0), so f(p) can be used in these regions instead of g(p) to determine the scalar domain function h(p) of the mixed lattice. This is possible at position p, where f1(p) and f2(p) satisfy f1(p) ≤ f2(p) for the two closest lattice topologies i1, i2, which is given by:

[0089] If f1(p)≤-v, then h(p)=f(p);

[0090] If f2(p)≥2r+v, then h(p)=f(p);

[0091] If f1(p)+f2(p)≥2r and f1(p)≥v, then h(p)=f(p);

[0092] Otherwise, h(p) = g(p),

[0093] where r is the blend radius.

[0094] When the marching cubes algorithm is used so that the entire lattice volume is divided into cubes, each cube (or "voxel") has a side length v ("voxel resolution"). The spatial tree is used to efficiently find all lattice topologies within 2r+v of position p. If fewer than two lattice topologies are found within this distance, then the condition for the second case of h(p) is satisfied. If no lattice topology exists, then h(p) = f(p) > 2r+v. Both f(p) and g(p) are G 0 Continuous (where G 0 is of first order surface continuity, so that the two surfaces meet along a common edge forming a watertight boundary), but h(p) is not. However, G 0 Discontinuities are not within the voxel resolution of the blend surface, so they do not affect the blend surface.

[0095] Approximate domain value

[0096] The marching cubes algorithm estimates the position of the lattice surface by evaluating the zero crossings along each cube edge of length v that connect vertex angles with positive values ​​to vertex angles with negative values. The only positions p whose domain values ​​affect the position of the lattice surface are those that lie within the voxel resolution v of the surface. Any other position p can be a given domain value with little or no relationship to h(p), as long as these values ​​are ≥v outside the surface or ≤-v inside the surface. This allows the following performance improvements to be used:

[0097] 1. Once a lattice topology is found that satisfies fi(p)≤v so that p is far enough inside the unmixed lattice, you can stop as soon as possible assessment;

[0098] 2. Once a point q is found that satisfies f(q)-r≥v (so that p is far enough outside the mixed lattice), it can be stopped as soon as possible. assessment;

[0099] 3. If the value of h(p') has been calculated at position p', then h lower ≥v, set the value of h(p) to the lower limit h lower =h(p′)-||||p-p'′||, or in h upper If ≤-v, set to upper limit h upper =h(p')+||pp'||

[0100] For the last point to hold, assume that |h(p')| is no longer greater than the absolute distance d from p' to the mixed lattice, which is the case if |f(p')|≤d and |g(p')|≤d and if |h(p')| decreases by successive use of lower or upper bounds such that ||p2-p1||≥d2-d1.

[0101] Finding the exact maximum on a sphere

[0102] For a specific sampling point q k and the lattice topology i, the equations for f(p) and g(p) can be rearranged to form the following inequality:

[0103]

[0104] The outer two values ​​are easier to calculate than the middle value g(p). If we can find q k and i, so that the two outer values ​​are equal, then this gives the exact value of g(p). For the lattice topology i, the right-hand value is:

[0105]

[0106] where q k =p+rn i (p),

[0107] where n i (p) is f i The gradient of (p) is the normalized direction from lattice topology i to position p if p is outside lattice topology i, or in the opposite direction if p is inside.

[0108] If there is no lattice topology closer to q than i k If the lattice topology is chosen, then the right-hand value is equal to the left-hand value, in which case g(p) = f(p). This may be the case if the lattice topology closest to p is chosen. Figure 5 It is schematically shown in FIG.

[0109] Estimated maximum value

[0110] By ignoring all but two of the lattice topologies, and by approximating these lattice topologies as planes, an estimate of the steepest increasing direction for the hybrid ridge position s and f(p) can be found. This uses the distance f from each lattice topology 1,2 (p) and the domain gradient n for each lattice topology 1,2 (p) is completed as long as the normal of the cross section N = n1(p) × n2(p) is not a zero vector. The ridge s is two lines p + a 1,2 +λt 1,2 The intersection of , where:

[0111] t 1,2 =n 1,2 (p)×N

[0112] a 1,2 =(rf 1,2 (p))n 1,2 (p).

[0113] The direction of the steepest increase of f(p) is:

[0114] d=n1(p)+n2(p).

[0115] Intersecting the line s = μd with the sphere centered at p and using the solution with the larger d component, or the closest method if the line does not intersect the sphere, gives position q. If the two lattice topologies closest to position p are used, position q is likely to give a near maximum value for g(p), ignoring the curvature of the lattice topology and all other lattice topologies. If this estimate is greater than v, then it can be used. This is in Figure 6 It is schematically shown in FIG.

[0116] Make the sphere travel

[0117] If the shortcut outlined above does not give a value for g(p), the sphere is traveled so as to estimate its value. As an example, Figure 7 The flowchart of FIG. 7 shows the steps involved in an ongoing process for estimating the maximum value on a sphere. The method 700 used in this process begins at step 702 by selecting 13 seed positions q i , 12 of which are located at the vertices of the icosahedron on the surface of the sphere and one at the center, and they are marked as requiring refinement.

[0118] In step 704, for its domain value G i Each unknown sample q i , calculate G i =f(q i )-r, and calculate the planar approximation of the lattice topology to form a set of planes M i If the value of g(p) is greater than the current value, update the value of g(p). If g(p) ≥ v, the method ends.

[0119] For each sample q that needs to be refined i , execute steps 706-710.

[0120] In step 706, the temporary plane set A is set equal to M i , and make a sphere centered at p and with radius r.

[0121] At step 708, the point x is computed as the point on or in the sphere that maximizes the minimum signed distance to any plane in the provided set A. This is done in a series of substeps, beginning with step 708(i), which takes an empty subset of planes B, a solution x at the center of the sphere, and a solution distance d = ∞:

[0122] In step 708(ii) where none of the provided planes are in subset B (i.e., A\B), find the plane with the smallest signed distance from x. If the smallest distance is less than the current solution distance d, then in step 708(iii), add the plane to subset B. If not, then in step 708(iv), return the current solution x.

[0123] (a) In step 708(v), discard x and set d to the value -∞. If there is only one plane in B, then in step 708(vi), find the point on the surface of the sphere with the largest signed distance to that plane and store it as the new possible solution x, and update d. If there is more than one plane in B, then in step 708(vii), determine every pair, triple, or quadruple C of planes from B that contains the most recent plane in B, and for each subset C:

[0124] (a) Find the point on or in the sphere that maximizes the minimum signed distance to any plane in C; and (b) if the distance is greater than the current solution distance d, and if the distance is less than the distance to any other plane in B (i.e., B\C), then the point is stored as the new possible solution x, and d is updated.

[0125] At step 708(viii), the process is repeated from step 708(ii) until step 708(iv) returns the solution x. Step 708 is used each time the marching process is used, as described below with reference to Fig.12 As described above, both single concave mixing and a dual combination of concave mixing and convex mixing are used.

[0126] At step 710, the solution x found in step 708 is used as the new proceeding step q i . In the new travel step, E i is set to f(q i )-r is an estimate. If q i No movement or if the expected threshold value increases (E i -G i ) is lower than in is a value between 0 and 1 that measures how quickly g(p) increases as p moves, and no more refinement is needed for this sample.

[0127] In step 712, if any sample q i If refinement is still required, steps 704 to 710 are repeated for a maximum of three iterations, although other numbers of iterations may be appropriate for different lattice configurations. i Each unknown sample q i , calculate G i =f(q i )-r, and if a new maximum is found, update g(p).

[0128] Variable Radius Blending

[0129] Variable radius blending can be achieved by making the blend radius a function of position r(p). The blend radius at position p is given by:

[0130]

[0131] in:

[0132]

[0133] where f i (p) is the signed distance of position p outside the surface of the lattice topology i, and r i (p) is the mixing radius of the lattice topology i.

[0134] Each blend radius can be specified for each lattice sphere either absolutely or relative to the radius of the lattice sphere. i (p) is independent of position p, while the mixing radius of the lattice rod is linearly interpolated from the mixing radii of its two lattice spheres. The interpolation is done by relaxing from position p to the lattice rod surface and using the proportional distance of the relaxation point along the lattice rod. Replacing the constant mixing radius r in the above steps with a variable mixing radius r(p) affects the lower limit h lower =h(p′)-||pp′|| and upper limit h upper =h(p′)+||p-p′||, to account for the difference between r(p′) and r(p). Since r(p) is still unknown, the minimum mixing radius r of the lattice sphere is used. min and the maximum mixing radius r max , instead of:

[0135] h lower =h(p′)-max(||pp′||r max -r(p′)), if h lower ≥v

[0136] h upper=h(p')+max(||p-p'||, r(p')-r min ), if h upper ≤-v.

[0137] The spatial tree distance used to find all lattice topologies becomes 2r max +v, and the array of found lattice topologies is used to calculate r(p).

[0138] Dual Mixing Domain Function - Combined Concave and Convex Mixing

[0139] Having reviewed the background of blending using a single blend, an example of a dual blend according to an embodiment of the present disclosure is shown in Figure 8. Here, the concave blend is self-intersecting, generating sharp edges that need to be smoothed using a convex blend. Figure 8a 80 is a side perspective view of a portion of a lattice where three bars meet at a ball. The portion of the lattice 80 shown includes a first bar 81 connected to a second bar 82 and a third bar 83. A blending surface 84 is generated in the region between the first bar 81 and the second bar 82. However, while the blending surface 84 itself is a smooth concave blend, its boundaries are sharp edges 85. This is a result of using a large blending radius in the region where two bars meet at an acute angle. Figure 8b As shown, various embodiments employ a combination of concave and convex mixing, wherein a concave mixing surface 84 has been combined with a convex mixing surface 86. This will be described in further detail below.

[0140] The combined concave and convex mixing generates the so-called dual mixing domain function g2(p):

[0141]

[0142] where q is the position within the volume of a sphere of radius r+s centered at c, and c is the position within the volume of a sphere of radius s centered at p.

[0143] In other words, find the distance from point q to the lattice offset outward by r, and maximize that value by moving q within a sphere of radius r+s centered at c. Minimize that maximum by moving c within a sphere of radius s centered at p. This is done in Fig. 9 As schematically shown in Fig. 9 is an illustration of a blend of two spheres using a method according to various embodiments of the present disclosure. Fig. 9 In a, the unmixed domain f(p) of the first sphere 90 and the second sphere 91 is shown, each sphere having a zero contour line A, a positive contour line B and a negative contour line C. The zero contour line A represents the point where f(p)=0. Fig. 9 In b, a hybrid domain g(p) is shown, which has a sharp convex point P in the center. Fig. 9 c shows the structure of the dual mixing domain g2(p). Point q lies on the circumference of a circle centered at c and having a radius r+s. The unmixed domain f(q) at this point is equal to r, the radius of the concave mixing, but the radius of the circle itself is r+s, where s is the mixing radius of the convex mixing represented by the smaller inner circle centered at p. The center c of the large circle lies on the circumference of the smaller inner circle centered at p. The dual mixing domain function g2(p) is shown as an isosurface at g2(p)=0, and it is clear that the isosurface is shaped by a combination of concave mixing and convex mixing. Fig. 9 d shows that Fig. 9 c The final mixture generated by the dual mixing domain function g2(p).

[0144] Computing g2(p) is slower than computing g(p) or f(p) because both c and q need to be found. Similar to the above case, both f(p) and g2(p) have the same zero isosurface away from any blending, so the faster f(p) function can be used instead of g2(p) in any calculations. Away from convex blending, both g(p) and g2(p) have the same zero isosurface, so the faster g2(p) can be used. Therefore, the piecewise domain function from the blending lattice above becomes:

[0145] If f1(p)≤-v, then h(p)=f(p);

[0146] If f2(p)≥2r+v, then h(p)=f(p);

[0147] If f1(p)+f2(p)≥2r and f1(p)≥v, then h(p)=f(p);

[0148] If g(p)≥v, then h(p)=g(p);

[0149] If g(p)≤-s and g(p)≤-v, then h(p)=g(p);

[0150] Otherwise, h(p)=g2(p).

[0151] Although h may not necessarily be the actual distance d from the hybrid lattice, it is ensured that |h|≤|d| and h has the same sign as d. Within a distance v of the lattice surface, h is G 0 Continuous, and

[0152] Fig.10The piecewise domain function h(p) of the hybrid lattice is shown. The piecewise domain function h(p) includes f(p) in the region labeled F, g(p) in the region labeled G, and g2(p) in the region labeled G2. Regions within the voxel resolution of the hybrid lattice are labeled V and do not contain G. 0 Discontinuities. The dual mixed domain function g2(p) can be evaluated using a marching algorithm.

[0153] Therefore, various embodiments of the present disclosure involving dual hybrid domains take steps to use a marching approach to handle the combination of concave and convex hybrids in the lattice structure without adding ridges at the lattice intersections.

[0154] Fig.11 is a flow chart of a method according to one embodiment of the present disclosure. The method 1100 generates a component model from a hybrid lattice, wherein the hybrid lattice includes multiple lattice topologies bonded together.

[0155] At step 1102, the volume containing the input lattice is divided into a plurality of cubes, each cube (or "voxel") having a side length v ("voxel resolution").

[0156] In step 1104, h(p) is estimated consistently over the volume for each value of position p that occurs at a corner of the cube, where h(p) is a piecewise scalar domain function for the mixed lattice. The surface of the unmixed lattice is defined by the domain function f(p), the surface of the mixed lattice for concave mixing is defined by the domain function g(p), and the surface of the double mixed lattice for a combination of concave mixing and convex mixing is defined by the domain function g2(p), where away from any mixing, f(p) = 0, g2(p) = 0 are the same isosurface, and away from any convex mixing, g(p) = 0 and g2(p) = 0 are the same isosurface, and where, at a position p where f1(p) and f2(p) satisfy f1(p) ≤ f2(p) for the two closest lattice topologies i1, i2, the value of h(p) is given by:

[0157] If f1(p)≤-v, then h(p)=f(p);

[0158] If f2(p)≥2r+v, then h(p)=f(p);

[0159] If f1(p)+f2(p)≥2r and f1(p)≥v, then h(p)=f(p);

[0160] If g(p)≥v, then h(p)=g(p);

[0161] If g(p)≤-s and g(p)≤-v, then h(p)=g(p);

[0162] Otherwise, h(p) = g2(p);

[0163] Where r is the concave blend radius and s is the convex blend radius.

[0164] At step 1106, a component model including a mixed lattice having a scalar domain function h(p) is generated. Depending on the purpose of the component, the method 1100 may also include optional steps.

[0165] At step 1108 , the hybrid lattice may be materialized into a mesh surface before generating a part model.

[0166] At step 1110 , the part model may be output to an additive manufacturing device and the part may be manufactured.

[0167] Estimating the dual hybrid threshold by moving the sphere

[0168] As outlined above in connection with the single mixing function, one exemplary way in which the dual mixing domain function g2(p) may be evaluated is by using a marching algorithm. Fig.12 It is shown in Fig.12 is a flow chart of the method for estimating the values ​​on the sphere. If a non-zero convex blend radius is used, g2(p) is estimated using the sphere radius r+s instead of r in place of g(p) above. The location of the refined sampling point q i (trying to maximize g2(p)) and the location of the sphere center c (trying to minimize the maximum). Method 1200 proceeds as follows.

[0169] In step 1202, the sampling position q i are set at 13 seed locations (12 on the surface of the sphere and one at the center) and are marked as needing refinement, with the sphere center c being marked as needing refinement.

[0170] In step 1204, for its domain value G i Each unknown sample q i , calculate G i =f(q i )-r, and calculate the planar approximation of the lattice topology to form a set of planes M i If a new maximum is found, the value of g2(p) is updated. If g2(p) ≥ v and if c does not need to be refined, the method ends.

[0171] For each sample q that needs to be refined i , execute steps 1206-1210.

[0172] At step 1206, a sphere is created with center c and radius r+s.

[0173] In step 1208, the sphere and the set of planes M are used to i Repeat step 708 as set A to find x.

[0174] In step 1210, the solution x found in step 1208 is used as the new proceeding step q i . In the new travel step, E i is set to f(q i )-r estimate. If the sample q i has not moved yet, or if the field value (E i -G i ) is expected to increase less than in is a value between 0 and 1 that measures how quickly g(c) increases as c moves, and no more refinement is needed for this sample.

[0175] At step 1212, if g2(p)>-v and if c needs to be refined, a new sphere center c is calculated within a distance s of p. i A plane is formed at the point that is tangent to the sphere and offset inward by a distance E. i , thereby forming a set of planes N. Let the sphere be centered at p and have a radius s. At this time, repeat step 708, as Fig.12 As shown, the sphere and the set of planes N are taken as set A, and if the distance of solution x from the old sphere center is greater than 0.1v, then solution x is used as the new sphere center c. If the sphere center has moved, then sample q i By shifting the center of the sphere, g2(p) together with all G i are discarded together, and sample q i Marked as requiring refinement.

[0176] At step 1214, if any sample q i If refinement is still required, steps 1204 to 1212 are repeated for up to 8 iterations, with the center of the sphere being marked as not requiring any more refinement for the last two iterations, although other numbers of iterations may be appropriate for different lattice configurations.

[0177] In step 1216, for its domain value G i Each unknown sample q i , calculate G i =f(q i )-r, and if a new maximum has been found, update g2(p).

[0178] From multiple seeds, multiple passes are used. This partially improves the chances of finding a global maximum rather than a local maximum, and partially makes each local maximum (if there is more than one) have the influence of the sphere center c. There are two local maxima between the two symmetric lattice rods, which are equal once c has converged. There is a single local maximum between the two symmetric lattice spheres, which is the point that becomes the circular global maximum when c has converged. Sample q i The convergence of is slow enough that c converges appropriately even if there is only a single maximum. In this embodiment and the above embodiments, the number of seeds selected is 13. This represents a number suitable for a large number of lattices, however, the number of seeds used can be reduced or increased to improve performance in some lattice configurations.

[0179] Select the convex blend radius

[0180] The convex blend radius s needs to be smaller than the radius of any nearby lattice topology, otherwise the lattice topology will disappear from the blending result, and should also be smaller than the concave blend radius r in order to produce perceptible results. It is estimated using a scaled value of the local curvature radius 1(p). The local curvature radius 1(p) is given by:

[0181]

[0182] in:

[0183]

[0184] where f i (p) is the signed distance p outside the surface of the lattice topology i, and l i (p) is the radius of the lattice topology i or r(p), whichever is smaller.

[0185] Only those satisfying f are included in the calculation i (p) < 2r(p). The radius of the lattice topology i, l i (p) is a function of the position p to take into account that the rod may have a variable radius along its length. It is necessary to include To avoid a radius of curvature greater than the value containing p(f i (p)≤0), which will cause the included lattice topology to disappear from the mixed result. i This parameter is also used when all values ​​of (p) are zero.

[0186] When f j When (p) < 0, the absolute value is used in the above product rather than using zero instead of negative values, because this avoids the problem of j When (p) is negative, w iAll values ​​of l(p) are zero. This will correspond to p lying within both lattice topologies, and will result in a discontinuity in l(p) when entering or leaving a second lattice topology of a different radius. Using absolute values, the discontinuity is restricted to the intersection of two lattice topologies of different radius, but this is not possible within the voxel resolution of the blended surface. If all lattice topologies have the same radius, or if they all have a radius greater than r(p), then l(p) can be simplified to being equal to l1(p). If the values ​​of f1(p) are all equal and positive, then this simplifies to calculating the average of l1(p). i (p) has only one zero value on the lattice surface, l(p) = l i (p). The local radius of curvature is then scaled to produce a convex blend radius:

[0187] s(p)=kl(p),

[0188] where k is a constant.

[0189] Figures 13 to 16 The effect of varying the value of k for different mixes is shown. Fig.13 are diagrams of three different lattice configurations with a k value of zero. Fig.13 The mixture in a is the lattice portion shown in Figure 8, Fig.13 The mixture in b is a series of balls and rods, and Fig.13 The mixture in c is a set of rods. No convex mixture is generated for any of these lattices, so that Fig.13 In a, a sharp edge appears at the concave blend, Fig.13 In b, a sharp point is generated on the sphere, and Fig.13 In c, sharp edges appear on each concave blend between each rod.

[0190] Fig.14 yes Fig.13 where the k value is 1 / 3. Fig.14 This results in a reasonable bump blend on the edge in a, but Fig.14 Tightly curved regions still exist in b and 14c.

[0191] Fig.15 yes Fig.13 , where the k value is 2 / 3. In this example, Fig.15 a now shows the sharp concave edges where the convex blend is self-intersecting, however, these sharp points and edges have been removed from Fig.15 b and disappeared in 15c.

[0192] Fig.16 yes Fig.13 , where the k value is 0.95. Fig.16In a, it looks like no mixing has occurred. Fig.16 The rods in b are identical relative to the base of the lattice. However, Fig.16 c still shows a convex blend with a concave blend between the rods. After testing with various voxel sizes v, a value of k = 2 / 3 was chosen as the scaling factor for the local radius l(p) because at certain voxel sizes the edge sharpness on the various lattice structures was significantly removed or not apparent.

[0193] As mentioned above, changing the concave mixing radius r(p) affects the lower limit h lower and upper limit h upper , the same is true for any change in the convex blend radius s(p):

[0194] min(Δh)=min(-||||Δp||,-Δr,Δs) and

[0195] max(Δh)=max(||Δp||,-ΔΔr,Δs),

[0196] Since s(p) is not known yet, the minimum value s is used instead. min and the maximum value s max Therefore, having calculated the previous values ​​h(p), h(p'), h(p) can be set as the lower limit: h lower =h(p')+min(-||pp′||, r(p')-r max ,s min -s(p')), if h lower ≥v, or set to an upper limit:

[0197] h upper =h(p')+max(||pp′||, r(p′′)-r min ,s max -s(p')) if h upper ≤-v.

[0198] Fig.17An example of a data processing system in which an embodiment of the present disclosure can be implemented is shown, for example, a CAD system configured to perform a process as described herein. The data processing system 170 includes a processor 171 connected to a local system bus 172. The local system bus connects the processor to a main memory 173 and a graphics display adapter 174, which can be connected to a display 175. The data processing system can communicate with other systems via a wireless user interface adapter connected to the local system bus 172 or via a wired network such as a local area network. Additional memory 176 can also be connected via the local system bus. Suitable adapters such as a wireless user interface adapter 177 for other peripherals such as a keyboard 178 and a mouse 179 or other pointing devices allow a user to provide input to the data processing system. An additive manufacturing device such as a 3D printer 180 can be included to enable a component model to be output for manufacturing. Other peripherals may include one or more I / O controllers, such as a USB controller, a Bluetooth controller, and / or a dedicated audio controller (connected to a speaker and / or a microphone). It should also be understood that various peripherals may be connected to the USB controller (via various USB ports), including input devices (e.g., keyboards, mice, touch screens, trackballs, cameras, microphones, scanners), output devices (e.g., printers, speakers), or any other type of device operable to provide input or receive output from a data processing system. Furthermore, it should be understood that many devices referred to as input devices or output devices may provide input to and receive output from a data processing system. Furthermore, it should be understood that other peripheral hardware connected to the I / O controller may include any type of device, machine, or component configured to communicate with a data processing system.

[0199] An operating system included in the data processing system enables output from the system to be displayed to a user on display 175 and for the user to interact with the system. Examples of operating systems that may be used in the data processing system may include Microsoft Windows. TM , Linux TM ,UNIX TM 、iOS TM and Android TM operating system.

[0200] In addition, it should be understood that data processing system 170 can be implemented as a networked environment, a distributed system environment, a virtual machine in a virtual machine architecture, and / or a cloud environment. For example, processor 81 and associated components can correspond to a virtual machine executed in a virtual machine environment of one or more servers. Examples of virtual machine architectures include VMware ESCi, Microsoft Hyper-V, Xen, and KVM.

[0201] Those of ordinary skill in the art will appreciate that the hardware described for data processing system 170 may vary for a particular implementation. For example, data processing system 170 in this example may correspond to a computer, workstation, and / or server. However, it should be understood that alternative embodiments of the data processing system may be configured with corresponding or alternative components, such as in the form of a mobile phone, tablet, controller board, or any other system that is operable to process data and perform the functions and features described herein associated with the operation of the data processing system, computer, processor, and / or controller discussed herein. The depicted examples are provided for illustrative purposes only and are not meant to imply architectural limitations to the present disclosure.

[0202] Data processing system 170 may be connected to a network (not part of data processing system 170), which may be any public or private data processing system network or combination of networks known to those skilled in the art, including the Internet. Data processing system 170 may communicate with one or more other data processing systems, such as servers (also not part of data processing system 170), via the network. However, alternative data processing systems may correspond to multiple data processing systems implemented as part of a distributed system in which processors associated with several data processing systems may communicate via one or more network connections and may together perform tasks performed by a single data processing system. Therefore, it should be understood that when referring to a data processing system, such a system may be implemented on several data processing systems that communicate with each other via a network and are organized into a distributed system.

[0203] Embodiments of the present disclosure provide blending lattices without the bumps at the lattice intersections seen in prior blending applications. Furthermore, by using the shortcut outlined above, this method is much faster than evaluating g2(p) for each cube voxel vertex. Furthermore, by combining the concave rolling ball blending with the convex rolling ball blending, using a dual blending domain function g2(p) eliminates any issues with sharp edges or points generated in the resulting blend.

Claims

1. A computer-implemented method of generating a component model from a hybrid lattice, wherein the hybrid lattice comprises a plurality of lattice topologies bonded together, at least some of the bonds being a combination of concave and convex blends, the method comprising: a) dividing the volume containing the input lattice into a number of cubes, each cube forming a voxel with a side length of v; b) evaluating h(p) over the volume for each value of position p occurring at a corner of the cube, where h(p) is a piecewise scalar domain function of the mixed lattice; where the surface of the unmixed lattice is defined by the domain function f(p), the surface of the mixed lattice for concave mixing is defined by the domain function g(p), and the surface of the doubly mixed lattice for a combination of concave and convex mixing is defined by the domain function g2(p), where away from any mixing, f(p) = 0, g2(p) = 0 are the same isosurface, and away from any convex mixing, g(p) = 0 and g2(p) = 0 are the same isosurface, and where, at a position p where f1(p) and f2(p) satisfy f1(p) ≤ f2(p) for the two closest lattice topologies i1, i2, the value of h(p) is given by: If f1(p)≤-v, then h(p)=f(p); If f2(p)≥2r+v, then h(p)=f(p); If f1(p)+f2(p)≥2r and f1(p)≥v, then h(p)=f(p); If g(p)≥v, then h(p)=g(p); If g(p)≤-s and g(p)≤-v, then h(p)=g(p); Otherwise, h(p) = g2(p); Where r is the concave blend radius and s is the convex blend radius; and c) generating a component model including a mixed lattice using the scalar domain function h(p).

2. The computer-implemented method of claim 1 , wherein: Each lattice topology i is either a rod or a sphere.

3. The computer-implemented method of claim 1 , wherein: The domain function f(p) of the unmixed lattice is given by: where f i (p) is the signed distance from the position p to the surface of the lattice topology i, and N is the number of lattice topologies in the mixed lattice, The domain function g(p) of the mixed lattice is given by: where q is the position within the volume of a sphere of radius r centered at p, and where the domain function of the double hybrid lattice is given by: where q is the position within the volume of a sphere of radius r+s centered at c, and c is the position within the volume of a sphere of radius s centered at p.

4. The computer-implemented method of claim 3, wherein: Evaluation of the following: Stop at the value of i where f i (p)≤-v, and Among them, the evaluation of the following formula: Stop at the value q where f(q)-r≥v.

5. The computer-implemented method of claim 4, wherein: When the value of h(p') has been calculated at position p', the value of h(p) can be set to the lower limit: h lower =h(p′)+min(-||pp′||, r(p′)-r max ,s min -s(p′)), if h lower ≥v, or set to the upper limit: h upper =h(p′)+max(||pp′||, r(p′)-r min ,s max -s(p′)), if h upper ≤-v.

6. A computer-implemented method according to any one of claims 3 to 5, wherein: Accurately determine g(p) and the corresponding position q.

7. A computer-implemented method according to any one of claims 3 to 5, wherein: Estimate g(p) and the corresponding position q.

8. A computer-implemented method according to any one of claims 3 to 5, wherein: g(p) is estimated by traveling on the sphere.

9. A computer-implemented method according to any one of claims 3 to 5, wherein: Estimate g2(p) by traveling on the sphere.

10. A computer-implemented method according to any preceding claim, wherein: The mixing radius r is constant over the lattice structure.

11. A computer-implemented method according to any preceding claim, wherein: The mixing radius r is a function of the position p.

12. A computer-implemented method according to any preceding claim, wherein: The convex blending radius s is given by: s(p)=kl(p), where k is a constant and l(p) is the local radius of curvature.

13. The computer-implemented method of any preceding claim, further comprising: Before generating the component model, the hybrid lattice is materialized into a mesh surface.

14. The computer-implemented method of any one of claims 1 to 12, further comprising: The component model is exported to an additive manufacturing device and the component is manufactured.

15. A data processing system configured to generate a component model from a hybrid lattice, wherein the hybrid lattice includes a plurality of lattice topologies bonded together, at least some of the bonds being a combination of concave and convex blends, the data processing system comprising: A processor configured to: Divide the volume containing the input lattice into cubes, each of which forms voxels with side length v; evaluating h(p) over the volume for each value of position p occurring at a corner of a cube, where h(p) is a piecewise scalar domain function of the mixed lattice; and generating a component model including a hybrid lattice using the scalar domain function h(p); where the surface of the unmixed lattice is defined by the domain function f(p), the surface of the mixed lattice for concave mixing is defined by the domain function g(p), and the surface of the doubly mixed lattice for a combination of concave and convex mixing is defined by the domain function g2(p), where f(p) = 0 and g2(p) = 0 are the same isosurface away from any blending, and g(p) = 0 and g2(p) = 0 are the same isosurface away from any convex blending, and where at position p where f1(p) and f2(p) satisfy f1(p)≤f2(p) for the two closest lattice topologies i1, i2, the value of h(p) is given by: If f1(p)≤-v, then h(p)=f(p); If f2(p)≥2r+v, then h(p)=f(p); If f1(p)+f2(p)≥2r and f1(p)≥v, then h(p)=f(p); If g(p)≥v, then h(p)=g(p); If g(p)≤-s and g(p)≤-v, then h(p)=g(p); Otherwise, h(p) = g2(p); Where r is the concave blend radius and s is the convex blend radius.

16. The data processing system according to claim 15, further comprising: Output to the 3D printing device.

17. A computer program which, when executed on a computer, causes the computer to perform the steps of the method according to any one of claims 1 to 14.