The MechProcessor: Helping Novices Design Printable Mechanisms Across Different Printers

Mark Fuge, Greg Carmean, Jessica Cornelius, and Ryan Elder, Journal of Mechanical Design 137 (11) (2015).
Full text


Additive manufacturing (AM), or 3D-printing, sits at the heart of the Maker Movement—the growing desire for wider-ranges of people to design physical objects. However, most users that wish to design functional moving devices face a prohibitive barrier-to-entry: they need fluency in a computer-aided design (CAD) package. This limits most people to being merely consumers, rather than designers or makers. To solve this problem, we combine advances in mechanism synthesis, computer languages, and design for AM to create a computational framework, the MechProcessor, which allows novices to produce 3D-printable, moving mechanisms of varying complexity using simple and extendable interfaces. The paper describes how we use hierarchical cascading configuration languages, breadth-first search, and mixed-integer linear programming (MILP) for mechanism synthesis, along with a nested, printable test-case to detect and resolve the AM constraints needed to ensure the devices can be 3D printed. We provide physical case studies and an open-source library of code and mechanisms that enable others to easily extend the MechProcessor framework. This encourages new research, commercial, and educational directions, including new types of customized printable robotics, business models for customer-driven design, and STEM education initiatives that involve nontechnical audiences in mechanical design. By promoting novice interaction in complex design and fabrication of movable components, we can move society closer to the true promise of the Maker Movement: turning consumers into designers.

BibTeX Citation

    author = {Mark Fuge, Greg Carmean, Jessica Cornelius, and Ryan Elder},
    journal = {Journal of Mechanical Design},
    month = oct,
    number = {11},
    title = {The MechProcessor: Helping Novices Design Printable Mechanisms Across Different Printers},
    volume = {137},
    year = {2015}