Combined representation of microstructure and object boundary of computer-aided design objects
Through the combined representation feature, the boundary and internal geometry of the CAD object are combined, and the object representation engine and avatar engine are used to solve the performance and memory problems of the B-Rep representation method in complex geometries, and achieve efficient CAD operations.
Patent Information
- Application Number
- CN201980103540.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2019-12-05
- Publication Date
- 2025-09-30
- Estimated Expiration
- 2039-12-05
AI Technical Summary
Existing B-Rep representation methods have difficulty in efficiently capturing the internal and external geometries of complex CAD objects, resulting in excessively high computational performance and memory consumption, especially in additive manufacturing and 3D printing.
Using a combined representation feature, the boundary and internal geometry of the CAD object are combined through the object representation engine and the incarnation engine. The combined representation of the object boundary and microstructure is used to programmatically limit the internal geometry and only incarnate it into a geometric representation when needed.
Improves the efficiency of CAD object construction, editing and simulation, reduces memory usage and calculation delays, and lowers the cost of processing complex geometries.
Smart Images

Figure CN115087981B_ABST
Abstract
Description
Background Art
[0001] Computer systems can be used to create, use, and manage data for products and other items. Examples of computer systems include computer-aided design (CAD) systems (which may include computer-aided engineering (CAE) systems), computer-aided manufacturing (CAM) systems, visualization systems, product data management (PDM) systems, and product lifecycle management (PLM) systems. These systems may include components that facilitate the design and simulation of product structures and manufacturing. BRIEF DESCRIPTION OF THE DRAWINGS
[0002] Certain examples are described in the following detailed description and with reference to the accompanying drawings.
[0003] Figure 1 An example of a computing system that supports combined representation of the microstructure and object boundaries of a CAD object is shown.
[0004] Figure 2 An example of a composed representation of a CAD object implemented by an object representation engine is shown.
[0005] Figure 3 An exemplary avatar of a composed representation of a CAD object implemented by an object avatar engine is shown.
[0006] Figure 4 An example of logic that the system may implement to support combined representation of the microstructure and object boundaries of a CAD object is shown.
[0007] Figure 5 An example of a computing system that supports combined representation of the microstructure and object boundaries of a CAD object is shown. DETAILED DESCRIPTION
[0008] CAD systems and applications can support the creation, design, representation and use of various forms of CAD objects. As used herein, CAD objects may include objects used in various types of design, testing, simulation and manufacturing systems or applications, including objects of CAE systems, CAM systems, etc. A common form used by CAD applications is a three-dimensional (3D) boundary representation (also known as a B-Rep). A B-Rep can define the object boundaries of a CAD object by one-dimensional (1D) or two-dimensional (2D) geometric elements such as curves, edges, faces, surfaces, meshes, etc. Boundary representation models, by their nature, may be limited to describing the boundaries of a CAD object, for example, the geometry that forms the outer boundaries of a CAD object. The area enclosed by a boundary representation is typically classified as either completely solid or completely empty.
[0009] Therefore, the B-Rep definition of a CAD object will be infeasible or inefficient in capturing the complex internal geometry of a CAD object. As additive manufacturing, 3D printing, topology optimization, and other 3D technologies become more and more mature, it is becoming increasingly feasible to design and manufacture 3D parts with geometrically complex internal and external structures. As used herein, additive material may refer to the internal composition of a CAD object and may be constructed as a complex interplay of solids and voids and may be fully or partially surrounded by layers of solid material represented via B-Rep or other object boundaries. When geometrically modeled via boundary representations (e.g., mesh faces), additive materials and other complex 3D geometries may need to consist of millions (or more) of geometric elements and have considerable geometric complexity (e.g., high genus, highly curved, variable, and irregular). Additive materials are not well suited to being represented by standard B-Rep forms. Whether used to model internal additive materials or complex external geometries, the naive implementation of complex 3D geometries via B-Rep ( implementation) can incur significant performance and memory penalties required to handle millions or more mesh elements.
[0010] The present disclosure can provide systems, methods, devices and logic for combinatorial representation of microstructures and object boundaries of CAD objects. As described in more detail herein, the combinatorial representation feature can provide the ability to represent or otherwise define a CAD object as a combination of a B-Rep and a procedural definition (e.g., a programmatically defined internal geometry). For example, the features described herein can support procedural definitions (e.g., programmatically defined internal geometry) that are embedded as part of a geometric representation (e.g., a B-Rep) of a CAD object. By representing a given CAD object together as a combination of a B-Rep geometry and a procedural definition, the combinatorial representation features described herein can improve the efficiency and effectiveness of constructing, editing, simulating and representing CAD objects. This combinatorial representation can have a (potentially significantly) smaller memory footprint than a naive B-Rep representation of the same structure, which can have benefits by reducing computational latency and memory requirements.
[0011] In some examples, procedural definition of 3D geometry can be provided via microstructures. As used herein, a microstructure can refer to a representation of a procedurally defined CAD object (or portion thereof). A microstructure can include a kernel that repeats within an interior region of a CAD object outlined by the object's boundaries, thereby programmatically defining the internal geometry of the CAD object. In some embodiments described herein, a microstructure can be embedded within or otherwise combined with a B-Rep of a CAD object to form a combined representation of the CAD object in a CAD model.
[0012] The described combined representation features can provide the ability to associate object shapes with internal structures. Edits to object boundaries can update procedural definitions accordingly, and vice versa. Moreover, material-related CAD operations can incarnate corresponding portions of CAD objects via procedural definitions embedded in the CAD objects, and this can be done selectively based on the needs of a given CAD operation. In doing so, CAD applications utilizing the combined representation features described herein do not need to always incarnate complex 3D geometries, but can instead do so specifically to compute specific material-related CAD operations, such as mass property calculations for 3D print preparation, rendering, segmentation, slicing, other Boolean operations, and the like.
[0013] Therefore, the combined representation features presented in this paper can increase the associativity between the CAD object boundary and the internal geometry and preserve the design intent. Geometry avatars based on material-dependent CAD operations can reduce the cost of integration into existing CAD systems and provide efficiency benefits by not requiring the entire internal or external 3D geometry to be avatared to perform material-dependent or non-material-dependent CAD operations.
[0014] These and other combined presentation features and technical benefits are described in greater detail herein.
[0015] Figure 1 An example of a computing system 100 is shown that supports combined representation of the microstructure and object boundaries of CAD objects. The computing system 100 can take the form of a single or multiple computing devices, such as an application server, a computing node, a desktop or laptop computer, a smartphone or other mobile device, a tablet device, an embedded controller, etc. In some embodiments, the computing system 100 implements a CAD system, tool, application, or program to help users design, analyze, simulate, and manufacture products and 3D parts.
[0016] As an exemplary embodiment supporting any combination of the combined representation features described herein, Figure 1 The illustrated computing system 100 includes an object representation engine 110 and an object avatar engine 112. The computing system 100 can implement the engines 108 and 110 (including their components) in various ways, such as hardware and programming. The programming for the engines 108 and 110 can take the form of processor-executable instructions stored on a non-transitory machine-readable storage medium, while the hardware for the engines 108 and 110 can include a processor that executes these instructions. The processor can take the form of a single processor or a multi-processor system, and in some examples, the computing system 100 implements multiple engines using the same computing system features or hardware components (e.g., a common processor or a common storage medium).
[0017] In operation, the object representation engine 110 may define a CAD object in a CAD model as a combination of an object boundary, including boundary surfaces encapsulating the CAD object, and a microstructure that defines the internal geometry of the CAD object in a procedural representation. The internal geometry of the CAD object defined by the microstructure may be one of multiple interior regions of the CAD object (other interior regions may be defined by other microstructures, solid space, or a combination of both), or may define the internal geometry of the entire interior of the CAD object. The procedural representation of the microstructure may be a non-embodied (e.g., programmatically defined) representation of the internal geometry of the CAD object. In operation, the object embodiment engine 112 may embodiment the internal geometry of the CAD object into a geometric representation via the procedural representation of the microstructure to perform CAD operations on the CAD object.
[0018] These and other combined representation features are described in more detail below. Figure 2 Describes exemplary object representation features of the present disclosure, and Figure 3 Exemplary object avatar features of the present disclosure are described. While some specific examples are provided herein in the context of additive materials and internal 3D lattice geometries, any of the combinatorial representation features described herein can be consistently applied to any type of CAD object and 3D geometry (whether internal or external).
[0019] Figure 2 An example of a combined representation of a CAD object implemented by the object representation engine 110 is shown. Figure 2 , the interface of the CAD application is depicted via a CAD application window 202, which can visualize a CAD model including CAD objects and provide the ability to view, edit, or manipulate the CAD objects through CAD operations. CAD application window 202 depicts CAD objects 210, which object representation engine 110 can define as a composite representation. In some examples, object representation engine 110 can be implemented as a component of the CAD application itself.
[0020] The object representation engine 110 can define the CAD object 210 as a combination of an object boundary 220 and a microstructure 230. The object boundary 220 can specify the exterior of the CAD object 210 because the object boundary 220 can represent or define an enclosed area of the CAD object 210. In some instances, the object representation engine 110 can configure the object boundary 220 in a B-Rep format, for example, as a set of mesh faces or other bounding faces that define the boundary of a 3D volume. For conventional B-Rep object boundaries, the interior area enclosed by the B-Rep can represent a solid or filled portion of the CAD object. However, in the present disclosure, the object representation engine 110 can define the geometry of the interior area enclosed by the object boundary 220 via procedural definition (e.g., as opposed to a full solid definition).
[0021] In the composed representation of the CAD object 210, the object representation engine 110 may define the interior region (e.g., interior geometry) bounded by the object boundary 220 through a microstructure. The microstructure may include any procedurally defined representation of the CAD geometry that defines the 2D or 3D geometry of the interior region of the CAD object enclosed by the object boundary of the CAD object. Figure 2 , the object representation engine 110 partially defines the CAD object 210 via a microstructure 230. As described herein, the microstructure 230 may provide a procedural (eg, programmatic) representation of the 3D geometry defined by the object boundary 220 of the CAD object 210.
[0022] The procedural representation of the microstructure may include a procedurally defined kernel that is repeated inside the object boundary to define the interior geometry of the CAD object 210. Thus, the microstructure kernel may be a 2D or 3D geometric design that is programmatically represented and patterned into the interior region of the CAD object 210 to define (at least a portion of) the interior geometry of the CAD object 210. Figure 2 , an exemplary microstructure kernel is depicted as kernel 231 , which may take the form of a 3D cube object having various kernel parameters and programmatic definitions that may be used to procedurally define the interior geometry of CAD object 210 .
[0023] The procedural representation of a microstructure (e.g., microstructure 230) can be implemented in various forms. In some instances, kernel-based procedural definition is provided to pattern within the internal CAD object geometry. As another example, a code-based representation of the CAD geometry can be used to procedurally define the microstructure (e.g., in C++ or any other programming language). Additive materials can be procedurally defined via microstructures, and exemplary additive material structures include 2D and 3D lattice structures, honeycomb pattern structures, foam-like geometries, and more structures that vary based on the 3D part design, industrial applicability, design preferences, physical properties, etc.
[0024] The object representation engine 110 can combine the object boundary 220 and the procedurally defined microstructure 230 in various ways to represent the CAD object 210. In some examples, the object representation engine 110 links the object boundary 220 and the microstructure 230 in a common (e.g., single) data structure such that modifications to the object boundary 220 (at least within a certain range) affect the microstructure 230, or vice versa. Thus, the object representation engine 110 can associatively link the object boundary 220 and the microstructure 230 (e.g., directly), and in so doing, can make the definition of the object boundary 220 dependent on the definition of the microstructure 230, or vice versa.
[0025] As an illustrative example, a CAD application may modify the object boundary 220 of a CAD object 210 (e.g., via user input to enlarge, reduce, or otherwise modify the B-Rep of the CAD object 210). In response to such a modification, the object representation engine 110 may adapt the microstructure 230 defining the internal geometry of the CAD object to the change in the object boundary 220. Such adaptation may be extending the microstructure 230 to fill the increased internal area resulting from the extension toward the object boundary 220, trimming the extent of the microstructure 230 to accommodate the reduction in the object boundary 220, etc. As another example, the object representation engine 110 may implement a conformal lattice to automatically adjust the procedural definition via the microstructure 230 (e.g., shape, size, or other parameters) based on the change in the object boundary 220.
[0026] In some examples, the object representation engine 110 may define the object boundary 220 as a B-Rep model and embed the microstructure 230 (e.g., a procedural representation of the internal geometry of the CAD object 210) within the B-Rep model itself. Thus, the object representation engine 110 may provide a single data structure (e.g., a B-Rep) that itself may include one or more microstructures that define the geometry of the internal region of the B-Rep. As another example, the object representation engine 110 may define a 3D region via the microstructure 230 (which is volumetrically bounded by the object boundary 220). Explained differently, the boundary of the 3D region procedurally defined by the microstructure 230 may extend to the boundary limit defined by the object boundary 220 (e.g., up to the boundary face of the CAD object). In these examples, the object representation engine 110 may combine the B-Rep with the procedural representation, which may associatively link the boundary and internal region of the CAD object (e.g., as opposed to separate or distinct B-Rep and programmatic definitions of objects that are not directly interdependent).
[0027] In some examples, the object representation engine 110 may define a portion, but not all, of an interior region of a CAD object via a procedurally defined microstructure. In such examples, the interior region of a CAD object may be partially solid and partially procedurally defined via a microstructure. To support such a feature, the object representation engine 110 may partition the interior geometry of a CAD object (as defined by an object boundary) by setting a portion of the partitioned interior geometry to be solid (e.g., according to a conventional B-Rep model) and another portion of the partitioned interior geometry to be procedurally defined via a microstructure. The partitioning performed by the object representation engine 110 may be performed via a cellular topology, a cellular topology, or a cell-based framework.
[0028] CAD objects with procedurally defined internal geometry (whether in whole or in part) may be identified by a CAD application as non-manifold geometry. This may occur because the partitioning of the internal geometry of a CAD object into solid partitions and procedurally defined lattice partitions may result in a non-manifold object, as interpreted by a CAD geometry modeler or other CAD application component. To address this issue, the object representation engine 110 may represent a CAD object to a CAD application component via an object boundary 220, which may be a B-Rep and therefore interpreted as a manifold 3D object. In this sense, a CAD application component may identify or interpret a CAD object based on the object boundary 220, which may represent the "envelope" of the CAD object, but a geometry modeler or other CAD application component that may process the internal CAD object geometry may interpret the CAD object 210 as a combined representation defined via both the external boundary 220 and the microstructure 230.
[0029] In some examples, the object representation engine 110 may represent the defined CAD objects via a composite representation based on whether the CAD application component can handle manifold objects or non-manifold objects. Figure 2 To illustrate, for a geometric modeler component of a CAD application, the object representation engine 110 may represent a CAD object 210 as a non-manifold object because the modeler may support non-manifold operations or processing of CAD objects. However, for a different component of the CAD application, the object representation engine 110 may mask the non-manifold object by representing the CAD object 210 as a manifold object. Thus, from a system level, even if the object representation engine 110 classifies the CAD object 210 as a non-manifold 3D object for partial procedural definition via the microstructure 230, the CAD application may recognize the CAD object 210 (defined as a composite representation) as a manifold object.
[0030] In any of the approaches described herein, the object representation engine 110 can define a CAD object as a composite representation that includes both the object boundary and a microstructure that procedurally defines the internal geometry of the CAD object. Because the internal geometry of a CAD object can be represented procedurally (as opposed to an explicit geometric representation), material-related CAD operations may require that the CAD object be embodied in a geometric form in order to be performed correctly. The composite representation features described herein can support embodied composite representations of CAD objects, for example, as described below in conjunction with Figure 3 Just as described.
[0031] Figure 3 An exemplary avatar of a composed representation of a CAD object implemented by the object avatar engine 112 is shown. Figure 3, a CAD application window 202 visualizes a CAD object 210 , which may be defined as a combined representation of an object boundary 220 and a microstructure 230 (eg, including a kernel 231 patterned within an interior region of the CAD object 210 ).
[0032] The object incarnation engine 112 may incarnate the internal geometry of the CAD object 210 to support material-related CAD operations. Incarnation may refer to the process of converting a procedural representation of a geometry into an express geometric representation. For example, by explicitly modeling the internal geometry of the CAD object 210 as a B-Rep model, incarnation may be implemented by the object incarnation engine 112, which may be necessary to correctly perform material-related CAD operations. Material-related CAD operations may refer to any CAD operation that depends on a geometric representation of any procedurally defined portion of a CAD object. Thus, material-related CAD operations may include CAD operations that require a geometric representation of any portion of an internal area of a CAD object that is procedurally defined, examples of which include rendering operations, slicing operations, and the like.
[0033] The object embodiment engine 112 can selectively embodiment a portion of the internal geometry of the CAD object 210 based on a given material-related CAD operation to be performed. Selective embodiment can include embodiment of a limited portion (e.g., only the portion required to perform the given material-related CAD operation) of the internal geometry of the CAD object 210. Thus, the object embodiment engine 112 can embodiment the internal geometry of the CAD object 210 based on the material-related CAD operation by embodiment of the selected portion of the internal geometry of the CAD object 210 into a geometric representation while maintaining the unselected portion of the internal geometry of the CAD object 210 as a procedural representation specified by the microstructure 230.
[0034] To illustrate, for a given CAD application view depicted in CAD application window 202, when a hole, crack, bend, or other exterior geometry of CAD object 210 exposes at least a portion of its interior geometry, a rendering CAD operation may require avataring at least a portion of the interior geometry of CAD object 210. In this case, object avatar engine 112 may, for example, avatar a specific instance of kernel 231 that is visible in the given CAD application view. The specific kernel instance to avatar can be identified by casting a ray into the hole, crack, bend, or other exterior geometry. Kernel instances that intersect the projected ray can be selected for avataring, while non-intersecting kernel instances can remain in procedural form (e.g., determined not to be avatared by object avatar engine 112). Thus, object avatar engine 112 can selectively avatar portions of the interior geometry visible for rendering CAD operations and determine not to avatar portions that are not visible.
[0035] As another illustrative example, the object embodiment engine 112 may selectively embodiment portions of the interior geometry for mass characterization CAD operations. For microstructures defining a regular lattice, the object representation engine 110 may selectively embodiment segments of the lattice trimmed by region boundaries (e.g., object boundaries 220) and otherwise use a procedural form of the lattice microstructure for the remainder of the interior lattice (which would therefore include unselected portions of the interior geometry). Bulk properties may be calculated based on the embodiment of the lattice segments, such as applying an average mass proportionally across the non-embodied portions of the CAD object 210. For segmentation CAD operations, the object embodiment engine 112 may selectively embodiment kernel instances (or other internal geometry elements) where the procedural form indicates that the kernel instance overlaps, touches, or otherwise directly contacts the trimming plane.
[0036] In some examples, the object embodiment engine 112 may embodiment the internal geometry of the CAD object 210 (e.g., selected portions thereof) on a limited time basis. The embodiment by the object embodiment engine 112 in B-Rep form may continue as long as the geometric representation of the internal geometry is required for calculation by a material-related CAD operation. By releasing the B-Rep or other geometric representation of the internal CAD geometry after use in a CAD calculation, the object embodiment engine 112 may reduce memory consumption and reduce the memory footprint required for CAD system operations.
[0037] Therefore, for material-dependent CAD operations, the object embodiment engine 112 can selectively embodiment a portion of the internal geometry of the CAD object 210. For material-independent CAD operations, the object embodiment engine 112 does not need to embodiment any portion of the internal geometry of the CAD object 210. In other words, the object embodiment engine 112 can perform material-independent CAD operations on the CAD object 210 without embodiment any portion of the microstructure 230, wherein the execution of the material-independent CAD operations does not depend on the internal geometry of the object 210.
[0038] The combined representation feature described herein can improve computational performance through selective incarnation. The combined representation feature can provide "model-aware" microstructure definition that incarnates as much of the internal geometry (e.g., additive materials) as necessary to perform material-related CAD operations, thereby saving memory compared to fast B-rep implementations and eliminating the performance overhead of unnecessarily processing millions of elements.
[0039] Many of the examples described herein may be applicable to providing a combinatorial representation for efficiently and effectively defining and manipulating additive materials within the interior of a 3D part. However, the combinatorial representation features described herein are not limited to internal component geometry and may also be consistently implemented for the exterior geometry of a 3D part. Exterior geometry may be complex in nature and not particularly conducive to efficient representation via a B-Rep or other explicit geometric representation. The combinatorial representation features may also be applicable to selected portions of the exterior part geometry by enclosing such portions with object boundaries (e.g., via geometrically simpler B-Rep faces) and defining the actual geometry of the exterior part geometry via a procedural representation.
[0040] In some examples where a composite representation feature is used to define the exterior geometry of a 3D part, the object boundary of the composite representation (e.g., a B-Rep) need not be solid, but can instead define a void (e.g., non-solid) portion boundary that delimits a microstructure that provides a procedural representation of the exterior 3D part geometry. In this example, even though the microstructure is within the object boundary in the composite representation CAD object, the microstructure itself can procedurally define the exterior 3D part geometry of the 3D part (which in turn is surrounded, shaped, or limited by the non-solid or partially solid object boundary of the composite representation CAD object). Thus, the interior geometry of the CAD object defined via the microstructure can represent the exterior 3D part geometry of the 3D part, and at least some of the boundary surfaces of the encapsulating CAD object can represent a void portion (e.g., non-solid portion) or envelope of the 3D part.
[0041] Figure 4An example of logic 400 that a system may implement to support a combined representation of the microstructure and object boundaries of a CAD object is shown. For example, the computing system 100 may implement the logic 400 as hardware, executable instructions stored on a machine-readable medium, or a combination of the two. The computing system 100 may implement the logic 400 via the object representation engine 110 and the object avatar engine 112, through which the computing system 100 may execute or implement the logic 400 as a method for supporting a combined representation of the microstructure and object boundaries of a CAD object. The following description of the logic 400 is provided using the object representation engine 110 and the object avatar engine 112 as an example. However, various other implementation options of the system are also possible.
[0042] In implementation logic 400, the object representation engine 110 may define a CAD object in a CAD model as a combination of an object boundary including boundary surfaces encapsulating the CAD object and a microstructure (402), wherein the object boundary includes boundary surfaces encapsulating the CAD object and the microstructure defines the internal geometry of the CAD object in a procedural representation. The procedural representation of the microstructure may be a non-avatar representation of the internal geometry of the CAD object.
[0043] In the implementation logic, the object embodiment engine 112 may embodiment the internal geometry of the CAD object into a geometric representation via the procedural representation of the microstructure to perform a CAD operation on the CAD object (404). For example, the object embodiment engine 112 may embodiment a selected portion of the internal geometry of the CAD object into a geometric representation based on the CAD operation (406), and maintain the unselected portion of the internal geometry of the CAD object as the procedural representation specified by the microstructure (408).
[0044] Figure 4 The illustrated logic 400 provides an illustrative example by which the computing system 100 can support a combined representation of the microstructure and object boundaries of a CAD object. Additional or alternative steps in the logic 400 are also contemplated herein, including any of the features described herein for the object representation engine 110, the object avatar engine 112, or a combination thereof.
[0045] Figure 5An example of a computing system 500 that supports combined representation of microstructure and object boundaries of CAD objects is shown. The computing system 500 may include a processor 510, which may take the form of a single processor or multiple processors. The one or more processors 510 may include a central processing unit (CPU), a microprocessor, or any hardware device suitable for executing instructions stored on a machine-readable medium. The system 500 may include a machine-readable medium 520. The machine-readable medium 520 may take the form of any non-transitory electronic, magnetic, optical, or other physical storage device that stores executable instructions, such as a memory card. Figure 5 5. Thus, the machine-readable medium 520 may be, for example, a random access memory (RAM) such as a dynamic random access memory (DRAM), a flash memory, a spin transfer torque memory, an electrically erasable programmable read-only memory (EEPROM), a storage drive, an optical disk, or the like.
[0046] The computing system 500 may execute instructions stored on the machine-readable medium 520 via the processor 510. Executing the instructions (e.g., the object representation instructions 522 and / or the object avatar instructions 524) may cause the computing system 500 to perform any of the combined representation features described herein, including any features with respect to the object representation engine 110, the object avatar engine 112, or a combination thereof.
[0047] For example, execution of object representation instructions 522 by processor 510 may cause computing system 500 to define a CAD object in a CAD model as a combination of an object boundary and a microstructure, wherein the object boundary includes a boundary surface encapsulating the CAD object, and the microstructure defines the internal geometry of the CAD object in a procedural representation. The procedural representation of the microstructure may be a non-embodied representation of the internal geometry of the CAD object. Execution of object representation instructions 524 may cause computing system 500 to embodied the internal geometry of the CAD object into a geometric representation via the procedural representation of the microstructure, so as to perform a CAD operation on the CAD object.
[0048] Any additional or alternative features described herein may be implemented via object representation instructions 522, object avatar instructions 524, or a combination of both.
[0049] The systems, methods, devices, and logic described above, including the object representation engine 110 and the object avatar engine 112, can be implemented in a variety of different ways using a variety of different combinations of hardware, logic, circuitry, and executable instructions stored on machine-readable media. For example, the object representation engine 110 and the object avatar engine 112, or a combination thereof, can include circuitry within a controller, microprocessor, or application-specific integrated circuit (ASIC), or can be implemented using discrete logic or components, or can be implemented using a combination of other types of analog or digital circuitry combined on a single integrated circuit or distributed across multiple integrated circuits. A product (e.g., a computer program product) can include a storage medium and machine-readable instructions stored on the medium that, when executed in an endpoint, computer system, or other device, cause the device to perform operations in accordance with any of the above descriptions, including in accordance with any of the features of the object representation engine 110, the object avatar engine 112, or a combination thereof.
[0050] The processing power of the systems, devices, and engines described herein (including the object representation engine 110 and the object avatar engine 112) can be distributed among multiple system components, such as between multiple processors and memories, optionally including multiple distributed processing systems or cloud / network elements. Parameters, databases, and other data structures can be stored and managed separately, can be combined into a single memory or database, can be logically and physically organized in many different ways, and can be implemented in a variety of ways including data structures (e.g., linked lists), hash tables, or implicit storage mechanisms. Programs can be part of a single program (e.g., subroutines), separate programs, distributed across multiple memories and processors, or implemented in a variety of different ways (e.g., libraries (e.g., shared libraries)).
[0051] While various examples have been described above, many more implementations are possible.
Claims
1. A method comprising: By calculating system(100,500): A CAD object (210) in a computer-aided design (CAD) model is defined as a combination of: an object boundary (220) comprising a boundary surface encapsulating the CAD object (210); and a microstructure (230) defining the internal geometry of the CAD object (210) in a procedural representation, wherein the procedural representation is a non-avatar representation of the internal geometry of the CAD object (210); as well as translating the internal geometry of the CAD object (210) into a geometric representation via the procedural representation of the microstructure (230) to perform a CAD operation on the CAD object (210); wherein the avatar refers to a process that converts a procedural representation of a geometric shape into an EXPRESS geometric representation, and The method further includes selective incarnation, wherein the selective incarnation includes incarnating selected portions of the internal geometry of the CAD object into the geometric representation based on material-related CAD operations, and maintaining unselected portions of the internal geometry of the CAD object as the procedural representation specified by the microstructure.
2. The method according to claim 1, wherein The procedural representation of the microstructure (230) includes a procedurally defined kernel (231) that is repeated within the interior of the object boundary (220) to define the interior geometry of the CAD object (210).
3. The method according to claim 1, wherein The object boundary (220) includes a boundary representation of the CAD object (210); as well as Wherein, defining the CAD object (210) includes embedding the procedural representation of the microstructure (230) into the boundary representation of the CAD object (210).
4. The method according to claim 1, further comprising: For a geometric modeler component of a CAD application, representing the CAD object (210) as a non-manifold object; as well as For different components of the CAD application, the non-manifold objects are masked by representing the CAD objects (210) as manifold objects.
5. The method according to claim 1, wherein The internal geometry of the avatar includes: embodying a selected portion of the internal geometry of the CAD object (210) as the geometric representation based on the CAD operation; and Unselected portions of the internal geometry of the CAD object (210) are maintained as procedural representations specified by the microstructure (230).
6. The method according to claim 1, further comprising: Material-independent CAD operations are performed on the CAD object (210) without incarnating any portion of the microstructure (230), wherein performing the material-independent CAD operations does not depend on the internal geometry of the CAD object (210).
7. The method according to claim 6, wherein: The material-independent CAD operation includes changing the object boundary (220) of the CAD object (210).
8. The method according to claim 7, further comprising: The microstructure (230) defining the internal geometry of a CAD structure is adapted to the change in the object boundary (220).
9. The method according to claim 1, wherein: The internal geometry of the CAD object (210) defined by the microstructure (230) represents an external three-dimensional (3D) part geometry of a 3D part; as well as Wherein, at least some of the boundary surfaces encapsulating the CAD object (210) represent hollow portions of the 3D part.
10. A system (100), comprising: Object representation engine (110); as well as Object Incarnation Engine (112); The object representation engine (110), the object avatar engine (112), or a combination thereof, is configured to perform the method according to any one of claims 1 to 9.
11. A non-transitory machine-readable medium (520) comprising instructions (522, 524) that, when executed by a processor (510), cause a computing system (500) to perform the method of any one of claims 1 to 9.