CAD-Recode: Обратная инженерия CAD-кода из облаков точек
Модели, созданные с помощью компьютерногоAided Design (CAD), обычно строятся путем последовательного рисования параметрических скетчей и применения операций CAD для получения 3D модели. Проблема обратного инжиниринга 3D CAD состоит в восстановлении последовательностей скетчей и операций CAD из 3D представлений, таких как облака точек. В этой работе мы обращаемся к этой задаче через новые вклады на трех уровнях: представление последовательностей CAD, проектирование сети и набор данных. В частности, мы представляем последовательности скетч-экструзий CAD как код Python. Предложенный CAD-Recode преобразует облако точек в код Python, который, когда выполняется, восстанавливает модель CAD. Используя преимущества открытости предобученных больших языковых моделей (LLMs) к коду Python, мы используем относительно небольшую LLM в качестве декодера для CAD-Recode и комбинируем ее с легким проектором облаков точек. CAD-Recode обучается исключительно на предложенном синтетическом наборе данных из одного миллиона разнообразных последовательностей CAD. CAD-Recode значительно превосходит существующие методы по трем наборам данных, требуя при этом меньшее количество входных точек. Примечательно, что он достигает в 10 раз меньшего среднего расстояния Шамфера, чем самые современные методы на наборах данных DeepCAD и Fusion360. Кроме того, мы показываем, что наш вывод кода Python CAD интерпретируем LLMs с торговых полок, что позволяет редактировать CAD и отвечать на специфические для CAD вопросы на основе облаков точек.