Method and system for performing clearance analysis of a product assembly in a computer-aided design (CAD) environment
The iterative decomposition of product space into variable-sized zones using machine learning and spatial partitioning optimizes CAD-based product assembly gap analysis, addressing resource and time inefficiencies in existing methods.
Patent Information
- Application Number
- CN202080103602.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-08-31
- Publication Date
- 2025-07-15
- Estimated Expiration
- 2040-08-31
AI Technical Summary
The prior art has high computational resources and time costs in product assembly gap analysis, resulting in extended design iteration times and delayed product time to market, especially in the case of large product assembly.
By iteratively breaking the product space into multiple variable-sized partitions in a CAD environment, predict gap analysis costs using machine learning models, and allocating partitions between multiple gap workers, performing component gap analysis, and ultimately generating an integrated gap result set.
It effectively reduces gap analysis time, reduces computing resource requirements, and ensures the efficiency of product design iteration and the shortening of product time to market.
Smart Images

Figure CN116097057B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to the field of computer-aided analysis, and more particularly, to methods and systems for performing clearance analysis of product assemblies in a CAD environment. Background Art
[0002] Typically, during the design of a new product, clearance analysis is performed to ensure that the components in a product assembly do not interfere with each other. A product assembly may include multiple components, ranging from dozens or hundreds of components in a small product assembly to hundreds of thousands of components in a large product assembly such as an automobile, a ship, an industrial plant, etc. Generally, clearance analysis is performed during product design, when most of the components and sub-assemblies are changed, when new components or sub-assemblies are added to the product assembly, and / or when the components and sub-assemblies are to be verified for multiple variants of the product.
[0003] Clearance analysis of a product assembly requires significantly higher computing resources, including processors and memory. In addition, clearance analysis of a product assembly may take a longer time, from several hours to several days, especially in the case of a large product assembly. This may be due to the cost of evaluating interference in clearance analysis, where "n" is the number of components in the product assembly. In terms of computing resources and time, the higher cost of clearance analysis may result in a longer time to provide product effectiveness, a significantly longer design iteration time for the product, a significant increase in the price of clearance analysis, and a delay in the product's time to market. 2 Cost, where "n" is the number of components in the product assembly. In terms of computing resources and time, the higher cost of clearance analysis may result in a longer time to provide product effectiveness, a significantly longer design iteration time for the product, a significant increase in the price of clearance analysis, and a delay in the product's time to market. Summary of the Invention
[0004] The scope of the present disclosure is defined only by the appended claims and is not affected in any way by the statements in this specification. This embodiment may eliminate one or more disadvantages or limitations in the related art. Methods and systems for performing clearance analysis of product assemblies in a computer-aided design (CAD) environment are disclosed.
[0005] In one aspect, a method includes receiving, from a user device, a request for evaluating the clearance between components of a product assembly in a CAD environment. The request includes a unique identifier of the product assembly. The method includes obtaining, based on the unique identifier of the product assembly, product data associated with the product assembly from a product data management (PDM) database. Further, the method includes iteratively decomposing a product space in the CAD environment that includes the product assembly into a plurality of variable-sized partitions based on the product data. The method includes selecting one or more variable-sized partitions from the plurality of variable-sized partitions for evaluating the clearance between components of the product assembly, and evaluating the clearance between components in the selected variable-sized partitions.
[0006] When iteratively decomposing a product space including a product assembly in a CAD environment into a plurality of partitions of variable size, the method may include generating a planar list of components in the product assembly based on product data. The planar list of components includes information related to a unique identifier of each component, the position of each component in the product space, and a bounding box associated with each component. The method may include calculating a bounding box of the product assembly in the product space based on the planar list of components in the product assembly, and iteratively decomposing the bounding box including the product assembly in the product space into a plurality of partitions of variable size.
[0007] In one embodiment, in iteratively decomposing the bounding box including the product assembly in the product space into a plurality of partitions of variable size, the method may include decomposing the bounding box into at least two equally sized bounding boxes along each Cartesian coordinate axis, and determining the direction along which the two equally sized bounding boxes are subdivided based on a maximum objective function value associated with the Cartesian coordinate axis. The method may include dividing the two equally sized bounding boxes into a plurality of partitions of variable size along the determined direction.
[0008] The method may include determining whether the number of components in any of the partitions of variable size is greater than a predefined number of components. If the number of components in any of the partitions of variable size is greater than the predefined number of components, the method may include repeating the above decomposition, determination, division, and determination actions until the number of components in each partition of variable size is less than or equal to the predefined number of components. If the number of components in any of the partitions of variable size is not greater than the predefined number of components, the method may include storing information associated with the partitions of variable size in a partition database.
[0009] In another embodiment, in iteratively decomposing the bounding box including the product assembly in the product space into a plurality of partitions of variable size, the method may include predicting a clearance analysis cost for evaluating a clearance of the product assembly in the bounding box. In an exemplary implementation, a trained machine learning model is used to predict the clearance analysis cost for evaluating the clearance of the product assembly in the bounding box. The method may include determining whether the predicted clearance analysis cost is less than or equal to a threshold clearance analysis cost. If the predicted clearance analysis cost is not less than or equal to the threshold clearance analysis cost, the method may include decomposing the bounding box into at least two equally sized bounding boxes along the Cartesian coordinate axes, and calculating a clearance analysis cost for evaluating the component clearances of the product assembly in the two equally sized bounding boxes along each Cartesian coordinate axis. The method may include determining the direction along which one of the two equally sized bounding boxes is subdivided along a Cartesian coordinate axis, the direction having a minimum combined clearance analysis cost; and dividing each bounding box into two partitions of variable size along the determined direction.
[0010] The method may include determining whether a minimum combined clearance analysis cost associated with a variable-sized partition is less than a predicted clearance analysis cost. If the minimum combined clearance analysis cost associated with the variable-sized partition is not less than the predicted clearance analysis cost, the method may include repeating the above steps of determining, decomposing, calculating, determining, partitioning, and determining until the clearance analysis cost of the variable-sized partition becomes less than the predicted clearance analysis cost. If the minimum combined clearance analysis cost associated with the variable-sized partition is less than the predicted clearance analysis cost, the method may include storing information associated with the variable-sized partition in a partition database.
[0011] In yet another embodiment, in iteratively decomposing a product space including a product assembly in a CAD environment into a plurality of variable-sized partitions, the method may include generating a flat list of components in the product assembly based on product data. The flat list of components includes information related to a unique identifier of each component, a location of each component in the product space, and a bounding box associated with each component. The method may include predicting a clearance analysis cost for evaluating clearances of each component in the product assembly, and identifying one or more components having a predicted clearance analysis cost greater than a predetermined threshold.
[0012] The method may further include calculating a bounding box around each component having a predicted clearance analysis cost greater than the predetermined threshold based on the flat list of components. The bounding box associated with each component includes one or more components located within the bounding box of the corresponding component. The method may include determining whether there are any remaining one or more components in the flat list having a predicted clearance analysis cost less than or equal to the predetermined threshold. If there are no remaining components in the flat list, the method may include storing information associated with the bounding box in a partition database.
[0013] If there is one or more remaining components in the planar list, the method may include generating a bounding box for the remaining components in the component planar list and decomposing the bounding box into at least two equally sized bounding boxes along each Cartesian axis. Additionally, the method may include determining the direction along which the two equally sized bounding boxes are subdivided based on the maximum objective function value associated with the Cartesian axis, and dividing the two equally sized bounding boxes into a plurality of variable-sized partitions along the determined direction. The method may further include determining whether the number of components in any of the variable-sized partitions is greater than a predefined number of components. If the number of components in any of the variable-sized partitions is greater than the predefined number of components, the method may include repeating the above decomposition, determination, division, and determination actions until the number of components in each variable-sized partition is less than or equal to the predefined number of components. If the number of components in any of the variable-sized partitions is not greater than the predefined number of components, the method may include storing information associated with the variable-sized partitions in a partition database.
[0014] The method may include selecting one or more variable-sized partitions from the plurality of variable-sized partitions based on at least one of a predefined number of components in the variable-sized partition and a threshold gap analysis cost associated with the variable-sized partition.
[0015] In evaluating the gaps between components in the respective variable-sized partitions, the method may include allocating the selected variable-sized partitions among a plurality of gap workers. Each selected variable-sized partition includes one or more pairs of components for which a gap analysis is to be performed. The method may include performing a gap analysis on the respective pairs of components in the respective variable-sized partitions using the gap workers and generating a result of the gap analysis performed on the respective pairs of components in the respective variable-sized partitions. The method may further include generating an integrated gap result set for the product assembly based on the results of the gap analysis by the gap workers on the respective variable-sized partitions and outputting the integrated gap result set for the product assembly on a graphical user interface.
[0016] In another aspect, a data processing system for performing clearance analysis of a product assembly in a computer-aided design (CAD) environment includes a processing unit and a memory unit communicatively coupled to the processing unit. The memory unit includes a clearance analysis module stored in the form of machine-readable instructions and executed by the processing unit. The clearance analysis module is configured to receive, from a user device, a request for evaluating the clearance between components of a product assembly in the CAD environment. The request includes a unique identifier of the product assembly. The clearance analysis module is configured to obtain product data associated with the product assembly from a product data management (PDM) database based on the unique identifier of the product assembly. Further, the clearance analysis module is configured to iteratively decompose a product space in the CAD environment that includes the product assembly into a plurality of variable-sized partitions. The clearance analysis module is configured to select one or more of the variable-sized partitions from the plurality of variable-sized partitions for evaluating the clearance between components in the product assembly, and to evaluate the clearance between components in the selected variable-sized partitions.
[0017] In iteratively decomposing the product space in the CAD environment that includes the product assembly into a plurality of variable-sized partitions, the clearance analysis module is configured to generate a flat list of components in the product assembly based on the product data. The flat list of components includes information related to the unique identifier of each component, the position of each component in the product space, and the bounding box associated with each component. The clearance analysis module is configured to calculate a bounding box of the product assembly in the product space based on the flat list of components in the product assembly, and to iteratively decompose the bounding box that constitutes the product assembly in the product space into a plurality of variable-sized partitions.
[0018] In one embodiment, in iteratively decomposing the bounding box that includes the product assembly in the product space into a plurality of variable-sized partitions, the clearance analysis module is configured to decompose the bounding box into at least two equal-sized bounding boxes along each Cartesian coordinate axis, and to determine the direction along which the two equal-sized bounding boxes are subdivided based on the maximum objective function value associated with the Cartesian coordinate axis. The clearance analysis module is configured to divide the two equal-sized bounding boxes into a plurality of variable-sized partitions along the determined direction. The clearance analysis module is configured to determine whether the number of components in any of the variable-sized partitions is greater than a predefined number of components. If the number of components in any of the variable-sized partitions is greater than the predefined number of components, the clearance analysis module is configured to repeat the above decomposition, determination, division, and determination actions until the number of components in each variable-sized partition is less than or equal to the predefined number of components. If the number of components in any of the variable-sized partitions is not greater than the predefined number of components, the clearance analysis module is configured to store the information associated with the variable-sized partition in a partition database.
[0019] In another embodiment, in iteratively decomposing a bounding box including a product assembly in a product space into a plurality of variable-sized partitions, the clearance analysis module is configured to predict a clearance analysis cost for evaluating the clearance of the product assembly in the bounding box. In an exemplary implementation, a trained machine learning model is used to predict the clearance analysis cost for evaluating the clearance of the product assembly in the bounding box.
[0020] The clearance analysis module is configured to determine whether the predicted clearance analysis cost is less than or equal to a threshold clearance analysis cost. If the predicted clearance analysis cost is not less than or equal to the threshold clearance analysis cost, the clearance analysis module is configured to decompose the bounding box into at least two equally-sized bounding boxes along Cartesian coordinate axes, and calculate a combined clearance analysis cost for evaluating the component clearances of the product assembly in the two equally-sized bounding boxes along each Cartesian coordinate axis. The clearance analysis module is configured to determine the direction along which one of the Cartesian coordinate axes the two equally-sized bounding boxes are subdivided, which has the minimum combined clearance analysis cost, and divide each bounding box into two variable-sized partitions along the determined direction. The clearance analysis module is configured to determine whether the minimum combined clearance analysis cost associated with the variable-sized partitions is less than the predicted clearance analysis cost. If the minimum combined clearance analysis cost associated with the variable-sized partitions is not less than the predicted clearance analysis cost, the clearance analysis module is configured to repeat the above-mentioned determining, decomposing, calculating, determining, dividing, and determining actions until the minimum combined clearance analysis cost of the variable-sized partitions becomes less than the predicted clearance analysis cost. If the minimum combined clearance analysis cost associated with the variable-sized partitions is less than the predicted clearance analysis cost, the clearance analysis module is configured to store the information associated with the variable-sized partitions in a partition database.
[0021] In yet another embodiment, in iteratively decomposing a product space constituted by a product assembly in a CAD environment into a plurality of variable-sized partitions, the clearance analysis module may be configured to generate a plane list of components in the product assembly based on product data. The plane list of components includes information related to the unique identifier of each component, the position of each component in the product space, and the bounding box associated with each component. The clearance analysis module may be configured to predict a clearance analysis cost for evaluating the clearance of each component in the product assembly, and identify one or more components having a predicted clearance analysis cost greater than a predetermined threshold.
[0022] The clearance analysis module can also be configured to calculate a bounding box around each component having a predicted clearance analysis cost greater than a predetermined threshold based on a list of planes of components. The bounding box associated with each component includes one or more components located within the bounding box of the corresponding component. The clearance analysis module can be configured to determine whether there are any remaining one or more components in the list of planes having a predicted clearance analysis cost less than or equal to the predetermined threshold. If there are no remaining components in the list of plane components, the clearance analysis module can be configured to store information associated with the bounding box in a partition database.
[0023] If there are any remaining one or more components in the list of planes, the clearance analysis module can be configured to generate a bounding box for the remaining components in the list of planes of components and decompose the bounding box into at least two equally sized bounding boxes along each Cartesian axis. Additionally, the clearance analysis module can be configured to determine the direction along which the two equally sized bounding boxes are subdivided based on the maximum objective function value associated with the Cartesian axis and divide the two equally sized bounding boxes into a plurality of variable-sized partitions along the determined direction. The clearance analysis module can also be configured to determine whether the number of components in any of the variable-sized partitions is greater than a predefined number of components. If the number of components in any of the variable-sized partitions is greater than the predefined number of components, the clearance analysis module can be configured to repeat the above decomposition, determination, division, and determination actions until the number of components in each variable-sized partition is less than or equal to the predefined number of components. If the number of components in any of the variable-sized partitions is not greater than the predefined number of components, the clearance analysis module can be configured to store information associated with the variable-sized partitions in a partition database.
[0024] The clearance analysis module is configured to select one or more variable-sized partitions from the plurality of variable-sized partitions based on at least one of the predefined number of components in the variable-sized partitions and a threshold clearance analysis cost associated with the variable-sized partitions.
[0025] In evaluating the clearances between components in the corresponding variable-sized partitions, the clearance analysis module is configured to distribute the selected variable-sized partitions among a plurality of clearance workers. Each selected variable-sized partition includes one or more pairs of components for which a clearance analysis needs to be performed. The clearance analysis module is configured to perform a clearance analysis on the corresponding pairs of components in the corresponding variable-sized partitions using the clearance workers and generate results of the clearance analysis performed on the corresponding pairs of components in the corresponding variable-sized partitions. The clearance analysis module is also configured to generate an integrated clearance result set for the product assembly based on the results of the clearance analysis of the corresponding variable-sized partitions by the clearance workers and output the integrated clearance result set for the product assembly on a graphical user interface.
[0026] The present invention content is provided to introduce selected concepts in a simplified form, which are further described in the following description. It is not intended to identify the features or essential features of the claimed subject matter. Additionally, the claimed subject matter is not limited to implementations that solve any or all of the disadvantages noted in any part of this disclosure. BRIEF DESCRIPTION OF THE DRAWINGS
[0027] FIG. 1 is a schematic representation of a data processing system for performing clearance analysis on a product assembly in a computer-aided design (CAD) environment according to one embodiment.
[0028] Figure 2 Illustrated is a detailed view of a clearance analysis module as shown according to one embodiment Figure 1 as shown.
[0029] Figure 3 is a process flow diagram of an exemplary method for performing clearance analysis on a product assembly in a CAD environment according to one embodiment.
[0030] Figure 4 is a process flow diagram of an exemplary method for iteratively decomposing a product space including a product assembly in a CAD environment into a plurality of variable-sized partitions according to one embodiment.
[0031] Figure 5 is a process flow diagram of an exemplary method for iteratively decomposing a product space including a product assembly in a CAD environment into a plurality of variable-sized partitions according to another embodiment.
[0032] Figure 6 is a process flow diagram of an exemplary method for iteratively decomposing a product space including a product assembly in a CAD environment into a plurality of variable-sized partitions according to yet another embodiment.
[0033] Figure 7 is a schematic representation according to one embodiment depicting Figure 1 a cloud computing system as shown in
[0034] Figure 8 Illustrated is a block diagram of a data processing system for performing clearance analysis on a product assembly in a CAD environment according to another embodiment.
[0035] Figure 9A is a schematic representation according to one embodiment depicting a product space including a product assembly, the product space being partitioned into a plurality of variable-sized partitions using a partitioning strategy.
[0036] Figure 9B is a schematic representation according to one embodiment depicting the partitioning of a product space into variable-sized partitions and a plurality of components in each variable-sized partition. Detailed Implementation Manner
[0037] Methods and systems for performing clearance analysis on a product assembly in a computer-aided design (CAD) environment are disclosed. Various embodiments are described with reference to the accompanying drawings, in which the same reference numerals are used. The same reference numerals are always used to refer to the same elements. In the following description, numerous specific details are set forth to provide a thorough understanding of the embodiments. These specific details do not need to be employed to practice the embodiments. In other instances, well-known materials or methods are not described in detail to avoid unnecessarily obscuring the embodiments. Although the present disclosure is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will be described in detail herein. There is no intention to limit the present disclosure to the particular forms disclosed. On the contrary, the present disclosure is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the present disclosure.
[0038] The terms "bounding box" and "partition" are used interchangeably throughout the document. Additionally, the terms "clearance evaluation" and "clearance analysis" are used interchangeably throughout the document.
[0039] Figure 1 is a schematic representation of a data processing system 100 for performing clearance analysis on a product assembly in a computer-aided design (CAD) environment according to an embodiment. For example, the data processing system 100 includes a cloud computing system 102 configured to provide cloud services for clearance analysis of a product assembly associated with a product to be manufactured. The cloud computing system 102 can be part of a public cloud infrastructure, a private cloud computing infrastructure (also known as an on-premises cloud), or a hybrid cloud computing infrastructure (e.g., a combination of public and private cloud computing infrastructures).
[0040] The cloud computing system 102 includes a cloud communication interface 106, cloud computing hardware and OS 108, a cloud computing platform 110, a clearance analysis module 112, a PDM database 114, a partition database 116, and a clearance database 118. The cloud communication interface 106 enables communication between the cloud computing platform 110 and user devices 120A-N (such as smartphones, tablets, desktop computers, etc.) via a network 104.
[0041] The cloud computing hardware and OS 108 may include one or more servers on which an operating system (OS) is installed, and the one or more servers include one or more processing units, one or more memory units for storing machine-readable instructions, one or more storage devices for storing data, and other peripheral devices required to provide cloud computing functions. The cloud computing hardware and OS 108 are also referred to as cloud computing infrastructure. The cloud computing platform 110 is a platform that implements functions such as data storage, data analysis, data visualization, and data communication on the cloud hardware and OS 108 through APIs and algorithms; and uses cloud-based applications (e.g., clearance applications) to deliver clearance analysis as a cloud service. The cloud computing platform 110 employs a clearance analysis module 112 to perform clearance analysis on a product assembly and provide integrated clearance results, as described in more detail with reference to Figures 2 to 6 Each product assembly may include a plurality of sub-assemblies, and each sub-assembly may include a plurality of components. Each component may include a single part or several parts. For example, the product assembly may be an automotive assembly, a ship assembly, an aircraft assembly, etc. In the example of an automotive assembly, the component may be a right front wheel or a left front wheel.
[0042] The clearance analysis module 112 includes a partitioning module 124 and a clearance module 126. The partitioning module 124 is configured to decompose the product space corresponding to the product assembly into variable-sized partitions based on a partitioning strategy (e.g., the optimal number of components in the partition and / or the optimal clearance analysis cost). The variable-sized partitions include a variable number of components from the product assembly. The clearance module 126 is configured to perform clearance analysis on each variable-sized partition in parallel and output the integrated clearance results of the product assembly. Performing clearance analysis is to check the clearances between component pairs in the product assembly. Generally, clearance analysis is performed during product design, when most of the components and sub-assemblies change, when new components or sub-assemblies are added to the product assembly, and / or when the components and sub-assemblies are to be verified for multiple variants of the product. For example, the clearance analysis module 126 may indicate components that interfere with each other or have a desired clearance in each partition and / or the entire product assembly. The data processing system 100 enables users (e.g., designers, manufacturers, etc.) to remotely perform clearance analysis on product assemblies in a time-efficient manner.
[0043] The cloud computing platform 110 also includes a PDM database 114 for storing product data associated with product assemblies (e.g., fully configured 3D CAD models of products); a partition database 116 for storing information associated with variable-sized partitions corresponding to one or more product assemblies for which clearance analysis is performed; and a clearance database 118 for storing clearance results associated with one or more product assemblies for which clearance analysis is performed.
[0044] The user devices 120A-N include graphical user interfaces 122A-N for receiving requests to perform clearance analysis on product assemblies and outputting integrated clearance results associated with the product assemblies. Each user device 120A-N can be equipped with a communication interface for docking with the cloud computing system 102. Users of the user devices 120A-N can access the cloud computing system 102 through the graphical user interfaces 122A-N. For example, a user can send a request to the cloud computing system 102 to perform clearance analysis on a product assembly. The graphical user interfaces 122A-N can be specifically configured to access the clearance analysis module 112 in the cloud computing system 102.
[0045] Figure 2 Illustrated is a detailed view of the clearance analysis module 112 as shown in Figure 1 as shown. As Figure 2 shown, the clearance analysis module 112 includes a partitioning module 124, a clearance module 126, and an output module 210. The partitioning module 124 includes a planar list generation module 202 and a partition generation module 204. The planar list generation module 202 is configured to obtain product data related to a product assembly for which clearance analysis is to be performed from the PDM database 114 based on a unique identifier associated with the product assembly. The planar list generation module 202 is configured to generate a planar list of components in the product assembly based on the product data. For example, the planar list generation module 202 processes the product structure of the product assembly and generates a planar list of absolute positioning events. The planar list of events includes information related to: the unique identifier of each component, the position of each component in the product space, a reference to the CAD model containing geometric or faceted information, and the bounding box associated with each component. The unique identifier can help associate the clearance results with the components in the product assembly. The planar list of events is stored in an event data format independent of the PDM.
[0046] The partition generation module 204 is configured to generate variable - sized partitions by iteratively decomposing a product space including a product assembly in a CAD environment based on a component - based planar list. Each variable - sized partition is a volumetric decomposition of the product space. The variable - sized partitions include a variable number of absolutely - positioned components of the product assembly. In one embodiment, the partition generation module 204 is configured to generate variable - sized partitions by recursive binary partitioning of the product space such that each binary partition is performed along one of three axis - aligned directions (e.g., X, Y, or Z) and results in multiple partitions that contain approximately equal numbers of components.
[0047] In another embodiment, the partition generation module 204 is configured to generate variable - sized partitions by recursive binary partitioning of the product space based on a predicted clearance analysis cost. In this embodiment, the partition generation module 204 is configured to generate variable - sized partitions by recursive binary partitioning of the product space along one of three axis - aligned directions (e.g., X, Y, or Z), where the variable - sized partitions have approximately equal predicted clearance analysis costs. The binary partitioning is performed until the clearance analysis cost of each final partition is close to a threshold clearance analysis cost or until the combined predicted clearance analysis cost of the sub - partitions along each of the three axis - aligned directions is greater than the clearance analysis cost of the partition being divided.
[0048] In yet another embodiment, the partition generation module 204 is configured to predict the clearance analysis cost of each component in the product assembly. The partition generation module 204 is configured to generate a first set of components having a predicted clearance analysis cost higher than a threshold and a second set of components having a predicted clearance analysis cost less than or equal to the threshold. The partition generation module 204 is configured to generate a first set of variable - sized partitions that contain each component in the first set of components and other components from the planar list that are within the bounding box of the corresponding component. The partition generation module 204 is configured to generate a second set of variable - sized partitions by recursive binary partitioning of the product space corresponding to the second set of components based on an equal - approximate - component - number method. The partition generation module 204 is configured to generate a final set of variable - sized partitions that includes the first set of variable - sized partitions and the second set of variable - sized partitions.
[0049] The partition selection module 206 is configured to select one or more variable - sized partitions from the multiple variable - sized partitions for evaluating the clearances between components in the product assembly. The variable - sized partitions are selected such that the selected variable - sized partitions include the components of the entire product assembly. Additionally, each selected variable - sized partition includes one or more pairs of components for which a clearance analysis is to be performed.
[0050] The clearance module 126 includes a clearance scheduler 206 and clearance workers 208A-N. The clearance scheduler 206 is configured to allocate selected variable-sized partitions among the clearance workers 208A-N. The clearance scheduler 206 provides for the deployment of an appropriate number of clearance workers 208A-N for clearance analysis such that variable-sized partitions are allocated across the clearance workers 208A-N to minimize the time for clearance analysis and to provide optimal utilization of the clearance workers 208B-N and priorities for clearance analysis.
[0051] The clearance workers 208A-N are configured to build a planar transient assembly structure for components in the assigned variable-sized partitions. The clearance workers 208A-N are configured to perform clearance analysis on each pair of components in the assigned variable-sized partitions using the planar transient assembly structure. In some embodiments, the clearance workers 208A-N are configured to eliminate redundant clearance analysis for pairs of components that are part of more than one variable-sized partition. The method by which the clearance workers 208A-N perform clearance analysis on pairs of components is well known in the art and is thus omitted. The clearance workers 208A-N are configured to generate results of the clearance analysis performed on the corresponding pairs of components in the assigned variable-sized partitions. In some embodiments, the clearance workers 208A-N run on a container cluster hosted on a container orchestration platform (such as Docker Swarm, Kubernetes, etc.). The output module 210 is configured to generate an integrated clearance result set for the product assembly based on the results of the clearance analysis from the clearance workers 208A-N for the corresponding variable-sized partitions. In some embodiments, the output module 210 filters out duplicate results of the clearance analysis during generation of the integrated clearance result set.
[0052] Figure 3 FIG. 300 is a process flow diagram of an exemplary method for performing clearance analysis on a product assembly in a CAD environment according to one embodiment. At action 302, a request for evaluating the clearances between components of a product assembly in a CAD environment is received from a user device 120A. The request includes a unique identifier of the product assembly. Additionally, the request may include clearance parameters such as clearance type (e.g., exact geometric facets, facet approximation, etc.), clearance result type (e.g., interference event, volume event, etc.), spacing analysis priority, etc. At action 304, product data associated with the product assembly is obtained from a product data management (PDM) database based on the unique identifier of the product assembly.
[0053] At operation 306, based on the product data, the product space in the CAD environment that includes the product assembly is iteratively decomposed into a plurality of variable-sized partitions. The variable-sized partitions include a variable number of absolute positioning components of the product assembly. At operation 308, one or more of the variable-sized partitions are selected from the plurality of variable-sized partitions for evaluating the clearances between components in the product assembly.
[0054] At operation 310, the selected variable-sized partitions are assigned among a plurality of clearance workers. Each selected variable-sized partition includes one or more pairs of components for which a clearance analysis needs to be performed. At operation 312, the clearance workers perform a clearance analysis on the corresponding pairs of components in the corresponding variable-sized partitions. At operation 314, each clearance worker generates a clearance analysis result for the corresponding pair of components in the corresponding variable-sized partition. At operation 316, based on the clearance analysis results from the clearance workers for the corresponding variable-sized partitions, an integrated clearance result set for the product assembly is generated. At operation 318, the integrated clearance result set for the product assembly is output on the graphical user interface.
[0055] Figure 4 FIG. 400 is a process flow diagram of an exemplary method of iteratively decomposing a product space in a CAD environment that includes a product assembly into a plurality of variable-sized partitions according to one embodiment. At operation 402, a planar list of components in the product assembly is generated based on the product data. The planar list of components includes information related to a unique identifier of each component, the position of each component in the product space, and a bounding box associated with each component. At operation 404, a bounding box of the product assembly in the product space is calculated based on the planar list of components in the product assembly. At operation 406, it is determined whether the number of components in the bounding box is less than or equal to a predefined number of components. For example, the predefined number of components is calculated as a proportion of the total number of components in the component planar list of the product components. If the number of components in the bounding box is less than or equal to the predefined number of components, operation 418 is performed, where the information associated with the components in the bounding box is stored in the partition database 116.
[0056] If the number of components in the bounding box is greater than the predefined number of components, then at operation 408, the bounding box is decomposed into two equal-sized bounding boxes along the Cartesian coordinate axes. At operation 410, an objective function value of the bounding box is calculated along each Cartesian coordinate axis. The objective function value helps to minimize the deviation between the number of components in the bounding box and also minimizes the increase in the number of components at each binary partition. The objective function is calculated using the following formula:
[0057]
[0058] Where:
[0059] N is the number of variable-sized partitions, and the variable-sized partitions contain fewer components than a predefined number of components along the current direction (N is 0, 1, or 2);
[0060] Z is the current bounding box being partitioned;
[0061] zl and z2 are the current sub-partitions along the direction being evaluated;
[0062] n(z) is the number of components in the current bounding box z; and
[0063] kl and k2 are parameters that change the weight of each factor.
[0064] Initially, kl and k2 are set to the value 1. This value is adjusted based on the results of the adjusted partition quality and the type of product assembly with gap analysis being performed.
[0065] In action 412, two equal-sized bounding boxes are determined along the direction in which they are subdivided based on the maximum objective function value associated with each Cartesian coordinate axis. In action 414, each bounding box is divided into two variable-sized partitions along the determined direction.
[0066] In action 416, it is determined whether the number of components in any of the variable-sized partitions is greater than a predefined number of components. If the number of components in any of the variable-sized partitions is greater than the predefined number of components, the process is routed to action 408, and actions 408 to 416 are repeated until the number of components in each variable-sized partition is less than or equal to the predefined number of components. For example, when the number of components in a variable-sized partition is less than or equal to the predefined number of components (e.g., 200 components), the generation of variable-sized partitions stops. The predefined number of components is calculated based on the proportion of the total number of components in the component plane list in the product assembly. Additionally, the hardware configuration associated with the gap worker 208A-N can be considered to determine the predefined number of components. If the number of components in any of the variable-sized partitions is less than or equal to the predefined number of components, in action 418, the information associated with the components in the variable-sized partition is stored in the partition database 116. According to the above method, it is assumed that the gap analysis cost of the variable-sized partition is proportional to the number of components in the variable-sized partition.
[0067] Figure 5FIG. 500 is a process flow diagram of an exemplary method of iteratively decomposing a product space including a product assembly in a CAD environment into a plurality of variable-sized partitions according to another embodiment. At operation 502, a planar list of components in the product assembly is generated based on product data. The planar list of components includes information related to a unique identifier of each component, a location of each component in the product space, and a bounding box associated with each component. At operation 504, a bounding box of the product assembly in the product space is calculated based on the planar list of components in the product assembly. At operation 506, a trained machine learning model is used to predict a clearance analysis cost for evaluating a clearance of the product assembly in the bounding box. The predicted clearance analysis cost is a function of the geometric complexity and location of components in the product assembly. In an embodiment, a feature vector is generated from attributes associated with each pair of components in the product assembly. The feature vector includes a size of the bounding box, a count of geometric entities in each component, and geometric attributes of a pair of components (e.g., area, perimeter, and geometric type (analytical facet, non-analytical facet, etc.)). The feature vector is input into a trained machine learning model (e.g., a random forest model). The machine learning model is trained using feature vectors of different component pairs. The clearance analysis cost calculated by the machine learning model is compared with a predicted clearance analysis cost. Weights associated with nodes of the machine learning mode are calculated and adjusted based on an error between the calculated clearance analysis cost and the predicted clearance analysis cost.
[0068] At operation 508, it is determined whether the predicted clearance analysis cost is less than or equal to a threshold clearance analysis cost. If it is determined that the predicted clearance analysis cost is less than or equal to the threshold clearance analysis cost, then at operation 520, information associated with the components in the bounding box is stored in a partition database 116. If it is determined that the predicted clearance analysis cost is greater than the threshold clearance analysis cost, then at operation 510, the bounding box is decomposed into two equal-sized bounding boxes along a Cartesian coordinate axis. At operation 512, a combined clearance analysis cost is calculated for evaluating a clearance of components of the product assembly in the two equal-sized bounding boxes along each Cartesian coordinate axis.
[0069] At operation 514, determine the direction along one of the Cartesian axes by which two bounding boxes of equal size are subdivided, which has the minimum combined clearance analysis cost. At operation 516, each bounding box is divided into two variable-sized partitions along the determined direction. At operation 518, determine whether the minimum combined clearance analysis cost associated with the variable-sized partitions is less than the predicted clearance analysis cost of the bounding box. If it is determined that the minimum combined clearance analysis cost associated with the variable-sized partitions is not less than the predicted clearance analysis cost of the bounding box, the process is routed to operation 508, and operations 508 to 518 are repeated until the minimum combined clearance analysis cost of the variable-sized partitions becomes less than the predicted clearance analysis cost. If it is determined that the minimum combined clearance analysis cost associated with the variable-sized partitions is less than the predicted clearance analysis cost, then at operation 520, store the information associated with the components in the variable-sized partitions in the partition database 116.
[0070] Figure 6 FIG. 600 is a process flow diagram of an exemplary method for iteratively decomposing a product space including a product assembly in a CAD environment into a plurality of variable-sized partitions according to another embodiment. At operation 602, generate a planar list of components in the product assembly based on product data. The planar list of components includes information related to a unique identifier of each component, the position of each component in the product space, and a bounding box associated with each component.
[0071] At operation 604, predict the clearance analysis cost for evaluating the clearance of each component using a trained machine learning model (e.g., a trained random forest model). The clearance analysis cost is a function of the geometric complexity and position of the components in the product assembly. At operation 606, identify one or more components having a predicted clearance analysis cost greater than a predetermined threshold.
[0072] At operation 608, using the planar list of components, generate a bounding box around the corresponding component having a predicted clearance analysis cost greater than the predetermined threshold. At operation 610, include one or more components within the bounding box associated with the corresponding component from the planar list of components. At operation 612, determine whether there are any remaining one or more components in the planar list of components that have a predicted analysis cost less than or equal to the predetermined threshold. If there are no remaining components in the planar list having a predicted clearance analysis cost less than or equal to the predetermined threshold, then at operation 628, store the information associated with the components in the bounding box in the partition database 116.
[0073] If it is determined that there are remaining components in the plane list with a prediction gap analysis cost less than or equal to a predetermined threshold, then at action 614, a bounding box is generated around the remaining components in the plane list of the component. At action 616, it is determined whether the remaining components in the bounding box are less than or equal to a predefined number of components. If the remaining components in the bounding box are less than or equal to the predefined number of components, then action 628 is performed, where the information associated with the components in the bounding box is stored in the partition database 116.
[0074] If the remaining components in the bounding box are greater than the predefined number of components, then at action 618, the bounding box is decomposed into two equally sized bounding boxes along the Cartesian coordinate axes (e.g., X, Y, and Z). At action 620, the objective function value of the bounding box is calculated along each Cartesian coordinate axis. At action 622, based on the maximum objective function value associated with the Cartesian coordinate axis, the direction along which the two equally sized bounding boxes are subdivided is determined. At action 624, each bounding box is divided into two variable-sized partitions along the determined direction.
[0075] At action 626, it is determined whether the number of components in any of the variable-sized partitions is greater than the predefined number of components. If the number of components in any of the variable-sized partitions is greater than the predefined number of components, then the process is routed to action 618, and actions 618 to 626 are repeated until the number of components in each variable-sized partition is less than or equal to the predefined number of components. If the number of components in any of the variable-sized partitions is less than or equal to the predefined number of components, then at action 628, the information associated with the components in the variable-sized partition is stored in the partition database 116.
[0076] Figure 7 is a schematic representation of a cloud computing system 102 depicted as shown in accordance with one embodiment. The data processing system 700 can be a personal computer, workstation, laptop computer, tablet computer, etc. In Figure 1 shown, the cloud computing system 102 includes a processing unit 702, a memory unit 704, a storage unit 706, a bus 708, and a cloud communication interface 106. The processing unit 702, the memory unit 704, the storage unit 706, and / or the interconnect 708 can be Figure 7 part of the cloud computing infrastructure and the OS 108. Figure 1
[0077] As used herein, the processing unit 702 can be any type of computing circuit, such as but not limited to a microprocessor, a microcontroller, a complex instruction set computing microprocessor, a reduced instruction set computing microprocessor, a very long instruction word microprocessor, an explicitly parallel instruction computing microprocessor, a graphics processor, a digital signal processor, or any other type of processing circuit. The processing unit 702 can also include an embedded controller, such as a general or programmable logic device or array, an application specific integrated circuit, a single chip microcomputer, etc.
[0078] The memory unit 704 can be non - volatile random access memory and non - volatile memory. The memory unit 704 can be coupled to communicate with the processing unit 702, such as being a computer - readable storage medium. The processing unit 702 can execute instructions and / or code stored in the memory unit 704. Various computer - readable instructions can be stored in and accessed from the memory unit 704. The memory unit 704 can include any suitable elements for storing data and machine - readable instructions, such as read - only memory, random access memory, erasable programmable read - only memory, electrically erasable programmable read - only memory, hard disk drives, removable media drives for handling compact discs, digital video discs, floppy disks, cassette tapes, memory cards, etc.
[0079] In this embodiment, the memory unit 704 includes a clearance analysis module 112 stored in any of the above - mentioned storage media in the form of machine - readable instructions, and can communicate with and be executed by the processing unit 702. When the processing unit 702 executes the machine - readable instructions, the clearance analysis module 112 causes the processing unit 702 to generate variable - sized partitions by decomposing the product space including the product assembly, and perform clearance analysis on the components in the variable - sized partitions using the clearance worker 208A - N.
[0080] The storage unit 706 can be a non - volatile storage medium storing the PDM database 114, the partition database 116, and the clearance database 118. The interconnect 708 serves as an interface between the processing unit 702, the memory unit 704, and the storage unit 706. The cloud communication interface 106 enables communication between the cloud computing system 102 and the user devices 120A - N (such as smart phones, tablet computers, desktop computers, etc.) via the network 104.
[0081] Those of ordinary skill in the art will understand that Figure 7The hardware components depicted may vary depending on a particular implementation. For example, additional or alternative to the depicted hardware, other peripheral devices may also be used, such as optical disk drives, local area network (LAN) / wide area network (WAN) / wireless (e.g., Wi-Fi) adapters, graphics adapters, disk controllers, and / or input / output (I / O) adapters. The depicted examples are provided for illustrative purposes only and are not meant to imply architectural limitations related to the present disclosure.
[0082] Figure 8 FIG. illustrates a block diagram of a data processing system 800 for performing clearance analysis on a product assembly in a computer-aided design (CAD) environment according to another embodiment. For example, the data processing system 800 includes a server 802 and a plurality of user devices 806A-N. Each user device 806A-N is connected to the server 802 via a network 804 (e.g., local area network (LAN), wide area network (WAN), Wi-Fi, etc.). The data processing system 800 is Figure 1 another implementation of the data processing system 100, where the clearance analysis module 112 resides in the server 802 and is accessed by the user devices 806A-N via the network 804.
[0083] The server 802 includes a clearance analysis module 112, a PDM database 114, a partition database 116, and a clearance database 116. The server 802 may also include a processing unit, a memory unit, and a storage unit. The clearance analysis module 112 may be stored on the memory unit in the form of machine-readable instructions and executable by the processing unit. The PDM database 114, the partition database 116, and the clearance database 116 may be stored in the storage unit. The server 802 may also include a communication interface for enabling communication with the user devices 806A-N via the network 804.
[0084] When the processing unit executes the machine-readable instructions, the clearance analysis module 112 causes the server 802 to iteratively decompose a product space including a product assembly into variable-sized partitions having a variable number of components in the product assembly, allocate the variable-sized partitions among a plurality of clearance workers 208A-N, evaluate the clearances between components in the corresponding variable-sized partitions using one or more of the clearance workers 208A-N, and output a set of clearance results for the product assembly based on the evaluation of the clearances between components. Figures 3 to 6 The method actions performed by the server 802 to implement the above functions are described in more detail in.
[0085] The user devices 812A-N include a graphical user interface 814A-N for receiving a request to perform a clearance analysis of a product assembly and for displaying a set of clearance results of the product assembly. A communication interface for docking with the server 802 can be provided for each user device 812A-N. A user of the user device 812A-N can access the server 802 through the graphical user interface 814A-N. For example, the user can send a request to the server 802 to perform a clearance analysis of a product assembly. The graphical user interface 814A-N can be specifically configured to access the clearance analysis module 112 in the server 802.
[0086] Figure 9A is a schematic representation 900 according to an embodiment depicting a product space 904 including a product assembly 902, where the product space 904 is partitioned into a plurality of variable-sized partitions 906 using a partitioning strategy. As Figure 9A shown, the product space 904 includes a product assembly 902 of an automotive engine. The product assembly 902 includes a plurality of components for which a clearance analysis needs to be performed. Using a partitioning strategy (e.g., the optimal number of components in each partition, the optimal clearance analysis cost for each partition), the product space 904 is iteratively decomposed into a plurality of variable-sized partitions 906, as Figure 9A shown.
[0087] Figure 9B is a schematic representation 950 according to an embodiment depicting the partitioning of a product space into variable-sized partitions and a plurality of components in each variable-sized partition. As shown, a product assembly 902 having 1508 components is decomposed into 26 variable-sized partitions 906. Figure 9B Each block shown indicates a plurality of components in a corresponding variable-sized partition 906. The dashed box indicates a variable-sized partition 952 selected from the variable-sized partitions 906 based on the optimal number of components in the partition and / or the optimal clearance analysis cost for each partition. The selected variable-sized partitions 952 are assigned among the clearance workers 208A-N such that each clearance worker 208A-N performs a clearance analysis on the (one or more) corresponding variable-sized partitions 952.
[0088] According to the above embodiments, the data processing systems 100 and 800 perform a clearance analysis by the following operations: using a partitioning strategy (such as Figures 4 to 6As shown in , the product assembly is partitioned into partitions of variable sizes, and corresponding clearance workers are used to evaluate the clearances between components in each partition of variable size, such that each clearance worker spends substantially equal time to generate the results of the clearance analysis. The partitioning strategy helps to break down the product space into partitions of variable sizes such that each clearance worker spends approximately the same amount of computational time, resulting in faster clearance analysis. The clearance workers significantly reduce the time for clearance analysis and dictate that the clearance analysis cost does not increase proportionally with the size of the product assembly. Additionally, the data processing systems 100 and 800 are able to persist the partitions of variable sizes in the partition database of the product assembly such that any changes to the underlying product data do not cause the recreation of partitions for multiple subsequent clearance runs across the same product assembly. The variable partitions containing updated components are updated prior to performing clearance analysis on the product assembly. Additionally, the data processing systems 100 and 800 are able to reconstruct the partition data into a new sub-structure, thereby eliminating the cost of configuring and loading the original product assembly for each partition during clearance analysis.
[0089] The systems and methods described herein can be implemented in various forms of hardware, software, firmware, special purpose processing units, or any combination thereof. One or more of the embodiments herein can take the form of a computer program product, including program modules accessible from a computer-usable or computer-readable medium storing program code for use by or in connection with one or more computers, processing units, or instruction execution systems. For the purposes of this description, a computer-usable or computer-readable medium can be any device that can contain, store, transmit, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device), or a propagation medium itself, as the signal carrier is not included in the definition of a physical computer-readable medium, which includes semiconductor or solid state memories, magnetic tape, removable computer disks, random access memory (RAM), read-only memory (ROM), hard disk, optical disk (such as compact disk read-only memory (CD-ROM), read / write compact disk, digital versatile disk (DVD)), or any combination thereof. As is known to those skilled in the art, both the processing unit and the program code for implementing each aspect of the technology can be centralized or distributed (or a combination thereof).
[0090] Although the present disclosure has been described in detail with reference to certain embodiments, the present disclosure is not limited to those embodiments. In light of the present disclosure, many modifications and variations will present themselves to those skilled in the art without departing from the scope of the various embodiments of the present disclosure as described herein. Accordingly, the scope of the present disclosure is indicated by the appended claims rather than the foregoing description. All changes, modifications, and variations within the equivalent meaning and scope of the claims are to be considered within that scope.
[0091] The elements and features recited in the appended claims can be combined in different ways to yield new claims that also fall within the scope of the present disclosure. Accordingly, although the dependent claims appended below depend only on a single independent or dependent claim, it should be understood that these dependent claims can alternatively depend on any preceding or subsequent claim (whether independent or dependent) in an alternative form, and such new combinations should be understood to form a part of this specification.
Claims
1. A method for performing clearance analysis of a product assembly in a computer-aided design (CAD) environment, the method comprising: Receiving, by a data processing system, a request from a user device for evaluating a gap between components of a product assembly in a CAD environment, wherein the request includes a unique identifier of the product assembly; Obtaining, by the data processing system, product data associated with components of the product assembly from a product data management (PDM) database based on the unique identifier of the product assembly; Iteratively decomposing, by the data processing system, a product space in the CAD environment that includes the product assembly into a plurality of variable-sized partitions based on the product data and a partitioning strategy; Selecting, by the data processing system, one or more variable-sized partitions from the plurality of variable-sized partitions for evaluating a gap between components in the product assembly; And Evaluating, by a plurality of gap workers in the data processing system, a gap between components in the selected variable-sized partitions, wherein based on the partitioning strategy, each gap worker in the plurality of gap workers spends the same amount of computation time to evaluate the gap, such that a total time for performing the gap analysis is reduced.
2. The method according to claim 1, wherein iteratively decomposing the product space in the CAD environment that includes the product assembly into the plurality of variable-sized partitions includes: Generating, based on the product data, a planar list of components in the product assembly, wherein the planar list of components includes information related to a unique identifier of each component, a position of each component in the product space, and a bounding box associated with each component; Calculating, based on the planar list of components in the product assembly, a bounding box of the product assembly in the product space; And Iteratively decomposing the bounding box that includes the product assembly in the product space into the plurality of variable-sized partitions.
3. The method according to claim 2, wherein iteratively decomposing the bounding box that includes the product assembly in the product space into the plurality of variable-sized partitions includes: Decomposing the bounding box into at least two equally-sized bounding boxes along each Cartesian coordinate axis; Determining a direction along which the at least two equally-sized bounding boxes are subdivided based on a maximum objective function value associated with the Cartesian coordinate axis; Dividing the at least two equally-sized bounding boxes into a plurality of variable-sized partitions along the determined direction; Determining whether a number of components in any of the plurality of variable-sized partitions is greater than a predefined number of components; When the number of components in any of the plurality of variable-sized partitions is greater than the predefined number of components, repeating the decomposition, determining the direction along which the at least two equally-sized bounding boxes are subdivided, the dividing, and determining whether the number of components in any of the plurality of variable-sized partitions is greater than the predefined number of components until the number of components in each of the plurality of variable-sized partitions is less than or equal to the predefined number of components; And When the number of components in any of the multiple variable-sized partitions is not greater than the predefined number of components, store the information associated with the multiple variable-sized partitions in a partition database.
4. The method according to claim 2, wherein iteratively decomposing the bounding box including the product assembly in the product space into the multiple variable-sized partitions includes: Predicting a clearance analysis cost for evaluating the clearance of the product assembly in the bounding box; Determining whether the predicted clearance analysis cost is less than or equal to a threshold clearance analysis cost; When the predicted clearance analysis cost is less than or equal to the threshold clearance analysis cost, decompose the bounding box into at least two equally sized bounding boxes along the Cartesian coordinate axes; Calculating a combined clearance analysis cost for evaluating the component clearances of the product assembly in the at least two equally sized bounding boxes along each Cartesian coordinate axis; Determining the direction along which to subdivide the at least two equally sized bounding boxes along one of the Cartesian coordinate axes, the direction having the minimum combined clearance analysis cost; Dividing each of the at least two equally sized bounding boxes into two variable-sized partitions along the determined direction; Determining whether the minimum combined clearance analysis cost associated with the variable-sized partitions is less than the predicted clearance analysis cost; When the minimum combined clearance analysis cost associated with the variable-sized partitions is not less than the predicted clearance analysis cost, repeat determining whether the predicted clearance analysis cost is less than or equal to the threshold clearance analysis cost, the decomposition, calculating the combined clearance analysis cost, determining the direction along which the at least two equally sized bounding boxes are subdivided, the division, and determining whether the minimum combined clearance analysis cost associated with the variable-sized partitions is less than the predicted clearance analysis cost until the minimum combined clearance analysis cost of the variable-sized partitions becomes less than the predicted clearance analysis cost; and When the minimum combined clearance analysis cost associated with the variable-sized partitions is less than the predicted clearance analysis cost, store the information associated with the variable-sized partitions in a partition database.
5. The method according to claim 4, wherein predicting the clearance analysis cost for evaluating the clearance of the product assembly in the bounding box includes using a trained machine learning model to predict the clearance analysis cost for evaluating the clearance of the product assembly in the bounding box.
6. The method according to claim 1, wherein iteratively decomposing the product space including the product assembly in the CAD environment into the multiple variable-sized partitions includes: Generating a planar list of components in the product assembly based on the product data, wherein the planar list of components includes information related to a unique identifier of each component, the position of each component in the product space, and a bounding box associated with each component; Predicting a clearance analysis cost for evaluating the clearance of each component in the product assembly; Identifying one or more components having a predicted clearance analysis cost greater than a predetermined threshold; Calculate a bounding box around each component having a predicted clearance analysis cost greater than the predetermined threshold based on a planar list of the components, wherein the bounding box associated with each component includes one or more components located within the bounding box of the corresponding component; Determine whether there are one or more remaining components in the planar list having a predicted clearance analysis cost less than or equal to the predetermined threshold; And When there are no remaining components in the planar list, store information associated with the bounding box in a partition database.
7. The method according to claim 6, wherein determining whether there are one or more remaining components in the planar list having a predicted clearance analysis cost less than or equal to the predetermined threshold includes: When there are one or more remaining components in the planar list, generate a bounding box for the remaining components in the planar list of the components; Decompose the bounding box into at least two equally sized bounding boxes along each Cartesian axis; Determine the direction along which the at least two equally sized bounding boxes are subdivided based on the maximum objective function value associated with the Cartesian axis; Divide the at least two equally sized bounding boxes into a plurality of variably sized partitions along the determined direction; Determine whether the number of components in any of the variably sized partitions is greater than a predefined number of components; When the number of components in any of the variably sized partitions is greater than the predefined number of components, repeat the decomposition, determination of the direction along which the at least two equally sized bounding boxes are subdivided, the division, and determination of whether the number of components in any of the variably sized partitions is greater than the predefined number of components until the number of components in each variably sized partition is less than or equal to the predefined number of components; and When the number of components in any of the variably sized partitions is not greater than the predefined number of components, store information associated with the variably sized partitions in the partition database.
8. The method according to claim 1, wherein selecting one or more variably sized partitions for evaluating the clearances between components in the product assembly includes selecting the one or more variably sized partitions from the plurality of variably sized partitions based on the predefined number of components in the plurality of variably sized partitions, a threshold clearance analysis cost associated with the plurality of variably sized partitions, or a combination thereof.
9. The method according to claim 1, wherein evaluating the gap between components in a respective variable-sized partition comprises: Allocate one or more of the selected variably sized partitions among the plurality of clearance workers in the data processing system, wherein each of the one or more selected variably sized partitions includes one or more pairs of components for which a clearance analysis needs to be performed; Perform a clearance analysis on one or more pairs of components in the corresponding variably sized partition using the plurality of clearance workers; And Generate results of the clearance analysis performed on one or more pairs of components in the corresponding variably sized partition.
10. The method according to claim 9, further comprising: Generate an integrated clearance result set for the product assembly based on the results of the clearance analysis performed by the plurality of clearance workers on the corresponding variably sized partitions; And Output the integrated clearance result set of the generated product assembly on the graphical user interface.
11. A data processing system for performing clearance analysis of a product assembly in a computer-aided design (CAD) environment, the data processing system comprising: A processing unit; And A memory unit communicatively coupled to the processing unit, wherein the memory unit includes a clearance analysis module configured to: Receive a request from a user device for evaluating the clearance between components of a product assembly in a CAD environment, wherein the request includes a unique identifier of the product assembly; Obtain product data associated with the components of the product assembly from a product data management (PDM) database based on the unique identifier of the product assembly; Iteratively decompose a product space in the CAD environment that includes the product assembly into a plurality of variable-sized partitions based on the product data and a partitioning strategy; Select one or more variable-sized partitions from the plurality of variable-sized partitions for evaluating the clearance between components in the product assembly; And Evaluate the clearance between components in one or more selected variable-sized partitions by a plurality of clearance workers, wherein based on the partitioning strategy, each clearance worker among the plurality of clearance workers spends the same amount of computing time to evaluate the clearance, such that the total time for performing the clearance analysis is reduced.
12. The data processing system according to claim 11, wherein in iteratively decomposing the product space in the CAD environment that includes the product assembly into the plurality of variable-sized partitions, the clearance analysis module is configured to: Generate a planar list of components in the product assembly based on the product data, wherein the planar list of components includes information related to the unique identifier of each component, the position of each component in the product space, and the bounding box associated with each component; Calculate the bounding box of the product assembly in the product space based on the planar list of components in the product assembly; And Iteratively decompose the bounding box of the product assembly in the product space into the plurality of variable-sized partitions.
13. The data processing system according to claim 12, wherein in iteratively decomposing the bounding box of the product assembly in the product space into the plurality of variable-sized partitions, the clearance analysis module is configured to: Decompose the bounding box into two equal-sized bounding boxes along each Cartesian coordinate axis; Determine the direction along which the two equal-sized bounding boxes are subdivided based on the maximum objective function value associated with the Cartesian coordinate axis; Divide the two equal-sized bounding boxes into a plurality of variable-sized partitions along the determined direction; Determine whether the number of components in any of the variable-sized partitions is greater than a predefined number of components; When the number of components in any variable-sized partition is greater than a predefined number of components, repeat the decomposition, determining the direction along which the two equal-sized bounding boxes are subdivided, the partitioning, and determining whether the number of components in any variable-sized partition is greater than the predefined number of components until the number of components in each variable-sized partition is less than or equal to the predefined number of components; and When the number of components in any variable-sized partition is not greater than the predefined number of components, store the information associated with the variable-sized partition in a partition database.
14. The data processing system according to claim 12, wherein in iteratively decomposing the bounding box including the product assembly in the product space into the plurality of variable-sized partitions, the clearance analysis module is configured to: Predict a clearance analysis cost for evaluating the clearance of the product assembly in the bounding box; Determine whether the predicted clearance analysis cost is less than or equal to a threshold clearance analysis cost; When the predicted clearance analysis cost is less than or equal to the threshold clearance analysis cost, decompose the bounding box into at least two equal-sized bounding boxes along the Cartesian coordinate axes; Calculate a combined clearance analysis cost for evaluating the component clearances of the product assembly in the at least two equal-sized bounding boxes along each Cartesian coordinate axis; Determine the direction along which to subdivide the at least two equal-sized bounding boxes along one of the Cartesian coordinate axes, the direction having the minimum combined clearance analysis cost; Partition each bounding box into two variable-sized partitions along the determined direction; Determine whether the minimum combined clearance analysis cost associated with the variable-sized partition is less than the predicted clearance analysis cost; When the minimum combined clearance analysis cost associated with the variable-sized partition is not less than the predicted clearance analysis cost, repeat determining whether the predicted clearance analysis cost is less than or equal to the threshold clearance analysis cost, the decomposition, calculating the combined clearance analysis cost, determining the direction along which the at least two equal-sized bounding boxes are subdivided, the partitioning, and determining whether the minimum combined clearance analysis cost associated with the variable-sized partition is less than the predicted clearance analysis cost until the minimum combined clearance analysis cost of the variable-sized partition becomes less than the predicted clearance analysis cost; and When the minimum combined clearance analysis cost associated with the variable-sized partition is less than the predicted clearance analysis cost, store the information associated with the variable-sized partition in a partition database.
15. The data processing system according to claim 14, wherein in predicting the clearance analysis cost for evaluating the clearance of the product assembly in the bounding box, the clearance analysis module is configured to use a trained machine learning model to predict the clearance analysis cost for evaluating the clearance of the product assembly in the bounding box.
16. The data processing system according to claim 11, wherein in iteratively decomposing the product space including the product assembly in the CAD environment into the plurality of variable-sized partitions, the clearance analysis module is configured to: Generate a planar list of components in the product assembly based on the product data, where the planar list of components includes information related to a unique identifier for each component, the position of each component in the product space, and a bounding box associated with each component; Predict the clearance analysis cost for evaluating the clearances between each component in the product assembly; Identify one or more components having a predicted clearance analysis cost greater than a predetermined threshold; Calculate a bounding box around each component having a predicted clearance analysis cost greater than the predetermined threshold based on the planar list of components, where the bounding box associated with each component includes one or more components located within the bounding box of the corresponding component; Determine whether there are any remaining one or more components in the planar list having a predicted clearance analysis cost less than or equal to the predetermined threshold; And When there are no remaining components in the planar list, store information associated with the bounding box in a partition database.
17. The data processing system according to claim 16, wherein in determining whether there are any remaining one or more components in the planar list having a predicted clearance analysis cost less than or equal to the predetermined threshold, the clearance analysis module is configured to: When there are remaining one or more components in the planar list, generate a bounding box for the remaining components in the planar list of components; Decompose the bounding box into at least two equally sized bounding boxes along each Cartesian axis; Determine the direction along which the at least two equally sized bounding boxes are subdivided based on the maximum objective function value associated with the Cartesian axis; Divide the at least two equally sized bounding boxes along the determined direction into a plurality of variable-sized partitions; Determine whether the number of components in any of the variable-sized partitions is greater than a predefined number of components; When the number of components in any of the variable-sized partitions is greater than the predefined number of components, repeat the decomposition, determination of the direction along which the at least two equally sized bounding boxes are subdivided, the division, and determination of whether the number of components in any of the variable-sized partitions is greater than the predefined number of components until the number of components in each variable-sized partition is less than or equal to the predefined number of components; and When the number of components in any of the variable-sized partitions is not greater than the predefined number of components, store information associated with the variable-sized partitions in the partition database.
18. The data processing system according to claim 11, wherein in selecting one or more variable-sized partitions for evaluating the clearances between components in the product assembly, the clearance analysis module is configured to: Select the one or more variable-sized partitions from the plurality of variable-sized partitions based on a predefined number of components in the variable-sized partitions, a threshold clearance analysis cost associated with the variable-sized partitions, or a combination thereof.
19. The data processing system according to claim 11, wherein in evaluating the clearances between components in a corresponding variable-sized partition, the clearance analysis module is configured to: Allocating selected variable-sized partitions among multiple clearance workers in the data processing system, where each selected variable-sized partition includes one or more pairs of components for which clearance analysis needs to be performed; Performing clearance analysis on one or more pairs of components in the corresponding variable-sized partition using the multiple clearance workers; and Generating results of the clearance analysis performed on one or more pairs of components in the corresponding variable-sized partition.
20. The data processing system according to claim 19, wherein the clearance analysis module is configured to: Generate an integrated clearance result set of the product assembly based on results of the clearance analysis of the corresponding variable-sized partitions by the multiple clearance workers; and Output the integrated clearance result set of the product assembly on a graphical user interface.
Citation Information
Patent Citations
Clearance check method, clearance check device and non-transitory computer-readable storage medium
CN108090243A
Detection of gaps between objects in computer added design defined geometries
CN110852003A