| | |
| | | using Yw.Geometry; |
| | | using DevExpress.Spreadsheet; |
| | | using Yw.Geometry; |
| | | using Yw.WinFrmUI.Phart; |
| | | |
| | | namespace HStation.WinFrmUI.PhartRelation |
| | | { |
| | |
| | | { |
| | | InitializeComponent(); |
| | | this.Text = "曲线视图"; |
| | | this.WindowState = FormWindowState.Maximized; |
| | | |
| | | this.pumpVariableSpeedInfoCtrl1.SetEvent += (id, qh, qe, qp) => |
| | | this.pumpVariableSpeedChart.SetQeVisible(false); |
| | | this.pumpVariableSpeedInfoCtrl1.SetEvent += (id, hz, ex_ratio, qh, qe, qp) => |
| | | { |
| | | this.pumpVariableSpeedChart.Set(id, qh, qe, qp); |
| | | var list = this.pumpVariableSpeedInfoCtrl1.GetList(); |
| | | SetSerialParallel(list, _design_pt, _is_parallel); |
| | | this.pumpVariableSpeedChart.Set(id, hz, ex_ratio, qh, qe, qp); |
| | | ResetSectPointGrid(); |
| | | }; |
| | | |
| | | this.pumpVariableSpeedInfoCtrl1.SetInfoEvent += (id, name, color) => |
| | | this.pumpVariableSpeedInfoCtrl1.SetInfoEvent += (id, color) => |
| | | { |
| | | this.pumpVariableSpeedChart.SetInfo(id, name, color); |
| | | this.pumpVariableSpeedChart.SetInfo(id, color); |
| | | ResetSectPointGrid(); |
| | | }; |
| | | |
| | | this.pumpVariableSpeedChart.AddBySpeedEvent += () => |
| | | { |
| | | AddBySpeed(); |
| | | ResetSectPointGrid(); |
| | | }; |
| | | |
| | | this.pumpVariableSpeedChart.AddByHzEvent += () => |
| | | { |
| | | AddByHz(); |
| | | ResetSectPointGrid(); |
| | | }; |
| | | |
| | | this.pumpVariableSpeedChart.AddByPointEvent += () => |
| | | { |
| | | AddByPoint(); |
| | | ResetSectPointGrid(); |
| | | }; |
| | | |
| | | this.pumpVariableSpeedInfoCtrl1.SetDesignPointEvent += (q, h) => |
| | | { |
| | | _design_pt = new Point2d(q, h); |
| | | this.pumpVariableSpeedChart.SetDesignPt(new Point2d(q, h)); |
| | | this.pumpVariableSpeedChart.SetEquipPt(_design_pt); |
| | | ResetSectPointGrid(); |
| | | }; |
| | | |
| | | this.pumpVariableSpeedChart.OnCalcQueryPoint += (id, pt) => |
| | | { |
| | | this.pumpVariableSpeedInfoCtrl1.SetQueryInfo(id, pt); |
| | | }; |
| | | } |
| | | |
| | | private Yw.Geometry.Point2d _design_pt; |
| | | private bool _is_parallel; |
| | | |
| | | |
| | | } |
| | | |
| | | private Yw.Geometry.Point2d _design_pt; |
| | | |
| | | |
| | | /// <summary> |
| | |
| | | /// <param name="is_parallel"></param> |
| | | /// <returns></returns> |
| | | public string SetBindingData( |
| | | List<Yw.WinFrmUI.Phart.PumpVariableSpeedViewModel> list, |
| | | Yw.Geometry.Point2d design_pt, |
| | | bool is_parallel = true) |
| | | Yw.WinFrmUI.Phart.PumpVariableSpeedViewModel vm, |
| | | Yw.Geometry.Point2d design_pt) |
| | | { |
| | | if (list == null || !list.Any()) |
| | | { |
| | | return "数据为空!"; |
| | | } |
| | | |
| | | _is_parallel = is_parallel; |
| | | _design_pt = design_pt; |
| | | var vm_list = new List<Yw.WinFrmUI.Phart.PumpVariableSpeedInfoViewModel>(); |
| | | for (int i = 0; i < list.Count; i++) |
| | | { |
| | | var x = list[i]; |
| | | var vm = new Yw.WinFrmUI.Phart.PumpVariableSpeedInfoViewModel(x); |
| | | vm.Color = GetRandomColor(i); |
| | | vm.Calc(); |
| | | vm_list.Add(vm); |
| | | } |
| | | |
| | | var vm_info = new Yw.WinFrmUI.Phart.PumpVariableSpeedInfoViewModel(vm); |
| | | vm_info.IsDefault = true; |
| | | vm_info.Name = $"{vm.CurrentSpeed}({vm.CurrentHz}hz)"; |
| | | vm_info.Color = GetRandomColor(0); |
| | | vm_info.Calc(); |
| | | vm_list.Add(vm_info); |
| | | |
| | | this.pumpVariableSpeedInfoCtrl1.SetBindingData(vm_list, _design_pt); |
| | | this.pumpVariableSpeedChart.Add(vm_list, _design_pt); |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | private void ResetSectPointGrid() |
| | | { |
| | | var vm_list = this.pumpVariableSpeedChart.GetVmList(); |
| | | this.pumpVariableSpeedInfoCtrl1.SetSectPoint(vm_list); |
| | | } |
| | | |
| | | |
| | | private void AddBySpeed() |
| | | { |
| | | var list = this.pumpVariableSpeedInfoCtrl1.GetList(); |
| | | if (list == null || list.Count < 1) |
| | | { |
| | | return; |
| | | } |
| | | var index = list.Count; |
| | | var vm_def = list.First(); |
| | | var dlg = new SetValueDlg(); |
| | | dlg.SetBindingData(vm_def.RatedSpeed); |
| | | dlg.VerifyValueChanged += (speed) => |
| | | { |
| | | var hz = Math.Round(speed / vm_def.RatedSpeed * 50, 1); |
| | | if (hz > 50 || hz < 10) |
| | | { |
| | | return false; |
| | | } |
| | | var vm = new PumpVariableSpeedInfoViewModel(vm_def); |
| | | vm.Id = Guid.NewGuid().ToString(); |
| | | vm.Name = $"{speed}({hz}hz)"; |
| | | vm.Color = GetRandomColor(index); |
| | | vm.CurrentHz = hz; |
| | | vm.CurrentSpeed = speed; |
| | | vm.Calc(); |
| | | |
| | | this.pumpVariableSpeedInfoCtrl1.Add(vm); |
| | | this.pumpVariableSpeedChart.Add(vm, _design_pt); |
| | | |
| | | return true; |
| | | }; |
| | | dlg.ShowDialog(); |
| | | |
| | | } |
| | | |
| | | private void AddByHz() |
| | | { |
| | | |
| | | var list = this.pumpVariableSpeedInfoCtrl1.GetList(); |
| | | if (list == null || list.Count < 1) |
| | | { |
| | | return; |
| | | } |
| | | var index = list.Count; |
| | | var vm_def = list.First(); |
| | | var dlg = new SetValueDlg(); |
| | | dlg.VerifyValueChanged += (hz) => |
| | | { |
| | | if (hz > 50 || hz < 10) |
| | | { |
| | | return false; |
| | | } |
| | | var speed = Math.Round(hz / 50 * vm_def.RatedSpeed); |
| | | var vm = new PumpVariableSpeedInfoViewModel(vm_def); |
| | | vm.Id = Guid.NewGuid().ToString(); |
| | | vm.Name = $"{speed}({hz}hz)"; |
| | | vm.Color = GetRandomColor(index); |
| | | vm.CurrentHz = hz; |
| | | vm.CurrentSpeed = speed; |
| | | vm.Calc(); |
| | | |
| | | this.pumpVariableSpeedInfoCtrl1.Add(vm); |
| | | this.pumpVariableSpeedChart.Add(vm, _design_pt); |
| | | |
| | | return true; |
| | | }; |
| | | dlg.ShowDialog(); |
| | | } |
| | | |
| | | private void AddByPoint() |
| | | { |
| | | var list = this.pumpVariableSpeedInfoCtrl1.GetList(); |
| | | if (list == null || list.Count < 1) |
| | | { |
| | | return; |
| | | } |
| | | var index = list.Count; |
| | | var vm_def = list.First(); |
| | | |
| | | var dlg = new SetPointDlg(); |
| | | dlg.SetBindingData(); |
| | | dlg.VerifyValueChanged += (x, y) => |
| | | { |
| | | var pt = new Yw.Geometry.Point2d(x, y); |
| | | var speed = PumpCalcHelper.GetSimuValue(vm_def.Qh, pt, vm_def.RatedSpeed); |
| | | var hz = Math.Round(speed / vm_def.RatedSpeed * 50, 1); |
| | | if (hz > 50 || hz < 20) |
| | | { |
| | | return false; |
| | | } |
| | | var vm = new PumpVariableSpeedInfoViewModel(vm_def); |
| | | vm.Id = Guid.NewGuid().ToString(); |
| | | vm.Name = $"{speed}({hz}hz)"; |
| | | vm.Color = GetRandomColor(index); |
| | | vm.CurrentHz = hz; |
| | | vm.CurrentSpeed = speed; |
| | | vm.Calc(); |
| | | |
| | | this.pumpVariableSpeedInfoCtrl1.Add(vm); |
| | | this.pumpVariableSpeedChart.Add(vm, _design_pt); |
| | | return true; |
| | | }; |
| | | dlg.ShowDialog(); |
| | | } |
| | | |
| | | |
| | | #region Color |