Facilitating Programming-based 3D Computer-Aided Design using Bidirectional Programming - Archive ouverte HAL
Theses Year : 2024

Facilitating Programming-based 3D Computer-Aided Design using Bidirectional Programming

Faciliter la conception assistée par ordinateur 3D basée sur la programmation en utilisant la programmation bidirectionnelle

Abstract

3D Computer-Aided Design (CAD) applications allow users to create visual representations of models, helping create, edit, test, and analyze designs. Most offer a Graphical User Interface (GUI) with direct manipulation providing easy-to-use interactions, while a less popular category adopts a programming-based approach requiring users to describe models using specific programming languages. Programming-based CAD applications provide multiple benefits to 3D design, but their use remains limited, potentially due to higher entry barriers and extensive programming requirements. Regrettably, a profound lack of understanding of the challenges faced by users of programming-based CAD applications prevents a clear comprehension of the issues of these applications. Furthermore, research addressing CAD challenges has predominantly focused on applications that provide direct manipulation interactions. This doctoral thesis aims to improve the usability of programming-based CAD applications, focusing on their role in Personal Digital Fabrication with 3D printers. Our research seeks to understand and address programming-based CAD users' challenges during the design process. In our first study, we interviewed twenty OpenSCAD users, a leading programming-based CAD application in the 3D printing community. Data analysis via a Reflexive Thematic Analysis (RTA) led to the development of a comprehensive codebook categorizing three main themes: user profiles, 3D design challenges, and 3D printing challenges. Our second study addressed the identified design challenges in linking 3D views with code and difficulties in performing spatial transformations on the model. We proposed to address these difficulties by introducing the concept of bidirectional programming in programming-based CAD, allowing users to interact with both the code and the view. We modified the source code of OpenSCAD to implement this approach, developing bidirectional navigation features and allowing users to edit the model by interacting with the view while the application updates the code coherently. The third study addressed the keystone challenge of defining geometric properties in parametric designs. After analyzing thirty OpenSCAD models, we developed bidirectional programming features in OpenSCAD to facilitate the definition of parametric properties, directly extracting information from the view to use in the code. Experimentation with OpenSCAD users showed our solution may streamline design, reduce errors, and lower entry barriers for newcomers.
Les applications de Conception Assistée par Ordinateur (CAO) 3D permettent aux utilisateurs de créer des représentations visuelles de modèles, aidant à créer, éditer, tester et analyser des conceptions. La plupart offrent une Interface Graphique Utilisateur (GUI) avec manipulation directe, fournissant des interactions faciles à utiliser, tandis qu’une catégorie moins populaire adopte une approche basée sur la programmation, nécessitant des utilisateurs de décrire les modèles en utilisant des langages de programmation spécifiques. Les applications de CAO basées sur la programmation offrent de multiples avantages pour la conception 3D, mais leur utilisation reste limitée, potentiellement en raison de barrières d’entrée plus élevées et d’exigences de programmation étendues. Malheureusement, un manque de compréhension profond des défis rencontrés par les utilisateurs des applications de CAO basées sur la programmation empêche une compréhension claire des problèmes de ces applications. De plus, la recherche traitant des défis de la CAO s’est principalement concentrée sur les applications offrant des interactions de manipulation directe. Cette thèse doctorale vise à améliorer l’utilisabilité des applications de CAO basées sur la programmation, en se concentrant sur leur rôle dans la Fabrication Numérique Personnelle avec des imprimantes 3D. Notre recherche cherche à comprendre et à relever les défis des utilisateurs de CAO basée sur la programmation pendant le processus de conception. Dans notre première étude, nous avons interviewé vingt utilisateurs d’OpenSCAD, une application de CAO basée sur la programmation leader dans la communauté de l’impression 3D. L’analyse des données via une Analyse Thématique Réflexive RTA a conduit au développement d’un codebook complet catégorisant trois thèmes principaux : les profils d’utilisateurs, les défis de conception 3D et les défis d’impression 3D. Notre deuxième étude a abordé les défis de conception identifiés dans la liaison des vues 3D avec le code et les difficultés à effectuer des transformations spatiales sur le modèle. Nous avons proposé de relever ces difficultés en introduisant le concept de programmation bidirectionnelle dans la CAO basée sur la programmation, permettant aux utilisateurs d’interagir à la fois avec le code et la vue. Nous avons modifié le code source d’OpenSCAD pour implémenter cette approche, développant des fonctionnalités de navigation bidirectionnelle et permettant aux utilisateurs de modifier le modèle en interagissant avec la vue tandis que l’application met à jour le code de manière cohérente. La troisième étude a abordé le défi clé de la définition des propriétés géométriques dans les conceptions paramétriques. Après avoir analysé 30 modèles OpenSCAD, nous avons développé des fonctionnalités de programmation bidirectionnelle dans OpenSCAD pour faciliter la définition des propriétés paramétriques, extrayant directement les informations de la vue pour les utiliser dans le code. L’expérimentation avec les utilisateurs d’OpenSCAD a montré que notre solution pourrait rationaliser la conception, réduire les erreurs et abaisser les barrières à l’entrée pour les nouveaux utilisateurs.
Fichier principal
Vignette du fichier
Thesis_dissertation__JFGA.pdf (24.5 Mo) Télécharger le fichier
Origin Files produced by the author(s)
Licence

Dates and versions

tel-04635570 , version 1 (04-07-2024)
tel-04635570 , version 2 (08-08-2024)

Licence

Identifiers

  • HAL Id : tel-04635570 , version 2

Cite

Johann Felipe Gonzalez Avila. Facilitating Programming-based 3D Computer-Aided Design using Bidirectional Programming. Computer Science [cs]. Université de lille; Carleton University (CA), 2024. English. ⟨NNT : ⟩. ⟨tel-04635570v2⟩
209 View
15 Download

Share

More