CtrEditor/Documentation/EstandarizacionObjetos.md

4.2 KiB

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:

[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:

[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()

  • Crear mapeo de nombres descriptivos
  • Implementar ejemplos: TransporteTTop, Motor VetroMeccanica, Fotocélula, Tag Analógico
  • Generar script de automatización PowerShell

Fase 2: Aplicar categorías y descripciones estándar

  • Definir 8 categorías estándar
  • Crear plantilla de implementación
  • Aplicar en objetos de ejemplo

Fase 3: Implementación Clase por Clase (COMPLETADO)

  • ucTransporteTTop - Transporte TTOP
  • ucVMmotorSim - Motor VetroMeccanica
  • ucPhotocell - Fotocélula
  • ucAnalogTag - Tag Analógico
  • ucCustomImage - Imagen Personalizada
  • ucBoolTag - Tag Digital
  • ucGuia - Guía
  • ucBotella - Botella
  • ucTransporteCurva - Transporte Curva 90°
  • ucBoton - Botón
  • ucBottGenerator - Generador de Botellas
  • ucDescarte - Descarte
  • 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:

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