# Script para estandarizar objetos derivados de osBase # Ejecutar desde la raíz del proyecto CtrEditor Write-Host "=== Estandarización de Objetos osBase ===" -ForegroundColor Green # Mapeo de nombres de clase mejorados $nombresClase = @{ # Transportes "ucTransporteTTop" = "Transporte TTOP" "ucTransporteTTopDualInverter" = "Transporte TTOP Dual Inverter" "ucTransporteGuias" = "Transporte con Guías" "ucTransporteGuiasUnion" = "Transporte con Guías Unión" "ucTransporteCurva" = "Transporte Curva" "ucTransporteCurvaGuias" = "Transporte Curva con Guías" # Sensores "ucPhotocell" = "Fotocélula" "ucGearEncoder" = "Encoder de Engranaje" "ucEncoderMotor" = "Encoder Motor" "ucEncoderMotorLineal" = "Encoder Motor Lineal" "ucSensTemperatura" = "Sensor de Temperatura" "ucBoton" = "Botón" # Actuadores "ucVMmotorSim" = "Motor VetroMeccanica" "ucValvulaFluido" = "Válvula de Fluido" # Elementos Estáticos "ucGuia" = "Guía" "ucDescarte" = "Descarte" # Emuladores "ucBottGenerator" = "Generador de Botellas" "ucFiller" = "Llenadora" "ucTanque" = "Tanque" # Señales "ucAnalogTag" = "Tag Analógico" "ucBoolTag" = "Tag Digital" "ucConsensGeneric" = "Consenso Genérico" # Datos "ucExtraccionTag" = "Extracción de Tag" "ucBuscarCoincidencias" = "Búsqueda de Coincidencias" # Decorativos "ucCustomImage" = "Imagen Personalizada" "ucFramePlate" = "Marco" "ucTextPlate" = "Placa de Texto" # Fluidos "ucTuberiaFluido" = "Tubería de Fluido" "osSistemaFluidos" = "Sistema de Fluidos" # Trazas "ucTrace3" = "Traza 3 Puntos" "ucTraceSimple" = "Traza Simple" # Dinámicos "ucBotella" = "Botella" "ucBotellaCuello" = "Botella con Cuello" # Ejemplo "ucBasicExample" = "Ejemplo Básico" } # Mapeo de categorías estándar $categoriasEstandar = @{ "Id:" = "Identificación" "Layout:" = "Posición y Tamaño" "Setup:" = "Configuración" "Simulation:" = "Simulación" "PLC link:" = "Enlace PLC" "Debug:" = "Información" "Encoder:" = "Encoder" "General:" = "Identificación" } function Actualizar-NombreClase { param( [string]$archivo, [string]$nuevoNombre ) $contenido = Get-Content $archivo -Raw $patron = 'return\s+"[^"]*";' $reemplazo = "return `"$nuevoNombre`";" if ($contenido -match $patron) { $contenido = $contenido -replace $patron, $reemplazo Set-Content $archivo $contenido -NoNewline Write-Host "✓ Actualizado NombreClase en $archivo" -ForegroundColor Yellow } } function Estandarizar-Categorias { param([string]$archivo) $contenido = Get-Content $archivo -Raw $modificado = $false foreach ($categoria in $categoriasEstandar.Keys) { $patron = [regex]::Escape("Category(`"$categoria`")") $reemplazo = "Category(`"$($categoriasEstandar[$categoria])`")" if ($contenido -match $patron) { $contenido = $contenido -replace $patron, $reemplazo $modificado = $true } } if ($modificado) { Set-Content $archivo $contenido -NoNewline Write-Host "✓ Estandarizadas categorías en $archivo" -ForegroundColor Cyan } } # Buscar todos los archivos .cs en ObjetosSim $archivos = Get-ChildItem -Path "ObjetosSim" -Filter "*.cs" -Recurse | Where-Object { $_.Name -like "uc*.cs" -or $_.Name -like "os*.cs" } Write-Host "Encontrados $($archivos.Count) archivos para procesar" -ForegroundColor Blue foreach ($archivo in $archivos) { $nombreArchivo = [System.IO.Path]::GetFileNameWithoutExtension($archivo.Name) # Actualizar nombre de clase si está en el mapeo if ($nombresClase.ContainsKey($nombreArchivo)) { Actualizar-NombreClase -archivo $archivo.FullName -nuevoNombre $nombresClase[$nombreArchivo] } # Estandarizar categorías Estandarizar-Categorias -archivo $archivo.FullName } Write-Host "=== Proceso completado ===" -ForegroundColor Green Write-Host "Revise los cambios y verifique que la compilación sea exitosa" -ForegroundColor Yellow