CAD-Recode : Ingénierie inverse du code CAO à partir de nuages de points
CAD-Recode: Reverse Engineering CAD Code from Point Clouds
December 18, 2024
Auteurs: Danila Rukhovich, Elona Dupont, Dimitrios Mallis, Kseniya Cherenkova, Anis Kacem, Djamila Aouada
cs.AI
Résumé
Les modèles de Conception Assistée par Ordinateur (CAO) sont généralement construits en dessinant séquentiellement des croquis paramétriques et en appliquant des opérations de CAO pour obtenir un modèle 3D. Le problème de l'ingénierie inverse de CAO 3D consiste à reconstruire les séquences de croquis et d'opérations de CAO à partir de représentations 3D telles que des nuages de points. Dans cet article, nous abordons ce défi à travers des contributions novatrices à trois niveaux : la représentation des séquences de CAO, la conception du réseau et l'ensemble de données. En particulier, nous représentons les séquences de croquis-extrusion de CAO sous forme de code Python. Le CAD-Recode proposé traduit un nuage de points en code Python qui, une fois exécuté, reconstruit le modèle CAO. En exploitant l'exposition des Grands Modèles de Langage Pré-entraînés (LLM) au code Python, nous utilisons un LLM relativement petit en tant que décodeur pour CAD-Recode et le combinons avec un projecteur de nuage de points léger. CAD-Recode est entraîné uniquement sur un ensemble de données synthétiques proposé de un million de séquences de CAO diverses. CAD-Recode surpasse significativement les méthodes existantes sur trois ensembles de données tout en nécessitant moins de points d'entrée. Notamment, il atteint une distance de Chamfer moyenne 10 fois inférieure aux méthodes de pointe sur les ensembles de données DeepCAD et Fusion360. De plus, nous montrons que notre code Python de CAO en sortie est interprétable par des LLM prêts à l'emploi, permettant l'édition de CAO et la réponse à des questions spécifiques à la CAO à partir de nuages de points.
English
Computer-Aided Design (CAD) models are typically constructed by sequentially
drawing parametric sketches and applying CAD operations to obtain a 3D model.
The problem of 3D CAD reverse engineering consists of reconstructing the sketch
and CAD operation sequences from 3D representations such as point clouds. In
this paper, we address this challenge through novel contributions across three
levels: CAD sequence representation, network design, and dataset. In
particular, we represent CAD sketch-extrude sequences as Python code. The
proposed CAD-Recode translates a point cloud into Python code that, when
executed, reconstructs the CAD model. Taking advantage of the exposure of
pre-trained Large Language Models (LLMs) to Python code, we leverage a
relatively small LLM as a decoder for CAD-Recode and combine it with a
lightweight point cloud projector. CAD-Recode is trained solely on a proposed
synthetic dataset of one million diverse CAD sequences. CAD-Recode
significantly outperforms existing methods across three datasets while
requiring fewer input points. Notably, it achieves 10 times lower mean Chamfer
distance than state-of-the-art methods on DeepCAD and Fusion360 datasets.
Furthermore, we show that our CAD Python code output is interpretable by
off-the-shelf LLMs, enabling CAD editing and CAD-specific question answering
from point clouds.Summary
AI-Generated Summary