# Estandarización de Objetos derivados de osBase ## Criterios para NombreClase() ### Categorías de Objetos: 1. **Transporte**: Transportadores, cintas, curvas 2. **Sensores**: Fotocélulas, encoders, botones 3. **Actuadores**: Motores, válvulas 4. **Elementos Estáticos**: Guías, descartes, barreras 5. **Emuladores**: Generadores, llenadores, tanques 6. **Señales**: Tags analógicos, digitales 7. **Datos**: Extracción, búsqueda 8. **Decorativos**: Imágenes, marcos, textos 9. **Fluidos**: Tuberías, válvulas, sistemas ### Formato de Nombres: - **Español**: Usar nombres descriptivos en español - **Específico**: Incluir característica principal (ej: "Motor VetroMeccanica", "Transporte con Guías") - **Consistente**: Mantener formato similar por categoría ## Categorías Estandarizadas para Propiedades ### 1. "Identificación" - Nombre del objeto - Etiquetas de clasificación ### 2. "Posición y Tamaño" - Coordenadas (Left, Top) - Dimensiones (Ancho, Alto, Ángulo) - Bloqueo de movimiento ### 3. "Configuración" - Parámetros principales del objeto - Configuraciones específicas por tipo ### 4. "Simulación" - Velocidades, fuerzas, coeficientes - Parámetros físicos ### 5. "Enlace PLC" - Tags de entrada y salida - Conexiones con motores/sensores ### 6. "Información" - Valores calculados - Estados actuales - Datos de depuración ### 7. "Apariencia" - Colores, tamaños visuales - Aspectos gráficos ## Ejemplos de Aplicación ### Motor VetroMeccanica: ```csharp [ObservableProperty] [property: Description("Velocidad actual del motor en Hz")] [property: Category("Información")] [property: Name("Velocidad Actual")] public float velocidad; [ObservableProperty] [property: Description("Tiempo de rampa para acelerar/desacelerar")] [property: Category("Configuración")] [property: Name("Tiempo de Rampa")] public float tiempoRampa; ``` ### Fotocélula: ```csharp [ObservableProperty] [property: Description("Indica si la luz está cortada por un objeto")] [property: Category("Información")] [property: Name("Luz Cortada")] bool luzCortada; [ObservableProperty] [property: Description("Ancho del haz de luz del sensor")] [property: Category("Configuración")] [property: Name("Ancho del Haz")] float ancho_Haz_De_Luz; ``` ## Plan de Implementación ### ✅ Fase 1: Estandarizar métodos `NombreClase()` - [x] Crear mapeo de nombres descriptivos - [x] Implementar ejemplos: TransporteTTop, Motor VetroMeccanica, Fotocélula, Tag Analógico - [x] Generar script de automatización PowerShell ### ✅ Fase 2: Aplicar categorías y descripciones estándar - [x] Definir 8 categorías estándar - [x] Crear plantilla de implementación - [x] Aplicar en objetos de ejemplo ### ✅ Fase 3: Implementación Clase por Clase (COMPLETADO) - [x] **ucTransporteTTop** - Transporte TTOP - [x] **ucVMmotorSim** - Motor VetroMeccanica - [x] **ucPhotocell** - Fotocélula - [x] **ucAnalogTag** - Tag Analógico - [x] **ucCustomImage** - Imagen Personalizada - [x] **ucBoolTag** - Tag Digital - [x] **ucGuia** - Guía - [x] **ucBotella** - Botella - [x] **ucTransporteCurva** - Transporte Curva 90° - [x] **ucBoton** - Botón - [x] **ucBottGenerator** - Generador de Botellas - [x] **ucDescarte** - Descarte - [x] **ucFramePlate** - Marco de Panel (parcial) ### 📊 Estadísticas de Progreso - **Clases procesadas**: 13 - **`using System.ComponentModel;` agregados**: 6 clases - **Nombres de clase mejorados**: 13 - **Propiedades estandarizadas**: ~85 propiedades ## Archivos Generados 1. **`Scripts/EstandarizarObjetos.ps1`**: Script para automatizar cambios 2. **`Documentation/PlantillaEstandarizacion.cs`**: Plantilla con ejemplos 3. **`Documentation/EstandarizacionObjetos.md`**: Esta documentación ## Instrucciones de Uso ### Para aplicar automáticamente: ```powershell cd CtrEditor .\Scripts\EstandarizarObjetos.ps1 ``` ### Para aplicar manualmente: 1. Consultar `PlantillaEstandarizacion.cs` 2. Seguir el patrón de categorías establecido 3. Usar nombres descriptivos en español ## Objetos Ya Actualizados - ✅ `ucTransporteTTop` → "Transporte TTOP" - ✅ `ucVMmotorSim` → "Motor VetroMeccanica" - ✅ `ucPhotocell` → "Fotocélula" - ✅ `ucAnalogTag` → "Tag Analógico" --- *Documento generado para estandarización del proyecto CtrEditor*