/* PLANTILLA DE ESTANDARIZACIÓN PARA OBJETOS osBase Usar esta plantilla como guía para estandarizar cualquier objeto derivado de osBase */ namespace CtrEditor.ObjetosSim { public partial class osEjemplo : osBase, IosBase { // 1. MÉTODO NOMBRECLASE - Usar nombres descriptivos en español public static string NombreClase() { return "Nombre Descriptivo del Objeto"; // Ej: "Motor VetroMeccanica", "Fotocélula", "Transporte TTOP" } private string nombre = NombreClase(); // 2. PROPIEDAD NOMBRE - Siempre en categoría "Identificación" [property: Category("Identificación")] [property: Description("Nombre identificativo del objeto")] [property: Name("Nombre")] public override string Nombre { get => nombre; set => SetProperty(ref nombre, value); } // 3. CATEGORÍAS ESTÁNDAR: // IDENTIFICACIÓN - Información básica del objeto [ObservableProperty] [property: Category("Identificación")] [property: Description("Descripción o comentario del objeto")] [property: Name("Descripción")] public string descripcion; // POSICIÓN Y TAMAÑO - Heredadas de osBase (Left, Top, Ancho, Alto, Angulo) // No necesitan redefinirse, ya están en osBase // CONFIGURACIÓN - Parámetros principales del objeto [ObservableProperty] [property: Category("Configuración")] [property: Description("Velocidad máxima del objeto")] [property: Name("Velocidad Máxima")] public float velocidadMaxima; [ObservableProperty] [property: Category("Configuración")] [property: Description("Habilita/deshabilita funcionalidad específica")] [property: Name("Habilitar Función")] public bool habilitarFuncion; // SIMULACIÓN - Parámetros físicos y de simulación [ObservableProperty] [property: Category("Simulación")] [property: Description("Velocidad actual en la simulación")] [property: Name("Velocidad Actual")] public float velocidadActual; [ObservableProperty] [property: Category("Simulación")] [property: Description("Coeficiente de fricción")] [property: Name("Coeficiente de Fricción")] public float coeficienteFriccion; // ENLACE PLC - Conexiones con PLC y otros objetos [ObservableProperty] [property: Category("Enlace PLC")] [property: Description("Dirección del tag en el PLC")] [property: Name("Tag Principal")] public string tagPrincipal; [ObservableProperty] [property: Category("Enlace PLC")] [property: Description("Seleccionar motor para enlazar")] [property: Name("Motor Enlazado")] [property: ItemsSource(typeof(osBaseItemsSource))] public string motorEnlazado; // INFORMACIÓN - Valores calculados, estados, debug [ObservableProperty] [property: Category("Información")] [property: Description("Estado actual del objeto")] [property: Name("Estado")] public bool estado; [ObservableProperty] [property: Category("Información")] [property: Description("Último valor calculado")] [property: Name("Último Valor")] public float ultimoValor; // APARIENCIA - Aspectos visuales [ObservableProperty] [property: Category("Apariencia")] [property: Description("Tamaño visual del objeto")] [property: Name("Tamaño")] public float tamano; [ObservableProperty] [property: Category("Apariencia")] [property: Description("Color del objeto")] [property: Name("Color")] public Brush color; // ENCODER - Específico para motores con encoder [ObservableProperty] [property: Category("Encoder")] [property: Description("Habilita el encoder")] [property: Name("Con Encoder")] public bool conEncoder; [ObservableProperty] [property: Category("Encoder")] [property: Description("Posición actual del encoder")] [property: Name("Posición Encoder")] public float posicionEncoder; } } /* GUÍA DE CATEGORÍAS: 1. "Identificación" - Nombre del objeto - Descripción - Etiquetas de clasificación 2. "Posición y Tamaño" - Ya heredadas de osBase: Left, Top, Ancho, Alto, Angulo, Lock_movement 3. "Configuración" - Parámetros principales del objeto - Configuraciones específicas por tipo - Valores que el usuario configura 4. "Simulación" - Velocidades, fuerzas, coeficientes - Parámetros físicos - Comportamiento en simulación 5. "Enlace PLC" - Tags de entrada y salida - Conexiones con motores/sensores - Direcciones de PLC 6. "Información" - Valores calculados - Estados actuales - Datos de depuración - Información de solo lectura 7. "Apariencia" - Colores, tamaños visuales - Aspectos gráficos - Elementos de UI 8. "Encoder" (solo para motores) - Configuración del encoder - Valores del encoder FORMATO DE DESCRIPCIONES: - Usar español - Ser descriptivo y claro - Explicar qué hace la propiedad - Evitar términos técnicos innecesarios FORMATO DE NOMBRES: - Usar español - Formato "Título" (primera letra mayúscula) - Ser conciso pero descriptivo - Ej: "Velocidad Actual", "Tag Principal", "Con Encoder" */