Machine learning based selective instantiation of computer aided design objects
Patent Information
- Application Number
- CN201980103542.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2019-12-05
- Publication Date
- 2026-09-15
- Estimated Expiration
- 2039-12-05
Smart Images

Figure CN115087982B_ABST
Abstract
Description
Background Technology
[0001] Computer systems can be used to create, use, and manage data on 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 aid in the design and simulation testing of product structure and manufacturing. Attached Figure Description
[0002] Some examples are described in the following detailed description and with reference to the accompanying drawings.
[0003] Figure 1 An example of a computational system that supports selective materialization of CAD objects based on machine learning (ML) is shown.
[0004] Figure 2 An example of selective materialization based on ML performed by a computing system is shown.
[0005] Figure 3 An exemplary training of an inverted ML model performed by an instance identification engine is shown.
[0006] Figure 4 An example of ML-based selective materialization for raycasting CAD operations is shown.
[0007] Figure 5 An example of ML-based selective materialization for slicing CAD operations is shown.
[0008] Figure 6 An example of ML-based selective materialization for trimming CAD operations is shown.
[0009] Figure 7 An example is shown of how the system can be implemented as logic that supports ML-based selective materialization of CAD objects.
[0010] Figure 8 An example of a computational system that supports ML-based selective materialization of CAD objects is shown. Detailed Implementation
[0011] CAD systems and applications can support the creation, design, representation, and use of various forms of CAD objects. One common form used by CAD applications is boundary representation (also known as B-Rep). B-Rep defines the object boundaries of a CAD object using two-dimensional (2D) or three-dimensional (3D) geometric elements such as curves, edges, faces, shapes, and meshes. The properties of the boundary representation model can be restricted to describing only the boundaries of the CAD object (e.g., the geometry that forms the outer boundary of the CAD object). The area enclosed by the boundary representation is typically restricted only by classification to be either entirely solid or entirely empty.
[0012] B-Rep definitions for CAD objects are infeasible or inefficient in capturing the complex internal geometry of CAD objects. With the growth of 3D design, 3D printing, additive manufacturing, and other 3D technologies, the design and fabrication of 3D parts with geometrically complex internal and external structures is becoming increasingly feasible. Complex 3D geometries may require combinations of millions (or more) of geometric elements when modeled via boundary representations (e.g., mesh surfaces) and involve considerable geometric complexity (e.g., high genus, highly curved, variable, and irregular). Raw implementations of complex 3D geometries via B-Rep (whether for modeling internal additive materials or complex external geometries) can result in excessive performance and memory overhead required to handle millions or more mesh elements.
[0013] Programmatic representations of CAD objects can offer performance advantages over raw implementations of complex 3D geometries achieved through B-Rep or other mesh geometries. For example, a 3D lattice can be programmatically represented as a geometric pattern that is repeated to create complex 3D shapes or geometries. The programmatic pattern can be represented procedurally rather than as an explicit geometric representation of millions (or more) B-Rep faces, and therefore can be a more concise geometric representation compared to B-Rep. In some instances, the programmatic pattern can take the form of a specific pattern instance (e.g., a pattern kernel) that is repeated across 2D or 3D space to form the internal or external geometry of a CAD object. Exemplary components in which programmatic patterning can be used to efficiently represent CAD geometry include additive lattice structures forming the interior of 3D parts, rivets or fasteners, geometric textures on surfaces for improved grip, fluid turbulence generators, coating and paint bonding surfaces, and the like.
[0014] Programmable patterns (e.g., specified in a high-level computer programming language) provide a concise and flexible framework for designing and representing complex 3D geometry in CAD systems. However, CAD operations performed on programmably represented CAD objects may require processing, modifying, simulating, or otherwise instantiating the 3D geometry of the CAD object. To perform such CAD operations, some CAD systems can materialize the entire 3D geometry of a given CAD object. Materialization can refer to the process in which a programmable representation of geometry (e.g., via code) is converted into a specialized geometric representation (e.g., B-Rep). For programmable patterns consisting of many pattern instances (e.g., in the thousands, tens of thousands, millions, or more), the B-Rep representation of the entire 3D geometry of the CAD object can be very large in size, adversely affecting the memory and computational efficiency of the CAD system.
[0015] This disclosure provides systems, methods, apparatus, and logic for selective materialization of CAD objects based on machine learning (ML). The ML-based selective materialization features described herein can provide the ability to materialize some (but not all) of the 3D geometry of a CAD object. This selective materialization may include relevant portions of the CAD geometry representing those applicable to a given CAD operation, while other irrelevant portions of the CAD geometry remain in a programmed form. Machine learning techniques can be applied to efficiently and effectively identify selected subsets of pattern instances to be represented for a particular CAD operation.
[0016] The ML-based selective materialization features described herein can improve computational efficiency in CAD systems by determining a selected subset with O(1) complexity (e.g., constant time independent of the number of pattern instances in the CAD geometry). Furthermore, the ML-based selective materialization features described herein provide a scalable, lazy evaluation method for programmable patterns, independent of the underlying programming implementation. Thus, computational efficiency can be achieved via this disclosure for any program, whether simple or complex, including loops and conditional statements.
[0017] This article will describe these and other ML-based selective materialization features and technical benefits in more detail.
[0018] Figure 1An example of a computing system 100 supporting ML-based selective materialization of CAD objects is shown. The computing system 100 may take the form of a single or multiple computing devices, such as application servers, compute nodes, desktop or laptop computers, smartphones or other mobile devices, tablets, embedded controllers, etc. In some embodiments, the computing system 100 implements CAD systems, tools, applications, or programs to assist users in designing, analyzing, simulating, and manufacturing products and 3D parts.
[0019] As an exemplary implementation of any combination of ML-based selective materialization features described herein, Figure 1 The computing system 100 shown includes an instance identification engine 110 and an object materialization engine 112. The computing system 100 can implement engines 108 and 110 (including their components) in various ways, such as as hardware and through programming. Programming to 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 engines 108 and 110 can include processors that execute these instructions. The processor can take the form of a single-processor or multi-processor system, and in some examples, the computing system 100 uses the same computing system features or hardware components (e.g., a common processor or a common storage medium) to implement multiple engines.
[0020] In operation, instance identification engine 110 can determine a selected subset of pattern instances representing a programmed pattern for the geometry of a CAD object. Instance identification engine 110 can do this by determining a sampled set of points in the CAD object applicable to CAD operations performed on the CAD object, providing the sampled set of points as input to an inversion ML model (which is trained to output a given pattern instance of a programmed pattern for the input points of the CAD object), and determining the selected subset as the output set of pattern instances for the sampled set of points provided by the inversion pattern model. In operation, object materialization engine 112 can materialize the geometry of the selected subset of pattern instances to perform CAD operations on the CAD object.
[0021] These and other ML-based selective materialization features are described in more detail below. While some of the discussions here are provided using 2D geometries as illustrative examples, any ML-based selective materialization features described herein can be consistently applied to support any CAD geometry (e.g., 3D geometry, internal lattice structures, complex external pattern designs, etc.).
[0022] Figure 2 An example of ML-based selective entityization performed by a computing system is shown. As an illustrative example, Figure 2A computing system in the form of an instance identification engine 110 and an object materialization engine 112 is described, wherein the computing system can be implemented as a combination of hardware and software.
[0023] Figure 2 An inversion ML model 205, as described in more detail herein, is also illustrated. The inversion ML model 205 can implement or provide any number of machine learning techniques to determine selected portions of the CAD geometry to be materialized for a given CAD operation. To support any ML-based selective materialization features presented herein, the inversion ML model 205 can implement any number of supervised, semi-supervised, unsupervised, or augmented learning models. The inversion ML model 205 may include Markov chains, context trees, support vector machines, neural networks, Bayesian networks, or various other machine learning components. In some examples, the inversion ML model 205 may be trained using random forest or residual neural network ML techniques; however, this document also envisions any number of additional or alternative machine learning techniques and capabilities to implement, train, or otherwise utilize the inversion ML model 205. Figure 2 In the example shown, instance identification engine 110 implements the inverted ML model 205 itself (e.g., using local resources to store the trained model). In other examples, instance identification engine 110 may remotely access or interact with the inverted ML model 205.
[0024] As a successive example illustrating the ML-based selective materialization features presented herein, a CAD object 210 is shown. The internal or external geometry of the CAD object 210 can be programmatically represented (also known as procedural representation). Programmatic or procedural representation can provide a representation of the CAD geometry based on code or functionality (e.g., in a non-materialized form). As an example, a 3D lattice structure can be programmatically represented as a programmatic pattern repeating across the drawn portion of the CAD object to represent the 3D lattice geometry of the CAD object, and programmatically represented in a form where the lattice geometry is not explicitly materialized as a B-Rep form.
[0025] exist Figure 2 In the example shown, the internal geometry of CAD object 210 is represented as a programmed pattern of repeating pattern instances filling the internal region of CAD object 210. A given instance of this programmed pattern is... Figure 2The dashed lines in pattern instance 220 of CAD object 210 are used to indicate the state of the programmed representation (e.g., unmaterialized geometry), and the dashed geometric portions of CAD object 210 can also represent portions of the programmed representation. Therefore, the entire internal geometry of CAD object 210 can be programmedly represented via programmed patterns of repeating pattern instances (such as in the depicted CAD object 210 with the marked pattern instance 220).
[0026] To process CAD object 210, various CAD operations can be supported by the CAD system. Many CAD operations require calculation or detailed processing of only selective or localized portions of the CAD object. The instance identification engine 110 can identify localized pattern instances of CAD object 210 based on the computational needs of a given CAD operation, rather than materializing the entire programmed pattern of CAD object 210. By reducing the memory and processing resources required to perform such CAD operations, localization and selective materialization, rather than materializing the entire programmed pattern of CAD object 210, can improve computational efficiency.
[0027] To support selective materialization, instance identification engine 110 can determine a selected subset of pattern instances of the CAD object 210 to be materialized for a given CAD operation. This selective subset determination can also be referred to as a range lookup or inversion process, because the set of points (e.g., coordinates) of a given CAD object 210 can identify the “inverted” set of pattern instances. In practice, instance identification engine 110 can determine a selected subset of pattern instances occupying a given query region, and this query region can represent a portion of the CAD object to which a given CAD operation performs calculations or otherwise processes.
[0028] In some examples, instance identification engine 110 can address the problem where a programmable pattern L of a pattern instance covers a region R of a CAD object (e.g., R is a 3D space of the internal or external geometry of the CAD object). Instance identification engine 110 can interpret the region R of the CAD object as divided geometric blocks, such that each geometric block contains a (single) pattern instance of the programmable pattern L. For a given query region Q, instance identification engine 110 can determine which geometric blocks contain the query region Q, thereby providing a subset of pattern instances representing the query region Q. The query region Q can represent a portion of a CAD object applicable to a given CAD operation, and the subset containing the pattern instances of the query region Q can therefore represent a selected subset of pattern instances applicable to a given CAD operation.
[0029] Instance identification engine 110 can identify, assign, or tag geometric blocks in various ways. For 3D geometry, instance identification engine 110 can do so via indexing (e.g., by assigning a block ID B). (i,j,k) ,i=0…n i ,j=0…n j ,k=0…n k The instance identification engine 110 assigns block identifiers to a given geometric block. The index values ij and k can be represented as ordinal integers and can be associated with the x-axis, y-axis, and z-axis of the 3D region R, respectively. Therefore, the instance identification engine 110 can set a specific index (i,j,k) to uniquely represent a specific geometric block of the programmed pattern (and thus uniquely identify a specific pattern instance of the programmed pattern L that occupies the specific geometric block).
[0030] In other examples, instance identification engine 110 can identify a geometric block covering a programmed pattern based on given coordinates of the geometric block (e.g., coordinates included within the geometric block). Exemplary coordinate identifiers for a geometric block include the center coordinates of the geometric block, coordinates within the geometric block having the lowest (or highest) x-coordinate value, y-coordinate value, and / or z-coordinate value, or any other selected or configured coordinate location within the geometric block. As yet another example, instance identification engine 110 can label a geometric block with a unique integer value (e.g., sequentially assigning an ID number to each geometric block). In these or various other ways, instance identification engine 110 can identify or label geometric blocks such that each geometric block containing a pattern instance of a programmed pattern is uniquely identified.
[0031] By identifying or labeling geometric blocks, instance identification engine 110 can specify a set of geometric blocks containing a given query region Q for CAD operations. A brute-force method for identifying relevant geometric blocks in query region Q can include testing of query region Q involving each geometric block with a programmed pattern L. As the number of geometric blocks increases (e.g., n...), the process becomes more complex and efficient. i ,n j and / or n k For values greater than 100, this brute-force approach becomes computationally uncontrollable or produces increasingly high computational and performance latency, making it unsuitable for interactive design applications. Instead of the brute-force approach, the instance identification engine 110 uses machine learning to determine a selected subset of pattern instances applicable to CAD applications. This machine learning provides an efficient and scalable method that delivers significant performance improvements compared to the brute-force approach.
[0032] To determine a subset of pattern instances according to this disclosure that can be applied to CAD operations, instance identification engine 110 can sample points applicable to the CAD operations. Instance identification engine 110 can do so in any manner to obtain a set of one or more points in a query region R applicable to the CAD operations. Instance identification engine 110 can sample points in the query region Q at regular or irregular sampling intervals. Figure 2 In the example shown, instance identification engine 110 obtains a sampled set of points 230, which may consist of different points in CAD object 210, where a given CAD operation (e.g., a slicing operation) will be performed.
[0033] In some implementations, instance identification engine 110 determines a sampled set of points 230 by sampling points in a query region Q for a given CAD operation at regular intervals (e.g., coordinate spacing) based on the dimensions of the geometric blocks used for programmable patterns. Instance identification engine 110 can set the sampling interval (e.g., along the x-axis, y-axis, or z-axis) such that only a single sampling point is collected for each geometric block, multiple sampling points are collected for a given geometric block, or according to any other regular or irregular sampling parameters. Other examples of sampling parameters that instance identification engine 110 can apply include random sampling across the query region Q, collecting (at least) a threshold number of sampling points in the query region Q, etc.
[0034] Instance identification engine 110 can provide a sampled set of points as input to inversion ML model 205, and inversion ML model 205 can be trained to output a selected subset of pattern instances covering coordinates / points included in the sampled set of points used for query region Q. (Note: The following is in conjunction with...) Figure 3 (The training of the inverted ML model 205 will be described in more detail here). In some instances, the inverted ML model 205 can output a selected subset of pattern instances in O(1) time because the inverted ML model 205 can support coordinate-to-pattern instance mapping in constant time (e.g., independent of the number of pattern instances in the programmed pattern used to represent the geometry of CAD object 210). The memory requirements for the inverted ML model 205 can be as low as a few kilobytes, which is negligible in modern computing systems. Therefore, ML-based selective materialization via the inverted ML model 205 can provide computational and memory improvements for CAD applications and CAD systems compared to brute-force pattern instance determination or full geometry materialization techniques.
[0035] exist Figure 2In this process, the inverted ML model 205 outputs a selected subset of pattern instances 240 for the sampled point set 230, and the instance identification engine 110 can provide the selected subset 240 of pattern instances to the object materialization engine 112 as a localized or specific set of pattern instances applicable to a given CAD operation. The instance identification engine 110 can provide the selected subset 240 of pattern instances in a manner consistent with how geometric blocks of a programmed pattern are identified. Thus, the selected subset 240 of pattern instances can be identified or specified as a specific pattern instance for materialization by a geometric block identifier (e.g., a set of (i,j,k) indices), which in turn identifies or represents the specific pattern instance.
[0036] Using the selected set 240 of pattern instances, the object materialization engine 112 can materialize the selected portion of the CAD object 210 into a geometric form. Figure 2 An example of selectively materialized CAD object 210 is depicted, which includes materialized geometry 250 (shown in solid lines to represent a specific geometric representation, such as via mesh surfaces or other B-Rep geometric primitives). Object materialization engine 112 can perform selective materialization by materializing instance patterns identified in a selected subset of pattern instances 240 (e.g., materializing pattern instances in each geometric block specified in a selected subset of pattern instances 240).
[0037] Therefore, in any of the methods described herein, the object materialization engine 112 can materialize the geometry of a selected subset of pattern instances 240 in order to perform CAD operations on the CAD object 210. This materialization can be selective, as the object materialization engine 112 can determine not to materialize other parts of the CAD object 210 that are not applicable to CAD operations.
[0038] Figure 3 An exemplary training of the inverted ML model 205 performed by the instance identification engine 110 is shown. To train the inverted ML model 205, the instance identification engine 110 can generate a training dataset, through which the inverted ML model 205 is trained.
[0039] When generating training data, the instance identification engine 110 can evaluate programmatic patterns that define the geometry of CAD objects. Figure 3 In the example shown, instance identification engine 110 evaluates a programmable pattern that defines the geometry of CAD object 210, which may include thirty-seven (37) different pattern instances (at least partially) representing the internal geometry of CAD object 210. Figure 3In the diagram, the CAD object 210 shown is divided into thirty-seven (37) geometric blocks, including... Figure 3 It is a block that is marked as geometry block 310.
[0040] Instance identification engine 110 can utilize block IDs to create a training dataset for inverting ML model 205, thereby identifying geometric blocks of a programmable pattern formed in any manner described herein. In this regard, instance identification engine 110 can evaluate CAD object 210 and the underlying programmable pattern to identify each of the block identifiers representing the geometry of CAD object 210 (i.e., each of the (i,j,k) indices). Figure 3 As depicted, each geometric block of the CAD object 210 can contain a single pattern instance of a programmable pattern. For illustration, Figure 3 The pattern instance 320 is contained within a single geometric block of the internal geometry of the CAD object 210.
[0041] Continuing the discussion on generating training data, instance identification engine 110 can sample points within each geometric block of CAD object 210. For each given pattern instance of a programmed pattern representing the geometry of CAD object 210, instance identification engine 110 can determine the sampled points located within the geometric block (which contains the given pattern instance). In some examples, instance identification engine 110 identifies the sampled points as coordinates, for example, the sampled point coordinates (x, y, x) for each geometric block. is ,y js ,z ks ), s = 0...m, where m is the number of sampling points for each geometry. The number of sampling points collected from a given geometry will be configurable, and in some implementations, the instance identification engine 110 samples only a single point / coordinate from each geometry of the CAD object 210.
[0042] Instance identification engine 110 can determine sampling points for training data generation based on any number of sampling parameters, which may overlap with any of the sampling parameters described herein for the query region Q. For example, instance identification engine 110 can determine samples from... Figure 3 The threshold number of sampling points for each of the thirty-seven (37) geometric blocks in the programmed pattern, regardless of whether the sampling interval is regular or irregular (e.g., proportional to the size of the geometric block). For clarity, in Figure 3 The example sample points are only shown for seven (7) of the thirty-seven (37) geometric blocks that form the geometry of CAD object 210, while instance identification engine 110 can also determine sample points from other geometric blocks.
[0043] Note that in Figure 3 In this context, some geometric blocks include portions within the CAD object 210 as well as portions outside the CAD object 210. An example of such a geometric block is... Figure 3 The image is illustrated by geometry block 330, a portion of which is contained within CAD object 210, while another portion of geometry block 330 lies outside the boundary of CAD object 210. For geometry blocks that are only partially contained within CAD object 210, in some examples, instance identification engine 110 may specifically sample points within CAD object 210. In other examples, instance identification engine 110 may determine sampled points located within geometry block 330, regardless of (e.g., independently of) whether the sampled point is located within CAD object 210.
[0044] The instance identification engine 110 can determine the training dataset as a mapping between each geometric block and one or more sampling points located within the geometric block. Figure 3 In this process, instance identification engine 110 generates training dataset 340 from identified sampling points acquired from geometric blocks of CAD object 210. In some examples, the number of items in the generated training dataset for inverting ML model 205 is equal to the number of geometric blocks of the evaluated programmed pattern (e.g., one item per geometric block, which maps to one or more acquired sampling points located within each geometric block).
[0045] Instance identification engine 110 can train inversion ML model 205 using the generated training dataset 340. In doing so, instance identification engine 110 can train inversion ML model 205 using any number of ML techniques or combinations of ML techniques. As a specific example, instance identification engine 110 can use random forest technique to train inversion ML model 205, which can provide reduced training time compared to other ML techniques such as residual neural networks. Since each geometric block can uniquely contain a single pattern instance, inversion ML model 205 can be trained to output specific pattern instances based on geometric blocks containing specific pattern instances. Thus, training inversion ML model 205 can provide the ability to map input points (e.g., in the form of CAD coordinates) to a given geometric block in a CAD object, and therefore can identify unique pattern instances for input points.
[0046] Once the inversion ML model 205 has been trained by the instance identification engine 110, it can provide an input sample point set determined for a CAD object (e.g., a sample point set collected from a query region Q of a given CAD operation), and the inversion ML model 205 can provide a mapping to a specific pattern instance containing the sample point set. See below. Figure 4 , Figure 5 and Figure 6 This describes various examples of ML-based selective materialization for different CAD operations.
[0047] Figure 4 An example of ML-based selective solidification for raycasting CAD operations is shown. Figure 4 In this context, the instance identification engine 110 can identify the ray casting operation 410 to be performed on the CAD object 210. The ray casting operation 410 can be performed to detect the intersection of the projected ray with a pattern instance of the CAD object 210 (e.g., for entity consistency checks). The identification of a given CAD operation can be performed by identifying a user-selected operation or other user input, by examining the current CAD application parameters or status values specifying the current CAD operation, or based on any number of other CAD application or CAD operation monitoring capabilities available from the CAD system.
[0048] For raycasting operation 410, instance identification engine 110 can determine a sampled set of points of CAD object 210 that can be applied to raycasting operation 410. Specifically, instance identification engine 110 can identify the query region Q used for raycasting operation 410 as a projected ray cast through raycasting operation 410, such as... Figure 4 The ray 420 shown. The instance identification engine 110 can sample points in the CAD object 210 along the identified query region Q (specifically along the ray 420 projected for the ray projection operation 410). Figure 4 In this process, instance identification engine 110 obtains a sampled set of points 430 determined from ray 420 and provides the sampled set of points 430 as input to inversion ML model 205. Inversion ML model 205 can output a selected subset 440 of pattern instances, which may be specific to the sampled set of points 430 acquired for ray projection operation 410.
[0049] exist Figure 4 In the example shown, a selected subset 440 of pattern instances can specify five (5) specific geometric blocks of a programmable pattern of CAD object 210, where the inverted ML model 205 can be mapped to ray 420. Object solidification engine 112 can solidify the geometry of the selected subset 440 of pattern instances by solidifying the geometry of the pattern instances of CAD object 210 along the ray 420 projected for ray projection operation 410. Figure 4 The geometry shown in the figure is 450.
[0050] exist Figure 4In a specific example, instance identification engine 110 may utilize ML-based techniques to identify five (5) specific pattern instances applicable to raycasting operation 410, and when raycasting operation 410 is performed, object materialization engine 112 may selectively materialize the five (5) specific patterns into geometric forms, while ensuring that the other thirty-two (32) pattern instances of CAD object 210 remain in their programmed form (e.g., unmaterialized). In some implementations, object materialization engine 112 may perform raycasting operation 410 by performing ray surface intersection calculations on the materialized geometry 450 of a selected subset 440 of pattern instances.
[0051] In this way, the instance identification engine 110 and the object materialization engine 112 can support ML-based selective materialization for raycasting operations.
[0052] Figure 5 An example of ML-based selective materialization for slicing CAD operations is shown. Figure 5 In this context, the instance identification engine 110 can identify the slicing operation 510 to be performed on the CAD object 210. The slicing operation 510 can be performed along the slicing plane (in... Figure 5 The CAD object is divided by a slicing plane 520 (shown as a 2D line). Slicing operation 510 can be used to calculate the intersection curves that intersect with the slicing plane 520 (e.g., in the context of additive manufacturing).
[0053] For slicing operation 510, instance identification engine 110 can determine a sampled set of points of CAD object 210 applicable to slicing operation 510. Specifically, instance identification engine 110 can identify a query region Q for slicing operation 510 as slicing plane 520. Instance identification engine 110 can sample points in CAD object 210 within the identified query region Q (specifically within slicing plane 520 of slicing operation 510). Figure 5 In this process, instance identification engine 110 obtains a sampled set of points 530 acquired from slice plane 520 and provides the sampled set of points 530 as input to inversion ML model 205. Inversion ML model 205 can output a selected subset 540 of pattern instances, which can be specific to the sampled set of points 530 acquired for slice operation 510.
[0054] exist Figure 5In the example shown, a selected subset 540 of pattern instances can specify six (6) specific geometric blocks of a programmable pattern of CAD object 210, wherein the inverted ML model 205 can be mapped to the slice plane 520. The object solidification engine 112 can solidify the geometry of the selected subset 540 of pattern instances (in the slice plane 520 of the slice operation 510) by solidifying the geometry of the pattern instances of CAD object 210 included in the slice operation 510. Figure 5 The geometry shown in the figure is solidified (550).
[0055] exist Figure 5 In a specific instance, instance identification engine 110 may utilize ML-based technology to identify six (6) specific pattern instances applicable to slicing operation 510, and when performing slicing operation 510, object materialization engine 112 may selectively materialize the six (6) specific patterns into geometric forms, while ensuring that the other thirty-one (31) pattern instances of CAD object 210 remain in their programmed form. In some implementations, object materialization engine 112 may perform slicing operation 510 by calculating the intersection curve between the materialized geometry 550 of a selected subset 540 of pattern instances and the slicing plane 520.
[0056] In this way, the instance identification engine 110 and the object materialization engine 112 can support ML-based selective materialization for slicing operations.
[0057] Figure 6 An example of ML-based selective materialization for trimming CAD operations is shown. Figure 6 In this context, the instance identification engine 110 can identify the trimming operation 610 to be performed on the CAD object 210. The trimming operation 610 can cull the geometry of the CAD object 210 within the boundary of another object (e.g., a user-selected shape) and can be used to preserve a portion of the geometry located within the internal volume of the CAD object 210. Figure 6 In this context, the selected portion 620 is provided as an illustrative shape for culling the CAD object 210. In some examples, the selected portion 620 may be the boundary of the CAD object 210 itself, for example, to trim portions of pattern instances located outside the CAD object 210.
[0058] For trimming operation 610, instance identification engine 110 can determine a sampled set of points of CAD object 210 applicable to trimming operation 610. Specifically, instance identification engine 110 can identify a query region Q for trimming operation 610 as a selected portion 620. Instance identification engine 110 can sample points in CAD object 210 within the identified query region Q (specifically within the selected portion 620 of trimming operation 610). Figure 6In this process, instance identification engine 110 obtains a sampled set of points 630 acquired from selected portion 620 and provides the sampled set of points 630 as input to inversion ML model 205. Inversion ML model 205 can output a selected subset 640 of pattern instances, which can be specific to the sampled set of points 630 acquired for trimming operation 610.
[0059] exist Figure 6 In the example shown, a selected subset 640 of pattern instances can specify twenty-one (21) specific geometric blocks of a programmable pattern of CAD object 210, wherein the inverted ML model 205 can be mapped to the selected portion 620. The object materialization engine 112 can materialize the geometry of the selected subset 640 of pattern instances (in the selected portion 620 of the trimming operation 610) by materializing the geometry of the pattern instances of CAD object 210 included in the trimming operation 610. Figure 6 The geometry shown in the figure is solidified (650).
[0060] exist Figure 6 In a specific instance, instance identification engine 110 may utilize ML-based technology to identify twenty-one (21) specific pattern instances applicable to trim operation 610, and when performing trim operation 610, object materialization engine 112 may selectively materialize the twenty-one (21) specific patterns into geometric forms, while ensuring that the other sixteen (16) pattern instances of CAD object 210 remain in programmatic form. In some implementations, object materialization engine 112 may perform trim operation 610 by trimming the materialized geometry 650 outside a selected portion 620 of CAD object 210.
[0061] In this way, the instance identification engine 110 and the object materialization engine 112 can support ML-based selective materialization for pruning operations.
[0062] Although Figure 4 , Figure 5 and Figure 6The document describes exemplary selective materialization for raycasting, slicing, and trimming CAD operations; however, the ML-based selective materialization features described herein can be consistently applied to any type of CAD operation. For example, for quality attribute calculations, instance identification engine 110 can identify a query region Q that covers a CAD object or a specific portion of an object to which the quality attribute calculation is performed. Tessellation CAD operations can similarly include specific query regions Q (e.g., specific object components, a portion of a CAD object visible in the current CAD application view, etc.) that instance identification engine 110 can identify. In a consistent manner as described herein, for quality attribute calculation operations, tessellation operations, and any other type of CAD operation supported by the CAD system, selective materialization can be performed by instance identification engine 110 to determine a sampled set of points in the identified query region Q, by outputting a selected subset by inverted ML model 205, and by object materialization engine 112.
[0063] Figure 7 An example of logic 700 is shown, which the system can implement to support ML-based selective entityization. For example, computing system 100 can implement logic 700 as hardware, executable instructions stored on a machine-readable medium, or a combination of both. Computing system 100 can implement logic 700 via instance identification engine 110 and object entityization engine 112, through which computing system 100 can execute or perform logic 700 as a method to support ML-based selective entityization. Hereinafter, logic 700 is described using instance identification engine 110 and object representation engine 112 as examples. However, various other implementation options for the system are possible.
[0064] When implementing logic 700, instance identification engine 110 can determine a selected subset (702) of pattern instances of a programmed pattern used to represent the geometry of an object. Instance identification engine 110 can do this by determining a sampled set of points of a CAD object applicable to CAD operations performed on the CAD object (704), providing the sampled set of points as input to an inversion ML model trained to output a given pattern instance of a programmed pattern for the input points of the CAD object (706), and determining a selected subset (708) of the output set of pattern instances provided by the inversion ML model for the sampled set of points. When implementing the logic, object materialization engine 112 can materialize the geometry of the selected subset of pattern instances to perform operations on the object (710).
[0065] Figure 7The illustrated logic 700 provides an illustrative example by which the computing system 100 can support ML-based selective materialization of CAD objects. This document also envisions additional or alternative steps in logic 700, including any features described herein for instance identification engine 110, object materialization engine 112, or any combination thereof.
[0066] Figure 8 An example of a computing system 800 supporting ML-based selective materialization of CAD objects is shown. The computing system 800 may include a processor 810, which may take the form of a single processor or multiple processors. One or more processors 810 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 800 may include a machine-readable medium 820. The machine-readable medium 820 may take the form of any non-transitory electronic, magnetic, optical, or other physical storage device storing executable instructions, such as... Figure 8 The example identification instruction 822 and object materialization instruction 824 are shown. Therefore, the machine-readable medium 820 may be, for example, random access memory (RAM) (such as dynamic random access memory (DRAM)), flash memory, spintronic torque memory, electrically erasable programmable read-only memory (EEPROM), storage drive, optical disk, etc.
[0067] The computing system 800 can execute instructions stored on the machine-readable medium 820 via the processor 810. Executing the instructions (e.g., instance identification instruction 822 and / or object materialization instruction 824) can cause the computing system 800 to perform any ML-based selective materialization features described herein, including any features described with respect to instance identification engine 110, object materialization engine 112, or a combination of both.
[0068] For example, execution of instance identification instruction 822 by processor 810 can cause computing system 800 to determine a selected subset of pattern instances representing the geometry of a CAD object, including determining a set of sample points of the CAD object applicable to CAD operations for execution on the CAD object; providing the set of sample points as input to an inversion ML model, the inversion ML model being trained to output a given pattern instance of the programmable pattern for the input points of the CAD object; and determining the output set of pattern instances provided by the inversion ML model for the set of sample points as the selected subset. Execution of object materialization instruction 824 can cause computing system 800 to materialize the geometry of the selected subset of pattern instances to perform the CAD operation on the CAD object.
[0069] Any additional or alternative features described herein can be implemented via instance identification instruction 822, object materialization instruction 824, or a combination of both.
[0070] The systems, methods, devices, and logic described above, including instance identification engine 110 and object materialization engine 112, can be implemented in many different ways using a variety of different combinations of hardware, logic, circuitry, and executable instructions stored on a machine-readable medium. For example, instance identification engine 110, object materialization engine 112, or combinations thereof may include circuitry in a controller, microprocessor, or application-specific integrated circuit (ASIC), or may be implemented using discrete logic or components, or may be implemented using combinations of other types of analog or digital circuitry combined on a single integrated circuit or distributed among multiple integrated circuits. Products, such as computer program products, may include storage media and machine-readable instructions stored on the media that, when executed in an endpoint, computer system, or other device, cause the device to perform operations according to any of the above descriptions (including any features of instance identification engine 110, object materialization engine 112, or combinations thereof).
[0071] The processing power of the systems, devices, and engines described herein (including instance identification engine 110 and object entityization engine 112) can be distributed across multiple system components, such as 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 merged into a single memory or database, can be logically and physically organized in many different ways, and can be implemented in various ways, including with 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, programs distributed across multiple memories and processors, or implemented in various ways (e.g., libraries (e.g., shared libraries)).
[0072] Although the examples have been described above, more implementation methods are also possible.
Claims
1. A method for reducing the memory and processing resources required to perform CAD operations on a programmatic representation of a computer-aided design (CAD) object (210), wherein, The programmatic representation of the CAD object (210) refers to the code- or function-based representation of the CAD geometry of the CAD object, and the method includes: Through the calculation system (100, 800): Determining a selected subset (240, 440, 540, 640) of pattern instances of a programmed pattern (702), the programmed pattern being used to represent the geometry of the CAD object (210), the determination of the selected subset (240, 440, 540, 640) of pattern instances of a programmed pattern (702) includes: Determine (704) a sampled set of points (230, 430, 530, 630) of the CAD object (210), wherein CAD operations are performed on the CAD object (210) in the sampled set of points (230, 430, 530, 630); The sampled set of points (230, 430, 530, 630) is provided as input to (706) an inversion machine learning (ML) model (205), which is trained to output a given pattern instance of the programmable pattern for the input points of the CAD object (210); and For the sampled point set (230, 430, 530, 630), determine (708) the output set of pattern instances provided by the inversion ML model (205) as the selected subset; Materialize (710) the geometry of a selected subset (240, 440, 540, 640) of the pattern instances to perform the CAD operation on the CAD object (210), wherein materialization refers to converting the programmatic representation of the geometry into a special geometric representation; and Perform the CAD operation on the CAD object (210); The method further includes training the inversion ML model (205) through the following steps: Generating a training data set (340) for the inverted ML model (205) includes generating the training data set (340) for the inverted ML model (205) through the following steps: For each given pattern instance of the programmed pattern representing the geometry of the CAD object (210), sampling points are determined, the sampling points being located within a geometric block (310, 330) containing the given pattern instance; and The training dataset (340) is defined as a mapping between each geometric block (310, 330) and the sampling points located within the geometric block (310, 330); and The inversion ML model (205) is trained using the generated training data set (340); Each geometric block (310, 330) uniquely contains a single pattern instance (220, 320), and the inversion ML model (205) is trained based on the geometric blocks containing the specific pattern instance to output the specific pattern instance.
2. The method according to claim 1, wherein, The CAD operation includes a raycasting operation (410), and includes: Points in the CAD object (210) are sampled along the projection ray (420) of the ray projection operation (410); The geometry of the selected subset is solidified by solidifying the geometry of the pattern instance of the CAD object (210) along the projection ray (420); and The ray projection operation (410) is performed by performing ray surface intersection calculations on the solidified geometry (450) of the selected subset.
3. The method according to claim 1, wherein, The CAD operation includes a slicing operation (510), and includes: Points in the CAD object (210) are sampled in the slicing plane (520) of the slicing operation (510); The geometry of the selected subset is solidified by solidifying the geometry of the pattern instance of the CAD object (210) in the slice plane (520); and The slicing operation (510) is performed by calculating the intersection curve between the solidified geometry (550) of the selected subset and the slicing plane (520).
4. The method according to claim 1, wherein, The CAD operation includes a trimming operation (610) for removing portions of the programmed pattern other than a selected portion (620) of the CAD object (210), and includes: Points in the CAD object (210) are sampled in the selected portion (620) of the CAD object (210); The geometry of the selected subset is solidified by solidifying the geometry of the pattern instance of the CAD object (210) in the selected portion (620); and The trimming operation (610) is performed by trimming the solidified geometry (650) outside the selected portion (620) of the CAD object (210).
5. The method according to claim 1, comprising: The geometry of a selected subset (240, 440, 540, 640) of the pattern instances is materialized without materializing an unselected pattern instance of the programmed pattern.
6. A system (100) for reducing the memory and processing resources required to perform CAD operations on a programmatic representation of a computer-aided design (CAD) object (210), wherein, The programmatic representation of the CAD object (210) refers to the code- or function-based representation of the CAD geometry of the CAD object, and the system includes: An instance identification engine (110) is configured to determine a selected subset (240, 440, 540, 640) of pattern instances of a programmed pattern used to represent the geometry of the CAD object (210) by: Determine a sampled set of points (230, 430, 530, 630) in the CAD object (210), wherein CAD operations are performed on the CAD object (210) in the sampled set of points (230, 430, 530, 630); The sampled set of points (230, 430, 530, 630) is provided as input to an inversion machine learning (ML) model (205), which is trained to output a given pattern instance of the programmable pattern for the input points of the CAD object (210); and For the sampled point set (230, 430, 530, 630), determine the output set of pattern instances provided by the inversion ML model (205) as the selected subset; and An object materialization engine (112) is configured to materialize the geometry of a selected subset (240, 440, 540, 640) of the pattern instances to perform the CAD operation on the CAD object (210), wherein materialization refers to converting a programmatic representation of the geometry into a special geometric representation; The instance identification engine (110) is further configured to train the inversion ML model (205) by: A training dataset (340) for the inverted ML model (205) is generated by the following: For each given pattern instance of the programmed pattern representing the geometry of the CAD object (210), sampling points are determined, the sampling points being located within a geometric block (310, 330) containing the given pattern instance; and The training dataset (340) is defined as a mapping between each geometric block (310, 330) and the sampling points located within the geometric block (310, 330); and The inversion ML model (205) is trained using the generated training data set (340), wherein each geometric block (310, 330) uniquely contains a single pattern instance (220, 320), and wherein the inversion ML model (205) is trained based on the geometric blocks containing the specific pattern instance to output the specific pattern instance.
7. The system according to claim 6, wherein, The CAD operation includes a ray casting operation (410), and wherein: The instance identification engine (110) is configured to sample points in the CAD object (210) along the projection ray (420) of the ray projection operation (410); and The object materialization engine (112) is configured to: The geometry of the selected subset is solidified by solidifying the geometry of the pattern instance of the CAD object (210) along the projection ray (420); and The ray projection operation (410) is performed by performing ray surface intersection calculations on the solidified geometry (450) of the selected subset.
8. The system according to claim 6, wherein, The CAD operation includes a slicing operation (510), and wherein: The instance identification engine (110) is configured to sample points in the CAD object (210) in the slicing plane (520) of the slicing operation (510); and The object materialization engine (112) is configured to: The geometry of the selected subset is solidified by solidifying the geometry of the pattern instance of the CAD object (210) in the slice plane (520); and The slicing operation (510) is performed by calculating the intersection curve between the solidified geometry (550) of the selected subset and the slicing plane (520).
9. The system according to claim 6, wherein, The CAD operation includes a trimming operation (610) for removing portions of the programmed pattern other than a selected portion (620) of the CAD object (210), and wherein: The instance identification engine (110) is configured to: sample points in the selected portion (620) of the CAD object (210); and The object materialization engine (112) is configured to: The geometry of the selected subset is solidified by solidifying the geometry of the pattern instance of the CAD object (210) in the selected portion (620); and The trimming operation (610) is performed by trimming the solidified geometry (650) outside the selected portion (620) of the CAD object (210).
10. The system according to claim 6, wherein, The object materialization engine (112) is configured to materialize the geometry of a selected subset (240, 440, 540, 640) of the pattern instances without materializing an unselected pattern instance of the programmable pattern.
11. A non-transitory machine-readable medium (820) comprising instructions (822, 824) which, when executed by a processor (810), cause a computing system (100, 800) to perform the method according to any one of claims 1 to 5.
Citation Information
Patent Citations
Real-time adaptive control of additive manufacturing processes using machine learning
US20180341248A1
Fast, efficient direct slicing method for lattice structures
US20190061269A1