private void OnMultiChannelMessage(MultiChannelMessage msg) { _multiChannel = msg.Value; if (_multiChannel) { LinearLinkMovementManager.ForceInitialize(); } }
protected override void OnValueChanged() { base.OnValueChanged(); if (_gantryData != null) { _gantryData.SetSlaveValue(Value); } if (!IsPneumaticTransactionEnabled) { LinearLinkMovementManager.ForceMaterialRemoval(); } }
private static void ApplyRotationPneumaticLinkAction(IMachineElementViewModel vm) { var rotVector = GetRotationDirection(vm.LinkToParent.Direction); var rotCenter = vm.Transform.Transform(new Point3D()); var tg = new Transform3DGroup(); var ar = new AxisAngleRotation3D(rotVector, 0.0); var tr = new RotateTransform3D(ar, rotCenter); var link = vm.LinkToParent as RotaryPneumaticViewModel; Action <double> setAction = (d) => ar.Angle = d; tg.Children.Add(vm.Transform); tg.Children.Add(tr); link.SetPosition = setAction; link.GetPosition = () => ar.Angle; link.ValueChanged += (s, e) => { //setAction(e ? link.OnPos : link.OffPos); var onPos = link.OnPos; var offPos = link.OffPos; var tOn = link.TOn; var tOff = link.TOff; if (link.IsGradualTransactionEnabled) { var to = e ? onPos : offPos; var t = e ? tOn : tOff; link.OnMovementStarting?.Invoke(link); link.SetPosition = (d) => { setAction(d); if (d == to) { link.OnMovementCompleted?.Invoke(link); } }; LinearLinkMovementManager.Add(link.Id, link.Pos, to, t); } else { var v = e ? onPos : offPos; link.OnMovementStarting?.Invoke(link); setAction(v); link.OnMovementCompleted?.Invoke(link); } }; vm.Transform = tg; }
private void OnArcInterpolationLinkMessage(ArcInterpolationLinkMessage msg) { if (Id == msg.LinkId) { if (IsPneumaticTransactionEnabled) { _backNotifyId = msg.BackNotifyId; LinearLinkMovementManager.Add(msg.LinkId, msg.Value, msg.Duration, msg.ArcComponentData); } else { UpdateValue(msg); } } }
private void OnLinearInterpolationLinkMessage(LinearInterpolationLinkMessage msg) { if (Id == msg.LinkId) { if (IsPneumaticTransactionEnabled) { _backNotifyId = msg.BackNotifyId; LinearLinkMovementManager.Add(msg.GroupId, msg.LinkId, Value, msg.Value, msg.Duration); } else { UpdateValue(msg); } } }
private static void ApplyRotaryPneumaticLinkAction(Transform3DGroup transformGroup, Point3D rotationCenter, RotaryPneumaticViewModel vm) { if (transformGroup != null) { var stopAnimation = new DoubleAnimation(); Vector3D vector = GetRotationDirection(vm); var ar = new AxisAngleRotation3D(vector, 0.0); var tr = new RotateTransform3D(ar, rotationCenter); var dp = AxisAngleRotation3D.AngleProperty; Action <double> setAction = (d) => ar.Angle = d; vm.SetPosition = setAction; vm.GetPosition = () => ar.Angle; transformGroup.Children.Add(tr); vm.ValueChanged += (s, e) => { var onPos = vm.OnPos; var offPos = vm.OffPos; var tOn = vm.TOn; var tOff = vm.TOff; if (vm.IsGradualTransactionEnabled) { var to = e ? onPos : offPos; var t = e ? tOn : tOff; vm.OnMovementStarting?.Invoke(vm); vm.SetPosition = (d) => { setAction(d); if (d == to) { vm.OnMovementCompleted?.Invoke(vm); } }; LinearLinkMovementManager.Add(vm.Id, vm.Pos, to, t); } else { var v = e ? onPos : offPos; vm.OnMovementStarting?.Invoke(vm); setAction(v); vm.OnMovementCompleted?.Invoke(vm); } }; } }
private void OnMoveLinearLinkMessage(MoveLinearLinkMessage msg) { if (Id == msg.LinkId) { if (IsPneumaticTransactionEnabled) { _backNotifyId = msg.BackNotifyId; LinearLinkMovementManager.Add(msg.LinkId, Value, msg.Value, msg.Duration); } else { UpdateValue(msg); LinearLinkMovementManager.ForceMaterialRemoval(); } } }
//private static void ApplyLinearPneumaticLinkAction(MachineElementViewModel vm) //{ // var tg = new Transform3DGroup(); // var tt = new TranslateTransform3D(); // var link = vm.LinkToParent as LinearPneumaticViewModel; // tg.Children.Add(vm.Transform); // tg.Children.Add(tt); // var setAction = GetSetTraslationAction(link.Direction, tt); // link.ValueChanged += (s, e) => setAction(e ? link.OnPos : link.OffPos); // vm.Transform = tg; //} private static void ApplyLinearPneumaticLinkAction(IMachineElementViewModel vm) { var tg = new Transform3DGroup(); var tt = new TranslateTransform3D(); var link = vm.LinkToParent as LinearPneumaticViewModel; tg.Children.Add(vm.Transform); tg.Children.Add(tt); var setAction = GetSetTraslationAction(link.Direction, tt); link.SetPosition = setAction; link.GetPosition = GetGetTraslationFuncion(link.Direction, tt); link.ValueChanged += (s, e) => { var onPos = link.OnPos; var offPos = link.OffPos; var tOn = link.TOn; var tOff = link.TOff; var toolActivator = link.ToolActivator; var lmevm = vm; var inserterId = link.InserterId; EvaluateLinkDataByCollision(link, e, ref onPos, offPos, ref tOn, ref tOff); if (link.IsGradualTransactionEnabled) { var to = e ? onPos : offPos; var t = e ? tOn : tOff; link.OnMovementStarting?.Invoke(link); link.SetPosition = (d) => { setAction(d); if (d == to) { link.OnMovementCompleted?.Invoke(link); if (toolActivator) { lmevm.ManageToolActivation(e); } if (inserterId > 0) { link.ManageInserter(e); } } }; LinearLinkMovementManager.Add(link.Id, link.Pos, to, t); } else { var v = e ? onPos : offPos; link.OnMovementStarting?.Invoke(link); setAction(v); link.OnMovementCompleted?.Invoke(link); if (toolActivator) { lmevm.ManageToolActivation(e); } if (inserterId > 0) { link.ManageInserter(e); } } }; vm.Transform = tg; }
private static void ApplyLinearPneumaticLinkAction(Transform3DGroup transformGroup, LinearPneumaticViewModel vm, MachineElementViewModel mevm) { if (transformGroup != null) { var tt = new TranslateTransform3D(); transformGroup.Children.Add(tt); var setAction = GetSetTraslationAction(vm, tt); vm.SetPosition = setAction; vm.GetPosition = GetGetTraslationFuncion(vm, tt); vm.ValueChanged += (s, e) => { var onPos = vm.OnPos; var offPos = vm.OffPos; var tOn = vm.TOn; var tOff = vm.TOff; var toolActivator = vm.ToolActivator; var lmevm = mevm; var inserterId = vm.InserterId; EvaluateLinkDataByCollision(vm, e, ref onPos, offPos, ref tOn, ref tOff); if (vm.IsGradualTransactionEnabled) { var to = e ? onPos : offPos; var t = e ? tOn : tOff; vm.OnMovementStarting?.Invoke(vm); vm.SetPosition = (d) => { setAction(d); if (d == to) { vm.OnMovementCompleted?.Invoke(vm); if (toolActivator) { lmevm.ManageToolActivation(e); } if (inserterId > 0) { vm.ManageInserter(e); } } }; LinearLinkMovementManager.Add(vm.Id, vm.Pos, to, t); } else { var v = e ? onPos : offPos; vm.OnMovementStarting?.Invoke(vm); setAction(v); vm.OnMovementCompleted?.Invoke(vm); if (toolActivator) { lmevm.ManageToolActivation(e); } if (inserterId > 0) { vm.ManageInserter(e); } } }; } }