110 lines
4.7 KiB
Markdown
110 lines
4.7 KiB
Markdown
# 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
|
|
1. Haga clic en el botón **"Biblioteca"** en la barra de herramientas principal (al lado de "Assing Pages")
|
|
2. Se abrirá la ventana modal de gestión de bibliotecas
|
|
|
|
### Configurar Directorios de Biblioteca
|
|
1. En la columna izquierda "Directorios de Biblioteca", haga clic en **"Agregar"**
|
|
2. Seleccione la carpeta que contendrá sus bibliotecas de objetos
|
|
3. El directorio se agregará a la lista y se guardará automáticamente
|
|
|
|
### Navegar Bibliotecas
|
|
1. Seleccione un directorio de la lista en la columna izquierda
|
|
2. En la columna central aparecerán todas las bibliotecas (archivos JSON) encontradas
|
|
3. Seleccione una biblioteca para ver sus objetos organizados por tipo
|
|
|
|
### Filtrar Objetos
|
|
1. Use la sección "Filtros" para mostrar/ocultar tipos específicos
|
|
2. Use el campo de búsqueda para filtrar por etiquetas (ej: `#motor #conveyor`)
|
|
3. Active los filtros especiales según sea necesario
|
|
|
|
### Copiar/Pegar Objetos
|
|
1. **Para copiar**: Seleccione un objeto y presione Ctrl+C o haga clic en "Copiar"
|
|
2. **Para pegar**: Seleccione la biblioteca destino y presione Ctrl+V o haga clic en "Pegar"
|
|
3. Los objetos se copiarán con nuevos IDs únicos
|
|
|
|
### Crear Nueva Biblioteca
|
|
1. Seleccione un directorio de biblioteca
|
|
2. Haga clic en **"Nueva Biblioteca"**
|
|
3. Elija nombre y ubicación para el archivo JSON
|
|
4. 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:
|
|
|
|
```json
|
|
{
|
|
"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 |