Facilitating the Parametric Definition of Geometric Properties in Programming-Based CAD
J. Felipe Gonzalez, Thomas Pietrzak, Audrey Girouard, Géry Casiez
TL;DR
This work tackles the difficulty of defining parametric geometric properties in programming-based CAD by introducing bidirectional programming to extract parametric definitions from the visual view for reuse in code. Through a formative study of OpenSCAD models, a design goal to enable view-to-code information retrieval, and a proof-of-concept that extends OpenSCAD with position and delta-vector features, the authors validate that retrieving view-derived definitions can reduce design errors and increase interactivity. An 11-participant user study shows improved correctness and usability, while also revealing usability challenges and resistance from expert users. The approach has potential to lower the entry barrier for newcomers and thereby enhance the practicality of programming-based CAD in customizable design workflows.
Abstract
Parametric Computer-aided design (CAD) enables the creation of reusable models by integrating variables into geometric properties, facilitating customization without a complete redesign. However, creating parametric designs in programming-based CAD presents significant challenges. Users define models in a code editor using a programming language, with the application generating a visual representation in a viewport. This process involves complex programming and arithmetic expressions to describe geometric properties, linking various object properties to create parametric designs. Unfortunately, these applications lack assistance, making the process unnecessarily demanding. We propose a solution that allows users to retrieve parametric expressions from the visual representation for reuse in the code, streamlining the design process. We demonstrated this concept through a proof-of-concept implemented in the programming-based CAD application, OpenSCAD, and conducted an experiment with 11 users. Our findings suggest that this solution could significantly reduce design errors, improve interactivity and engagement in the design process, and lower the entry barrier for newcomers by reducing the mathematical skills typically required in programming-based CAD applications
