Shuxia Ning
2024-10-29 a0a6a23b2df710e9468e921e3143cc2c09643825
曲线延长
已修改3个文件
169 ■■■■ 文件已修改
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump-main/XhsPumpMainPhartPanel.cs 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/PumpCurveExpandDlg.Designer.cs 65 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/PumpCurveExpandDlg.cs 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump-main/XhsPumpMainPhartPanel.cs
@@ -1,4 +1,5 @@
using Yw.WinFrmUI.Phart;
using Org.BouncyCastle.Asn1.X509;
using Yw.WinFrmUI.Phart;
namespace HStation.WinFrmUI.PhartRelation
{
@@ -433,7 +434,56 @@
        //复制并延长
        private void barBtnCopyAndExpand_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (_xhs_phart_diagram_ex_std_dto == null)
            {
                return;
            }
            var diagram = _xhs_phart_diagram_ex_std_dto.Diagram;
            if (diagram == null)
            {
                return;
            }
            var graph_list = diagram.GraphList;
            if (graph_list == null || !graph_list.Any())
            {
                return;
            }
            var graph_qh = graph_list.Find(x => x.GraphType == HStation.PhartRelation.eGraphType.PumpQH);
            var graph_qe = graph_list.Find(x => x.GraphType == HStation.PhartRelation.eGraphType.PumpQE);
            var graph_qp = graph_list.Find(x => x.GraphType == HStation.PhartRelation.eGraphType.PumpQP);
            if (graph_qh == null)
            {
                return;
            }
            Yw.Pump.CurveQH qh = null;
            Yw.Pump.CurveQE qe = null;
            Yw.Pump.CurveQP qp = null;
            List<Yw.Geometry.Point2d> points_qh = null, points_qe = null, points_qp = null;
            points_qh = PhartPerformCurveHelper.GetFeatPointList(graph_qh.GraphType, graph_qh.GeometryInfo, 12, null);
            qh = new Yw.Pump.CurveQH(Yw.Pump.eFeatType.Cubic, points_qh);
            if (graph_qe != null)
            {
                points_qe = PhartPerformCurveHelper.GetFeatPointList(graph_qe.GraphType, graph_qe.GeometryInfo, 12, null);
                qe = new Yw.Pump.CurveQE(Yw.Pump.eFeatType.Cubic, points_qe);
            }
            if (graph_qp != null)
            {
                points_qp = PhartPerformCurveHelper.GetFeatPointList(graph_qp.GraphType, graph_qp.GeometryInfo, 12, null);
                qp = new Yw.Pump.CurveQP(Yw.Pump.eFeatType.Cubic, points_qp);
            }
            var dlg = new PumpCurveExpandDlg();
            dlg.SetBindingData(qh, qe, qp);
            dlg.ReloadDataEvent += async (new_qh, new_qe, new_qp) =>
            {
                var other_name = $"{_xhs_phart_diagram_ex_std_dto.OtherName}-复制延长";
                var bol = await Import(other_name, new_qh, new_qe, new_qp);
                return bol;
            };
            dlg.ShowDialog();
        }
        #region 删除
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/PumpCurveExpandDlg.Designer.cs
@@ -28,6 +28,11 @@
        /// </summary>
        private void InitializeComponent()
        {
            DevExpress.XtraEditors.Repository.TrackBarLabel trackBarLabel6 = new DevExpress.XtraEditors.Repository.TrackBarLabel();
            DevExpress.XtraEditors.Repository.TrackBarLabel trackBarLabel7 = new DevExpress.XtraEditors.Repository.TrackBarLabel();
            DevExpress.XtraEditors.Repository.TrackBarLabel trackBarLabel8 = new DevExpress.XtraEditors.Repository.TrackBarLabel();
            DevExpress.XtraEditors.Repository.TrackBarLabel trackBarLabel9 = new DevExpress.XtraEditors.Repository.TrackBarLabel();
            DevExpress.XtraEditors.Repository.TrackBarLabel trackBarLabel10 = new DevExpress.XtraEditors.Repository.TrackBarLabel();
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PumpCurveExpandDlg));
            ribbon = new DevExpress.XtraBars.Ribbon.RibbonControl();
            barEditTrackBar = new DevExpress.XtraBars.BarEditItem();
@@ -37,21 +42,25 @@
            ribbonPageGroup1 = new DevExpress.XtraBars.Ribbon.RibbonPageGroup();
            repRangeTrackBar1 = new DevExpress.XtraEditors.Repository.RepositoryItemRangeTrackBar();
            pumpPerformChart1 = new Yw.WinFrmUI.Phart.PumpPerformChart();
            barEditItem1 = new DevExpress.XtraBars.BarEditItem();
            repBtnEdit = new DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit();
            barStaticItem = new DevExpress.XtraBars.BarStaticItem();
            ((System.ComponentModel.ISupportInitialize)ribbon).BeginInit();
            ((System.ComponentModel.ISupportInitialize)repTrackBar1).BeginInit();
            ((System.ComponentModel.ISupportInitialize)repRangeTrackBar1).BeginInit();
            ((System.ComponentModel.ISupportInitialize)repBtnEdit).BeginInit();
            SuspendLayout();
            // 
            // ribbon
            // 
            ribbon.ExpandCollapseItem.Id = 0;
            ribbon.ItemPanelStyle = DevExpress.XtraBars.Ribbon.RibbonItemPanelStyle.Classic;
            ribbon.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbon.ExpandCollapseItem, barEditTrackBar, barBtnSave });
            ribbon.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbon.ExpandCollapseItem, barEditTrackBar, barBtnSave, barEditItem1, barStaticItem });
            ribbon.Location = new Point(0, 0);
            ribbon.MaxItemId = 11;
            ribbon.MaxItemId = 13;
            ribbon.Name = "ribbon";
            ribbon.Pages.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPage[] { ribbonPage1 });
            ribbon.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] { repRangeTrackBar1, repTrackBar1 });
            ribbon.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] { repRangeTrackBar1, repTrackBar1, repBtnEdit });
            ribbon.RibbonStyle = DevExpress.XtraBars.Ribbon.RibbonControlStyle.TabletOffice;
            ribbon.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.False;
            ribbon.ShowDisplayOptionsMenuButton = DevExpress.Utils.DefaultBoolean.False;
@@ -66,24 +75,35 @@
            // 
            // barEditTrackBar
            // 
            barEditTrackBar.Caption = "延长比:";
            barEditTrackBar.CaptionAlignment = DevExpress.Utils.HorzAlignment.Far;
            barEditTrackBar.Edit = repTrackBar1;
            barEditTrackBar.EditValue = "100";
            barEditTrackBar.EditWidth = 200;
            barEditTrackBar.Id = 9;
            barEditTrackBar.Name = "barEditTrackBar";
            barEditTrackBar.ShowItemShortcut = DevExpress.Utils.DefaultBoolean.True;
            barEditTrackBar.EditValueChanged += barEditTrackBar_EditValueChanged;
            // 
            // repTrackBar1
            // 
            repTrackBar1.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
            repTrackBar1.LabelAppearance.Options.UseTextOptions = true;
            repTrackBar1.LabelAppearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
            trackBarLabel6.Label = "100";
            trackBarLabel6.Value = 100;
            trackBarLabel7.Label = "125";
            trackBarLabel7.Value = 125;
            trackBarLabel8.Label = "150";
            trackBarLabel8.Value = 150;
            trackBarLabel9.Label = "175";
            trackBarLabel9.Value = 175;
            trackBarLabel10.Label = "200";
            trackBarLabel10.Value = 200;
            repTrackBar1.Labels.AddRange(new DevExpress.XtraEditors.Repository.TrackBarLabel[] { trackBarLabel6, trackBarLabel7, trackBarLabel8, trackBarLabel9, trackBarLabel10 });
            repTrackBar1.Maximum = 200;
            repTrackBar1.Minimum = 100;
            repTrackBar1.Name = "repTrackBar1";
            repTrackBar1.ShowLabels = true;
            repTrackBar1.ShowValueToolTip = true;
            repTrackBar1.TickStyle = TickStyle.None;
            repTrackBar1.Name = "repTrackBar1";
            repTrackBar1.TickStyle = TickStyle.Both;
            // 
            // barBtnSave
            // 
@@ -101,6 +121,7 @@
            // 
            // ribbonPageGroup1
            // 
            ribbonPageGroup1.ItemLinks.Add(barStaticItem);
            ribbonPageGroup1.ItemLinks.Add(barEditTrackBar);
            ribbonPageGroup1.ItemLinks.Add(barBtnSave);
            ribbonPageGroup1.Name = "ribbonPageGroup1";
@@ -124,6 +145,30 @@
            pumpPerformChart1.Size = new Size(1147, 927);
            pumpPerformChart1.TabIndex = 1;
            // 
            // barEditItem1
            //
            barEditItem1.Caption = "延长比:";
            barEditItem1.Edit = repBtnEdit;
            barEditItem1.Id = 11;
            barEditItem1.Name = "barEditItem1";
            //
            // repBtnEdit
            //
            repBtnEdit.AutoHeight = false;
            repBtnEdit.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { new DevExpress.XtraEditors.Controls.EditorButton() });
            repBtnEdit.Name = "repBtnEdit";
            //
            // barStaticItem
            //
            barStaticItem.AllowHtmlText = DevExpress.Utils.DefaultBoolean.True;
            barStaticItem.Caption = "100%";
            barStaticItem.Id = 12;
            barStaticItem.ItemAppearance.Normal.FontSizeDelta = 1;
            barStaticItem.ItemAppearance.Normal.ForeColor = DevExpress.LookAndFeel.DXSkinColors.ForeColors.Hyperlink;
            barStaticItem.ItemAppearance.Normal.Options.UseFont = true;
            barStaticItem.ItemAppearance.Normal.Options.UseForeColor = true;
            barStaticItem.Name = "barStaticItem";
            //
            // PumpCurveExpandDlg
            // 
            AutoScaleDimensions = new SizeF(10F, 22F);
@@ -138,6 +183,7 @@
            ((System.ComponentModel.ISupportInitialize)ribbon).EndInit();
            ((System.ComponentModel.ISupportInitialize)repTrackBar1).EndInit();
            ((System.ComponentModel.ISupportInitialize)repRangeTrackBar1).EndInit();
            ((System.ComponentModel.ISupportInitialize)repBtnEdit).EndInit();
            ResumeLayout(false);
            PerformLayout();
        }
@@ -152,5 +198,8 @@
        private DevExpress.XtraEditors.Repository.RepositoryItemRangeTrackBar repRangeTrackBar1;
        private DevExpress.XtraBars.BarButtonItem barBtnSave;
        private Yw.WinFrmUI.Phart.PumpPerformChart pumpPerformChart1;
        private DevExpress.XtraBars.BarEditItem barEditItem1;
        private DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit repBtnEdit;
        private DevExpress.XtraBars.BarStaticItem barStaticItem;
    }
}
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/PumpCurveExpandDlg.cs
@@ -5,12 +5,13 @@
        public PumpCurveExpandDlg()
        {
            InitializeComponent();
            this.repTrackBar1.ShowValueToolTip = false;
        }
        /// <summary>
        /// 回调事件
        /// </summary>
        public event Func<Yw.Geometry.CubicSpline2d, Yw.Geometry.CubicSpline2d, Yw.Geometry.CubicSpline2d, Task<bool>> ReloadDataEvent;
        public event Func<Yw.Pump.CurveQH,  Yw.Pump.CurveQE, Yw.Pump.CurveQP, Task<bool>> ReloadDataEvent;
        private Yw.Geometry.CubicSpline2d _qh = null;
        private Yw.Geometry.CubicSpline2d _qe = null;
@@ -59,12 +60,13 @@
        private void barEditTrackBar_EditValueChanged(object sender, EventArgs e)
        {
            if (this.barEditTrackBar.EditValue is not double ratio)
        {
            if (this.barEditTrackBar.EditValue is not int ratio)
            {
                this.barStaticItem.Caption = $"X%";
                return;
            }
            this.barStaticItem.Caption = $"{ratio}%";
            var bol = Out(ratio, out Yw.Geometry.CubicSpline2d qh, out Yw.Geometry.CubicSpline2d qe, out Yw.Geometry.CubicSpline2d qp);
            if (!bol)
                return;
@@ -74,14 +76,32 @@
        private async void barBtnSave_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (this.barEditTrackBar.EditValue is not double ratio)
            if (this.barEditTrackBar.EditValue is not int ratio)
            {
                return;
            }
            var bol = Out(ratio, out Yw.Geometry.CubicSpline2d qh, out Yw.Geometry.CubicSpline2d qe, out Yw.Geometry.CubicSpline2d qp);
            if (!bol)
                return;
            var result = await this.ReloadDataEvent?.Invoke(qh, qe, qp);
            Yw.Pump.CurveQH pump_qh = null;
            Yw.Pump.CurveQE pump_qe = null;
            Yw.Pump.CurveQP pump_qp = null;
            var qh_pt_list = qh.GetPointList();
            pump_qh = new Yw.Pump.CurveQH(Yw.Pump.eFeatType.Cubic, qh_pt_list);
            if (qe != null)
            {
                var qe_pt_list = qe.GetPointList();
                pump_qe = new Yw.Pump.CurveQE(Yw.Pump.eFeatType.Cubic, qe_pt_list);
            }
            if (qp != null)
            {
                var qp_pt_list = qp.GetPointList();
                qp = new Yw.Geometry.CubicSpline2d(qp_pt_list);
                pump_qp = new Yw.Pump.CurveQP(Yw.Pump.eFeatType.Cubic, qp_pt_list);
            }
            var result = await this.ReloadDataEvent?.Invoke(pump_qh, pump_qe, pump_qp);
            if (!result)
            {
                XtraMessageBox.Show("保存失败!");
@@ -95,19 +115,25 @@
        private bool Out(double ratio, out Yw.Geometry.CubicSpline2d qh, out Yw.Geometry.CubicSpline2d qe, out Yw.Geometry.CubicSpline2d qp)
        {
            qh = _qh;
            qe = _qe;
            qp = _qp;
            if (qh == null)
            qh = null;
            qe = null;
            qp = null;
            if (_qh == null)
                return false;
            qh = new Yw.Geometry.CubicSpline2d(_qh);
            qh.MaxX = qh.MaxX * ratio / 100;
            if (qe != null)
            if (_qe != null)
            {
                qe = new Yw.Geometry.CubicSpline2d(_qe);
                qe.MaxX = qe.MaxX * ratio / 100;
            }
            if (qp != null)
            if (_qp != null)
            {
                qp = new Yw.Geometry.CubicSpline2d(_qp);
                qp.MaxX = qp.MaxX * ratio / 100;
            }
            return true;
        }