A general scenario of disassembly is figured out, starting from our past study of the internal structures of machines and devices, based on a mechanical engineer's point of view. We argue that among all data relevunt to assembly, the key data ,for generating assembly sequences are the liaison type and the assentbly direction. From thtse data many important geometrical, topological and technological constraints can be inferred, thar can be used as criferia for reducing the user's input data and the information to be extracted from the CAD datu base. These criteria minimize the possible decompositions ut each stage of disassembly, and may even guide the search towards the best plan. A fast planner has been implemented in PROLOG, giving a user .friendly system capable of generating optimal assembly plans very quickly, with a computational cost roughly proportional 10 the number of parts in the jinal assenzbly.