Commit Graph

182 Commits

Author SHA1 Message Date
Miguel 70bc74fa7d Fix hydraulic simulation issues: prevent double registration of objects, correct MaxFlow unit conversion, enable verbose output for debugging, and ensure proper convergence of the hydraulic solver. 2025-09-04 18:52:46 +02:00
Miguel de4193dee3 Add unit test for hydraulic component type assignability
- Created a new test class TestItemsSource in test_osBaseItemsSource.cs.
- Implemented TestTypeAssignability method to verify that osHydPipe, osHydDischargeTank, and osHydPump correctly implement the IHydraulicComponent interface.
- Added console output to display results of type checks and comparisons.
2025-09-04 18:25:31 +02:00
Miguel 42c9ab9449 Refactor hydraulic components: removed ucPumpExample, added ucHydDischargeTank and ucHydPipe with corresponding logic and XAML. Introduced new converters for UI bindings and created a simple hydraulic system example with testing capabilities. 2025-09-04 17:29:20 +02:00
Miguel d968aa9a2f Mejorado de HydPump 2025-09-04 15:54:14 +02:00
Miguel 3f21061524 Agregada base Hidraulica 2025-09-04 15:14:47 +02:00
Miguel 1e6ad6377e Implementar temporizadores más precisos utilizando System.Timers en MainViewModel y optimizar la lógica de simulación en BEPU para evitar cálculos innecesarios cuando no hay objetos simulables. 2025-09-04 14:31:57 +02:00
Miguel 091170b70d Agregado de NombreCategoria a los osSimulables 2025-09-04 12:26:24 +02:00
Miguel 6e48539d2e Agregar modo de lectura a ucAnalogTag, permitiendo la lectura condicional del valor. Se implementa la propiedad Read_Mode y se ajusta la lógica de actualización para utilizarla. 2025-09-04 11:59:32 +02:00
Miguel 3fe5b5497f Base antes de agregar logica de HydraulicSimulator 2025-09-04 11:41:26 +02:00
Miguel 4f2a109332 Implementar sistema de persistencia de configuración del entorno de trabajo, incluyendo captura y restauración de estado para el GridSplitter, canvas y actualizaciones 3D. Se añade la clase WorkspaceConfiguration y se actualizan varios archivos para integrar esta funcionalidad. 2025-09-03 20:51:51 +02:00
Miguel cad650b3d0 Mejorar la gestión del foco en la interfaz, evitando interferencias con el PLCControl. Se implementaron verificaciones para forzar actualizaciones de bindings sin robar el foco y se añadió un método para buscar controles padres en el árbol visual. 2025-09-02 18:55:48 +02:00
Miguel 3b953b7998 Ajustar parámetros de fricción estática y dinámica en la simulación de botellas, mejorando el comportamiento en situaciones de contacto. Implementar límites de velocidad en el plano XY y corregir la lógica de actualización de posición para evitar elevaciones excesivas. 2025-09-02 12:30:30 +02:00
Miguel 18017db56a Se eliminó el sistema de limitación de fuerzas para contactos múltiples, reemplazándolo por un enfoque de intervención post-solver que mejora el control de velocidades Z y simplifica la lógica de simulación. Se ajustaron los parámetros de fricción y recuperación, optimizando el comportamiento de las botellas en situaciones de contacto. Además, se eliminaron funciones relacionadas con el seguimiento de densidad de contactos, simplificando el código y mejorando la eficiencia del sistema. 2025-07-09 12:05:49 +02:00
Miguel b44bdc5ece Se implementó un nuevo sistema de limitación de fuerzas para contactos múltiples simultáneos en la simulación de botellas, mejorando la estabilidad y realismo al evitar fuerzas armónicas irreales. Se introdujo un enfoque post-solver para controlar velocidades Z excesivas y se simplificó la lógica de integración de velocidad. Además, se ajustaron los parámetros de fricción y recuperación para optimizar el comportamiento en situaciones de contacto. Se añadieron nuevas funciones para el seguimiento de densidad de contactos y la calibración visual del deslizamiento. 2025-07-09 09:47:39 +02:00
Miguel 6887ede5e0 Se realizaron ajustes significativos en la configuración de fricción y recuperación en la simulación de botellas, mejorando la estabilidad y el comportamiento en contactos. Se implementaron nuevas funciones para limitar fuerzas Z y calcular la profundidad de penetración, optimizando la respuesta de las botellas en situaciones de contacto. Además, se ajustaron los parámetros de amortiguamiento y velocidad de separación para lograr un comportamiento más realista en la simulación. 2025-07-08 17:10:44 +02:00
Miguel 62b45ebf1c Se implementaron mejoras en la gestión de imágenes de fondo en el viewport 3D, permitiendo agregar, remover y sincronizar imágenes de fondo con la visualización 3D. Se corrigieron las convenciones de posicionamiento y escalado para asegurar coherencia visual entre el canvas 2D y la representación 3D. Además, se ajustaron los coeficientes de fricción en la simulación de botellas, optimizando el comportamiento en contactos y curvas. 2025-07-06 21:29:53 +02:00
Miguel f7f49d5df0 Se implementó un sistema de fricción dinámica que simula el comportamiento de fricción estática y dinámica en contactos botella-transporte y botella-curva, mejorando el flujo de materiales y reduciendo atascos. Se reemplazó el sistema de presión por un nuevo sistema de calibración visual que permite ajustar las fricciones de cada componente, mostrando el nivel de deslizamiento en las botellas. Además, se realizaron ajustes en la lógica de colisiones y se optimizó la gestión de fricción en la simulación. 2025-07-06 21:07:11 +02:00
Miguel d1ec7f4d12 Se mejoró el sistema de guías curvas para incluir apertura en cono en los extremos, facilitando la entrada y salida de botellas. Se añadió un nuevo parámetro `AnguloAperturaGuias` para ajustar la apertura, optimizando el flujo de materiales. Además, se implementaron nuevas propiedades en `ucBottGenerator` para gestionar la distancia mínima sin botellas y se realizaron ajustes en la lógica de colisiones y visualización en 3D. 2025-07-06 00:07:36 +02:00
Miguel 83fc828a4c Se implementaron mejoras en la visualización y animación de transportes en movimiento, incluyendo un indicador visual que cambia de color según el estado de movimiento. Se añadió un sistema de animaciones automáticas utilizando StoryBoard de WPF, que combina rotación y pulsación de color para los transportes activos. Además, se ajustaron las propiedades de presión en las botellas para mejorar la gestión de fricción y se optimizó la lógica de animación y limpieza de objetos en la simulación. 2025-07-05 20:20:59 +02:00
Miguel c91b1419b4 Se implementó un sistema para controlar la presión y evitar que las botellas floten en la simulación. Ahora, las botellas registran su última altura de contacto con transportes y ajustan su posición Z si no están en contacto durante varios frames. Además, se centraron las botellas en el eje longitudinal de los transportes al entrar en contacto con transportes de frenado. Se añadieron nuevas propiedades en simBotella para gestionar la presión y el estado de contacto. 2025-07-05 18:43:28 +02:00
Miguel 71c08d8047 Se ajustaron los coeficientes de fricción y configuraciones de resorte en la simulación de botellas, diferenciando entre transportes con y sin freno. Además, se modificó la visibilidad de triángulos en la visualización 3D, mejorando la iluminación y corrigiendo la creación de mallas continuas a partir de triángulos de BEPU. Se eliminaron métodos obsoletos relacionados con la geometría de curvas, optimizando la lógica de creación de mallas. 2025-07-05 17:53:22 +02:00
Miguel eb6ed62d5b Eliminación del archivo "Memoria de evolución" y cambios en la creación de botellas en la simulación. Se reemplazó el método AddCircle por AddBotella en ucBotella y ucBotellaCuello, y se ajustaron propiedades en simBotella para mejorar la gestión de inercia y fricción. Se eliminaron referencias a barreras físicas en BEPU, optimizando la lógica de colisiones y ajustando parámetros de fricción para mejorar la simulación. 2025-07-05 17:04:39 +02:00
Miguel de0e3ce5f0 Eliminacion de LinearAxisMotor por solo velocity y fricciones normales en los cuerpos 2025-07-05 15:24:54 +02:00
Miguel 3eee0e3d9b Se ajustó el coeficiente de fricción en múltiples secciones del archivo BEPU, reduciéndolo de 0.3f a 0.01f para mejorar la simulación de transportes y curvas. Además, se corrigió el acceso al factor de conversión de velocidad, reemplazando la constante por una propiedad estática en simBase. Se eliminaron métodos obsoletos relacionados con la configuración de velocidad en simCurve y simTransporte, optimizando la lógica de actualización de motores. 2025-07-04 23:20:53 +02:00
Miguel a6cbd8c4ab Se realizaron mejoras en la gestión de barreras en el sistema de simulación. Se eliminó la dependencia de cuerpos físicos para las barreras, implementando un sistema de detección basado en RayCast. Se actualizaron los métodos de creación y actualización de barreras, así como su visualización en 3D, optimizando la representación del haz de luz. Además, se simplificó la lógica de detección y se eliminaron métodos obsoletos relacionados con la geometría de barreras. 2025-07-04 22:45:26 +02:00
Miguel 095228144a Se comentaron líneas de depuración en el archivo BEPU para mejorar la legibilidad y evitar la salida innecesaria de información durante la ejecución. Estos cambios no afectan la lógica del programa, pero optimizan el rendimiento al reducir el ruido en los registros de depuración. 2025-07-04 10:20:10 +02:00
Miguel ab8066d1e8 Se añadieron nuevas propiedades y métodos en BEPU para gestionar la velocidad de las curvas en metros por segundo, incluyendo la capacidad de invertir y detener la curva. Se simplificó la lógica de configuración de velocidad y se corrigió el uso de la propiedad SpeedMetersPerSecond en la creación de motores dinámicos. Además, se eliminaron comentarios y código obsoleto, optimizando la estructura del archivo. 2025-07-03 23:50:20 +02:00
Miguel f431ede7bd Se añadió una referencia al SimulationManagerBEPU en las clases simTransporte y simCurve. Se implementaron nuevos métodos para limpiar restricciones de botellas conectadas antes de eliminar cuerpos y para obtener botellas conectadas a un elemento específico. Además, se simplificó el método RemoverBody y se mejoró la gestión de restricciones internas, optimizando la lógica de eliminación y limpieza de datos. 2025-07-03 23:11:48 +02:00
Miguel a00183c4f6 Se corrigió el factor de conversión de velocidad en BEPU y se simplificó la creación de motores dinámicos, utilizando la dirección tangencial calculada. Se añadió un nuevo límite de distancia para curvas y se implementó la eliminación segura de este límite al remover motores. Además, se optimizó la lógica de actualización de motores, eliminando métodos obsoletos y mejorando la gestión de propiedades internas. 2025-07-03 21:56:25 +02:00
Miguel ba073a9e80 Se simplificó el método RemoverBody en simTransporte y simCurve, confiando en BEPU para la limpieza de constraints. Se implementaron nuevos métodos para la creación y actualización de motores, mejorando la gestión de motores dinámicos. Además, se optimizó la verificación de contacto entre botellas y transportes/curvas, y se introdujo un sistema de eliminación diferida para objetos, mejorando la seguridad y eficiencia del código. Se eliminaron métodos obsoletos relacionados con la depuración de triángulos en BEPU. 2025-07-03 17:47:21 +02:00
Miguel c1584e8d55 Se añadió una nueva librería para la simulación y se realizaron mejoras en la gestión de motores en simTransporte y simCurve. Se unificaron métodos para la creación de motores lineales y angulares, optimizando la lógica de detección de colisiones y la visualización de triángulos en 3D. Además, se corrigieron errores en la extracción de triángulos de BEPU, asegurando que se utilicen coordenadas locales para evitar transformaciones duplicadas. Se implementaron métodos para activar y desactivar el modo de depuración de triángulos, mejorando la experiencia de visualización. 2025-07-03 11:47:09 +02:00
Miguel 501f0ffb9b Implementación de un sistema simplificado para la gestión de motores en simCurve, unificando métodos y eliminando redundancias. Se introdujeron nuevas propiedades para el manejo de motores lineales y angulares, y se mejoró la creación de triángulos en la simulación. Además, se optimizó la visualización 3D extrayendo triángulos reales de BEPU y se añadieron métodos para depuración y verificación de triángulos válidos. Se eliminaron métodos y propiedades obsoletas, mejorando la eficiencia del código. 2025-07-03 01:47:46 +02:00
Miguel 4ff93a5802 Antes de cambios en simCurve 2025-07-02 23:39:22 +02:00
Miguel e38adc9f56 Se eliminaron archivos de documentación innecesarios en el proyecto y se realizaron ajustes en la visibilidad de métodos en la clase osBase, cambiando de privado a protegido. Se implementó un nuevo método para verificar las dimensiones de los descartes y se mejoró la lógica de actualización de geometrías en ucDescarte y ucGuia, utilizando un sistema inteligente para optimizar el rendimiento. Además, se corrigieron errores en la conversión de coordenadas y se restauró el factor de conversión de velocidad en BEPU. 2025-07-02 17:19:31 +02:00
Miguel fd215bc677 Intento con LinearAxisMotor 2025-07-02 15:17:50 +02:00
Miguel 3e53a51e8b Se añadió un comando para alternar la actualización 3D en MainViewModel, permitiendo habilitar o deshabilitar esta función para mejorar el rendimiento. Se implementó la lógica correspondiente en la visualización 3D y se eliminaron propiedades redundantes en varias clases, optimizando la gestión de objetos en la simulación. 2025-07-01 23:08:05 +02:00
Miguel 3773da0ee3 Se añadió un nuevo manager para la visualización 3D en MainWindow y se conectó con el simulation manager. Además, se implementaron métodos para manejar cambios de posición en ucTransporteCurvaGuias, actualizando la geometría en BEPU y sincronizando con la visualización 3D. Se mejoró la creación de guías desde dos puntos y se corrigieron errores en la actualización de curvas. 2025-07-01 20:02:23 +02:00
Miguel fbac81ec45 Codigo adaptado base aun errores 2025-07-01 19:47:10 +02:00
Miguel 121e586d53 Inicio de Migracion de 2D a 3D 2025-07-01 19:03:06 +02:00
Miguel d259f53081 Antes de cambiar Motor de Fisica 2025-06-26 19:25:44 +02:00
Miguel 2cb90ec2dc Se añadieron configuraciones para Hot Reload en CtrEditor.csproj y se ajustaron las propiedades de depuración en los grupos de configuración. En MainViewModel.cs, se corrigió un error en el tiempo de simulación. En Aether.cs, se implementaron nuevas propiedades y métodos para gestionar la presión entre botellas, mejorando la lógica de colisiones y evitando superposiciones. Estas mejoras optimizan la simulación y la interacción entre objetos. 2025-06-25 13:59:07 +02:00
Miguel 256d86aca5 Se realizaron actualizaciones en múltiples clases para mejorar la legibilidad y la organización de las propiedades. Se añadieron nuevos atributos de descripción y nombre en varias clases, como ucBasicExample, ucTransporteCurva, y ucTransporteGuias, facilitando la identificación de los elementos en la interfaz de usuario. Además, se eliminaron archivos innecesarios del proyecto y se ajustaron las categorías de propiedades para una mejor clasificación. Estas mejoras optimizan la experiencia del usuario y la gestión de los objetos en la simulación. 2025-06-24 21:35:17 +02:00
Miguel 3bc314182c Se realizaron mejoras en la clase MainViewModel al agregar espacios en blanco para mejorar la legibilidad. En TagEditorAttribute, se añadieron nuevos atributos y se implementó la lógica para manejar nombres personalizados de propiedades. En UserControlFactory, se optimizó la obtención de nombres de propiedades y se eliminaron espacios en blanco innecesarios. Finalmente, se añadió un atributo Name en ucTransporteTTop para el coeficiente de fricción, mejorando la claridad en la interfaz de usuario. 2025-06-24 17:45:47 +02:00
Miguel 6928088691 Se añadieron nuevas propiedades y métodos en el control CircularSegment para gestionar guías visuales, incluyendo la distancia, grosor y color de las guías. Se implementó la lógica para dibujar las guías en el segmento circular, mejorando la visualización y personalización del control. 2025-06-24 17:32:17 +02:00
Miguel 81329e4c09 Se añadieron nuevas propiedades y métodos en la clase ucTransporteCurvaGuias para gestionar guías curvas, incluyendo la creación y actualización de segmentos de guías. Se implementaron validaciones para el número de segmentos y se mejoró la lógica de actualización de geometrías al cambiar propiedades relevantes. 2025-06-24 17:07:37 +02:00
Miguel b6f616f6cc Agregado del control TransportCurva con Guias 2025-06-24 16:53:03 +02:00
Miguel 1449544d71 Se actualizaron las propiedades en las clases osBase, ucCustomImage y ucVMmotorSim para utilizar el nuevo atributo [property: JsonIgnore], mejorando la gestión de la serialización JSON. Además, se ajustó la configuración del serializador en StateSerializer.cs para respetar los atributos JsonIgnore, optimizando la deserialización de objetos. 2025-06-24 11:17:34 +02:00
Miguel 5c2daaeb98 Se añadió un estilo global para TreeViewItem en App.xaml para evitar errores de binding. Se actualizaron las referencias de paquetes en CtrEditor.csproj, cambiando la versión de LiveChartsCore.SkiaSharpView.WPF y añadiendo SkiaSharp.Views.WPF. Se mejoró la gestión de carga de imágenes en osBase.cs y ucCustomImage.xaml.cs, implementando un manejo de errores más robusto y estableciendo imágenes por defecto en caso de fallos. Se ajustó el XAML de ucBoolTag para mejorar la conversión de color. Se implementó un convertidor seguro para ImageSource en StateSerializer.cs, mejorando la deserialización de imágenes. 2025-06-24 10:59:58 +02:00
Miguel 3af9ad99d8 Se añadió un nuevo parámetro de ángulo en el método CrearAnimacionStoryBoardTrasnporteCircular en la clase osBase, permitiendo ajustar la dirección de la animación según el valor del ángulo. Se actualizaron las llamadas a este método en ucTransporteCurva para incluir el nuevo parámetro, mejorando la lógica de animación en función de la dirección y el ángulo proporcionado. 2025-06-23 23:40:48 +02:00
Miguel da8d0516cb Se añadió la funcionalidad para crear y actualizar animaciones de transporte circular en la clase osBase y se integró en ucTransporteCurva. Se implementaron métodos para gestionar la dirección de las animaciones y se mejoró la lógica de actualización de geometrías. Además, se realizaron ajustes en el XAML de CircularSegment para incluir un patrón visual en el Path. 2025-06-23 22:10:00 +02:00