A method for determining a minimal translation vector (MTV) between a first object and a second object represented in a CAD system, and a CAD system and computer readable medium for performing a similar method. The method includes retrieving the first object and the second object and tessellating the first object and second object into respective facets. The method includes creating a bounding volume tree of facets corresponding to each of the first object and the second object. The method includes performing a greedy process on the bounding volume to produce an initial MTV, and performing a successive clipping process according to the bounding volume trees and the initial MTV, to produce a final MTV. The method includes storing the final MTV in a computer readable medium. The greedy process can be a 2-step process as described.
Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.
1. A method for determining a minimal translation vector (MTV) between a first object and a second object represented in a CAD system, comprising the steps of: retrieving, in the CAD system, the first object and the second object; tessellating the first object and second object, by the CAD system, into respective facets; creating a bounding volume tree of facets, by the CAD system, for each of the first object and the second object; performing a greedy process on the bounding volume trees, by the CAD system, to produce a initial MTV; and performing a successive clipping process according to the bounding volume trees and the initial MTV, by the CAD system, to produce a final MTV, wherein the successive clipping process does not process at least a portion of the bounding volume tree based on facets that are outside of a clipping window; storing the final MTV in a computer readable medium.
This technical summary describes a method for determining a minimal translation vector (MTV) between two objects in a computer-aided design (CAD) system. The method addresses the challenge of efficiently calculating the smallest translation required to move one object relative to another while avoiding collisions or overlaps. The process begins by retrieving the two objects from the CAD system and tessellating them into facets, which are small, flat surfaces that approximate the objects' geometry. Each object is then represented as a bounding volume tree, a hierarchical data structure that organizes the facets for efficient spatial queries. A greedy algorithm is applied to these trees to generate an initial MTV, which is an approximate solution for the minimal translation. To refine this result, a successive clipping process is performed, where the bounding volume trees and the initial MTV are used to identify and exclude facets that lie outside a defined clipping window, reducing computational effort. The final MTV is then stored in a computer-readable medium. This method improves efficiency by avoiding unnecessary processing of irrelevant facets, making it suitable for complex CAD environments where precise and rapid collision detection or alignment is required.
2. The method of claim 1 , wherein the greedy process is performed a first time, using a bounding box approximation up to tree level 3 , to determine an estimated MTV, and is performed a second time, using a bounding box approximation and clipping window technique up to tree level 10 , to determine an improved MTV that is output as the initial MTV.
The method of finding the minimal translation vector (MTV) where the "greedy" process is performed in two stages: First, a quick estimate of the MTV is calculated using bounding box approximations on the upper levels (up to level 3) of the bounding volume trees. Second, a more refined MTV is calculated using both bounding box approximations and a clipping window technique, examining deeper levels of the trees (up to level 10). This improved MTV from the second stage is then used as the initial MTV for the subsequent successive clipping process.
3. The method of claim 1 , wherein the greedy process includes the steps of: loading initial data; initializing a tree level and the clipping window; while the tree level is less than or equal to a maximum tree level, then performing a voxel process using the tree level and the clipping window to determine a revised MTV; and storing the revised MTV and outputting the revised MTV.
The method of finding the minimal translation vector (MTV) where the "greedy" process is implemented through these steps: (1) Loading initial data like minimum/maximum tree levels and clipping window settings; (2) Initializing the tree level and clipping window; (3) Iteratively performing a "voxel process" using the current tree level and clipping window to refine the MTV, repeating as long as the tree level is within the specified range; and (4) Storing and outputting the final refined MTV.
4. The method of claim 3 , wherein the initial data includes one or more of a minimum level, the maximum level, a clipping value, the bounding volume trees, and a current MTV.
The method of finding the minimal translation vector (MTV) where the "greedy" process initial data includes: a minimum tree level, a maximum tree level, a clipping value defining the size of the clipping window, the bounding volume trees of both objects, and the current estimated MTV. This data is used to configure and guide the voxel-based refinement process.
5. The method of claim 3 , wherein the voxel process includes the steps of: loading voxel initial data; building a voxel model of the clipping window; computing the Minkowski Difference between the bounding volume trees; if there is an intersection between the clipping window and the Minkowski Difference, then marking each voxel in the voxel model; determining at least one candidate voxel from the marked voxels and determining a candidate voxel with a smallest vector from an origin; outputting the smallest vector from the origin as the revised MTV.
The method of finding the minimal translation vector (MTV) where the "voxel process" involves these steps: (1) Loading voxel-specific initial data; (2) Creating a voxel-based representation of the clipping window; (3) Calculating the Minkowski Difference between the bounding volume trees of the two objects; (4) Identifying voxels within the clipping window that intersect the Minkowski Difference and marking them; (5) Selecting a candidate voxel from the marked voxels that represents the smallest translation vector from the origin; and (6) Outputting the vector corresponding to this voxel as the revised MTV.
6. The method of claim 5 , wherein the voxel initial data includes one or more of a tree level, a Use Box value, the clipping window, the bounding volume trees, and the current MTV.
The method of finding the minimal translation vector (MTV) where the "voxel process" initial data includes the tree level currently being processed, a flag indicating whether to use bounding boxes, the current clipping window, the bounding volume trees of both objects, and the current MTV estimate. This data guides the voxel-based intersection and optimization.
7. The method of claim 1 , wherein the successive clipping process includes the steps of: loading clipping process initial data; constructing the clipping window so that it contains a current MTV and is closer to an origin than a previous clipping window; performing a voxel process using the tree level and the clipping window to determine a revised MTV; if the revised MTV is not within the clipping window, then repeating to the constructing step; and storing the revised MTV and outputting the revised MTV as a final MTV.
The method of finding the minimal translation vector (MTV) where the "successive clipping" process involves these steps: (1) Loading initial data; (2) Constructing a clipping window that contains the current MTV estimate and is smaller (closer to the origin) than the previous clipping window; (3) Performing a "voxel process" using the current tree level and clipping window to determine a revised MTV; (4) Repeating from step 2 if the revised MTV falls outside the current clipping window; and (5) Storing and outputting the final MTV. This iterative clipping focuses the computation on progressively smaller regions of space.
8. A CAD system comprising: a processor and accessible memory, the CAD system particularly configured to perform a process for determining a minimal translation vector (MTV) between a first object and a second object represented in a CAD system, including the steps of: retrieving the first object and the second object; tessellating the first object and second object into respective facets; creating a bounding volume tree of facets for each of the first object and the second object; performing a greedy process on the bounding volume trees to produce a initial MTV; and performing a successive clipping process according to the bounding volume trees and the initial MTV to produce a final MTV, wherein the successive clipping process does not process at least a portion of the bounding volume tree based on facets that are outside of a clipping window; storing the final MTV in a computer readable medium.
A CAD system containing a processor and memory that is specifically configured to determine the smallest translation vector (MTV) needed to separate two objects. The system: (1) Loads the two objects; (2) Converts their surfaces into smaller facets; (3) Builds a hierarchical tree structure (bounding volume tree) for each object; (4) Uses a "greedy" algorithm on these trees to find an approximate MTV; (5) Refines this MTV using a "successive clipping" process, where parts of the trees are ignored if their facets are outside a clipping window; and (6) Stores the final MTV.
9. The CAD system of claim 8 , wherein CAD systems performs the greedy process a first time, using a bounding box approximation up to tree level 3 , to determine an estimated MTV, and a second time, using a bounding box approximation and clipping window technique up to tree level 10 , to determine an improved MTV that is output as the initial MTV.
The CAD system for finding the minimal translation vector (MTV) where the greedy process is performed in two stages: First, a quick estimate of the MTV is calculated using bounding box approximations on the upper levels (up to level 3) of the bounding volume trees. Second, a more refined MTV is calculated using both bounding box approximations and a clipping window technique, examining deeper levels of the trees (up to level 10). This improved MTV from the second stage is then used as the initial MTV for the subsequent successive clipping process.
10. The CAD system of claim 8 , wherein the greedy process performed by the CAD system includes the steps of: loading initial data; initializing a tree level and the clipping window; while the tree level is less than or equal to a maximum tree level, then performing a voxel process using the tree level and the clipping window to determine a revised MTV; and storing the revised MTV and outputting the revised MTV.
The CAD system for finding the minimal translation vector (MTV) where the "greedy" process is implemented through these steps: (1) Loading initial data like minimum/maximum tree levels and clipping window settings; (2) Initializing the tree level and clipping window; (3) Iteratively performing a "voxel process" using the current tree level and clipping window to refine the MTV, repeating as long as the tree level is within the specified range; and (4) Storing and outputting the final refined MTV.
11. The CAD system of claim 10 , wherein the initial data includes one or more of a minimum level, the maximum level, a clipping value, the bounding volume trees, and a current MTV.
The CAD system for finding the minimal translation vector (MTV) where the "greedy" process initial data includes: a minimum tree level, a maximum tree level, a clipping value defining the size of the clipping window, the bounding volume trees of both objects, and the current estimated MTV. This data is used to configure and guide the voxel-based refinement process.
12. The CAD system of claim 10 , wherein the voxel process performed by the CAD system includes the steps of: loading voxel initial data; building a voxel model of the clipping window; computing the Minkowski Difference between the bounding volume trees; if there is an intersection between the clipping window and the Minkowski Difference, then marking each voxel in the voxel model; determining at least one candidate voxel from the marked voxels and determining a candidate voxel with a smallest vector from an origin; outputting the smallest vector from the origin as the revised MTV.
The CAD system for finding the minimal translation vector (MTV) where the "voxel process" involves these steps: (1) Loading voxel-specific initial data; (2) Creating a voxel-based representation of the clipping window; (3) Calculating the Minkowski Difference between the bounding volume trees of the two objects; (4) Identifying voxels within the clipping window that intersect the Minkowski Difference and marking them; (5) Selecting a candidate voxel from the marked voxels that represents the smallest translation vector from the origin; and (6) Outputting the vector corresponding to this voxel as the revised MTV.
13. The CAD system of claim 12 , wherein the voxel initial data includes one or more of a tree level, a Use Box value, the clipping window, the bounding volume trees, and the current MTV.
The CAD system for finding the minimal translation vector (MTV) where the "voxel process" initial data includes the tree level currently being processed, a flag indicating whether to use bounding boxes, the current clipping window, the bounding volume trees of both objects, and the current MTV estimate. This data guides the voxel-based intersection and optimization.
14. The CAD system of claim 8 , wherein the successive clipping process performed by the CAD system includes the steps of: loading clipping process initial data; constructing the clipping window that contains a current MTV and is closer to an origin than a previous clipping window; performing a voxel process using the tree level and the clipping window to determine a revised MTV; if the revised MTV is not within the clipping window, then repeating to the constructing step; and storing the revised MTV and outputting the revised MTV as a final MTV.
The CAD system for finding the minimal translation vector (MTV) where the "successive clipping" process involves these steps: (1) Loading initial data; (2) Constructing a clipping window that contains the current MTV estimate and is smaller (closer to the origin) than the previous clipping window; (3) Performing a "voxel process" using the current tree level and clipping window to determine a revised MTV; (4) Repeating from step 2 if the revised MTV falls outside the current clipping window; and (5) Storing and outputting the final MTV. This iterative clipping focuses the computation on progressively smaller regions of space.
15. A non-transitory computer readable medium encoded with computer method instructions that, when executed, cause a CAD system to perform a process for determining a minimal translation vector (MTV) between a first object and a second object represented in the CAD system, including the steps of: retrieving the first object and the second object; tessellating the first object and second object into respective facets; creating a bounding volume tree of facets for each of the first object and the second object; performing a greedy process on the bounding volume trees to produce a initial MTV; and performing a successive clipping process according to the bounding volume trees and the initial MTV to produce a final MTV, wherein the successive clipping process does not process at least a portion of the bounding volume tree based on facets that are outside of a clipping window; storing the final MTV in a computer readable medium.
A computer-readable storage medium containing instructions that, when executed by a CAD system, cause it to determine the smallest translation vector (MTV) needed to separate two objects. The process involves: (1) Loading the two objects; (2) Converting their surfaces into smaller facets; (3) Building a hierarchical tree structure (bounding volume tree) for each object; (4) Using a "greedy" algorithm on these trees to find an approximate MTV; (5) Refining this MTV using a "successive clipping" process, where parts of the trees are ignored if their facets are outside a clipping window; and (6) Storing the final MTV.
16. The computer readable medium of claim 15 , wherein the greedy process is performed a first time, using a bounding box approximation up to tree level 3 , to determine an estimated MTV, and is performed a second time, using a bounding box approximation and clipping window technique up to tree level 10 , to determine an improved MTV that is output as the initial MTV.
The computer-readable storage medium for finding the minimal translation vector (MTV) where the greedy process is performed in two stages: First, a quick estimate of the MTV is calculated using bounding box approximations on the upper levels (up to level 3) of the bounding volume trees. Second, a more refined MTV is calculated using both bounding box approximations and a clipping window technique, examining deeper levels of the trees (up to level 10). This improved MTV from the second stage is then used as the initial MTV for the subsequent successive clipping process.
17. The computer readable medium of claim 15 , wherein the greedy process includes the steps of: loading initial data; initializing a tree level and the clipping window; while the tree level is less than or equal to a maximum tree level, then performing a voxel process using the tree level and the clipping window to determine a revised MTV; and storing the revised MTV and outputting the revised MTV.
The computer-readable storage medium for finding the minimal translation vector (MTV) where the "greedy" process is implemented through these steps: (1) Loading initial data like minimum/maximum tree levels and clipping window settings; (2) Initializing the tree level and clipping window; (3) Iteratively performing a "voxel process" using the current tree level and clipping window to refine the MTV, repeating as long as the tree level is within the specified range; and (4) Storing and outputting the final refined MTV.
18. The computer readable medium of claim 17 , wherein the initial data includes one or more of a minimum level, the maximum level, a clipping value, the bounding volume trees, and a current MTV.
The computer-readable storage medium for finding the minimal translation vector (MTV) where the "greedy" process initial data includes: a minimum tree level, a maximum tree level, a clipping value defining the size of the clipping window, the bounding volume trees of both objects, and the current estimated MTV. This data is used to configure and guide the voxel-based refinement process.
19. The computer readable medium of claim 17 , wherein the voxel process includes the steps of: loading voxel initial data; building a voxel model of the clipping window; computing the Minkowski Difference between the bounding volume trees; if there is an intersection between the clipping window and the Minkowski Difference, then marking each voxel in the voxel model; determining at least one candidate voxel from the marked voxels and determining a candidate voxel with a smallest vector from an origin; outputting the smallest vector from the origin as the revised MTV.
The computer-readable storage medium for finding the minimal translation vector (MTV) where the "voxel process" involves these steps: (1) Loading voxel-specific initial data; (2) Creating a voxel-based representation of the clipping window; (3) Calculating the Minkowski Difference between the bounding volume trees of the two objects; (4) Identifying voxels within the clipping window that intersect the Minkowski Difference and marking them; (5) Selecting a candidate voxel from the marked voxels that represents the smallest translation vector from the origin; and (6) Outputting the vector corresponding to this voxel as the revised MTV.
20. The computer readable medium of claim 19 , wherein the voxel initial data includes one or more of a tree level, a Use Box value, the clipping window, the bounding volume trees, and the current MTV.
The computer-readable storage medium for finding the minimal translation vector (MTV) where the "voxel process" initial data includes the tree level currently being processed, a flag indicating whether to use bounding boxes, the current clipping window, the bounding volume trees of both objects, and the current MTV estimate. This data guides the voxel-based intersection and optimization.
21. The computer readable medium of claim 15 , wherein the successive clipping process includes the steps of: loading clipping process initial data; constructing the clipping window so that it contains a current MTV and is closer to an origin than a previous clipping window; performing a voxel process using the tree level and the clipping window to determine a revised MTV; if the revised MTV is not within the clipping window, then repeating to the constructing step; and storing the revised MTV and outputting the revised MTV as a final MTV.
The computer-readable storage medium for finding the minimal translation vector (MTV) where the "successive clipping" process involves these steps: (1) Loading initial data; (2) Constructing a clipping window that contains the current MTV estimate and is smaller (closer to the origin) than the previous clipping window; (3) Performing a "voxel process" using the current tree level and clipping window to determine a revised MTV; (4) Repeating from step 2 if the revised MTV falls outside the current clipping window; and (5) Storing and outputting the final MTV. This iterative clipping focuses the computation on progressively smaller regions of space.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
August 27, 2009
July 30, 2013
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.