Compare commits
No commits in common. "506ee16ae1894b330ddb95c18eafd0d72d9713aa" and "c58a264d38d1b965c467d23fef98e2cd90925540" have entirely different histories.
506ee16ae1
...
c58a264d38
|
@ -125,14 +125,11 @@
|
||||||
|
|
||||||
<ScrollViewer Grid.Row="1" x:Name="ImagenEnTrabajoScrollViewer" HorizontalScrollBarVisibility="Auto"
|
<ScrollViewer Grid.Row="1" x:Name="ImagenEnTrabajoScrollViewer" HorizontalScrollBarVisibility="Auto"
|
||||||
VerticalScrollBarVisibility="Auto" PanningMode="Both">
|
VerticalScrollBarVisibility="Auto" PanningMode="Both">
|
||||||
<Canvas x:Name="ImagenEnTrabajoCanvas" Margin="0">
|
<Canvas x:Name="ImagenEnTrabajoCanvas" Margin="400">
|
||||||
<!-- El Margin puede ser ajustado según el espacio adicional que quieras proporcionar -->
|
<!-- El Margin puede ser ajustado según el espacio adicional que quieras proporcionar -->
|
||||||
<Canvas.RenderTransform>
|
<Canvas.LayoutTransform>
|
||||||
<TransformGroup>
|
<ScaleTransform ScaleX="1" ScaleY="1" />
|
||||||
<ScaleTransform x:Name="CanvasScaleTransform" ScaleX="1" ScaleY="1" />
|
</Canvas.LayoutTransform>
|
||||||
<TranslateTransform x:Name="CanvasTranslateTransform" />
|
|
||||||
</TransformGroup>
|
|
||||||
</Canvas.RenderTransform>
|
|
||||||
</Canvas>
|
</Canvas>
|
||||||
</ScrollViewer>
|
</ScrollViewer>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
|
@ -1,13 +1,27 @@
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
|
using System.Text;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
|
using System.Windows.Data;
|
||||||
|
using System.Windows.Documents;
|
||||||
|
using System.Windows.Forms;
|
||||||
using System.Windows.Input;
|
using System.Windows.Input;
|
||||||
using System.Windows.Media;
|
using System.Windows.Media;
|
||||||
using System.Windows.Media.Imaging;
|
using System.Windows.Media.Imaging;
|
||||||
|
using System.Windows.Navigation;
|
||||||
|
using System.Windows.Shapes;
|
||||||
|
|
||||||
|
using CtrEditor.Siemens;
|
||||||
|
using static System.Runtime.InteropServices.JavaScript.JSType;
|
||||||
|
using Binding = System.Windows.Data.Binding;
|
||||||
|
using Label = System.Windows.Controls.Label;
|
||||||
using MouseEventArgs = System.Windows.Input.MouseEventArgs;
|
using MouseEventArgs = System.Windows.Input.MouseEventArgs;
|
||||||
|
using TextBox = System.Windows.Controls.TextBox;
|
||||||
using UserControl = System.Windows.Controls.UserControl;
|
using UserControl = System.Windows.Controls.UserControl;
|
||||||
|
using CheckBox = System.Windows.Controls.CheckBox;
|
||||||
|
using Orientation = System.Windows.Controls.Orientation;
|
||||||
|
using ListBox = System.Windows.Controls.ListBox;
|
||||||
using CtrEditor.ObjetosSim;
|
using CtrEditor.ObjetosSim;
|
||||||
using System.Windows.Threading;
|
|
||||||
|
|
||||||
|
|
||||||
namespace CtrEditor
|
namespace CtrEditor
|
||||||
|
@ -24,8 +38,6 @@ namespace CtrEditor
|
||||||
private bool _isDraggingCanvas = false;
|
private bool _isDraggingCanvas = false;
|
||||||
private Image imagenDeFondo;
|
private Image imagenDeFondo;
|
||||||
|
|
||||||
private DispatcherTimer _zoomTimer;
|
|
||||||
|
|
||||||
// Para los UserControl
|
// Para los UserControl
|
||||||
private Point _startPointUserControl;
|
private Point _startPointUserControl;
|
||||||
private UserControl _currentDraggingControl;
|
private UserControl _currentDraggingControl;
|
||||||
|
@ -39,7 +51,6 @@ namespace CtrEditor
|
||||||
public MainWindow()
|
public MainWindow()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
this.Loaded += MainWindow_Loaded;
|
this.Loaded += MainWindow_Loaded;
|
||||||
ImagenEnTrabajoScrollViewer.PreviewMouseWheel += ImagenEnTrabajoCanvas_MouseWheel;
|
ImagenEnTrabajoScrollViewer.PreviewMouseWheel += ImagenEnTrabajoCanvas_MouseWheel;
|
||||||
ImagenEnTrabajoCanvas.MouseDown += Canvas_MouseDown_Panning;
|
ImagenEnTrabajoCanvas.MouseDown += Canvas_MouseDown_Panning;
|
||||||
|
@ -363,41 +374,44 @@ namespace CtrEditor
|
||||||
|
|
||||||
private void Canvas_MouseMove_Panning(object sender, MouseEventArgs e)
|
private void Canvas_MouseMove_Panning(object sender, MouseEventArgs e)
|
||||||
{
|
{
|
||||||
if (_isDraggingCanvas)
|
if (_isDraggingCanvas && !_isDrawingCanvas)
|
||||||
{
|
{
|
||||||
|
// Calcula el nuevo desplazamiento basado en el movimiento del ratón
|
||||||
var currentPosition = e.GetPosition(ImagenEnTrabajoScrollViewer);
|
var currentPosition = e.GetPosition(ImagenEnTrabajoScrollViewer);
|
||||||
var dx = currentPosition.X - _lastMousePosition.X;
|
var dx = currentPosition.X - _lastMousePosition.X;
|
||||||
var dy = currentPosition.Y - _lastMousePosition.Y;
|
var dy = currentPosition.Y - _lastMousePosition.Y;
|
||||||
|
|
||||||
// Obtener la transformación actual del Canvas
|
// Ajusta el desplazamiento del ScrollViewer
|
||||||
var transform = (TranslateTransform)((TransformGroup)ImagenEnTrabajoCanvas.RenderTransform).Children.First(t => t is TranslateTransform);
|
ImagenEnTrabajoScrollViewer.ScrollToHorizontalOffset(ImagenEnTrabajoScrollViewer.HorizontalOffset - dx);
|
||||||
transform.X += dx;
|
ImagenEnTrabajoScrollViewer.ScrollToVerticalOffset(ImagenEnTrabajoScrollViewer.VerticalOffset - dy);
|
||||||
transform.Y += dy;
|
|
||||||
|
|
||||||
|
// Actualiza la posición del ratón para el próximo movimiento
|
||||||
_lastMousePosition = currentPosition;
|
_lastMousePosition = currentPosition;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ImagenEnTrabajoCanvas_MouseWheel(object sender, MouseWheelEventArgs e)
|
private void ImagenEnTrabajoCanvas_MouseWheel(object sender, MouseWheelEventArgs e)
|
||||||
{
|
{
|
||||||
var tg = (TransformGroup)ImagenEnTrabajoCanvas.RenderTransform;
|
var st = (ScaleTransform)ImagenEnTrabajoCanvas.LayoutTransform;
|
||||||
var st = (ScaleTransform)tg.Children.First(t => t is ScaleTransform);
|
|
||||||
var tt = (TranslateTransform)tg.Children.First(t => t is TranslateTransform);
|
|
||||||
|
|
||||||
double zoomFactor = e.Delta > 0 ? 1.1 : 0.9;
|
double zoomFactor = e.Delta > 0 ? 1.1 : 0.9;
|
||||||
Point cursorPosition = e.GetPosition(ImagenEnTrabajoCanvas);
|
Point cursorPosition = e.GetPosition(ImagenEnTrabajoScrollViewer);
|
||||||
|
|
||||||
// Calcular el punto focal del zoom relativo al contenido del Canvas
|
// Calcular el punto focal del zoom relativo al contenido del ScrollViewer
|
||||||
var relativeX = cursorPosition.X * st.ScaleX + tt.X;
|
var absoluteX = ImagenEnTrabajoScrollViewer.HorizontalOffset + cursorPosition.X;
|
||||||
var relativeY = cursorPosition.Y * st.ScaleY + tt.Y;
|
var absoluteY = ImagenEnTrabajoScrollViewer.VerticalOffset + cursorPosition.Y;
|
||||||
|
|
||||||
// Aplicar el zoom
|
// Aplicar el zoom
|
||||||
st.ScaleX *= zoomFactor;
|
st.ScaleX *= zoomFactor;
|
||||||
st.ScaleY *= zoomFactor;
|
st.ScaleY *= zoomFactor;
|
||||||
|
|
||||||
// Ajustar la transformación de traducción para mantener el punto de zoom centrado
|
// Calcular el nuevo desplazamiento para que el zoom se centre en la posición del cursor
|
||||||
tt.X = relativeX - cursorPosition.X * st.ScaleX;
|
ImagenEnTrabajoScrollViewer.UpdateLayout(); // Asegurarse de que el layout del ScrollViewer esté actualizado
|
||||||
tt.Y = relativeY - cursorPosition.Y * st.ScaleY;
|
var newHorizontalOffset = absoluteX * zoomFactor - cursorPosition.X;
|
||||||
|
var newVerticalOffset = absoluteY * zoomFactor - cursorPosition.Y;
|
||||||
|
|
||||||
|
// Aplicar el nuevo desplazamiento
|
||||||
|
ImagenEnTrabajoScrollViewer.ScrollToHorizontalOffset(newHorizontalOffset);
|
||||||
|
ImagenEnTrabajoScrollViewer.ScrollToVerticalOffset(newVerticalOffset);
|
||||||
|
|
||||||
e.Handled = true; // Evita el procesamiento adicional del evento
|
e.Handled = true; // Evita el procesamiento adicional del evento
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,12 @@
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
|
using System.Windows.Media.Animation;
|
||||||
using System.Windows.Media;
|
using System.Windows.Media;
|
||||||
using CommunityToolkit.Mvvm.ComponentModel;
|
using CommunityToolkit.Mvvm.ComponentModel;
|
||||||
using Newtonsoft.Json;
|
|
||||||
|
using CtrEditor.Siemens;
|
||||||
|
using CtrEditor.Simulacion;
|
||||||
|
using System.Windows.Input;
|
||||||
|
|
||||||
|
|
||||||
namespace CtrEditor.ObjetosSim
|
namespace CtrEditor.ObjetosSim
|
||||||
|
@ -14,10 +18,6 @@ namespace CtrEditor.ObjetosSim
|
||||||
|
|
||||||
public partial class osTextPlate : osBase, IosBase
|
public partial class osTextPlate : osBase, IosBase
|
||||||
{
|
{
|
||||||
[JsonIgnore]
|
|
||||||
public float offsetY;
|
|
||||||
[JsonIgnore]
|
|
||||||
public float offsetX;
|
|
||||||
|
|
||||||
public static string NombreClase()
|
public static string NombreClase()
|
||||||
{
|
{
|
||||||
|
@ -49,11 +49,11 @@ namespace CtrEditor.ObjetosSim
|
||||||
public float angulo;
|
public float angulo;
|
||||||
|
|
||||||
public override void TopChanging(float oldValue, float newValue) {
|
public override void TopChanging(float oldValue, float newValue) {
|
||||||
offsetY = newValue - oldValue;
|
UpdateChildsTop(newValue - oldValue);
|
||||||
}
|
}
|
||||||
public override void LeftChanging(float oldValue, float newValue)
|
public override void LeftChanging(float oldValue, float newValue)
|
||||||
{
|
{
|
||||||
offsetX = newValue - oldValue;
|
UpdateChildsLeft(newValue - oldValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
public osTextPlate()
|
public osTextPlate()
|
||||||
|
|
|
@ -136,7 +136,7 @@ namespace CtrEditor.ObjetosSim
|
||||||
{
|
{
|
||||||
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
||||||
// crear el objeto de simulacion
|
// crear el objeto de simulacion
|
||||||
base.ucLoaded();
|
ActualizarLeftTop();
|
||||||
SimGeometria = simulationManager.AddCircle(Diametro, GetCentro(), Mass);
|
SimGeometria = simulationManager.AddCircle(Diametro, GetCentro(), Mass);
|
||||||
}
|
}
|
||||||
public override void ucUnLoaded()
|
public override void ucUnLoaded()
|
||||||
|
|
|
@ -123,7 +123,7 @@ namespace CtrEditor.ObjetosSim
|
||||||
{
|
{
|
||||||
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
||||||
// crear el objeto de simulacion
|
// crear el objeto de simulacion
|
||||||
base.ucLoaded();
|
ActualizarLeftTop();
|
||||||
SimGeometria = simulationManager.AddCircle(Diametro, GetCentro(), Mass);
|
SimGeometria = simulationManager.AddCircle(Diametro, GetCentro(), Mass);
|
||||||
}
|
}
|
||||||
public override void ucUnLoaded()
|
public override void ucUnLoaded()
|
||||||
|
|
|
@ -153,7 +153,7 @@ namespace CtrEditor.ObjetosSim
|
||||||
{
|
{
|
||||||
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
||||||
// crear el objeto de simulacion
|
// crear el objeto de simulacion
|
||||||
base.ucLoaded();
|
ActualizarLeftTop();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -154,7 +154,7 @@ namespace CtrEditor.ObjetosSim
|
||||||
{
|
{
|
||||||
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
||||||
// crear el objeto de simulacion
|
// crear el objeto de simulacion
|
||||||
base.ucLoaded();
|
ActualizarLeftTop();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -87,7 +87,7 @@ namespace CtrEditor.ObjetosSim
|
||||||
{
|
{
|
||||||
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
||||||
// crear el objeto de simulacion
|
// crear el objeto de simulacion
|
||||||
base.ucLoaded();
|
ActualizarLeftTop();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -94,7 +94,7 @@ namespace CtrEditor.ObjetosSim
|
||||||
{
|
{
|
||||||
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
||||||
// crear el objeto de simulacion
|
// crear el objeto de simulacion
|
||||||
base.ucLoaded();
|
ActualizarLeftTop();
|
||||||
SimGeometria = simulationManager.AddDescarte(Diametro, GetCentro());
|
SimGeometria = simulationManager.AddDescarte(Diametro, GetCentro());
|
||||||
}
|
}
|
||||||
public override void ucUnLoaded()
|
public override void ucUnLoaded()
|
||||||
|
|
|
@ -62,7 +62,7 @@ namespace CtrEditor.ObjetosSim
|
||||||
{
|
{
|
||||||
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
||||||
// crear el objeto de simulacion
|
// crear el objeto de simulacion
|
||||||
base.ucLoaded();
|
ActualizarLeftTop();
|
||||||
|
|
||||||
if (_visualRepresentation is ucGuia uc)
|
if (_visualRepresentation is ucGuia uc)
|
||||||
SimGeometria = AddLine(simulationManager, uc.Guia);
|
SimGeometria = AddLine(simulationManager, uc.Guia);
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
using System.ComponentModel;
|
using System.Windows;
|
||||||
using System.Windows;
|
|
||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
using CommunityToolkit.Mvvm.ComponentModel;
|
using CommunityToolkit.Mvvm.ComponentModel;
|
||||||
|
|
||||||
using CtrEditor.Siemens;
|
using CtrEditor.Siemens;
|
||||||
using CtrEditor.Simulacion;
|
using CtrEditor.Simulacion;
|
||||||
using Xceed.Wpf.Toolkit.PropertyGrid.Attributes;
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
|
|
||||||
namespace CtrEditor.ObjetosSim
|
namespace CtrEditor.ObjetosSim
|
||||||
{
|
{
|
||||||
|
@ -13,7 +14,7 @@ namespace CtrEditor.ObjetosSim
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public partial class osTransporteCurva : osBase, IosBase
|
public partial class osTransporteCurva : osBase, IosBase
|
||||||
{
|
{
|
||||||
private osBase Motor = null;
|
private osBase _osMotor = null;
|
||||||
|
|
||||||
private simCurve Simulation_TransporteCurva;
|
private simCurve Simulation_TransporteCurva;
|
||||||
|
|
||||||
|
@ -58,32 +59,8 @@ namespace CtrEditor.ObjetosSim
|
||||||
private float radioExterno;
|
private float radioExterno;
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
private float radioInterno;
|
private float radioInterno;
|
||||||
|
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
[property: Description("Link to Motor")]
|
private string motor;
|
||||||
[property: Category("PLC link:")]
|
|
||||||
[property: ItemsSource(typeof(osBaseItemsSource<osVMmotorSim>))]
|
|
||||||
string id_Motor;
|
|
||||||
|
|
||||||
partial void OnId_MotorChanged(string value)
|
|
||||||
{
|
|
||||||
if (Motor != null)
|
|
||||||
Motor.PropertyChanged -= OnMotorPropertyChanged;
|
|
||||||
if (_mainViewModel != null && value != null && value.Length > 0)
|
|
||||||
{
|
|
||||||
Motor = (osVMmotorSim)_mainViewModel.ObjetosSimulables.FirstOrDefault(s => (s is osVMmotorSim && s.Nombre == value), null);
|
|
||||||
if (Motor != null)
|
|
||||||
Motor.PropertyChanged += OnMotorPropertyChanged;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnMotorPropertyChanged(object sender, PropertyChangedEventArgs e)
|
|
||||||
{
|
|
||||||
if (e.PropertyName == nameof(osVMmotorSim.Nombre))
|
|
||||||
{
|
|
||||||
Id_Motor = ((osVMmotorSim)sender).Nombre;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
[NotifyPropertyChangedFor(nameof(AnguloFinal))]
|
[NotifyPropertyChangedFor(nameof(AnguloFinal))]
|
||||||
|
@ -133,20 +110,20 @@ namespace CtrEditor.ObjetosSim
|
||||||
}
|
}
|
||||||
public override void UpdatePLC(PLCModel plc, int elapsedMilliseconds)
|
public override void UpdatePLC(PLCModel plc, int elapsedMilliseconds)
|
||||||
{
|
{
|
||||||
if (Motor != null)
|
if (_osMotor != null)
|
||||||
{
|
{
|
||||||
if (Motor is osVMmotorSim motor)
|
if (_osMotor is osVMmotorSim motor)
|
||||||
VelocidadActual = motor.Velocidad;
|
VelocidadActual = motor.Velocidad;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
_osMotor = ObtenerLink(Motor, typeof(osVMmotorSim));
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void ucLoaded()
|
public override void ucLoaded()
|
||||||
{
|
{
|
||||||
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
||||||
// crear el objeto de simulacion
|
// crear el objeto de simulacion
|
||||||
base.ucLoaded();
|
ActualizarLeftTop();
|
||||||
|
|
||||||
OnId_MotorChanged(Id_Motor); // Link Id_Motor = Motor
|
|
||||||
|
|
||||||
if (_visualRepresentation is ucTransporteCurva uc)
|
if (_visualRepresentation is ucTransporteCurva uc)
|
||||||
Simulation_TransporteCurva = AddCurve(RadioInterno,RadioExterno, Angulo, Angulo + Arco_en_grados);
|
Simulation_TransporteCurva = AddCurve(RadioInterno,RadioExterno, Angulo, Angulo + Arco_en_grados);
|
||||||
|
|
|
@ -1,11 +1,9 @@
|
||||||
using System.ComponentModel;
|
using System.Windows;
|
||||||
using System.Windows;
|
|
||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
using System.Windows.Media;
|
using System.Windows.Media;
|
||||||
using CommunityToolkit.Mvvm.ComponentModel;
|
using CommunityToolkit.Mvvm.ComponentModel;
|
||||||
using CtrEditor.Siemens;
|
using CtrEditor.Siemens;
|
||||||
using CtrEditor.Simulacion;
|
using CtrEditor.Simulacion;
|
||||||
using Xceed.Wpf.Toolkit.PropertyGrid.Attributes;
|
|
||||||
|
|
||||||
namespace CtrEditor.ObjetosSim
|
namespace CtrEditor.ObjetosSim
|
||||||
{
|
{
|
||||||
|
@ -14,7 +12,7 @@ namespace CtrEditor.ObjetosSim
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public partial class osTransporteGuias : osBase, IosBase
|
public partial class osTransporteGuias : osBase, IosBase
|
||||||
{
|
{
|
||||||
private osBase Motor = null;
|
private osBase _osMotor = null;
|
||||||
|
|
||||||
private simTransporte? SimGeometria;
|
private simTransporte? SimGeometria;
|
||||||
private simGuia? Guia_Superior;
|
private simGuia? Guia_Superior;
|
||||||
|
@ -26,7 +24,6 @@ namespace CtrEditor.ObjetosSim
|
||||||
return "Transporte Guias";
|
return "Transporte Guias";
|
||||||
}
|
}
|
||||||
private string nombre = NombreClase();
|
private string nombre = NombreClase();
|
||||||
|
|
||||||
public override string Nombre
|
public override string Nombre
|
||||||
{
|
{
|
||||||
get => nombre;
|
get => nombre;
|
||||||
|
@ -68,29 +65,11 @@ namespace CtrEditor.ObjetosSim
|
||||||
Color color = Colors.Blue;
|
Color color = Colors.Blue;
|
||||||
|
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
[property: Description("Link to Motor")]
|
public string motor;
|
||||||
[property: Category("PLC link:")]
|
|
||||||
[property: ItemsSource(typeof(osBaseItemsSource<osVMmotorSim>))]
|
|
||||||
string id_Motor;
|
|
||||||
|
|
||||||
partial void OnId_MotorChanged(string value)
|
partial void OnMotorChanged(string value)
|
||||||
{
|
{
|
||||||
if (Motor != null)
|
_osMotor = ObtenerLink(Motor, typeof(osVMmotorSim));
|
||||||
Motor.PropertyChanged -= OnMotorPropertyChanged;
|
|
||||||
if (_mainViewModel != null && value != null && value.Length > 0)
|
|
||||||
{
|
|
||||||
Motor = (osVMmotorSim)_mainViewModel.ObjetosSimulables.FirstOrDefault(s => (s is osVMmotorSim && s.Nombre == value), null);
|
|
||||||
if (Motor != null)
|
|
||||||
Motor.PropertyChanged += OnMotorPropertyChanged;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnMotorPropertyChanged(object sender, PropertyChangedEventArgs e)
|
|
||||||
{
|
|
||||||
if (e.PropertyName == nameof(osVMmotorSim.Nombre))
|
|
||||||
{
|
|
||||||
Id_Motor = ((osVMmotorSim)sender).Nombre;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
|
@ -133,7 +112,7 @@ namespace CtrEditor.ObjetosSim
|
||||||
{
|
{
|
||||||
UpdateRectangle(SimGeometria, uc.Transporte, Alto, Ancho, Angulo);
|
UpdateRectangle(SimGeometria, uc.Transporte, Alto, Ancho, Angulo);
|
||||||
UpdateOrCreateLine(Guia_Superior, uc.GuiaSuperior);
|
UpdateOrCreateLine(Guia_Superior, uc.GuiaSuperior);
|
||||||
UpdateOrCreateLine(Guia_Inferior, uc.GuiaInferior);
|
UpdateOrCreateLine(Guia_Inferior, uc.GuiaInferior) ;
|
||||||
|
|
||||||
SimGeometria.DistanceGuide2Guide = Alto;
|
SimGeometria.DistanceGuide2Guide = Alto;
|
||||||
SimGeometria.isBrake = esFreno;
|
SimGeometria.isBrake = esFreno;
|
||||||
|
@ -162,16 +141,19 @@ namespace CtrEditor.ObjetosSim
|
||||||
}
|
}
|
||||||
public override void UpdatePLC(PLCModel plc, int elapsedMilliseconds)
|
public override void UpdatePLC(PLCModel plc, int elapsedMilliseconds)
|
||||||
{
|
{
|
||||||
if (Motor != null)
|
if (_osMotor != null)
|
||||||
if (Motor is osVMmotorSim id_motor)
|
{
|
||||||
VelocidadActual = id_motor.Velocidad;
|
if (_osMotor is osVMmotorSim motor)
|
||||||
|
VelocidadActual = motor.Velocidad;
|
||||||
|
} else if (Motor.Length > 0)
|
||||||
|
_osMotor = ObtenerLink(Motor, typeof(osVMmotorSim));
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void ucLoaded()
|
public override void ucLoaded()
|
||||||
{
|
{
|
||||||
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
||||||
// crear el objeto de simulacion
|
// crear el objeto de simulacion
|
||||||
base.ucLoaded();
|
ActualizarLeftTop();
|
||||||
|
|
||||||
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
||||||
// crear el objeto de simulacion
|
// crear el objeto de simulacion
|
||||||
|
@ -185,7 +167,7 @@ namespace CtrEditor.ObjetosSim
|
||||||
|
|
||||||
CrearAnimacionStoryBoardTrasnporte(uc.Transporte, InvertirDireccion);
|
CrearAnimacionStoryBoardTrasnporte(uc.Transporte, InvertirDireccion);
|
||||||
}
|
}
|
||||||
OnId_MotorChanged(Id_Motor); // Link Id_Motor = Motor
|
Motor = Motor; // Forzar la busqueda
|
||||||
}
|
}
|
||||||
public override void ucUnLoaded()
|
public override void ucUnLoaded()
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
using System.ComponentModel;
|
using System.Windows;
|
||||||
using System.Windows;
|
|
||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
using System.Windows.Media;
|
using System.Windows.Media;
|
||||||
using System.Windows.Media.Animation;
|
using System.Windows.Media.Animation;
|
||||||
|
@ -7,7 +6,7 @@ using System.Windows.Shapes;
|
||||||
using CommunityToolkit.Mvvm.ComponentModel;
|
using CommunityToolkit.Mvvm.ComponentModel;
|
||||||
using CtrEditor.Siemens;
|
using CtrEditor.Siemens;
|
||||||
using CtrEditor.Simulacion;
|
using CtrEditor.Simulacion;
|
||||||
using Xceed.Wpf.Toolkit.PropertyGrid.Attributes;
|
using SkiaSharp;
|
||||||
|
|
||||||
namespace CtrEditor.ObjetosSim
|
namespace CtrEditor.ObjetosSim
|
||||||
{
|
{
|
||||||
|
@ -30,7 +29,6 @@ namespace CtrEditor.ObjetosSim
|
||||||
return "Transporte Guias Union";
|
return "Transporte Guias Union";
|
||||||
}
|
}
|
||||||
private string nombre = NombreClase();
|
private string nombre = NombreClase();
|
||||||
|
|
||||||
public override string Nombre
|
public override string Nombre
|
||||||
{
|
{
|
||||||
get => nombre;
|
get => nombre;
|
||||||
|
@ -41,59 +39,13 @@ namespace CtrEditor.ObjetosSim
|
||||||
Color color;
|
Color color;
|
||||||
|
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
[property: Description("Link to Motor A")]
|
public string motorA;
|
||||||
[property: Category("PLC link:")]
|
|
||||||
[property: ItemsSource(typeof(osBaseItemsSource<osVMmotorSim>))]
|
|
||||||
string id_MotorA;
|
|
||||||
|
|
||||||
partial void OnId_MotorAChanged(string value)
|
partial void OnMotorAChanged(string value)
|
||||||
{
|
{
|
||||||
if (_osMotorA != null)
|
_osMotorA = ObtenerLink(MotorA, typeof(osVMmotorSim));
|
||||||
_osMotorA.PropertyChanged -= OnMotorPropertyChangedA;
|
|
||||||
if (_mainViewModel != null && value != null && value.Length > 0)
|
|
||||||
{
|
|
||||||
_osMotorA = (osVMmotorSim)_mainViewModel.ObjetosSimulables.FirstOrDefault(s => (s is osVMmotorSim && s.Nombre == value), null);
|
|
||||||
if (_osMotorA != null)
|
|
||||||
_osMotorA.PropertyChanged += OnMotorPropertyChangedA;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnMotorPropertyChangedA(object sender, PropertyChangedEventArgs e)
|
|
||||||
{
|
|
||||||
if (e.PropertyName == nameof(osVMmotorSim.Nombre))
|
|
||||||
{
|
|
||||||
Id_MotorA = ((osVMmotorSim)sender).Nombre;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
[ObservableProperty]
|
|
||||||
[property: Description("Link to Motor B")]
|
|
||||||
[property: Category("PLC link:")]
|
|
||||||
[property: ItemsSource(typeof(osBaseItemsSource<osVMmotorSim>))]
|
|
||||||
string id_MotorB;
|
|
||||||
|
|
||||||
partial void OnId_MotorBChanged(string value)
|
|
||||||
{
|
|
||||||
if (_osMotorB != null)
|
|
||||||
_osMotorB.PropertyChanged -= OnMotorPropertyChangedB;
|
|
||||||
if (_mainViewModel != null && value != null && value.Length > 0)
|
|
||||||
{
|
|
||||||
_osMotorB = (osVMmotorSim)_mainViewModel.ObjetosSimulables.FirstOrDefault(s => (s is osVMmotorSim && s.Nombre == value), null);
|
|
||||||
if (_osMotorB != null)
|
|
||||||
_osMotorB.PropertyChanged += OnMotorPropertyChangedB;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnMotorPropertyChangedB(object sender, PropertyChangedEventArgs e)
|
|
||||||
{
|
|
||||||
if (e.PropertyName == nameof(osVMmotorSim.Nombre))
|
|
||||||
{
|
|
||||||
Id_MotorB = ((osVMmotorSim)sender).Nombre;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
public float velocidadActualA;
|
public float velocidadActualA;
|
||||||
|
|
||||||
|
@ -121,6 +73,15 @@ namespace CtrEditor.ObjetosSim
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[ObservableProperty]
|
||||||
|
public string motorB;
|
||||||
|
|
||||||
|
partial void OnMotorBChanged(string value)
|
||||||
|
{
|
||||||
|
_osMotorB = ObtenerLink(MotorB, typeof(osVMmotorSim));
|
||||||
|
}
|
||||||
|
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
public float velocidadActualB;
|
public float velocidadActualB;
|
||||||
|
|
||||||
|
@ -270,19 +231,24 @@ namespace CtrEditor.ObjetosSim
|
||||||
if (_osMotorA is osVMmotorSim motor)
|
if (_osMotorA is osVMmotorSim motor)
|
||||||
VelocidadActualA = motor.Velocidad;
|
VelocidadActualA = motor.Velocidad;
|
||||||
}
|
}
|
||||||
|
else if (MotorA.Length > 0)
|
||||||
|
_osMotorA = ObtenerLink(MotorA, typeof(osVMmotorSim));
|
||||||
|
|
||||||
if (_osMotorB != null)
|
if (_osMotorB != null)
|
||||||
{
|
{
|
||||||
if (_osMotorB is osVMmotorSim motor)
|
if (_osMotorB is osVMmotorSim motor)
|
||||||
VelocidadActualB = motor.Velocidad;
|
VelocidadActualB = motor.Velocidad;
|
||||||
}
|
}
|
||||||
|
else if (MotorB.Length > 0)
|
||||||
|
_osMotorB = ObtenerLink(MotorB, typeof(osVMmotorSim));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void ucLoaded()
|
public override void ucLoaded()
|
||||||
{
|
{
|
||||||
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
||||||
// crear el objeto de simulacion
|
// crear el objeto de simulacion
|
||||||
base.ucLoaded();
|
ActualizarLeftTop();
|
||||||
|
|
||||||
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
||||||
// crear el objeto de simulacion
|
// crear el objeto de simulacion
|
||||||
|
@ -311,8 +277,7 @@ namespace CtrEditor.ObjetosSim
|
||||||
TransportsVelocidad.Add(uc.TransporteB, new FloatReference(() => VelocidadActualB, value => VelocidadActualB = value));
|
TransportsVelocidad.Add(uc.TransporteB, new FloatReference(() => VelocidadActualB, value => VelocidadActualB = value));
|
||||||
|
|
||||||
}
|
}
|
||||||
OnId_MotorAChanged(Id_MotorA); // Link Id_Motor = Motor
|
OnMotorAChanged(MotorA);
|
||||||
OnId_MotorBChanged(Id_MotorB); // Link Id_Motor = Motor
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,18 @@
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
|
using System.Windows.Media.Animation;
|
||||||
|
using System.Windows.Media;
|
||||||
using CommunityToolkit.Mvvm.ComponentModel;
|
using CommunityToolkit.Mvvm.ComponentModel;
|
||||||
|
|
||||||
using CtrEditor.Siemens;
|
using CtrEditor.Siemens;
|
||||||
using CtrEditor.Simulacion;
|
using CtrEditor.Simulacion;
|
||||||
|
using System.Windows.Input;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using System.Collections.Generic;
|
||||||
using Xceed.Wpf.Toolkit.PropertyGrid.Attributes;
|
using Xceed.Wpf.Toolkit.PropertyGrid.Attributes;
|
||||||
|
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
|
using System.Xml.Linq;
|
||||||
|
|
||||||
namespace CtrEditor.ObjetosSim
|
namespace CtrEditor.ObjetosSim
|
||||||
{
|
{
|
||||||
|
@ -152,8 +160,8 @@ namespace CtrEditor.ObjetosSim
|
||||||
{
|
{
|
||||||
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
||||||
// crear el objeto de simulacion
|
// crear el objeto de simulacion
|
||||||
base.ucLoaded();
|
ActualizarLeftTop();
|
||||||
OnId_MotorChanged(Id_Motor); // Link Id_Motor = Motor
|
OnId_MotorChanged(Id_Motor);
|
||||||
|
|
||||||
if (_visualRepresentation is ucTransporteTTop uc)
|
if (_visualRepresentation is ucTransporteTTop uc)
|
||||||
{
|
{
|
||||||
|
|
|
@ -107,7 +107,7 @@ namespace CtrEditor.ObjetosSim
|
||||||
{
|
{
|
||||||
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
||||||
// crear el objeto de simulacion
|
// crear el objeto de simulacion
|
||||||
base.ucLoaded();
|
ActualizarLeftTop();
|
||||||
OnVelocidadChanged(Velocidad);
|
OnVelocidadChanged(Velocidad);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,7 @@ using Size = System.Drawing.Size;
|
||||||
using Ookii.Dialogs.Wpf;
|
using Ookii.Dialogs.Wpf;
|
||||||
using Rect = System.Windows.Rect;
|
using Rect = System.Windows.Rect;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using Newtonsoft.Json;
|
|
||||||
|
|
||||||
namespace CtrEditor.ObjetosSim.Extraccion_Datos
|
namespace CtrEditor.ObjetosSim.Extraccion_Datos
|
||||||
{
|
{
|
||||||
|
@ -28,11 +28,6 @@ namespace CtrEditor.ObjetosSim.Extraccion_Datos
|
||||||
|
|
||||||
public partial class osBuscarCoincidencias : osBase, IosBase
|
public partial class osBuscarCoincidencias : osBase, IosBase
|
||||||
{
|
{
|
||||||
[JsonIgnore]
|
|
||||||
public float offsetY;
|
|
||||||
[JsonIgnore]
|
|
||||||
public float offsetX;
|
|
||||||
|
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
List<Rect> search_rectangles;
|
List<Rect> search_rectangles;
|
||||||
|
|
||||||
|
@ -89,11 +84,11 @@ namespace CtrEditor.ObjetosSim.Extraccion_Datos
|
||||||
|
|
||||||
public override void TopChanging(float oldValue, float newValue)
|
public override void TopChanging(float oldValue, float newValue)
|
||||||
{
|
{
|
||||||
offsetY = newValue - oldValue;
|
UpdateChildsTop(newValue - oldValue);
|
||||||
}
|
}
|
||||||
public override void LeftChanging(float oldValue, float newValue)
|
public override void LeftChanging(float oldValue, float newValue)
|
||||||
{
|
{
|
||||||
offsetX = newValue - oldValue;
|
UpdateChildsLeft(newValue - oldValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
|
|
|
@ -113,7 +113,7 @@ namespace CtrEditor.ObjetosSim
|
||||||
{
|
{
|
||||||
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
||||||
// crear el objeto de simulacion
|
// crear el objeto de simulacion
|
||||||
base.ucLoaded();
|
ActualizarLeftTop();
|
||||||
}
|
}
|
||||||
public override void ucUnLoaded()
|
public override void ucUnLoaded()
|
||||||
{
|
{
|
||||||
|
|
|
@ -3,10 +3,9 @@ using CtrEditor.Siemens;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
using System.Windows.Media;
|
using System.Windows.Media;
|
||||||
|
using Newtonsoft.Json;
|
||||||
using CommunityToolkit.Mvvm.ComponentModel;
|
using CommunityToolkit.Mvvm.ComponentModel;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using Xceed.Wpf.Toolkit.PropertyGrid.Attributes;
|
|
||||||
using System.ComponentModel;
|
|
||||||
|
|
||||||
namespace CtrEditor.ObjetosSim
|
namespace CtrEditor.ObjetosSim
|
||||||
{
|
{
|
||||||
|
@ -15,7 +14,7 @@ namespace CtrEditor.ObjetosSim
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public partial class osGearEncoder : osBase, IosBase
|
public partial class osGearEncoder : osBase, IosBase
|
||||||
{
|
{
|
||||||
private osBase Motor = null;
|
private osBase _osMotor = null;
|
||||||
private Stopwatch Stopwatch = new Stopwatch();
|
private Stopwatch Stopwatch = new Stopwatch();
|
||||||
private double stopwatch_last = 0;
|
private double stopwatch_last = 0;
|
||||||
|
|
||||||
|
@ -97,31 +96,12 @@ namespace CtrEditor.ObjetosSim
|
||||||
public float ancho_Dientes;
|
public float ancho_Dientes;
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
public float giros_segundo_a_100;
|
public float giros_segundo_a_100;
|
||||||
|
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
[property: Description("Link to Motor")]
|
public string motor;
|
||||||
[property: Category("PLC link:")]
|
|
||||||
[property: ItemsSource(typeof(osBaseItemsSource<osVMmotorSim>))]
|
|
||||||
string id_Motor;
|
|
||||||
|
|
||||||
partial void OnId_MotorChanged(string value)
|
partial void OnMotorChanged(string value)
|
||||||
{
|
{
|
||||||
if (Motor != null)
|
_osMotor = ObtenerLink(Motor, typeof(osVMmotorSim));
|
||||||
Motor.PropertyChanged -= OnMotorPropertyChanged;
|
|
||||||
if (_mainViewModel != null && value != null && value.Length > 0)
|
|
||||||
{
|
|
||||||
Motor = (osVMmotorSim)_mainViewModel.ObjetosSimulables.FirstOrDefault(s => (s is osVMmotorSim && s.Nombre == value), null);
|
|
||||||
if (Motor != null)
|
|
||||||
Motor.PropertyChanged += OnMotorPropertyChanged;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnMotorPropertyChanged(object sender, PropertyChangedEventArgs e)
|
|
||||||
{
|
|
||||||
if (e.PropertyName == nameof(osVMmotorSim.Nombre))
|
|
||||||
{
|
|
||||||
Id_Motor = ((osVMmotorSim)sender).Nombre;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public osGearEncoder()
|
public osGearEncoder()
|
||||||
|
@ -141,9 +121,9 @@ namespace CtrEditor.ObjetosSim
|
||||||
}
|
}
|
||||||
public override void UpdatePLC(PLCModel plc, int elapsedMilliseconds)
|
public override void UpdatePLC(PLCModel plc, int elapsedMilliseconds)
|
||||||
{
|
{
|
||||||
if (Motor != null)
|
if (_osMotor != null)
|
||||||
{
|
{
|
||||||
if (Motor is osVMmotorSim motor)
|
if (_osMotor is osVMmotorSim motor)
|
||||||
{
|
{
|
||||||
VelocidadActual = motor.Velocidad;
|
VelocidadActual = motor.Velocidad;
|
||||||
|
|
||||||
|
@ -159,7 +139,8 @@ namespace CtrEditor.ObjetosSim
|
||||||
// Actualizar el ángulo
|
// Actualizar el ángulo
|
||||||
Angulo = (Angulo + incrementoAngulo) % 360;
|
Angulo = (Angulo + incrementoAngulo) % 360;
|
||||||
}
|
}
|
||||||
}
|
} else if (Motor.Length>0)
|
||||||
|
_osMotor = ObtenerLink(Motor, typeof(osVMmotorSim));
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool DetectarDiente()
|
public bool DetectarDiente()
|
||||||
|
@ -209,8 +190,8 @@ namespace CtrEditor.ObjetosSim
|
||||||
{
|
{
|
||||||
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
||||||
// crear el objeto de simulacion
|
// crear el objeto de simulacion
|
||||||
base.ucLoaded();
|
ActualizarLeftTop();
|
||||||
OnId_MotorChanged(Id_Motor); // Link Id_Motor = Motor
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -69,7 +69,7 @@ namespace CtrEditor.ObjetosSim
|
||||||
{
|
{
|
||||||
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
||||||
// crear el objeto de simulacion
|
// crear el objeto de simulacion
|
||||||
base.ucLoaded();
|
ActualizarLeftTop();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -94,7 +94,7 @@ namespace CtrEditor.ObjetosSim
|
||||||
{
|
{
|
||||||
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
||||||
// crear el objeto de simulacion
|
// crear el objeto de simulacion
|
||||||
base.ucLoaded();
|
ActualizarLeftTop();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,7 +70,7 @@ namespace CtrEditor.ObjetosSim
|
||||||
{
|
{
|
||||||
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
||||||
// crear el objeto de simulacion
|
// crear el objeto de simulacion
|
||||||
base.ucLoaded();
|
ActualizarLeftTop();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,7 +38,7 @@ namespace CtrEditor.ObjetosSim
|
||||||
{
|
{
|
||||||
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
||||||
// crear el objeto de simulacion
|
// crear el objeto de simulacion
|
||||||
base.ucLoaded();
|
ActualizarLeftTop();
|
||||||
|
|
||||||
//if (_visualRepresentation is ucConsensGeneric uc)
|
//if (_visualRepresentation is ucConsensGeneric uc)
|
||||||
// Tags = UserControlFactory.CargarPropiedadesosDatosTags(Consensos, uc.PanelEdicion, null);
|
// Tags = UserControlFactory.CargarPropiedadesosDatosTags(Consensos, uc.PanelEdicion, null);
|
||||||
|
|
|
@ -119,7 +119,7 @@ namespace CtrEditor.ObjetosSim
|
||||||
{
|
{
|
||||||
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
||||||
// crear el objeto de simulacion
|
// crear el objeto de simulacion
|
||||||
base.ucLoaded();
|
ActualizarLeftTop();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -121,42 +121,32 @@ namespace CtrEditor.ObjetosSim
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
[property: Description("This is a link to a faceplate. It works like an anchor.")]
|
[property: Description("This is a link to a faceplate. It works like an anchor.")]
|
||||||
[property: Category("Group:")]
|
[property: Category("Group:")]
|
||||||
[property: ItemsSource(typeof(osBaseItemsSource<osTextPlate>))]
|
|
||||||
private string group_Panel;
|
private string group_Panel;
|
||||||
|
|
||||||
[JsonIgnore]
|
protected void UpdateChildsTop(float offsetY)
|
||||||
private osTextPlate TextPlate;
|
|
||||||
[JsonIgnore]
|
|
||||||
private bool isUpdatingFromTextPlate = false;
|
|
||||||
|
|
||||||
partial void OnGroup_PanelChanged(string value)
|
|
||||||
{
|
{
|
||||||
if (TextPlate != null)
|
if (!string.IsNullOrEmpty(Nombre) && _mainViewModel != null)
|
||||||
TextPlate.PropertyChanged -= OnTextPlatePropertyChanged;
|
|
||||||
if (_mainViewModel != null && value != null && value.Length > 0)
|
|
||||||
{
|
{
|
||||||
TextPlate = (osTextPlate)_mainViewModel.ObjetosSimulables.FirstOrDefault(s => (s is osTextPlate && s.Nombre == value), null);
|
foreach (var objetoSimulable in _mainViewModel.ObjetosSimulables)
|
||||||
if (TextPlate != null)
|
{
|
||||||
TextPlate.PropertyChanged += OnTextPlatePropertyChanged;
|
if (objetoSimulable != this && objetoSimulable.Group_Panel == Nombre)
|
||||||
|
{
|
||||||
|
objetoSimulable.Top += offsetY;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
protected void UpdateChildsLeft(float offsetX)
|
||||||
private void OnTextPlatePropertyChanged(object sender, PropertyChangedEventArgs e)
|
|
||||||
{
|
{
|
||||||
if (!isUpdatingFromTextPlate)
|
if (!string.IsNullOrEmpty(Nombre) && _mainViewModel != null)
|
||||||
{
|
{
|
||||||
isUpdatingFromTextPlate = true;
|
foreach (var objetoSimulable in _mainViewModel.ObjetosSimulables)
|
||||||
|
{
|
||||||
if (e.PropertyName == nameof(osTextPlate.Nombre))
|
if (objetoSimulable != this && objetoSimulable.Group_Panel == Nombre)
|
||||||
Group_Panel = ((osTextPlate)sender).Nombre;
|
{
|
||||||
|
objetoSimulable.Left += offsetX;
|
||||||
if (e.PropertyName == nameof(osTextPlate.Top))
|
}
|
||||||
Top += ((osTextPlate)sender).offsetY;
|
}
|
||||||
|
|
||||||
if (e.PropertyName == nameof(osTextPlate.Left))
|
|
||||||
Left += ((osTextPlate)sender).offsetX;
|
|
||||||
|
|
||||||
isUpdatingFromTextPlate = false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -391,7 +381,6 @@ namespace CtrEditor.ObjetosSim
|
||||||
public virtual void ucLoaded()
|
public virtual void ucLoaded()
|
||||||
{
|
{
|
||||||
ActualizarLeftTop();
|
ActualizarLeftTop();
|
||||||
OnGroup_PanelChanged(Group_Panel); // Establece el link y se suscribe a los eventos
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -454,6 +443,28 @@ namespace CtrEditor.ObjetosSim
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public virtual void UpdatePLCPrimerCiclo() { }
|
public virtual void UpdatePLCPrimerCiclo() { }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Crea una conexion entre los osBase segun el NameLink sea igual al nombre de algun osBase siempre que se cumpla
|
||||||
|
/// con el requisito que el osBase encontrado sea de tipo tipoOsBase
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="NameLink"></param>
|
||||||
|
/// <param name="tipoOsBase"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
protected osBase ObtenerLink(string NameLink, Type tipoOsBase)
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrEmpty(NameLink) && _mainViewModel != null)
|
||||||
|
{
|
||||||
|
foreach (var objetoSimulable in _mainViewModel.ObjetosSimulables)
|
||||||
|
{
|
||||||
|
if (tipoOsBase.IsInstanceOfType(objetoSimulable) && objetoSimulable.Nombre == NameLink)
|
||||||
|
{
|
||||||
|
return objetoSimulable;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
protected Storyboard CrearAnimacionMultiStoryBoardTrasnporte(Rectangle transporte, bool invertirDireccion)
|
protected Storyboard CrearAnimacionMultiStoryBoardTrasnporte(Rectangle transporte, bool invertirDireccion)
|
||||||
{
|
{
|
||||||
if (_visualRepresentation == null) return null;
|
if (_visualRepresentation == null) return null;
|
||||||
|
|
|
@ -130,7 +130,7 @@ namespace CtrEditor.ObjetosSim
|
||||||
{
|
{
|
||||||
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
// El UserControl ya se ha cargado y podemos obtener las coordenadas para
|
||||||
// crear el objeto de simulacion
|
// crear el objeto de simulacion
|
||||||
base.ucLoaded();
|
ActualizarLeftTop();
|
||||||
|
|
||||||
if (_visualRepresentation is ucBasicExample uc)
|
if (_visualRepresentation is ucBasicExample uc)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue