A Graphical, Language-Based Editor for Generic Solid Models Represented by Constraints.
Barford, Lee Alton
A solid model is a representation of the space occupied by a rigid object. A generic solid (or "generic") expresses the solid models for a class of similar objects, or equivalently, a non-rigid object. Automated manufacturing systems require solid models of the objects with which they work. For example, solid models are needed to discover collision-free paths for robot arms. Previously, generics have been created using clumsy textual languages, and solid models have usually been created using graphical editors. This thesis describes a technique for editing generics graphically, thus decreasing the labor required to create both generics and solid models. This thesis introduces microCOSM, a language for specifying solid models and generics in which a solid or generic is represented by its parts along with constraints that the parts must satisfy. Relationships between parts of an object are expressed as constraints between those parts. As a result, microCOSM can express more such relationships than current generic solid languages. A graphical editor for two-dimensional generics in microCOSM has been written. The microCOSM language and the user interface and implementation of the editor are described, and some improvements that should be made to the editor are discussed. The microCOSM editor, like any constraint-based editor, must have a constraint solver, a module that forces any object displayed by the editor to satisfy its constraints. This thesis shows why the usual techniques for solving constraints do not work well with microCOSM and show that the constraints in microCOSM are best solved as a related minimization problem. The minimization problem is chosen to achieve a harmonious compromise between the numerical complexity of the problem and the principle of least astonishment. Most bugs in microCOSM generic definitions involve having too many or too few constraints on some part of the solid. Algorithms are presented that detect under and overconstraint, under some reasonable assumptions about the constraints. These algorithms are dynamic; it is possible to determine if a modification induces an error without rerunning the entire computation. Error messages can be updated interactively, easing identification of the erroneous constraints.
computer science; technical report
Previously Published As