Method of generating component including mixed lattice
By evaluating the segmented scalar domain function h(p) in the mixed lattice and generating a component model, the problem of difficulty in adjusting the intersection point of lattice and mixing radius in the prior art is solved, and a smaller and simpler component model and more flexible application capabilities are achieved.
Patent Information
- Application Number
- CN202280100477.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2022-09-30
- Publication Date
- 2025-05-06
AI Technical Summary
In existing hybrid lattice applications, bumps are prone to occur at the intersection of lattice, resulting in increased size of component models, increased computational complexity, and it is difficult for users to adjust the mixing radius at different locations to meet different application needs.
By dividing the volume of the input lattice into multiple cubes, each cube evaluates the segmented scalar domain function h(p) of the mixed lattice, using h(p) to generate a component model including the mixed lattice, avoiding the addition of additional material in flat or raised areas, and allowing adjustment of the mixing radius at different locations.
It realizes avoiding bulges at the intersection of lattices, reduces the size and computational complexity of the component model, and provides more flexible mixing radius adjustment capabilities to meet different application needs.
Smart Images

Figure CN119948482A_ABST
Abstract
Description
Technical Field
[0001] 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
[0002] 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.
[0003] 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 1ais a schematic perspective view of four rods connected together at a ball using a mixing surface. The four rods 1,2,3,4 meet the ball 5, which is no longer visible due to the mixing surface, which effectively obscures the intersection between the rods 1,2,3,4 and the ball 5. The upper mixing surface 6, which is in the same plane as the long axis of the rods 1,2,3,4, is shown as smooth, with only small circular ridges corresponding to each rod 1,2,3,4 visible. Although not shown, the view is the same for the lower mixing surface 7. Between each rod 1,2,3,4, the upper mixing surface 6 and the lower mixing surface are stretched into a mesh section 8,9,10,11, where the upper mixing surface 6 and the lower mixing surface 7 meet. This creates a smooth surface between each of the four rods 1,2,3,4.
[0004] However, one problem with available hybrid applications is that too much material is 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 smooth upper mixed surface 6 seen in Figure 1, a noticeable ridge 12 is visible at the intersection. This makes the box size of the materialized mixed lattice larger than the box size of the materialized unmixed lattice in model space, which may (i) cause interference problems when incorporated into an assembly containing other components, and (ii) make the calculation of the box more computationally intensive. Primarily, additional material is added to flat or convex surfaces, while the surfaces of interest for smoothing are sharp concave edges between lattice topologies.
[0005] 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 blend 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 properties of the final model or product. For example, a heat sink may require different thermal properties 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.
[0006] 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
[0007] In a first aspect, the present invention 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 joined together. The method comprises: a) dividing a volume containing an input lattice into a plurality of cubes, each cube (or "voxel") having a side length v ("voxel resolution"); b) evaluating h(p) consistently over 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 hybrid lattice; wherein the surface of the unhybrid lattice is defined by the domain function f(p), and the surface of the hybrid lattice is defined by the domain function g(p), wherein away from any hybridization, f(p)=0 and g(p)=0 are identical isosurfaces, and wherein, at a position p where f1(p) and f2(p) satisfy f1(p)≤f2(p) for two closest lattice topologies i1, i2, the value of h(p) is given by:
[0008] If f1(p)≤-v, then h(p)=f(p);
[0009] If f2(p)≥2r+v, then h(p)=f(p);
[0010] If f1(p)+f2(p)≥2r and f1(p)≥v, then h(p)=f(p);
[0011] Otherwise, h(p) = g(p),
[0012] where r is the mixing radius; c) generating a component model including a mixing lattice using a scalar domain function h(p).
[0013] By integrating the piecewise computation of the scalar domain function h(p) of the hybrid 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 hybrid radius r, various embodiments disclosed herein provide an accurate hybrid process that avoids adding extra material in flat or convex regions. Furthermore, the domain function g(p) in the hybrid region only needs to be determined for a relatively small number of values of position p, and computation time is reduced by 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.
[0014] Each lattice topology i can be a rod or a sphere.
[0015] The domain function f(p) of the unmixed lattice can be given by:
[0016]
[0017] where fi (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:
[0018]
[0019] where q is the position within the volume of a sphere centered at p and of radius r.
[0020] Evaluation of the following:
[0021]
[0022] can stop at the value of i where f i (p)≤-v, and the evaluation of the following:
[0023]
[0024] Stop at the value q where f(q)-r≥v.
[0025] 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:
[0026] h lower =h(p′)-||pp′||, if h lower ≥v,
[0027] Or limit to an upper limit:
[0028] h upper =h(p′)+||pp″||, if h upper ≤-v.
[0029] 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 using the sphere sampling.
[0030] The mixing radius r may be constant over the lattice structure. Alternatively, the mixing radius r may be a function of the position p.
[0031] 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.
[0032] In a second aspect, there is provided a data processing system configured to generate a component model from a hybrid lattice, wherein the hybrid lattice comprises a plurality of lattice topologies joined together, the data processing system comprising: a processor configured to divide a volume containing an input lattice into a plurality of cubes, each cube (or "voxel") having a side length v ("voxel resolution"); for each value of a position p occurring at a corner of a cube, uniformly evaluating h(p) over the volume, wherein h(p) is a piecewise scalar domain function of the hybrid lattice; wherein the surface of the unhybrid lattice is defined by the domain function f(p), and the surface of the hybrid lattice is defined by the domain function g(p), wherein away from any hybridization, f(p)=0 and g(p)=0 are the same isosurface, and wherein, at a position p where f1(p) and f2(p) satisfy f1(p)≤f2(p) for two closest lattice topologies i1, i2, the value of h(p) is given by:
[0033] If f1(p)≤-v, then h(p)=f(p);
[0034] If f2(p)≥2r+v, then h(p)=f(p);
[0035] If f1(p)+f2(p)≥2r and f1(p)≥v, then h(p)=f(p);
[0036] Otherwise, h(p)=g(p).
[0037] where r is the mixing radius; and the component model including the mixing lattice is generated using the scalar domain function h(p).
[0038] The data processing system may also include an output to a three-dimensional printing device.
[0039] In a third aspect, there is provided 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
[0040] The present disclosure will now be described, by way of example only, with reference to the accompanying drawings, in which:
[0041] Figure 1a is a schematic perspective view of four rods connected together at a sphere by a blending surface;
[0042] Figure 1b is a schematic perspective view of four rods connected together at a ball by a raised mixed surface;
[0043] Figure 2 is a flow chart of a method according to one embodiment;
[0044] Figure 3 are schematic diagrams of two lattice topologies at sharp concave edges;
[0045] Figure 4 is a schematic representation of a series of cross sections of the isosurfaces of f(p) and g(p);
[0046] Figure 5 It is a schematic diagram for finding the exact maximum value on a sphere;
[0047] Figure 6 is a schematic diagram for estimating the maximum value on a sphere;
[0048] Figure 7 It is a schematic diagram of measuring a triangular face on the surface of a sphere;
[0049] Figure 8 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;
[0050] 9-23 respectively show a pair of lattices, wherein FIG. 9-23 shows an unmixed lattice and FIG. 9-23 shows a mixed lattice generated using the methods of these embodiments. DETAILED DESCRIPTION
[0051] Various embodiments of the present disclosure employ the use of a rolling ball hybrid approach to address sharp concave edges in a lattice structure without adding ridges at lattice intersections. Figure 2 is a flow chart of a method according to one embodiment. Method 200 generates a component model from a hybrid lattice, wherein the hybrid lattice includes multiple lattice topologies combined together. Initially, in step 202, the volume containing the input lattice is divided into multiple cubes, each cube (or "voxel") having a side length v ("voxel resolution"). Then, in step 204, for each value of position p occurring at the vertex of the cube, h(p) is evaluated consistently over the volume, where h(p) is a piecewise scalar domain function of the hybrid lattice. The surface of the unmixed lattice is defined by the domain function f(p), and the surface of the hybrid 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:
[0052] If f1(p)≤-v, then h(p)=f(p);
[0053] If f2(p)≥2r+v, then h(p)=f(p);
[0054] If f1(p)+f2(p)≥2r and f1(p)≥v, then h(p)=f(p);
[0055] Otherwise, h(p) = g(p),
[0056] Where r is the hybrid radius. At step 206, a component model including the hybrid lattice is generated using the scalar domain function h(p). Depending on the purpose of the component, method 200 may also include optional steps. At step 208, the hybrid lattice may be materialized as a mesh surface before generating the component model. At step 210, the component model may be output to an additive manufacturing device and the component may be manufactured. 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.
[0057] 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 will now be described.
[0058] Non-mixed and mixed domain functions
[0059] 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 topology surface, is positive outside the lattice topology surface, and is negative inside the lattice topology surface. The domain function of the unmixed lattice containing N lattice topologies is constructed as the union of the N lattice topologies, and f(p) is given by:
[0060]
[0061] After mixing with a mixing radius r, the mixing domain function g(p) is given by:
[0062]
[0063] where q is the position within the volume of a sphere centered at p and of radius r.
[0064] Figure 4 is 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(p)-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(p)-r = 0, as shown in 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.
[0065] Combining unmixed and mixed domain functions
[0066] Computing the mixed domain function g(p) is slower than computing the unmixed domain function f(p) because this may require sampling to find the maximum. As mentioned above, away from any mixed regions, 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:
[0067] If f1(p)≤-v, then h(p)=f(p);
[0068] If f2(p)≥2r+v, then h(p)=f(p);
[0069] If f1(p)+f2(p)≥2r and f1(p)≥v, then h(p)=f(p);
[0070] Otherwise, h(p) = g(p),
[0071] where r is the blending radius. When the marching cubes algorithm is used so that the entire lattice volume is divided into multiple 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.
[0072] Approximate domain value
[0073] 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 positions p can be given domain values that have little or no relationship to h(p), as long as they are ≥v outside the surface or ≤-v inside the surface. This allows the following performance improvements to be used:
[0074] 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;
[0075] 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;
[0076] 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′)-||pp′||, or in h upper If ≤-v, set to upper limit h upper =h(p′)+||pp′||.
[0077] 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.
[0078] Finding the exact maximum on a sphere
[0079] 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:
[0080]
[0081] 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:
[0082]
[0083] where q k =p+rn i (p),
[0084] 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. If there is no lattice topology i closer to q kIf 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 is most likely the case if the lattice topology closest to p is chosen. Figure 5 It is schematically shown in FIG.
[0085] Estimated maximum value
[0086] 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:
[0087] t 1,2 =n 1,2 (p)×N
[0088] a 1,2 =(rf 1,2 (p))n 1,2 (p).
[0089] The direction of the steepest increase of f(p) is:
[0090] d=n1(p)+n2(p).
[0091] 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.
[0092] Sampling the sphere
[0093] If the shortcut outlined above does not give a value for g(p), the sphere is sampled in order to estimate its value. The sampling density in some parts of the sphere needs to be high in order to produce smooth blending. Sampling is performed over a maximum of nine stages, optionally increasing the sampling density until g(p) ≥ v, or if there are more than four stages, until the spacing between sampling points is less than the voxel resolution v. Samples are collected at the center of the sphere, and at the vertices of a series of geodesic polyhedra constructed by subdividing the faces of an icosahedron and projecting the vertices onto the surface of the sphere. The following steps are then performed:
[0094] a) List the twenty faces of the icosahedron whose vertices lie on a sphere of blend radius r and centered at position p.
[0095] b) For each face in the face list, and for each vertex q of that triangle face, compute the value of f(q) - r. Avoid any vertices that have already been visited during this stage or earlier stages. If it is higher than the current maximum, increase g(p) to f(q) - r. If g(p) is greater than the voxel resolution v, stop.
[0096] c) For each face in the face list, use the sample values of its three vertices to decide whether the face can contain a higher value of f(q)-r than the current maximum. If so, subdivide the face into smaller triangles, project the vertices onto a sphere, and append these faces to the face list for use in the next stage of refinement.
[0097] d) If it is not empty, e.g., at most nine stages, or if there are more than four stages, repeat from step b using the face list of the next stage until the spacing between sampling points is less than the voxel resolution v.
[0098] The faces and vertices of all stages are calculated only once, and the faces of each stage are sorted so that face A i The n subdivisions are surface B ni …B ni+n-1 , and face B i The n subdivisions are the surface C ni …C ni+n-1 , and so on. A single array can be used to store sample values for reuse in a later stage without recalculation. Experimentally, it was found that subdividing each face into four faces gives the best performance. A face should be subdivided if it is likely to contain a higher value of f(q)-r than the current maximum. The highest possible value depends on the face vertex q i G i The minimum and maximum values (where G i =f(q i )-r) and the size of the surface, assuming
[0099] g upper =min(max(G1, G2, G3)+d, min(G1, G2, G3)+b).
[0100] If the vertices of the face each have the same closest lattice topology (giving a smaller upper limit), then d = t, otherwise d = c. b is the maximum spacing between the face vertices, c is the distance from the center of the sphere face to the vertex, and t is the thickness of the sphere face. This is in Figure 7 As schematically shown in Figure 7 Measurements for triangular faces on a sphere are shown. b, c, and t are calculated for each face because the value changes between faces can be significant within a stage, especially in later stages. For example, in stage 6, b can change by 24%, c can change by 30%, and t can change by 84%.
[0101] Variable Radius Blending
[0102] Embodiments of the present disclosure involving the generation of components from a hybrid lattice with a variable hybrid radius r(q) will now be described. Variable radius hybridization can be achieved by letting the hybrid radius be a function of position r(p). The hybrid radius at position p is given by:
[0103]
[0104] in:
[0105]
[0106] 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. Each mixing radius can be specified for each lattice sphere either absolutely or relative to the radius of the lattice sphere. The mixing radius r of each lattice sphere i (p) is independent of position p, while the mixing radius of a 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) requires using the minimum mixing radius r of the lattice spheres. min and the maximum mixing radius r max . Lower limit h lower =h(p′)-||pp′|| and upper limit h upper =h(p′)+||pp′|| is affected. Since r(p) is still unknown, r is used. min and r max , instead of:
[0107] h lower =h(p′)-max(||pp′||,r max -r(p′)), if h lower ≥v
[0108] h upper =h(p′)+max(||pp′||,r(p′)-r min ), if h uper ≤-v.
[0109] 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).
[0110] Figure 8 An 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 80 includes a processor 81 connected to a local system bus 82. The local system bus connects the processor to a main memory 83 and a graphics display adapter 84, which can be connected to a display 85. The data processing system can communicate with other systems via a wireless user interface adapter connected to the local system bus 82, or via a wired network such as a local area network. Additional memory 86 can also be connected via the local system bus. Suitable adapters such as a wireless user interface adapter 87 for other peripherals such as a keyboard 88 and a mouse 89 or other pointing devices allow a user to provide input to the data processing system. An additive manufacturing device such as a 3D printer 90 can be included so that a component model can be output for manufacturing. Other peripherals can 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.
[0111] An operating system included in the data processing system enables output from the system to be displayed to a user on display 85 and the user to interact with the system. Examples of operating systems that may be used in a data processing system may include Microsoft Windows. TM 、Linux TM ,UNIX TM 、iOS TM and Android TM operating system.
[0112] In addition, it should be understood that the data processing system 80 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, the 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.
[0113] Those of ordinary skill in the art will appreciate that the hardware described for the data processing system 80 may vary for a particular implementation. For example, the data processing system 80 in this example may correspond to a computer, a workstation, and / or a 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, a tablet, a 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.
[0114] The data processing system 80 may be connected to a network (not part of the data processing system 80), 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. The data processing system 80 may communicate with one or more other data processing systems, such as servers (also not part of the data processing system 80), via the network. However, an alternative data processing system may correspond to a plurality of 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 perform together 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.
[0115] These embodiments provide hybrid lattices without the bumps at the lattice intersections seen in prior hybrid applications. Furthermore, by using the shortcut outlined above, this method is much faster than evaluating g(p) for each cube voxel vertex. This is illustrated in Figures 9 to 23 and summarized below. Each figure shows a pair of example lattices, where Figure (i) is an unhybrid lattice and Figure (ii) is a hybrid lattice:
[0116]
[0117]
[0118] In each example, the absolute mix size is one in which the mix radius is independent of the radius of the lattice sphere, while the relative mix size is one in which the mix radius is relative to the radius of the lattice sphere.
Claims
1. A computer-implemented method for generating a component model from a hybrid lattice, wherein the hybrid lattice comprises a plurality of lattice topologies bonded together, 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) consistently 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), and the surface of the mixed lattice is defined by the domain function g(p), where away from any mixing, f(p) = 0 and g(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); Otherwise, h(p) = g(p), where r is the blending 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 position p to the surface of lattice topology i, and N is the number of lattice topologies in the hybrid lattice, and The domain function g(p) of the mixed lattice is given by: where q is the position within the volume of a sphere centered at p and of radius r.
4. The computer-implemented method of claim 3, wherein: The following evaluation: Stop at the value of i where f i (p)≤-v, and the following is evaluated: 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′)-|||pp′||, if h lower ≥v, Or set to the upper limit: h upper =h(p′)+||pp′||, 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: The sampling of the sphere is used to estimate g(p) and the corresponding position q.
9. A computer-implemented method according to any preceding claim, wherein: The mixing radius r is constant over the lattice structure.
10. The computer-implemented method according to any one of claims 1 to 9, wherein: The mixing radius r is a function of the position p.
11. The computer-implemented method of any preceding claim, further comprising: Before generating the component model, the hybrid lattice is materialized into a mesh surface.
12. The computer-implemented method of any one of claims 1 to 10, further comprising: The component model is exported to an additive manufacturing device and the component is manufactured.
13. A data processing system configured to generate a component model from a hybrid lattice, wherein the hybrid lattice comprises a plurality of lattice topologies bonded together, the data processing system comprising: a processor configured to partition a volume containing the input lattice into a plurality of cubes, each cube forming a voxel having a side length v; for each value of position p occurring at a corner of a cube, evaluating h(p) uniformly over the volume, 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), and the surface of the mixed lattice is defined by the domain function g(p), where away from any mixing, f(p) = 0 and g(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); Otherwise, h(p) = g(p), wherein r is the mixing radius; and a component model including a mixing lattice is generated using the scalar domain function h(p).
14. The data processing system according to claim 13, further comprising: Output to the 3D printing device.
15. 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 12.