Creado parametro para invertir direccion de marcha en los transportes.
This commit is contained in:
parent
09980689fb
commit
c4892b1f36
|
@ -4,6 +4,7 @@ using CommunityToolkit.Mvvm.ComponentModel;
|
||||||
using CtrEditor.Convertidores;
|
using CtrEditor.Convertidores;
|
||||||
using CtrEditor.Siemens;
|
using CtrEditor.Siemens;
|
||||||
using CtrEditor.Simulacion;
|
using CtrEditor.Simulacion;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
|
|
||||||
namespace CtrEditor.ObjetosSim
|
namespace CtrEditor.ObjetosSim
|
||||||
|
@ -13,16 +14,12 @@ namespace CtrEditor.ObjetosSim
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public partial class osTransporteCurva : osBase, IosBase
|
public partial class osTransporteCurva : osBase, IosBase
|
||||||
{
|
{
|
||||||
private float frictionCoefficient;
|
|
||||||
private float velMax50hz; // en metros por minuto
|
|
||||||
private float tiempoRampa;
|
|
||||||
private bool esMarcha;
|
|
||||||
|
|
||||||
private float _velocidadActual;
|
|
||||||
private osBase _osMotor = null;
|
private osBase _osMotor = null;
|
||||||
|
|
||||||
private simCurve Simulation_TransporteCurva;
|
private simCurve Simulation_TransporteCurva;
|
||||||
|
|
||||||
|
private float _velocidadActual;
|
||||||
|
|
||||||
public static string NombreClase()
|
public static string NombreClase()
|
||||||
{
|
{
|
||||||
return "Transporte Curva 90";
|
return "Transporte Curva 90";
|
||||||
|
@ -34,6 +31,30 @@ namespace CtrEditor.ObjetosSim
|
||||||
set => SetProperty(ref nombre, value);
|
set => SetProperty(ref nombre, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[ObservableProperty]
|
||||||
|
public float velocidadActual;
|
||||||
|
|
||||||
|
partial void OnVelocidadActualChanged(float value)
|
||||||
|
{
|
||||||
|
SetSpeed();
|
||||||
|
}
|
||||||
|
|
||||||
|
[ObservableProperty]
|
||||||
|
bool invertirDireccion;
|
||||||
|
|
||||||
|
partial void OnInvertirDireccionChanged(bool value)
|
||||||
|
{
|
||||||
|
SetSpeed();
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetSpeed()
|
||||||
|
{
|
||||||
|
if (InvertirDireccion)
|
||||||
|
Simulation_TransporteCurva?.SetSpeed(-VelocidadActual);
|
||||||
|
else
|
||||||
|
Simulation_TransporteCurva?.SetSpeed(VelocidadActual);
|
||||||
|
}
|
||||||
|
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
private float radioExterno;
|
private float radioExterno;
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
|
@ -55,30 +76,23 @@ namespace CtrEditor.ObjetosSim
|
||||||
get => Angulo+Arco_en_grados;
|
get => Angulo+Arco_en_grados;
|
||||||
}
|
}
|
||||||
|
|
||||||
public float VelocidadActual
|
|
||||||
{
|
|
||||||
get => _velocidadActual;
|
|
||||||
set
|
|
||||||
{
|
|
||||||
_velocidadActual = value;
|
|
||||||
Simulation_TransporteCurva?.SetSpeed(value);
|
|
||||||
OnPropertyChanged(nameof(VelocidadActual));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ActualizarGeometrias()
|
private void ActualizarGeometrias()
|
||||||
{
|
{
|
||||||
if (_visualRepresentation is ucTransporteCurva uc)
|
if (_visualRepresentation is ucTransporteCurva uc)
|
||||||
{
|
{
|
||||||
UpdateCurve(Simulation_TransporteCurva, RadioInterno, RadioExterno, Angulo, Angulo+Arco_en_grados);
|
UpdateCurve(Simulation_TransporteCurva, RadioInterno, RadioExterno, Angulo, Angulo+Arco_en_grados);
|
||||||
Simulation_TransporteCurva.Speed = VelocidadActual;
|
SetSpeed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public float FrictionCoefficient { get => frictionCoefficient; set => frictionCoefficient = value; }
|
[ObservableProperty]
|
||||||
public float VelMax50hz { get => velMax50hz; set => velMax50hz = value; }
|
public float frictionCoefficient;
|
||||||
public float TiempoRampa { get => tiempoRampa; set => tiempoRampa = value; }
|
[ObservableProperty]
|
||||||
public bool EsMarcha { get => esMarcha; set => esMarcha = value; }
|
public float velMax50hz;
|
||||||
|
[ObservableProperty]
|
||||||
|
public float tiempoRampa;
|
||||||
|
[ObservableProperty]
|
||||||
|
public bool esMarcha;
|
||||||
|
|
||||||
public osTransporteCurva()
|
public osTransporteCurva()
|
||||||
{
|
{
|
||||||
|
|
|
@ -31,13 +31,35 @@ namespace CtrEditor.ObjetosSim
|
||||||
}
|
}
|
||||||
|
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
private float velocidadActual;
|
public float velocidadActual;
|
||||||
|
|
||||||
partial void OnVelocidadActualChanged(float value)
|
partial void OnVelocidadActualChanged(float value)
|
||||||
{
|
{
|
||||||
SimGeometria?.SetSpeed(value);
|
SetSpeed();
|
||||||
|
}
|
||||||
|
|
||||||
|
[ObservableProperty]
|
||||||
|
bool invertirDireccion;
|
||||||
|
|
||||||
|
partial void OnInvertirDireccionChanged(bool value)
|
||||||
|
{
|
||||||
|
SetSpeed();
|
||||||
|
if (_visualRepresentation is ucTransporteGuias uc)
|
||||||
|
{
|
||||||
|
CrearAnimacionStoryBoardTrasnporte(uc.Transporte, InvertirDireccion);
|
||||||
ActualizarAnimacionStoryBoardTransporte(VelocidadActual);
|
ActualizarAnimacionStoryBoardTransporte(VelocidadActual);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetSpeed()
|
||||||
|
{
|
||||||
|
if (InvertirDireccion)
|
||||||
|
SimGeometria?.SetSpeed(-VelocidadActual);
|
||||||
|
else
|
||||||
|
SimGeometria?.SetSpeed(VelocidadActual);
|
||||||
|
ActualizarAnimacionStoryBoardTransporte(VelocidadActual);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
public string motor;
|
public string motor;
|
||||||
|
@ -141,7 +163,7 @@ namespace CtrEditor.ObjetosSim
|
||||||
Guia_Superior = AddLine(simulationManager, uc.GuiaSuperior);
|
Guia_Superior = AddLine(simulationManager, uc.GuiaSuperior);
|
||||||
Guia_Inferior = AddLine(simulationManager, uc.GuiaInferior);
|
Guia_Inferior = AddLine(simulationManager, uc.GuiaInferior);
|
||||||
|
|
||||||
CrearAnimacionStoryBoardTrasnporte(uc.Transporte);
|
CrearAnimacionStoryBoardTrasnporte(uc.Transporte, InvertirDireccion);
|
||||||
}
|
}
|
||||||
Motor = Motor; // Forzar la busqueda
|
Motor = Motor; // Forzar la busqueda
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,22 +33,37 @@ namespace CtrEditor.ObjetosSim
|
||||||
set => SetProperty(ref nombre, value);
|
set => SetProperty(ref nombre, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
private float velocidadActual;
|
[ObservableProperty]
|
||||||
public float VelocidadActual
|
public float velocidadActual;
|
||||||
|
|
||||||
|
partial void OnVelocidadActualChanged(float value)
|
||||||
{
|
{
|
||||||
get => velocidadActual;
|
SetSpeed();
|
||||||
set
|
}
|
||||||
|
|
||||||
|
[ObservableProperty]
|
||||||
|
bool invertirDireccion;
|
||||||
|
|
||||||
|
partial void OnInvertirDireccionChanged(bool value)
|
||||||
{
|
{
|
||||||
if (value != velocidadActual)
|
SetSpeed();
|
||||||
|
if (_visualRepresentation is ucTransporteTTop uc)
|
||||||
{
|
{
|
||||||
velocidadActual = value;
|
CrearAnimacionStoryBoardTrasnporte(uc.Transporte, InvertirDireccion);
|
||||||
SimGeometria?.SetSpeed(value);
|
|
||||||
SetProperty(ref velocidadActual, value);
|
|
||||||
ActualizarAnimacionStoryBoardTransporte(VelocidadActual);
|
ActualizarAnimacionStoryBoardTransporte(VelocidadActual);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SetSpeed()
|
||||||
|
{
|
||||||
|
if (InvertirDireccion)
|
||||||
|
SimGeometria?.SetSpeed(-VelocidadActual);
|
||||||
|
else
|
||||||
|
SimGeometria?.SetSpeed(VelocidadActual);
|
||||||
|
ActualizarAnimacionStoryBoardTransporte(VelocidadActual);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
public string motor;
|
public string motor;
|
||||||
|
|
||||||
|
@ -78,7 +93,7 @@ namespace CtrEditor.ObjetosSim
|
||||||
if (_visualRepresentation is ucTransporteTTop uc)
|
if (_visualRepresentation is ucTransporteTTop uc)
|
||||||
{
|
{
|
||||||
UpdateRectangle(SimGeometria, uc.Transporte,Alto,Ancho,Angulo);
|
UpdateRectangle(SimGeometria, uc.Transporte,Alto,Ancho,Angulo);
|
||||||
SimGeometria.Speed = VelocidadActual;
|
SetSpeed();
|
||||||
}
|
}
|
||||||
ActualizarAnimacionStoryBoardTransporte(VelocidadActual);
|
ActualizarAnimacionStoryBoardTransporte(VelocidadActual);
|
||||||
}
|
}
|
||||||
|
@ -120,7 +135,7 @@ namespace CtrEditor.ObjetosSim
|
||||||
if (_visualRepresentation is ucTransporteTTop uc)
|
if (_visualRepresentation is ucTransporteTTop uc)
|
||||||
{
|
{
|
||||||
SimGeometria = AddRectangle(simulationManager, uc.Transporte, Alto, Ancho, Angulo);
|
SimGeometria = AddRectangle(simulationManager, uc.Transporte, Alto, Ancho, Angulo);
|
||||||
CrearAnimacionStoryBoardTrasnporte(uc.Transporte);
|
CrearAnimacionStoryBoardTrasnporte(uc.Transporte,InvertirDireccion);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public override void ucUnLoaded()
|
public override void ucUnLoaded()
|
||||||
|
|
|
@ -23,6 +23,7 @@ using System.Windows.Input;
|
||||||
using CommunityToolkit.Mvvm.ComponentModel;
|
using CommunityToolkit.Mvvm.ComponentModel;
|
||||||
using System.Windows.Media.Animation;
|
using System.Windows.Media.Animation;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
using HarfBuzzSharp;
|
||||||
|
|
||||||
namespace CtrEditor.ObjetosSim
|
namespace CtrEditor.ObjetosSim
|
||||||
{
|
{
|
||||||
|
@ -245,16 +246,23 @@ namespace CtrEditor.ObjetosSim
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void CrearAnimacionStoryBoardTrasnporte(System.Windows.Shapes.Rectangle transporte)
|
protected void CrearAnimacionStoryBoardTrasnporte(System.Windows.Shapes.Rectangle transporte, bool invertirDireccion)
|
||||||
{
|
{
|
||||||
if (_visualRepresentation == null) return;
|
if (_visualRepresentation == null) return;
|
||||||
if (transporte == null) return;
|
if (transporte == null) return;
|
||||||
|
|
||||||
|
// Detener y eliminar el storyboard existente si hay uno
|
||||||
|
if (_storyboard != null)
|
||||||
|
{
|
||||||
|
_storyboard.Stop();
|
||||||
|
_storyboard.Children.Clear();
|
||||||
|
}
|
||||||
|
|
||||||
_storyboard = new Storyboard();
|
_storyboard = new Storyboard();
|
||||||
var animation = new DoubleAnimation
|
var animation = new DoubleAnimation
|
||||||
{
|
{
|
||||||
From = 0,
|
From = invertirDireccion ? 20 : 0,
|
||||||
To = 20, // Total Pixels Brush
|
To = invertirDireccion ? 0 : 20, // Total Pixels Brush
|
||||||
Duration = TimeSpan.FromSeconds(PixelToMeter.Instance.calc.PixelsToMeters(20) * 60),
|
Duration = TimeSpan.FromSeconds(PixelToMeter.Instance.calc.PixelsToMeters(20) * 60),
|
||||||
RepeatBehavior = RepeatBehavior.Forever
|
RepeatBehavior = RepeatBehavior.Forever
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue