4.7 KiB
4.7 KiB
Biblioteca de Objetos Simulables
Descripción
La biblioteca de objetos simulables es una nueva funcionalidad que permite gestionar y organizar objetos simulables en bibliotecas independientes del proyecto actual. Esto facilita la reutilización de objetos entre diferentes proyectos.
Características Principales
1. Gestión de Directorios de Biblioteca
- Agregar directorios: Permite agregar nuevos directorios que contendrán bibliotecas de objetos
- Eliminar directorios: Permite remover directorios de la lista de bibliotecas
- Persistencia global: Los directorios se mantienen independientemente del proyecto actual
2. Bibliotecas de Objetos
- Proyecto actual: El proyecto actual siempre aparece como una biblioteca
- Archivos JSON: Cada archivo JSON en los directorios de biblioteca se muestra como una biblioteca independiente
- Visualización jerárquica: Los objetos se organizan por tipo en un TreeView
3. Sistema de Filtros
- Filtros por tipo: Permite mostrar/ocultar tipos específicos de objetos
- Filtros por etiquetas: Filtrado por etiquetas usando # (ej: #motor #bomba)
- Filtros especiales:
- Cloned (objetos clonados)
- Auto Created (objetos creados automáticamente)
- Enable On All Pages (objetos globales)
- Show On This Page (objetos visibles en página actual)
4. Operaciones de Objetos
- Copiar (Ctrl+C): Copia objetos seleccionados al portapapeles interno
- Pegar (Ctrl+V): Pega objetos del portapapeles a la biblioteca seleccionada
- Eliminar: Elimina objetos de bibliotecas (no disponible para proyecto actual)
- Visualizar propiedades: PropertyGrid de solo lectura para inspeccionar objetos
5. Gestión de Bibliotecas
- Crear nueva biblioteca: Crea un archivo JSON vacío como nueva biblioteca
- Cargar automáticamente: Las bibliotecas se cargan automáticamente al seleccionar directorios
Cómo Usar
Acceso
- Haga clic en el botón "Biblioteca" en la barra de herramientas principal (al lado de "Assing Pages")
- Se abrirá la ventana modal de gestión de bibliotecas
Configurar Directorios de Biblioteca
- En la columna izquierda "Directorios de Biblioteca", haga clic en "Agregar"
- Seleccione la carpeta que contendrá sus bibliotecas de objetos
- El directorio se agregará a la lista y se guardará automáticamente
Navegar Bibliotecas
- Seleccione un directorio de la lista en la columna izquierda
- En la columna central aparecerán todas las bibliotecas (archivos JSON) encontradas
- Seleccione una biblioteca para ver sus objetos organizados por tipo
Filtrar Objetos
- Use la sección "Filtros" para mostrar/ocultar tipos específicos
- Use el campo de búsqueda para filtrar por etiquetas (ej:
#motor #conveyor
) - Active los filtros especiales según sea necesario
Copiar/Pegar Objetos
- Para copiar: Seleccione un objeto y presione Ctrl+C o haga clic en "Copiar"
- Para pegar: Seleccione la biblioteca destino y presione Ctrl+V o haga clic en "Pegar"
- Los objetos se copiarán con nuevos IDs únicos
Crear Nueva Biblioteca
- Seleccione un directorio de biblioteca
- Haga clic en "Nueva Biblioteca"
- Elija nombre y ubicación para el archivo JSON
- Se creará una biblioteca vacía lista para usar
Casos de Uso
Biblioteca de Componentes Estándar
- Cree una biblioteca con motores, sensores y actuadores estándar
- Reutilice estos componentes en múltiples proyectos
- Mantenga configuraciones consistentes entre proyectos
Plantillas de Sistemas
- Guarde sistemas completos (ej: línea de ensamblaje básica)
- Use como punto de partida para nuevos proyectos
- Facilite la estandarización de diseños
Backup y Versioning
- Mantenga copias de objetos importantes en bibliotecas externas
- Cree versiones de componentes con diferentes configuraciones
- Facilite la colaboración entre equipos
Estructura de Archivos
Las bibliotecas se almacenan como archivos JSON con la misma estructura que los archivos de proyecto:
{
"ObjetosSimulables": [...],
"UnitConverter": {...},
"PLC_ConnectionData": {...}
}
Notas Técnicas
- Los directorios de biblioteca se almacenan en
EstadoPersistente.Instance.LibraryDirectories
- Los objetos se serializan usando Newtonsoft.Json con
TypeNameHandling.All
- La funcionalidad es independiente del directorio de trabajo actual
- Los filtros utilizan el mismo sistema que la aplicación principal (
osVisFilter
)
Limitaciones
- No se pueden editar objetos directamente en las bibliotecas (solo copia/pegar)
- La eliminación solo está disponible para bibliotecas externas (no proyecto actual)
- Los archivos JSON deben tener estructura válida de SimulationData