Mesh incarnation method for a blended lattice
The method addresses the inefficiencies of existing mesh generation techniques for blended lattices by using a computer-implemented approach that offsets the lattice, applies intersection-based marking, and employs region-specific mesh incarnation methods, resulting in an efficient and detailed mesh representation that enhances mechanical strength.
Patent Information
- Application Number
- PCT/US2023/085645
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-12-22
- Publication Date
- 2025-06-26
AI Technical Summary
Existing methods for generating a mesh representation of a lattice, such as the marching cubes algorithm, are inefficient and lose detail, especially when dealing with blended rod and ball lattices, leading to stress concentration points and reduced mechanical strength.
A computer-implemented method that generates a mesh for a blended rod and ball lattice by offsetting the lattice, marking portions based on intersection conditions, applying a blend, and using different mesh incarnation methods for identified regions to efficiently represent the lattice as a mesh.
The method provides an efficient and accurate mesh representation of blended lattices, reducing stress concentration points and improving mechanical strength, while minimizing computational resources and maintaining detail in both low and high curvature areas.
Smart Images

Figure US2023085645_26062025_PF_FP_ABST
Abstract
Description
MESH INCARNATION METHOD FOR A BLENDED LATTICETECHNICAL FIELD
[0001] The present disclosure relates to methods and systems for generating a mesh representation of a lattice. In particular, the methods described herein may be used to represent a blended rod and ball lattice as a mesh.BACKGROUND
[0002] Computer-aided design (CAD) systems are used in many fields of engineering, manufacturing, and design to create and manipulate solid modelling representations of objects, for example, in additive manufacturing. Boundary representation (B-rep) technology provides an efficient and adaptable representation of parts by combining meshes and classic geometry: analytic surfaces and curves, non-uniform rational basis spline (NURBS) and procedural surfaces and curves; with topology, which captures the connectivity and interaction between geometric elements. Additive manufacturing is the process of creating three-dimensional objects using a three-dimensional printer based on CAD or other digital three-dimensional models. Objects may be scanned as a precursor to creating a CAD model, or may be designed from scratch, and stored in either stereolithography file format (STL) or additive manufacturing file (AMF) format files for future printing.
[0003] Lattices are a common type of interior space-filler used in CAD systems and additive manufacturing. Lattice structures may be used for their physical and mechanical properties in, for example, heat transfer, filtration, and structural components. In boundary representation (B-rep) modelling, lattice structures may be enclosed by closed, connected sets of faces, where each face is a portion of a two-dimensional surface. The faces have boundary edges that are defined by curves where the faces intersect with one another.
[0004] Rod and ball lattices are lattices including a plurality of lattice topologies, where a lattice topology is either a rod or a ball. Rods may be cylindrical or conical, and balls are spherical. Each rod is joined to other rods by a ball, building up the lattice structure. One particular issue with a lattice structure is the occurrence of stress at the points where the rods and balls intersect. This is caused by a sharp, concave edge being generated in the lattice surface. Stress points are problematic as stress points lead to issues with the lattice structure deforming or even breaking apart in a final component. For example, if the intersectionbetween a rod and ball is a region of high stress, then little mechanical strength or pressure will be required to cause the lattice to break at the intersection. One solution to this is to create a blended lattice structure. A blended lattice may have material added at a concave edge or removed at a convex edge to smooth the edges. Smoothing the edges in this manner improves the structural integrity of the lattice and reduces weak points around intersections.
[0005] A mesh is a subdivision of a continuous geometric space into discrete geometric and topological cells called facets. Facets are often triangular in shape, though higher order polygons are also suitable. In modelling systems, the majority of operations are available when using a mesh structure, but this may be limited when considering a lattice structure. In order to overcome this, lattices used for space filling may be converted into meshes (e.g., to tolerance) in order to perform certain operations. Meshes are also employed in three- dimensional printing applications; hence, lattice conversion is also used in additive manufacturing situations.
[0006] One approach to mesh generation is based on the use of the marching cubes algorithm. The marching cubes algorithm may be applied to an implicit function that represents the surface of a lattice. When applied to lattices, the marching cubes algorithm has an advantage that the marching cubes algorithm produces a mesh regardless of the complexity of how the different topologies in the lattice interact. However, the marching cubes algorithm also has a number of drawbacks. First, incarnating an entire blended lattice using marching cubes is slow and memory-intensive if the lattice is large relative to the radius of the rods and the balls. Second, there is little variation in facet size on the resulting mesh. Consequently, small features may be lost, high-curvature features may be approximated coarsely, and low-curvature features produce many more facets than is necessary. Having too many facets may cause operations on the mesh to run slowly.SUMMARY AND DESCRIPTION
[0007] The scope of the present invention is defined solely by the appended claims and is not affected to any degree by the statements within this summary.
[0008] The present embodiments may obviate one or more of the drawbacks or limitations in the related art. For example, a method for generating a mesh representation of a lattice while limiting the use of the marching cubes algorithm is provided.
[0009] The foregoing and other objects are achieved by the features of the independentclaims. Further implementation forms are apparent from the dependent claims, the description, and the figures.
[0010] According to a first aspect, a computer-implemented method for generating a mesh for a blended rod and ball lattice is provided. The method includes: a) obtaining, from a first lattice including a plurality of interconnected rods and balls, a second lattice by offsetting the first lattice by a predetermined distance; b) for each rod of the second lattice: i) marking each portion in a first set of portions of the rod with a first identifier, based on a first rod intersection condition; ii) marking each portion in a second set of portions of the rod with a second identifier, based on a second rod intersection condition; and iii) for each portion in the first set, re-marking the portion with the second identifier based on a third rod intersection condition; c) for each ball of the second lattice, marking the ball with the first identifier or second identifier, or leaving the ball unmarked based on a ball intersection condition; d) identifying, on the first lattice, a first set of regions corresponding to the balls and portions of rods of the second lattice marked with the first identifier and a second set of regions corresponding to balls and portions of rods on the second lattice marked with the second identifier; e) applying a blend to the first lattice to obtain a third lattice; and f) incarnating the third lattice as a mesh. The third lattice is incarnated with a first mesh incarnation method for regions marked with the first identifier and a second mesh incarnation method, different from the first mesh incarnation method, in regions marked with the second identifier.
[0011] The method according to the first aspect provides a representation of a blended rod and ball lattice as a mesh. The data obtained from the method is used to efficiently manufacture components with improved physical and structural characteristics.
[0012] According to a second aspect, a computer-implemented method for manufacturing a physical component is provided. The method includes: generating a model of a physical component in a computer-aided design (CAD) system, where at least part of the model includes a rod and ball lattice; applying a blend to generate a blended rod and ball lattice; obtaining a modified model of the physical component, where the modified model includes a mesh representation of the blended rod and ball lattice; and exporting the modified model to an additive manufacturing system for manufacture. The mesh representation of the blended rod and ball lattice is generated based on the method according to the first aspect.
[0013] In a first implementation of the method according to the first aspect, the first rod intersection condition includes, for each rod: identifying lattice topologies connected to therod and intersecting the rod; and for each identified lattice topology, identifying a portion of the rod based on the intersection of the lattice topology with the rod and including the portion in the first set of portions.
[0014] In a second implementation of the method according to the first aspect, the second rod intersection condition includes, for each rod: identifying lattice topologies that are not connected to the rod and intersect the rod; and for each identified lattice topology, identifying a portion of the rod based on the intersection of the lattice topology with the rod and including the portion in the second set of portions.
[0015] In a third implementation of the method according to the first aspect, the third rod intersection condition includes, for each rod: determining, for each portion in the first set of portions of the rod, whether the portion overlaps with a portion in the second set of portions of the rod; and re-marking the portion with the second identifier when the portion overlaps with a portion in the second set.
[0016] In a fourth implementation, for each rod, the portions in the first set and second set extend circumferentially around the boundary of the rod, and linearly in a direction parallel to a central axis of the rod.
[0017] In a fifth implementation, for each portion, the length of the portion in the direction parallel to the central axis is determined based on an extent of the intersection of the rod with the lattice topology corresponding to the portion.
[0018] In a sixth implementation, the first mesh incarnation method is a ray-based intersection method.
[0019] In a seventh implementation, the second mesh incarnation method is a marching cubes method.
[0020] In an eighth implementation, the method according to the first aspect includes incarnating unmarked regions of the third lattice with a third mesh incarnation method.
[0021] In a ninth implementation, the third mesh incarnation method includes a cylinder edge matching method or a Delaunay triangulation method.
[0022] In a tenth implementation, for each ball in the second lattice, the ball intersection condition includes: determining whether the ball intersects with a further lattice topology that is not connected to the ball in the second lattice; marking the ball with the second identifier, when the ball intersects with a further lattice topology that is not connected to the ball; determining, for each rod connected to the ball, whether the portion of the rod adjacent to theball is marked with the second identifier; and marking the ball with the second identifier, when at least one rod connected to the ball has a portion adjacent to the ball that is marked with the second identifier; and, otherwise, marking the ball with the first identifier, when at least one rod connected to the ball has a portion adjacent to the ball that is marked with the first identifier; and, otherwise, leaving the ball unmarked.
[0023] In an eleventh implementation, the ball intersection condition includes, when the ball is marked with the second identifier: identifying portions of rods connected to the ball and marked with the first identifier; and re-marking the identified portions with the second identifier.
[0024] These and other aspects of the invention will be apparent from the embodiments described below.BRIEF DESCRIPTION OF THE DRAWINGS
[0025] For a more complete understanding of the present disclosure, and the advantages thereof, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which:
[0026] Figure 1 shows a schematic representation of a rod and ball lattice according to an example;
[0027] Figure 2 shows a schematic illustration of a mesh representation of a blended lattice, according to an example;
[0028] Figure 3 is a flowchart of a method for generating a mesh representation of a blended lattice, according to an example;
[0029] Figure 4 shows a schematic representation of an offset rod and ball lattice according to an example;
[0030] Figure 5 shows a schematic representation of an offset rod and ball lattice according to an example;
[0031] Figure 6 shows a schematic representation of a rod and ball lattice according to an example;
[0032] Figure 7 shows a schematic illustration of a mesh representation of a blended lattice, according to an example;
[0033] Figure 8 is a flowchart of a method for generating a mesh representation of a blended lattice, according to an example;
[0034] Figures 9 to 11 shows a schematic illustration of a mesh representation of a portion of blended rod and ball lattice, according to an example; and
[0035] Figure 12 illustrates an example of a data processing system in which embodiments of the present disclosure may be implemented, such as a CAD system configured to perform processes as described herein.DETAILED DESCRIPTION
[0036] Example embodiments are described below in sufficient detail to enable those of ordinary skill in the art to embody and implement the systems and processes described herein. Embodiments may be provided in many alternate forms and should not be construed as limited to the examples set forth herein.
[0037] Accordingly, while embodiments may be modified in various ways and take on various alternative forms, specific embodiments thereof are shown in the drawings and described in detail below as examples. There is no intent to limit to the particular forms disclosed. All modifications, equivalents, and alternatives falling within the scope of the appended claims should be included. Elements of the example embodiments are consistently denoted by the same reference numerals throughout the drawings and detailed description where appropriate.
[0038] The terminology used herein to describe embodiments is not intended to limit the scope. The articles “a,” “an,” and “the” are singular in that the articles have a single referent; however, the use of the singular form in the present document should not preclude the presence of more than one referent. In other words, elements referred to in the singular may number one or more, unless the context clearly indicates otherwise. The terms “comprises,” “comprising,” “includes,” and / or “including,” when used herein, specify the presence of stated features, items, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, items, steps, operations, elements, components, and / or groups thereof.
[0039] Unless otherwise defined, all terms including technical and scientific terms used herein are to be interpreted as is customary in the art. Terms in common usage should also be interpreted as is customary in the relevant art and not in an idealized or overly formal sense unless expressly so defined herein.
[0040] Figure 1 shows a rod and ball lattice 100, according to an example. The lattice 100includes linear rods 101, 102, 103, 104, 105 and spherical balls 111, 112, 113, 114, 115, 116. The rods 101, 102, 103, 104, 105 are cylindrical. In general, in a rod and ball lattice, rods may be cylindrical or conical. The balls 111, 112, 113, 114, 115, 116 have a same radius as connected rods, respectively. In general, in a rod and ball lattice, the balls may have a same or greater radius as connected rods, respectively. The rods and balls of a rod and ball lattice such as the lattice 100 may be referred to as lattice topologies. In every rod and ball lattice, every rod has terminating balls at each end.
[0041] Lattice topologies may be connected with other lattice topologies. Connected rods of a ball are the rods that have the ball at one or the other end of the rod. Connected balls of a rod are the balls at either end of the rod. Connected rods of a rod are the rods connected to the balls of that rod. Connected balls of a ball are the other balls connected to rods of that ball. In the lattice 100, the ball 112 is connected to the rod 101 and the rod 102, the rod 101 is connected to balls 111, 112, and connected to rod 102, and the ball 112 is connected to the balls 111, 113.
[0042] The lattice 100 is an unblended lattice with sharp edges at rod and rod intersections. In general, an unblended lattice may have sharp edges wherever two lattice topologies intersect. The surface of an unblended lattice may be represented by a field function / (p) for positions p, where . / (p) = 0 on the surface of the lattice, p) < 0 inside the lattice surface and / (p) > 0 outside the lattice surface. For example, for a lattice containing TV lattice topologies, / (p) may be constructed from field functions '(p) where '(p) is a signed distance function from the surface of lattice topology, i. The function / ip) is defined as: f(p) = min fi (p) 1<1<N
[0043] After applying a concave rolling ball blend with radius r, a single-blended field function g(p) may be defined as follows:where q is a position within the volume of a sphere of radius r centered at p. After applying a second blend, a convex rolling ball blend with radius 5, a double-blended field function g2(p) may be defined as follows:where c is a position within the volume of a sphere of radius 5 centered at p, and q is a position within the volume of a sphere of radius r+ centered at c. The blended lattice surface is defined by the scalar field function A(p) for positions p, where A(p) = 0 on the lattice surface, A(p) < 0 inside the lattice surface, and A(p) > 0 outside the lattice surface. Far enough from any blends, the scalar field function A(p) is defined as being equal to the field function of the unblended lattice, p)- Far enough from any convex blends, the scalar field function A(p) is defined as being equal to the field function of the single-blended lattice, g(p). Near the blends, A(p) is defined as being equal to the double-blended field function 2(p). A(p) is defined in this way because p) is faster to compute than g(p), which is faster to compute than g2(p).
[0044] A polygonal mesh for the blended lattice may be generated by applying a marching cubes algorithm using the function A(p). The marching cubes algorithm subdivides a volume into a plurality of cubes referred to as voxels of side length, v. When applied to a lattice surface, the marching cubes algorithm estimates a zero-crossing point along each cube edge that connects a corner with a positive value to a comer with a negative value.
[0045] Figure 2 shows a mesh representation of a lattice 200, according to an example. The lattice 200 is a blended version of the lattice 100. The lattice surface is incarnated as a mesh using the marching cubes algorithm. Facets in the resulting mesh are of a similar shape and size. For example, in a low curvature area such as a middle region of the rod 201, there is little difference in facet size from the high curvature area in the blended region between rod 201 and rod 202. Incarnating an entire lattice as a mesh using marching cubes in this manner is memory intensive due to the complexity of the computations involved. Further, marching cubes may approximate high curvature areas too coarsely, resulting in a loss of accuracy. This affects the manufacturability of the part.
[0046] The methods and systems described herein may be used to generate a mesh representation of a blended rod and ball lattice. The methods limit the use of marching cubes to certain regions of the lattice. In other regions of the lattice, more efficient methods are used to incarnate the lattice as a mesh. These different regions are identified by evaluating the intersections of lattice topologies.
[0047] In addition to providing a more efficient mesh incarnation method for a blended lattice, the facets in the resulting mesh representation vary in size and depend on the local curvature of the lattice, resulting in fewer facets than the mesh representation shown in Figure 2, for a given accuracy. This improves the efficiency of modelling and manufacturing of the part.
[0048] Figure 3 shows a block diagram of a computer-implemented method 300 for generating a mesh for a blended rod and ball lattice, according to an example. The method 300 may be implemented in conjunction with other examples described herein. The method 300 may be implemented in an additive manufacturing system or in a data processing system in communication with an additive manufacturing system to manufacture a physical component.
[0049] At block 310, the method 300 includes obtaining, from a first lattice, a second lattice by offsetting the first lattice by a predetermined distance. According to examples described herein, the first lattice may be a space-filling lattice for a part that is scanned or generated in a computer aided design (CAD) or computer aided manufacturing (CAM) system. The first lattice includes a plurality of interconnected rods and balls similar to the lattice 100 shown in Figure 1. The second lattice is obtained by offsetting the first lattice. Figure 4 shows an example of an offset lattice 400 obtained from the unblended lattice 100 from Figure 1. Rods 401, 402, 403, 404, 405 are obtained from offsetting each of the linear rods 101, 102, 103, 104, 105 by the predetermined distance, and the balls 411, 412, 413, 414, 415, 416 are obtained from offsetting the balls 111, 112, 113, 114, 115, 116 by the predetermined distance. In examples, the predetermined distance may be the maximum blend radius of the concave blend component of a blend applied to the first lattice.
[0050] At block 320, the method includes, for each rod of the second lattice, marking each portion in a first set of portions of the rod with a first identifier, based on a first rod intersection condition. The first rod intersection condition is satisfied when portions of rods that meet at a hub intersect with each other. The portions extend circumferentially around the boundary of the rod, and linearly in a direction parallel to a central axis of the rod.
[0051] Figure 5 shows the same lattice 400, as shown in Figure 4. The rod 403 is connected via ball 415 and intersects the rod 404. Applying the method 300 to the rod 404, a portion 501 is identified based on the intersection of the rod 404 with rod 403. Similar portions may be identified for other rods in the lattice 400. These portions are marked with a firstidentifier.
[0052] At block 330, the method includes marking each portion in a second set of portions of the rod with a second identifier, based on a second rod intersection condition. According to examples, the second rod intersection condition is satisfied for portions of a rod that intersect with unconnected rods and balls. In Figure 5, the rod 401 intersects with rod 403; however, rod 401 is not directly connected to rod 403. Therefore, applying the method 300 to rod 401 results in marking of a portion 502 of the rod 401 with the second identifier.
[0053] At block 340, the method 300 includes, for each portion in the first set marked with the first identifier, re-marking the portion with the second identifier when a third rod intersection condition is satisfied. According to examples, determining whether the third rod intersection condition is satisfied may include: determining, for each portion in the first set of portions, whether the portion overlaps with a portion in the second set of portions; and remarking the portion with the second identifier when the portion overlaps with a portion in the second set.
[0054] If an entire rod has been marked with the first identifier, a further check is performed to determine whether the rod-rod intersections at one end of the rod intersect with rod-rod intersections at the other end of the rod. If this is the case, the rod is re-marked with the second identifier. In Figure 5, the rod 402 is initially marked with the first identifier along its length. However, since the rod-rod intersection between rod 401 and rod 402 overlaps with the rod-rod intersection between rod 402 and 403, rod 402 is re-marked with the second identifier.
[0055] At block 360, the method 300 includes marking each ball in the second lattice with the first identifier or the second identifier, or leaving the ball unmarked based on whether a ball intersection condition is satisfied. If the ball intersects with a further lattice topology that is not connected to the ball, then the ball is marked with the second identifier. A ball is also marked with the second identifier if one or more portions of a rod connected to the ball is marked with the second identifier and is adjacent to the ball. Thus, if a ball is adjacent to a rod portion marked with the second identifier for any rod in the hub of the ball, the ball is marked with the second identifier. If a ball is adjacent to a rod portion marked with the first identifier, and the ball has not been marked with the second identifier, then the ball is marked with the first identifier. Otherwise, the ball is left unmarked. Any rods connected to a ball marked with the second identifier may be re-marked with the second identifier if the rods arenot already marked with the second identifier.
[0056] In Figure 5, balls 412, 413 of the offset lattice 400 are adjacent to rod portions that have been marked with the second identifier. Balls 412, 413 are therefore marked with the second identifier. The ball 415 is marked with the first identifier, as the marked adjacent portions of the rods 403, 404, 405 are marked with the first identifier, and the ball 415 does not intersect with a further lattice topology that is not connected to the ball. Balls 411, 414, 416 remain unmarked, as all the adjacent portions of their connected rods are unmarked.
[0057] After execution of acts 310 - 360, three sets of regions may be identified on the lattice: a first set of regions marked with the first identifier; a second set of regions marked with the second identifier; and a third set of regions that are unmarked. The first set of regions correspond to hubs (e.g., a single ball and portions of the rods connected to the ball). The rods and ball in the hub intersect with other rods in the hub, but do not intersect with lattice topologies outside of the hub. The second set of regions are regions where intersections between non-connected lattice topologies occur. Regions in the third set do not contain any intersections. In Figure 5, the region 510 is marked with the first identifier, and the region 520 is marked with the second identifier. The remaining regions are unmarked regions.
[0058] At block 370, the method includes identifying, on the first lattice, a first set of regions corresponding to the balls and portions of rods of the second lattice that are marked with the first identifier, and a second set of regions corresponding to balls and portions of rods second lattice marked with the second identifier. Figure 6 shows the lattice 100. In Figure 6, the region 610 corresponds to the region 510 marked with the first identifier. The region 620 corresponds to the region 520 marked with the second identifier. Other regions on the lattice 100 remain unmarked.
[0059] At block 380, the method 300 includes applying a blend to the first lattice to obtain a third lattice. The blended surface of the third lattice may be defined by a scalar field function A(p) for positions p, where A(p) = 0 on the lattice surface, A(p) < 0 inside the lattice surface, and A(p) > 0 outside the lattice surface.
[0060] At block 390, the third lattice is incarnated as mesh. In regions marked with the first identifier, a first mesh incarnation method is used to incarnate the region as a mesh. In regions marked with the second identifier, a second mesh incarnation method, different from the first mesh incarnation method, is used to incarnate the regions as a mesh. The first meshincarnation method may be the method 800 described in Figure 8. The second mesh incarnation method may be a marching cubes algorithm applied to the field function A(p) in the second set of regions. According to examples, a third mesh incarnation method may be used to incarnate the unmarked regions as a mesh. The third mesh incarnation method may include a cylinder edge matching method or a Delaunay triangulation method.
[0061] Figure 7 shows the blended lattice 100 after incarnation as a mesh using the method 300. The region 710, corresponding to the region 610 from Figure 6, is incarnated using the method 800. The region 720, corresponding to region 620 is incarnated using a marching cubes algorithm. The unmarked regions 730 are incarnated using a Delaunay triangulation method. In comparison to the mesh representation of lattice 200 shown in Figure 2, the mesh representation in Figure 7 may be computed efficiently as marching cubes is only applied to the region 620. The facets in low curvature regions, such as the unmarked region 730 between region 710 and region 720, are large compared to facets in the corresponding region of the mesh representation in Figure 2. In the high curvature areas of region 710, there are a greater number of facets than the corresponding high curvature areas in Figure 2.
[0062] Figure 8 shows a block diagram of a computer-implemented method 800 for generating a mesh representation of a region of a hub (e.g., a ball with its connected rods), in a blended rod and ball lattice. The method 800 may be referred to herein as a ray -based intersection method. The method 800 may be implemented in conjunction with other methods and systems described herein. The method 800 may be applied to regions of a lattice as part of the method 300 and, for example, those regions identified with the first identifier. The method 800 may be implemented in an additive manufacturing system or in a data processing system in communication with an additive manufacturing system to manufacture a physical component.
[0063] At block 810, the method 800 includes identifying, for each rod R in the hub, a constraint curve CR that delimits the blended lattice surface. The constraint curve CR is converted to a plurality of polylines based on a predetermined threshold. The predetermined threshold may be a user-specified chordal tolerance. If the portion of the rod that intersects with another rod in the hub does not cover the entire rod, the constraint curve, CR, is the circle on the rod at the end of the interval of intersection. For example, in Figure 7, the constraint curve for the portion of rod 103, for the hub at ball 115, is the circle C.
[0064] If an entire rod has been marked with the first identifier, indicating that, on the offsetlattice, the rod-rod intersections at the start of the rod do not intersect with the rod-rod intersections at the end of the rod, but there is not a circular constraint curve that separates these two sets of intersections, then the rod-rod and rod-ball intersections from the offset rod may be projected back to the original rod to produce a constraint curve on the surface of rod.
[0065] At block 820, a set of line segments is generated. Each line segment in the set is a ray extending radially outward from the surface of the unblended lattice from which the blended lattice is generated, and terminating on the smallest sphere, concentric with the hub ball, that contains the set of constraint curves. The line segments are evenly spaced and radiate in an outward direction from a center of the hub ball . A density may be selected to provide that the line segments intersect the hub ball at points that, when triangulated, produce chords that deviate from the hub ball by no more than chordal tolerance.
[0066] At block 830, the method 800 includes intersecting each line segment in the set of line segments with the blended lattice surface to obtain a set of point, S, lying on the blended lattice surface. The location of the line segments provide that only one solution may be found. The previously defined field function A(p), which is equal to zero on the surface of the blended lattice, may be used to determine the location of the point for each line segment.
[0067] At block 840, the set of points S is triangulated to obtain a mesh representation of a region of the hub. In an example, triangulating the set of points S includes projecting all the points and the constraining chords from the constraint curve polylines onto a sphere concentric with the ball of the hub and using a constrained spherical Delaunay triangulation. This triangulation is mapped back to the original set of points S.
[0068] Figure 9 shows an example of a region 900 of a blended lattice, using the method 800. The region corresponds to the region 610 labelled with the first identifier. The facet pattern approximates the true shape of the surface of the blended lattice. However, the facet pattern may be improved by further refinement in regions where fins of the facets deviate by a distance greater than chordal tolerance from the blended lattice surface.
[0069] The method 800 may further include identifying sub-regions of the triangulated region obtained at act 840, where one or more fins of facets in the sub-region lie above the chordal tolerance. In each of the identified sub-regions, the number of line segments may be increased, and acts 830 and 840 may be repeated for the increased number of line segments to generate a refined triangulation of the sub-region. This may be repeated further until the fins of facets for the entire region are within chordal tolerance of the blend surface. Figure 10shows a single stage of refinement of the region 900 using this method. Figure 11 shows five refinements of the region 900. Accordingly, in Figure 11, the fins of facets lie within chordal tolerance of the blend surface, and there is a high density of relatively small facets in regions of higher curvature and a low density of relatively large facets in regions of lower curvature.
[0070] Figure 12 illustrates an example of a data processing system in which embodiments of the present disclosure may be implemented, such as, for example, a CAD application configured to perform the methods of the embodiments as described herein. The data processing system 1200 includes a processor 1210 connected to a local system bus 1220. The local system bus 1220 connects the processor to a main memory 1230 and graphics display adaptor 1240, which may be connected to a display 1250. The data processing system may communicate with other systems via a wireless user interface adapter connected to the local system bus 1220, or via a wired network (e.g., to a local area network). Additional memory 1260 may also be connected via the local system bus 1220.
[0071] A suitable adaptor, such as wireless user interface adapter 1270, for other peripheral devices, such as a keyboard 1280 and mouse 1290, or other pointing device, allows the user to provide input to the data processing system. Other peripheral devices may include one or more I / O controllers such as USB controllers, Bluetooth controllers, and / or dedicated audio controllers (e.g., connected to speakers and / or microphones). Various peripherals may be connected to the USB controller (e.g., via various USB ports) including input devices (e.g., keyboard, mouse, touch screen, trackball, camera, microphone, scanners), output devices (e.g., printers, speakers), or any other type of device that is operative to provide inputs or receive outputs from the data processing system.
[0072] Many devices referred to as input devices or output devices may both provide inputs and receive outputs of communications with the data processing system. Further, other peripheral hardware connected to the I / O controllers may include any type of device, machine, or component that is configured to communicate with a data processing system.
[0073] An operating system included in the data processing system enables an output from the system to be displayed to the user on the display 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™, Linux™, UNIX™, iOS™, and Android™ operating systems.
[0074] In addition, data processing system 1200 may be implemented as in a networked environment, distributed system environment, virtual machines in a virtual machinearchitecture, and / or cloud environment. For example, the processor and associated components may correspond to a virtual machine executing in a virtual machine environment of one or more servers. Examples of virtual machine architectures include VMware ESCi, Microsoft Hyper- V, Xen, and KVM.
[0075] Those of ordinary skill in the art will appreciate that the hardware depicted for the data processing system 1200 may vary for particular implementations. For example, the data processing system 1200 in this example may correspond to a computer, workstation, and / or a server. However, it should be appreciated that alternative embodiments of a 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 operative to process data and carry out functionality and features described herein associated with the operation of a data processing system, computer, processor, and / or a controller discussed herein. The depicted example is provided for the purpose of explanation only and is not meant to imply architectural limitations with respect to the present disclosure.
[0076] The data processing system 1200 may be connected to the network (e.g., not a part of data processing system 1200), which may be any public or private data processing system network or combination of networks, as known to those of skill in the art, including the Internet. The data processing system 1200 may communicate over the network with one or more other data processing systems such as a server (also not part of the data processing system 1200). 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 a number of data processing systems may be in communication via one or more network connections and may collectively perform tasks described as being performed by a single data processing system. Thus, when referring to a data processing system, such a system may be implemented across a number of data processing systems organized in a distributed system in communication with each other via a network.
[0077] The data processing system 1200 is configured to carry out the methods in accordance with the embodiments described herein. For example, the keyboard 1280 and mouse 1290 may function as a user input device for receiving information from the user, the processor 1210 may be configured to carry out the acts of the method, and the display 1250 may be configured to display a particular view to the user. A computer product including instructions that, when run on a computer, such as the data processing system 1200, may beprovided to cause the computer to execute the acts of the methods of the embodiments outlined above.
[0078] The present disclosure is described with reference to flow charts and / or block diagrams of the method, devices, and systems according to examples of the present disclosure. Although the flow diagrams described above show a specific order of execution, the order of execution may differ from that which is depicted. Blocks described in relation to one flow chart may be combined with those of another flow chart. In some examples, some blocks of the flow diagrams may not be necessary, and / or additional blocks may be added.
[0079] The present inventions may be embodied in other specific apparatus and / or methods. The described embodiments are to be considered in all respects as illustrative and not restrictive. In particular, the scope of the invention is indicated by the appended claims rather than by the description and figures herein. All changes that come within the meaning and range of equivalency of the claims are to be embraced within their scope.
[0080] The elements and features recited in the appended claims may be combined in different ways to produce new claims that likewise fall within the scope of the present invention. Thus, whereas the dependent claims appended below depend on only a single independent or dependent claim, it is to be understood that these dependent claims may, alternatively, be made to depend in the alternative from any preceding or following claim, whether independent or dependent. Such new combinations are to be understood as forming a part of the present specification.
[0081] While the present invention has been described above by reference to various embodiments, it should be understood that many changes and modifications can be made to the described embodiments. It is therefore intended that the foregoing description be regarded as illustrative rather than limiting, and that it be understood that all equivalents and / or combinations of embodiments are intended to be included in this description.
Claims
CLAIMS1. A method for generating a mesh for a blended rod and ball lattice, the method being computer-implemented and comprising: obtaining, from a first lattice comprising a plurality of interconnected rods and balls, a second lattice, the obtaining of the second lattice comprising offsetting the first lattice by a predetermined distance; for each rod of the second lattice: marking each portion in a first set of portions of the respective rod with a first identifier, based on a first rod intersection condition; marking each portion in a second set of portions of the respective rod with a second identifier, based on a second rod intersection condition; and for each portion in the first set of portions, re-marking the portion with the second identifier based on a third rod intersection condition; for each ball of the second lattice, marking the respective ball with the first identifier or the second identifier, or leaving the respective ball unmarked, based on a ball intersection condition; identifying, on the first lattice, a first set of regions corresponding to balls and portions of rods of the second lattice marked with the first identifier, and a second set of regions corresponding to balls and portions of rods on the second lattice marked with the second identifier; obtaining a third lattice, obtaining the third lattice comprising applying a blend to the first lattice; and incarnating the third lattice as a mesh, wherein the third lattice is incarnated with a first mesh incarnation method for regions marked with the first identifier, and with a second mesh incarnation method for regions marked with the second identifier, the second mesh incarnation method being different than the first mesh incarnation method.
2. The method of claim 1, wherein, for each rod of the second lattice, the first rod intersection condition comprises:identifying lattice topologies connected to the respective rod and intersecting the respective rod; and for each of the identified lattice topologies: identifying a first portion of the respective rod based on the intersection of the respective lattice topology with the respective rod; and including the first portion in the first set of portions.
3. The method of claim 2, wherein, for each rod of the second lattice, the second rod intersection condition comprises: identifying lattice topologies that are not connected to the respective rod and intersect the respective rod; and for each of the identified lattice topologies: identifying a second portion of the respective rod based on the intersection of the respective lattice topology with the respective rod; and including the second portion in the second set of portions.
4. The method of claim 3, wherein, for each rod, the portions in the first set of portions and the second set of portions extend circumferentially around a boundary of the respective rod, and linearly in a direction parallel to a central axis of the respective rod.
5. The method of claim 4, wherein, for each of the portions, a length of the respective portion in a direction parallel to the central axis is determined based on an extent of the intersection of the respective rod with the lattice topology corresponding to the respective portion.
6. The method of claim 2, wherein, for each rod, the portions in the first set of portions and the second set of portions extend circumferentially around a boundary of the respective rod, and linearly in a direction parallel to a central axis of the respective rod.
7. The method of claim 6, wherein, for each of the portions, a length of the respective portion in a direction parallel to the central axis is determined based on an extent of theintersection of the respective rod with the lattice topology corresponding to the respective portion.
8. The method of claim 1, wherein, for each rod of the second lattice, the third rod intersection condition comprises: determining, for each portion in the first set of portions of the respective rod, whether the respective portion overlaps with a portion in the second set of portions of the respective rod; and re-marking the respective portion with the second identifier when the respective portion overlaps with the portion in the second set of portions of the respective rod.
9. The method of claim 1, wherein the first mesh incarnation method is a ray-based intersection method.
10. The method of claim 1, wherein the second mesh incarnation method is a marching cubes method.
11. The method of claim 1, further comprising: incarnating unmarked regions of the third lattice with a third mesh incarnation method.
12. The method of claim 11, wherein the third mesh incarnation method comprises a cylinder edge matching method or a Delaunay triangulation method.
13. The method of claim 1, wherein, for each ball in the second lattice, the ball intersection condition comprises: determining whether the respective ball intersects with a further lattice topology that is not connected to the respective ball in the second lattice; marking the respective ball with the second identifier when the respective ball intersects with a further lattice topology that is not connected to the respective ball;determining, for each rod connected to the respective ball, whether a portion of the rod adjacent to the respective ball is marked with the second identifier; and marking the respective ball with the second identifier when at least one rod connected to the respective ball has a portion adjacent to the ball that is marked with the second identifier, marking the respective ball with the first identifier when at least one rod connected to the respective ball has a portion adjacent to the respective ball that is marked with the first identifier, or leaving the respective ball unmarked.
14. The method of claim 13, further comprising, when the respective ball is marked with the second identifier: identifying portions of rods connected to the respective ball and marked with the first identifier; and re-marking the identified portions of rods with the second identifier.
15. A method for manufacturing a physical component, the method being computer- implemented and comprising: generating a model of a physical component in a computer-aided design (CAD) system, wherein at least part of the model comprises a rod and ball lattice; applying a blend, such that a blended rod and ball lattice is generated; obtaining a modified model of the physical component, the modified model comprising a mesh representation of the blended rod and ball lattice; and exporting the modified model to an additive manufacturing system for manufacture, wherein the mesh representation of the blended rod and ball lattice is generated based on the method of claims 1 to 14.
16. The method of claim 15, wherein the applying of the blend comprises applying a blend, such that a structural and physical integrity of the rod and ball lattice is improved.
Citation Information
Patent Citations
Junction meshing for lattice structures
US20180268095A1
Self-intersecting lattice incarnation
US20230037000A1