stl_exporter.cpython-312.pyc•6.45 kB
�
H��g� � � � d dl Z d dlZd dlZd dlZd dlmZmZmZmZ d dl m
Z
ej e� Z
G d� d� Zy)� N)�Dict�Any�Optional�Tuple)�STLValidatorc �� � e Zd ZdZdefd�Zddedeeeef de ee
ee f fd�Z ddedeeeef d eeeef deeef fd
�Zded eeef defd�Z
ded
edefd�Zy)�STLExporterzA
Handles STL file export and validation for 3D printing.
�
output_dirc � � || _ || _ t j j |d� | _ t j | j
d�� y)z�
Initialize the STL exporter.
Args:
openscad_wrapper: Instance of OpenSCADWrapper for generating STL files
output_dir: Directory to store output files
�stlT)�exist_okN)�openscad_wrapperr
�os�path�join�stl_dir�makedirs)�selfr r
s �:/home/ubuntu/openscad-mcp-server/src/utils/stl_exporter.py�__init__zSTLExporter.__init__ s= � � !1���$����w�w�|�|�J��6��� ���D�L�L�4�0� N� scad_file�
parameters�returnc �� � | j j ||� }t j |� \ }}|sct j d|� �� t j |� \ }}|rt j |� \ }}nt j d|� �� |||fS # t $ r9}t j dt |� � �� ddt |� fcY d}~S d}~ww xY w)a
Export a SCAD file to STL format.
Args:
scad_file: Path to the SCAD file
parameters: Optional parameters to override in the SCAD file
Returns:
Tuple of (stl_file_path, is_valid, error_message)
zSTL validation failed: zSTL repair failed: zError exporting STL: � FN)
r �generate_stlr �validate_stl�logger�warning�
repair_stl�error� Exception�str) r r r �stl_file�is_validr"