methods: bounding box: distance of points and surfaces: BRepAlgoAPI_Common: slow sweep volume: to check for interference ray casting technique: description: to detect interference between non-contact objects authors: Woo, Arai, Iwata, Hoffman virtual contacts: De Mello LS, Homem, Sanderson AA. A correct and complete algorithm for the generation of mechanical assembly sequences. IEEE Transactions on Robotics and Automation 1991;7(2):228±40. ray casting technique: [16] Woo TC. Automatic disassembly and total ordering in three dimensions. In: Proceedings of the Conference on Intelligent and Integrated Manufacturing Analysis and Synthesis, 1987. p 291±303. [24] Arai E, Iwata K. CAD system with product assembly/disassembly planning function. Robotics and Computer Integrated Manufacturing 1993;10(1):41±8. [10] Hoffman R. Automated assembly in a CSG domain. In: Proceedings of the 1989 IEEE International Conference on Robotics and Automation, 1989. p. 210±215. bounding box: [28] Garia-Alonso A, Serrano N, Flaquer J. Solving the collision detection problem. IEEE Computer Graphics and Applications, 1994. p. 36±43. [29] Miller JM, Hoffmanm RL. Automatic assembly planning with fasteners. In: Proceedings of the 1989 IEEE International Conference on Robotics and Automation, vol. 1, 1989. p. 69±74. geometric feasibility "an assembly task is said to be geometrically feasible if there is a collision-free path to bring the two subassemblies or parts into a contact position" feasibile sequence planner a free face heuristic test free face: a face which is not used in mating with other adjacent components in the assembly detect components that have at least one free face components with more free faces are more easily accessible disassemblability test global collision test DOF of an object depends on the total constraints on its mating surfaces collision detection for two different scenarios: when making a new virtual assembly: motion planning: can you physically do this operation? One way to save time on collision detection is to make it so that all virtual assembly designs are "simple" such that they are always disassemblable. Then, you don't even need to do assembly detection. Just make sure that there's no impossible interfacing of the parts. face adjacency graph component mating graph disassembly tree sequentially eliminating DOFs for interfaces. All interfaces start off with a DOF in the direction of their mating vector. When a part is mated, .. blah. potentially more useful method: take the total volume of the assembly take the sum of the volumes of each part if there's a difference, you have a collision