Shuxia Ning
2024-12-19 5f41b0bc190c8f7ba9b4f6d015b48b2a6039b7f8
入参
已重命名3个文件
已修改13个文件
已添加2个文件
582 ■■■■■ 文件已修改
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/01-view/PumpChartViewCtrl.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/02-edit/PumpChartEditCtrl.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/01-excel/PumpChartExcelImportCtrl.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/02-image/PumpChartImageImportCtrl.Designer.cs 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/02-image/PumpChartImageImportCtrl.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/02-image/PumpChartImageImportCtrl.resx 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/03-point/PumpChartPointImportCtrl.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/02-universal/01-view/UniversalChartViewCtrl.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/02-universal/02-edit/UniversalChartEditCtrl.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/02-universal/03-import/01-excel/UniversalChartExcelImportCtrl.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/02-universal/03-import/02-image/UniversalChartImageImportCtrl.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/HStation.WinFrmUI.PhartRelation.Core.csproj 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Phart.Core/00-calc-helper/文字/AnnoAnchorPoint.cs 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Phart.Core/00-calc-helper/文字/eTextAligment.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/00-core/PumpPoint2dExtensions.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Phart.Core/02-universal/01-view/UniversalViewChart.cs 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Phart.Core/02-universal/02-edit/UniversalEditChart.cs 369 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Phart.Core/Yw.WinFrmUI.Phart.Core.csproj 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/01-view/PumpChartViewCtrl.cs
@@ -13,7 +13,7 @@
        /// <summary>
        /// ç»‘定数据
        /// </summary>
        public void SetBindingData(HStation.Vmo.PhartDiagramRelationExtensionsVmo vmo, double nr)
        public void SetBindingData(Yw.Vmo.PhartDiagramExGraphListVmo vmo, double nr)
        {
            var vm_list = vmo.GetPumpCurveViewMdoelList();
            var vm_defult = vm_list.OrderBy(x => x.Hz).LastOrDefault();
@@ -82,15 +82,13 @@
            this.pumpChart1.SetChart(vm);
        }
        /// <summary>
        /// èŽ·å–
        /// </summary> 
        public HStation.Vmo.PhartDiagramRelationExtensionsVmo Get()
        public Yw.Vmo.PhartDiagramExGraphListVmo Get()
        {
            return new Vmo.PhartDiagramRelationExtensionsVmo();
            return new Yw.Vmo.PhartDiagramExGraphListVmo();
        }
    }
}
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/02-edit/PumpChartEditCtrl.cs
@@ -11,7 +11,7 @@
        /// <summary>
        /// ç»‘定数据
        /// </summary>  
        public void SetBindingData(HStation.Vmo.PhartDiagramRelationExtensionsVmo vmo, double nr)
        public void SetBindingData(Yw.Vmo.PhartDiagramExGraphListVmo vmo, double nr)
        { 
        }
@@ -20,9 +20,9 @@
        /// <summary>
        /// èŽ·å–
        /// </summary> 
        public HStation.Vmo.PhartDiagramRelationExtensionsVmo Get()
        public Yw.Vmo.PhartDiagramExGraphListVmo Get()
        {
            return new Vmo.PhartDiagramRelationExtensionsVmo();
            return new ();
        } 
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/01-excel/PumpChartExcelImportCtrl.cs
@@ -20,11 +20,10 @@
        /// <summary>
        /// èŽ·å–
        /// </summary> 
        public HStation.Vmo.PhartDiagramRelationExtensionsVmo Get()
        public Yw.Vmo.PhartDiagramExGraphListVmo Get()
        {
            return new Vmo.PhartDiagramRelationExtensionsVmo();
        }
            return new  ();
        }
    }
}
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/02-image/PumpChartImageImportCtrl.Designer.cs
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/02-image/PumpChartImageImportCtrl.cs
ÎļþÃû´Ó WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/02-image/UniversalChartImageImportCtrl.cs ÐÞ¸Ä
@@ -20,9 +20,9 @@
        /// <summary>
        /// èŽ·å–
        /// </summary> 
        public HStation.Vmo.PhartDiagramRelationExtensionsVmo Get()
        public Yw.Vmo.PhartDiagramExGraphListVmo Get()
        {
            return new Vmo.PhartDiagramRelationExtensionsVmo();
            return new  ();
        } 
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/02-image/PumpChartImageImportCtrl.resx
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/01-pump/03-import/03-point/PumpChartPointImportCtrl.cs
@@ -11,7 +11,7 @@
        /// <summary>
        /// ç»‘定数据
        /// </summary>  
        public void SetBindingData(double flow, double head, double speed, double? eff, double level, bool is_sxp)
        public void SetBindingData(double flow, double head, double n, double eff, double level = 1, bool is_sxp = false)
        {
        }
@@ -20,9 +20,9 @@
        /// <summary>
        /// èŽ·å–
        /// </summary> 
        public HStation.Vmo.PhartDiagramRelationExtensionsVmo Get()
        public Yw.Vmo.PhartDiagramExGraphListVmo Get()
        {
            return new Vmo.PhartDiagramRelationExtensionsVmo();
            return new ();
        } 
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/02-universal/01-view/UniversalChartViewCtrl.cs
@@ -11,7 +11,7 @@
        /// <summary>
        /// ç»‘定数据
        /// </summary> 
        public void SetBindingData(HStation.Vmo.PhartDiagramRelationExtensionsVmo vmo)
        public void SetBindingData(Yw.Vmo.PhartDiagramExGraphListVmo vmo)
        { 
        }
@@ -20,9 +20,9 @@
        /// <summary>
        /// èŽ·å–
        /// </summary> 
        public HStation.Vmo.PhartDiagramRelationExtensionsVmo Get()
        public Yw.Vmo.PhartDiagramExGraphListVmo Get()
        {
            return new Vmo.PhartDiagramRelationExtensionsVmo();
            return new ();
        } 
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/02-universal/02-edit/UniversalChartEditCtrl.cs
@@ -11,7 +11,7 @@
        /// <summary>
        /// ç»‘定数据
        /// </summary>  
        public void SetBindingData(HStation.Vmo.PhartDiagramRelationExtensionsVmo vmo)
        public void SetBindingData(Yw.Vmo.PhartDiagramExGraphListVmo vmo)
        { 
        }
@@ -20,10 +20,10 @@
        /// <summary>
        /// èŽ·å–
        /// </summary> 
        public HStation.Vmo.PhartDiagramRelationExtensionsVmo Get()
        public Yw.Vmo.PhartDiagramExGraphListVmo Get()
        {
            return new Vmo.PhartDiagramRelationExtensionsVmo();
        }
            return new();
        }
    }
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/02-universal/03-import/01-excel/UniversalChartExcelImportCtrl.cs
@@ -20,9 +20,9 @@
        /// <summary>
        /// èŽ·å–
        /// </summary> 
        public HStation.Vmo.PhartDiagramRelationExtensionsVmo Get()
        public Yw.Vmo.PhartDiagramExGraphListVmo Get()
        {
            return new Vmo.PhartDiagramRelationExtensionsVmo();
            return new ();
        } 
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/02-universal/03-import/02-image/UniversalChartImageImportCtrl.cs
@@ -20,10 +20,10 @@
        /// <summary>
        /// èŽ·å–
        /// </summary> 
        public HStation.Vmo.PhartDiagramRelationExtensionsVmo Get()
        public Yw.Vmo.PhartDiagramExGraphListVmo Get()
        {
            return new Vmo.PhartDiagramRelationExtensionsVmo();
        }
            return new();
        }
    }
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/HStation.WinFrmUI.PhartRelation.Core.csproj
@@ -85,7 +85,7 @@
    <Compile Update="01-pump\03-import\01-excel\PumpChartExcelImportCtrl.cs">
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Update="01-pump\03-import\02-image\UniversalChartImageImportCtrl.cs">
    <Compile Update="01-pump\03-import\02-image\PumpChartImageImportCtrl.cs">
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Update="01-pump\03-import\03-point\PumpChartPointImportCtrl.cs">
WinFrmUI/Yw.WinFrmUI.Phart.Core/00-calc-helper/ÎÄ×Ö/AnnoAnchorPoint.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,83 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;
namespace Eventech.Model
{
    [DataContract]
    public class AnnoAnchorPoint : Eventech.Model.FeatPoint
    {
        [DataMember]
        public string Text { get { return _str; } set { _str = value; } }
        protected string _str = null;
        [DataMember]
        public string CurveTag { get { return _curvetag; } set { _curvetag = value; } }
        protected string _curvetag = "";
        [DataMember]
        public int TextAligment { get { return _textAligment; } set { _textAligment = value; } }
        protected int _textAligment = 0;
        #region æž„造函数
        public AnnoAnchorPoint() { }
        public AnnoAnchorPoint(Eventech.Model.FeatPoint rhs)
        {
            this.X = rhs.X;
            this.Y = rhs.Y;
        }
        public AnnoAnchorPoint(AnnoAnchorPoint rhs)
        {
            this.Text = rhs.Text;
            this.CurveTag = rhs.CurveTag;
            this.TextAligment = rhs.TextAligment;
            this.X = rhs.X;
            this.Y = rhs.Y;
        }
        public AnnoAnchorPoint(string strStore)
        {
            string[] strPara_split_array = strStore.Split(',');
            this.X = Convert.ToDouble(strPara_split_array[0]);
            this.Y = Convert.ToDouble(strPara_split_array[1]);
            this.Text = strPara_split_array[2];
            this.CurveTag =  strPara_split_array[3];
            this.TextAligment = Convert.ToInt32(strPara_split_array[4]);
        }
        #endregion
        public override string ToString()
        {
            return string.Format("{0}({3}) X:{1},Y:{2}", _str, x, y, _curvetag);
        }
        public new AnnoAnchorPoint Clone()  //对外提供一个创建自身的浅表副本的能力
        {
            return new AnnoAnchorPoint(this);
        }
        public new string ToDsString()
        {
            StringBuilder sb = new StringBuilder();
            sb.AppendFormat("{0:0.00}", this.X); sb.Append(",");
            sb.AppendFormat("{0:0.00}", this.Y); sb.Append(",");
            sb.Append(this.Text); sb.Append(",");
            sb.Append(this.CurveTag); sb.Append(",");
            sb.AppendFormat("{0}", this.TextAligment);
            return sb.ToString();
        }
    }
}
WinFrmUI/Yw.WinFrmUI.Phart.Core/00-calc-helper/ÎÄ×Ö/eTextAligment.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Eventech.Model
{
    public enum eTextAligment
    {
        Right = 0,
        Bottom = 1,
        Left = 2,
        Top = 3,
        TopRight = 4
    }
}
WinFrmUI/Yw.WinFrmUI.Phart.Core/01-pump/00-core/PumpPoint2dExtensions.cs
@@ -8,6 +8,7 @@
            return series_pt;
        }
        public static DevExpress.XtraCharts.SeriesPoint ToSeriesPoint(this Yw.Geometry.Point2d pt, bool is_empty=false)
        {
            var series_pt = new DevExpress.XtraCharts.SeriesPoint(pt.X, new double[] { pt.Y });
WinFrmUI/Yw.WinFrmUI.Phart.Core/02-universal/01-view/UniversalViewChart.cs
@@ -128,11 +128,9 @@
            //设置成白板坐标
            _coordinate = new UniversalCoordinate();
            _coordinate.GridNumberX = 30;
            _coordinate.GridNumberY = 16;
            //显示的坐标线号
            _coordinate.GridNumberY = 16;
            _coordinate.StartLineNoY = 10;
            _coordinate.EndLineNoY = 15;
            //坐标最小值和间隔
            _coordinate.EndLineNoY = 15;
            _coordinate.CoordMinX = 0; _coordinate.CoordSpaceX = 1000;
            _coordinate.CoordMinY = 10; _coordinate.CoordSpaceY = 100;
        }
@@ -226,7 +224,9 @@
        /// </summary>
        public void SetBindingData(List<Yw.Geometry.Point2d> pt_list, string caption = "", string coordinate = null, Color? color = null)
        {
            _pt_list = pt_list;
            _pt_list = pt_list;
            _coordinate = UniversalCoordinate.ToModel(coordinate);
            this.chartControl1.BeginInit();
            this.chartControl1.Series.Clear();
            this.chartControl1.AnnotationRepository.Clear();
@@ -241,27 +241,33 @@
            if (color == null)
                color = PumpChartDisplay.CurveColorQH;
            AddLineSeries(caption, color.Value, _axis_x, _axis_y, _default_pane, pt_list);
            AddLineSeries( color.Value, _axis_x, _axis_y, _default_pane, pt_list);
            if (!string.IsNullOrEmpty(caption))
            {
                AddAnnotation(caption, caption, color.Value, _axis_y, _default_pane, pt_list.Last());
                AddAnnotation( caption, color.Value, _axis_y, _default_pane, pt_list.Last());
            }
            _coordinate = UniversalCoordinate.ToModel(coordinate);
            if (_coordinate == null)
            {
                SetCoordinate();
            }
            SetChartAxis();
            this.chartControl1.EndInit();
            _initial_data = true;
        }
        //是否是无效数据
        private bool IsInvalidData()
        {
            if (_pt_list == null || !_pt_list.Any())
            {
                return true;
            }
            return false;
        }
     
        #region Add Chart Data 
        private void AddPointSeries(string id, Color color, AxisXBase axis_x, AxisYBase axis_y, XYDiagramPaneBase pane, List<Yw.Geometry.Point2d> pt_list)
        private void AddPointSeries( Color color, AxisXBase axis_x, AxisYBase axis_y, XYDiagramPaneBase pane, List<Yw.Geometry.Point2d> pt_list)
        {
            if (pt_list == null || !pt_list.Any())
                return;
@@ -277,8 +283,7 @@
            view.Pane = pane;
             
            var series_pt_list = pt_list.Select(x => x.ToSeriesPoint()).ToArray();
            var series = new DevExpress.XtraCharts.Series();
            series.Tag = id;
            var series = new DevExpress.XtraCharts.Series();
            series.ShowInLegend = false;
            series.ArgumentScaleType = DevExpress.XtraCharts.ScaleType.Numerical;
            series.LabelsVisibility = DevExpress.Utils.DefaultBoolean.False;
@@ -293,7 +298,7 @@
            this.chartControl1.Series.Add(series);
        }
        private void AddLineSeries(string id, Color color, AxisXBase axis_x, AxisYBase axis_y, XYDiagramPaneBase pane, List<Yw.Geometry.Point2d> pt_list, DashStyle dash = DashStyle.Solid)
        private void AddLineSeries( Color color, AxisXBase axis_x, AxisYBase axis_y, XYDiagramPaneBase pane, List<Yw.Geometry.Point2d> pt_list, DashStyle dash = DashStyle.Solid)
        {
            if (pt_list == null || !pt_list.Any())
                return;
@@ -311,8 +316,7 @@
            view.Pane = pane;
            var series_pt_list = pt_list.Select(x => x.ToSeriesPoint()).ToArray();
            var series = new DevExpress.XtraCharts.Series();
            series.Tag = id;
            var series = new DevExpress.XtraCharts.Series();
            series.ShowInLegend = false;
            series.ArgumentScaleType = DevExpress.XtraCharts.ScaleType.Numerical;
            series.LabelsVisibility = DevExpress.Utils.DefaultBoolean.False;
@@ -326,7 +330,7 @@
            this.chartControl1.Series.Add(series);
        }
        private void AddAnnotation(string id, string caption, Color color, AxisYBase axis_y, XYDiagramPaneBase pane, Yw.Geometry.Point2d pt, double angle = -10)
        private void AddAnnotation(string caption, Color color, AxisYBase axis_y, XYDiagramPaneBase pane, Yw.Geometry.Point2d pt, double angle = -10)
        {
            if (pt == null)
                return;
@@ -348,8 +352,7 @@
            text_annotation.AutoWidth = true;
            text_annotation.BackColor = System.Drawing.Color.Transparent;
            text_annotation.Border.Color = color;
            text_annotation.ConnectorStyle = DevExpress.XtraCharts.AnnotationConnectorStyle.Line;
            text_annotation.Tag = id;
            text_annotation.ConnectorStyle = DevExpress.XtraCharts.AnnotationConnectorStyle.Line;
            text_annotation.Padding.Bottom = 1;
            text_annotation.Padding.Left = 1;
            text_annotation.Padding.Right = 1;
@@ -379,9 +382,8 @@
        /// è®¾ç½®åæ ‡
        /// </summary>
        private void SetCoordinate()
        {
            if (_pt_list == null || !_pt_list.Any())
        {
            if (IsInvalidData())
            {
                InitialCoordinate();
                return;
@@ -407,7 +409,7 @@
        /// </summary>
        private void SetChartAxis()
        {
            if (_coordinate == null)
            if (_coordinate == null || IsInvalidData())
            {
                _axis_x.Visibility = DefaultBoolean.False;
                _axis_x.GridLines.Visible = false;
@@ -478,7 +480,7 @@
                _const_line_y.Visible = true;
                _const_line_y.Title.Visible = true;
            }
            if (_pt_list == null || !_pt_list.Any())
            if (this.IsInvalidData())
                return;
            var min_x = _pt_list.Min(x => x.X);
@@ -512,7 +514,7 @@
        {
            if (!_line_visible)
                return;
            if (_pt_list == null || !_pt_list.Any())
            if (IsInvalidData())
                return;
            var min_y = _pt_list.Min(x => x.Y);
WinFrmUI/Yw.WinFrmUI.Phart.Core/02-universal/02-edit/UniversalEditChart.cs
@@ -17,11 +17,9 @@
        #region Private Variable
        private XYDiagram _diagram;
        private XYDiagramDefaultPane _default_pane;
        private AxisX _axis_x;
        private AxisY _axis_y;
        private Series _series_line;
        private Series _series_point;
        private AxisY _axis_y;
        private List<Yw.Geometry.Point2d> _point_pt_list; 
        private List<Yw.Geometry.Point2d> _line_pt_list;
@@ -114,27 +112,37 @@
            _diagram = (XYDiagram)chartControl1.Diagram;
            _default_pane=_diagram.DefaultPane;
            _axis_x = _diagram.AxisX;
            //_axis_x.SetAxisXQDisplay();
            _axis_y = _diagram.AxisY;
            //_axis_y.SetAxisYQLDisplay();
            _series_line = this.chartControl1.GetSeriesByName("SeriesLine");
            //_series_line.SetCurveQLDisplay();
            _series_point = this.chartControl1.GetSeriesByName("SeriesPoint");
            //_series_point.SetPointQLDisplay();
            _axis_x.Visibility = DefaultBoolean.False;
            _axis_x.GridLines.Visible = false;
            _axis_y.Visibility = DefaultBoolean.False;
            _axis_y.GridLines.Visible = false;
            _series_point.Visible = false;
            this.chartControl1.SetChartMonoColorDisplay();
        }
        /// <summary>
        /// åˆå§‹åŒ–坐标轴
        /// </summary>
        private void InitialCoordinate()
        {
            //设置成白板坐标
            _coordinate = new UniversalCoordinate();
            _coordinate.GridNumberX = 30;
            _coordinate.GridNumberY = 16;
            _coordinate.StartLineNoY = 10;
            _coordinate.EndLineNoY = 15;
            _coordinate.CoordMinX = 0; _coordinate.CoordSpaceX = 1000;
            _coordinate.CoordMinY = 10; _coordinate.CoordSpaceY = 100;
        }
        #endregion Initial
@@ -143,93 +151,211 @@
        /// <summary>
        /// ç»‘定数据
        /// </summary> 
        public void SetBindingData(List<Yw.Geometry.Point2d> point_pt_list, List<Yw.Geometry.Point2d> line_pt_list, string coordinate = null)
        public void SetBindingData(List<Yw.Geometry.Point2d> point_pt_list, List<Yw.Geometry.Point2d> line_pt_list, string coordinate = null, Color? color = null)
        {
            _initial_data = false;
            _point_pt_list = point_pt_list;
            _line_pt_list = line_pt_list;
            _coordinate = UniversalCoordinate.ToModel(coordinate);
            if (line_pt_list == null || !line_pt_list.Any())
            this.chartControl1.BeginInit();
            this.chartControl1.Series.Clear();
            this.chartControl1.AnnotationRepository.Clear();
            this.chartControl1.Legend.CustomItems.Clear();
            if (IsInvalidData())
            {
                _initial_data = false;
                this.chartControl1.EndInit();
                return;
            }
            if (point_pt_list == null || !point_pt_list.Any())
            {
                point_pt_list = line_pt_list.Select(x => x.Clone()).ToList();
            }
            _initial_data = true;
            UpdateChart();
        }
        #endregion
        #region Update
        /// <summary>
        /// æ›´æ–°æ›²çº¿
        /// </summary>
        public void UpdateCurve(List<Yw.Geometry.Point2d> point_pt_list)
        {
            if (point_pt_list == null || !point_pt_list.Any())
                return;
            _point_pt_list = point_pt_list;
            _line_pt_list = point_pt_list.GetFitPointList();
            UpdateChart(true);
        }
        /// <summary>
        /// æ›´æ–°å›¾è¡¨
        /// </summary>
        /// <param name="calc_coordinate">计算坐标</param>
        public void UpdateChart(bool calc_coordinate = false)
        {
            if (calc_coordinate || _coordinate == null)
            {
                //不强迫计算,就用上次更新的坐标系
                CalcCoordinate();
            }
            CalcChartAxis();
            CalcSeries();
        }
        #endregion Update
        #region Calc
        /// <summary>
        /// è®¡ç®—坐标
        /// </summary>
        public void CalcCoordinate()
        {
            if (_line_pt_list == null || _line_pt_list.Count < 4)
            {
                //设置成白板坐标
                _coordinate = new UniversalCoordinate();
                _coordinate.GridNumberX = 30;
                _coordinate.GridNumberY = 16;
                //显示的坐标线号
                _coordinate.StartLineNoY = 10;
                _coordinate.EndLineNoY = 15;
                //坐标最小值和间隔
                _coordinate.CoordMinX = 0; _coordinate.CoordSpaceX = 1000;
                _coordinate.CoordMinY = 10; _coordinate.CoordSpaceY = 100;
                return;
            }
            _coordinate = UniversalCoordinate.CalcCoordinate(_line_pt_list);
        }
        /// <summary>
        /// è®¡ç®—图表轴
        /// </summary>
        public void CalcChartAxis()
        {
            AddPointSeries(color.Value, _axis_x, _axis_y, _default_pane, _point_pt_list);
            AddLineSeries(color.Value, _axis_x, _axis_y, _default_pane, _line_pt_list);
            if (_coordinate == null)
                SetCoordinate();
            SetChartAxis();
            this.chartControl1.EndInit();
            _initial_data = true;
        }
        //是否是无效数据
        private bool IsInvalidData()
        {
            if (_point_pt_list == null || !_point_pt_list.Any())
            {
                return true;
            }
            if (_line_pt_list == null || !_line_pt_list.Any())
            {
                return true;
            }
            return false;
        }
        #region Add Chart Data
        private void AddPointSeries(Color color, AxisXBase axis_x, AxisYBase axis_y, XYDiagramPaneBase pane, List<Yw.Geometry.Point2d> pt_list)
        {
            if (pt_list == null || !pt_list.Any())
                return;
            var view = new DevExpress.XtraCharts.PointSeriesView();
            view.PointMarkerOptions.Size = 8;
            view.PointMarkerOptions.Kind = MarkerKind.Circle;
            view.PointMarkerOptions.BorderColor = color;
            view.Color = color;
            view.AxisX = axis_x;
            view.AxisY = axis_y;
            view.EmptyPointOptions.Color = Color.Transparent;
            view.Pane = pane;
            var series_pt_list = new List<SeriesPoint>();
            for (int i = 0; i < pt_list.Count; i++)
            {
                var pt = pt_list[i];
                var series_pt = new DevExpress.XtraCharts.SeriesPoint(pt.X, new double[] { pt.Y });
                series_pt_list.Add(series_pt);
            }
            var series = new DevExpress.XtraCharts.Series();
            series.ShowInLegend = false;
            series.ArgumentScaleType = DevExpress.XtraCharts.ScaleType.Numerical;
            series.LabelsVisibility = DevExpress.Utils.DefaultBoolean.False;
            series.CrosshairEnabled = DefaultBoolean.False;
            series.CrosshairLabelVisibility = DefaultBoolean.False;
            series.ToolTipEnabled = DefaultBoolean.False;
            series.SeriesPointsSorting = SortingMode.None;
            series.Visible = true;
            series.View = view;
            series.CrosshairLabelPattern = "{A}";
            series.Points.AddRange(series_pt_list);
            this.chartControl1.Series.Add(series);
        }
        private void AddLineSeries(Color color, AxisXBase axis_x, AxisYBase axis_y, XYDiagramPaneBase pane, List<Yw.Geometry.Point2d> pt_list, DashStyle dash = DashStyle.Solid)
        {
            if (pt_list == null || !pt_list.Any())
                return;
            var view = new DevExpress.XtraCharts.LineSeriesView();
            view.LineStyle.DashStyle = dash;
            view.LineStyle.LineJoin = System.Drawing.Drawing2D.LineJoin.Round;
            view.LineStyle.Thickness = 2;
            view.Color = color;
            view.EnableAntialiasing = DefaultBoolean.True;
            view.MarkerVisibility = DefaultBoolean.False;
            view.AxisX = axis_x;
            view.AxisY = axis_y;
            view.EmptyPointOptions.Color = Color.Transparent;
            view.Pane = pane;
            var series_pt_list = pt_list.Select(x => x.ToSeriesPoint()).ToArray();
            var series = new DevExpress.XtraCharts.Series();
            series.ShowInLegend = false;
            series.ArgumentScaleType = DevExpress.XtraCharts.ScaleType.Numerical;
            series.LabelsVisibility = DevExpress.Utils.DefaultBoolean.False;
            series.CrosshairEnabled = DefaultBoolean.False;
            series.ToolTipEnabled = DefaultBoolean.False;
            series.SeriesPointsSorting = SortingMode.None;
            series.Visible = true;
            series.View = view;
            series.Points.AddRange(series_pt_list);
            this.chartControl1.Series.Add(series);
        }
        private void AddAnnotation(string caption, Color color, AxisYBase axis_y, XYDiagramPaneBase pane, Yw.Geometry.Point2d pt, double angle = -10)
        {
            if (pt == null)
                return;
            var anchor_pt = pt;
            var pane_anchor_pt = new DevExpress.XtraCharts.PaneAnchorPoint();
            pane_anchor_pt.Pane = pane;
            pane_anchor_pt.AxisYCoordinate.Axis = axis_y;
            pane_anchor_pt.AxisXCoordinate.AxisValue = anchor_pt.X;
            pane_anchor_pt.AxisYCoordinate.AxisValue = anchor_pt.Y;
            var relative_position = new DevExpress.XtraCharts.RelativePosition();
            relative_position.Angle = angle;
            relative_position.ConnectorLength = 20;
            var text_annotation = new TextAnnotation();
            text_annotation.Border.Visibility = DefaultBoolean.False;
            text_annotation.AnchorPoint = pane_anchor_pt;
            text_annotation.AutoHeight = true;
            text_annotation.AutoWidth = true;
            text_annotation.BackColor = System.Drawing.Color.Transparent;
            text_annotation.Border.Color = color;
            text_annotation.ConnectorStyle = DevExpress.XtraCharts.AnnotationConnectorStyle.Line;
            text_annotation.Padding.Bottom = 1;
            text_annotation.Padding.Left = 1;
            text_annotation.Padding.Right = 1;
            text_annotation.Padding.Top = 1;
            text_annotation.RuntimeMoving = true;
            text_annotation.RuntimeAnchoring = false;
            text_annotation.RuntimeResizing = false;
            text_annotation.RuntimeRotation = false;
            text_annotation.Text = caption;
            text_annotation.TextColor = color;
            text_annotation.ShapePosition = relative_position;
            text_annotation.Visible = true;
            this.chartControl1.AnnotationRepository.Add(text_annotation);
        }
        #endregion
        #endregion
        #region Set Axis
        private double _minX, _maxX;
        private double _maxY = 0, _minY = 10000;
        /// <summary>
        /// è®¾ç½®åæ ‡
        /// </summary>
        private void SetCoordinate()
        {
            if (IsInvalidData())
            {
                InitialCoordinate();
                return;
            }
            _minX = _point_pt_list.Min(x => x.X);
            _maxX = _point_pt_list.Max(x => x.X);
            _minY = _point_pt_list.Min(x => x.Y);
            _maxY = _point_pt_list.Max(x => x.Y);
            _minX = Math.Min(_line_pt_list.Min(x => x.X), _minX);
            _maxX = Math.Min(_line_pt_list.Max(x => x.X), _maxX);
            _minY = Math.Min(_line_pt_list.Min(x => x.Y), _minY);
            _maxY = Math.Min(_line_pt_list.Max(x => x.Y), _maxY);
            _coordinate = UniversalCoordinate.CalcCoordinate(_minX, _maxX, _minY, _maxY);
            if (_coordinate == null)
                return;
            if (_coordinate.CoordMinX + _coordinate.CoordSpaceX * this._coordinate.GridNumberX < _maxX * 1.05)
            {
                _coordinate.GridNumberX++;
            }
        }
        /// <summary>
        /// è®¾ç½®å›¾è¡¨è½´
        /// </summary>
        public void SetChartAxis()
        {
            if (_coordinate == null || IsInvalidData())
            {
                _axis_x.Visibility = DefaultBoolean.False;
                _axis_x.GridLines.Visible = false;
@@ -237,52 +363,39 @@
                _axis_y.GridLines.Visible = false;
                return;
            }
            if (_line_pt_list != null && _line_pt_list.Any())
            {
            //计算刻度 X
            var axis_x_labels = new List<CustomAxisLabel>();
            var dis_x = _coordinate.CoordMinX;
            for (int i = 0; i < _coordinate.GridNumberX + 1; i++)
            {
                axis_x_labels.Add(new CustomAxisLabel(dis_x.ToString("N0"), dis_x));
                dis_x = dis_x + _coordinate.CoordSpaceX;
            }
            //流量
            if (_line_pt_list != null)
            _axis_x.CustomLabels.Clear();
            _axis_x.CustomLabels.AddRange(axis_x_labels.ToArray());
            _axis_x.Visibility = DefaultBoolean.True;
            _axis_x.GridLines.Visible = true;
            //计算刻度 Y
            var axis_y_labels = new List<CustomAxisLabel>();
            var dis_y = _coordinate.CoordMinY + _coordinate.CoordSpaceY * _coordinate.StartLineNoY;
            for (int i = _coordinate.StartLineNoY; i < _coordinate.EndLineNoY + 1; i++)
            {
                //计算刻度
                var labels = new List<CustomAxisLabel>();
                var disX = _coordinate.CoordMinX;
                for (int i = 0; i < _coordinate.GridNumberX + 1; i++)
                {
                    labels.Add(new CustomAxisLabel(disX.ToString("N0"), disX));
                    disX = disX + _coordinate.CoordSpaceX;
                }
                //坐标刻度
                _axis_x.CustomLabels.Clear();
                _axis_x.CustomLabels.AddRange(labels.ToArray());
                _axis_x.Visibility = DefaultBoolean.True;
                _axis_x.GridLines.Visible = true;
                _axis_x.SetAxisRange(_coordinate.CoordMinX, _coordinate.CoordMinX + _coordinate.GridNumberX * _coordinate.CoordSpaceX);
                axis_y_labels.Add(new CustomAxisLabel(dis_y.ToString(), dis_y));
                dis_y = dis_y + _coordinate.CoordSpaceY;
            }
            {
                //计算刻度
                var labels = new List<CustomAxisLabel>();
                var display_head = _coordinate.CoordMinY + _coordinate.CoordSpaceY * _coordinate.StartLineNoY;
                for (int i = _coordinate.StartLineNoY; i < _coordinate.EndLineNoY + 1; i++)
                {
                    labels.Add(new CustomAxisLabel(display_head.ToString(), display_head));
                    display_head = display_head + _coordinate.CoordSpaceY;
                }
            _axis_y.CustomLabels.Clear();
            _axis_y.CustomLabels.AddRange(axis_y_labels.ToArray());
            _axis_y.Visibility = DefaultBoolean.True;
            _axis_y.GridLines.Visible = true;
                _axis_y.CustomLabels.Clear();
                _axis_y.CustomLabels.AddRange(labels.ToArray());
                _axis_y.Visibility = DefaultBoolean.True;
                _axis_y.GridLines.Visible = true;
            }
            _axis_x.SetAxisRange(_coordinate.CoordMinX, _coordinate.CoordMinX + _coordinate.GridNumberX * _coordinate.CoordSpaceX);
            _axis_x.SetAxisRange(_coordinate.CoordMinX, _coordinate.DispMaxX());
            _axis_y.SetAxisRange(_coordinate.DispMinY(), _coordinate.DispMaxY());
        }
        /// <summary>
@@ -426,7 +539,7 @@
            }
            DefinePointChangedEvent?.Invoke(_point_pt_list);
            CalcChartAxis();
            SetChartAxis();
        }
        #endregion ChartEvent
WinFrmUI/Yw.WinFrmUI.Phart.Core/Yw.WinFrmUI.Phart.Core.csproj
@@ -9,6 +9,7 @@
  <ItemGroup>
    <Compile Remove="00-calc-helper\A临时资料\**" />
    <Compile Remove="00-calc-helper\文字\**" />
    <Compile Remove="00-calc-helper\等效线\**" />
    <Compile Remove="01-pump\00- - å¤åˆ¶\**" />
    <Compile Remove="01-pump\02-multi\02-work\**" />
@@ -18,6 +19,7 @@
    <Compile Remove="bak\**" />
    <Compile Remove="v2\**" />
    <EmbeddedResource Remove="00-calc-helper\A临时资料\**" />
    <EmbeddedResource Remove="00-calc-helper\文字\**" />
    <EmbeddedResource Remove="00-calc-helper\等效线\**" />
    <EmbeddedResource Remove="01-pump\00- - å¤åˆ¶\**" />
    <EmbeddedResource Remove="01-pump\02-multi\02-work\**" />
@@ -27,6 +29,7 @@
    <EmbeddedResource Remove="bak\**" />
    <EmbeddedResource Remove="v2\**" />
    <None Remove="00-calc-helper\A临时资料\**" />
    <None Remove="00-calc-helper\文字\**" />
    <None Remove="00-calc-helper\等效线\**" />
    <None Remove="01-pump\00- - å¤åˆ¶\**" />
    <None Remove="01-pump\02-multi\02-work\**" />
@@ -36,6 +39,7 @@
    <None Remove="bak\**" />
    <None Remove="v2\**" />
    <Page Remove="00-calc-helper\A临时资料\**" />
    <Page Remove="00-calc-helper\文字\**" />
    <Page Remove="00-calc-helper\等效线\**" />
    <Page Remove="01-pump\00- - å¤åˆ¶\**" />
    <Page Remove="01-pump\02-multi\02-work\**" />