Arquitectura de Rayforge
Este documento proporciona una visión general arquitectónica de alto nivel de Rayforge, explicando cómo se relacionan los componentes principales entre sí. Para profundizar en áreas específicas, consulta los documentos enlazados.
Tabla de Contenidos
- Arquitectura de Aplicación en Capas
- Arquitectura de Código
- Arquitectura del Modelo de Documento
- Arquitectura del Pipeline
Arquitectura de Aplicación en Capas
La aplicación está estructurada en capas lógicas, separando la interfaz de usuario, la lógica de aplicación y los servicios principales. Esto promueve una separación limpia de responsabilidades y aclara el flujo de control
- Capa UI (Vista): Contiene todos los elementos orientados al usuario. El
Workbenches el área principal del lienzo que aloja las vistas 2D y 3D. - Capa Editor/Controlador: El
DocEditoractúa como controlador central, respondiendo a eventos UI y manipulando los modelos principales. - Capa Core / Servicios: Proporciona servicios y estado fundamentales.
Core Modelsrepresentan el documento,Taskergestiona trabajos en segundo plano,Machinemaneja comunicación con dispositivos, yCameragestiona viewports.
Arquitectura de Código
Rayforge es una aplicación GTK4/Libadwaita con una arquitectura modular basada en pipeline.
rayforge/core/: Modelo de documento y manejo de geometría.rayforge/pipeline/: El pipeline de procesamiento principal para generar operaciones de máquina desde el modelo de documento.rayforge/machine/: Capa de interfaz de hardware, incluyendo drivers de dispositivo, protocolos de transporte y modelos de máquina.rayforge/doceditor/: El controlador principal del editor de documentos y su UI.rayforge/workbench/: El lienzo 2D/3D y sistemas de visualización.rayforge/image/: Importadores para varios formatos de archivo (SVG, DXF, etc.).rayforge/shared/: Utilidades comunes, incluyendo eltaskerpara gestión de trabajos en segundo plano.
Arquitectura del Modelo de Documento
El modelo de documento es un árbol jerárquico de objetos basado en el Patrón Composite. Esta estructura representa todo el proyecto del usuario, desde el objeto raíz Doc hasta las WorkPieces individuales. Está diseñado para ser reactivo y serializable.
Ver Arquitectura del Modelo de Documento para detalles
Arquitectura del Pipeline
El pipeline convierte el modelo de documento en G-code ejecutable por máquina. Se ejecuta de forma asíncrona en segundo plano y usa un sistema de Artifact de memoria compartida para transferencia de datos de alto rendimiento entre procesos. El pipeline se compone de etapas: Modificadores → Productores → Transformadores → Codificadores.