From ea882c1741812b0783b2924548cb9e8c638a1be9 Mon Sep 17 00:00:00 2001
From: duheng <2784771470@qq.com>
Date: 星期二, 24 十二月 2024 13:50:36 +0800
Subject: [PATCH] 修改资产--弯头

---
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AssetsElbowFactorMgrViewModel.cs                        |   39 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/ViewAssetsElbowFactorDlg.resx                           |    0 
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/05-elbows/AssetsElbowSingleMatchingCtrl.Designer.cs |  425 +++++++
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/05-elbows/AssetsElbowSingleMatchingDlg.cs           |   52 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AssetsElbowMainMgrViewModel.cs                            |   57 
 BLL/HStation.BLL.Assets.Core/04-bll/06-Elbow/02-AssetsElbowMain/AssetsElbowMain_Instance.cs                       |   12 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main-bak/EditElbowMainDlg.cs                                   |    2 
 BLL/HStation.BLL.Assets.Core/01-interface/06-IElbowManage/IAssetsElbowMain.cs                                     |   21 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/ViewAssetsElbowFactorDlg.Designer.cs                    |    6 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main-bak/AddElbowMainDlg.cs                                    |    2 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/AddAssetsElbowSeriesDlg.resx                            |    0 
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/05-elbows/AssetsElbowSingleMatchingDlg.Designer.cs  |  127 ++
 BLL/HStation.BLL.Assets.Core/03-localclient/06-Elbow/AssetsElbowMain.cs                                           |  161 ++
 WinFrmUI/HStation.WinFrmUI.Assets.Core/HStation.WinFrmUI.Assets.Core.csproj                                       |  405 +-----
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/05-elbows/AssetsElbowSingleMatchingViewModel.cs     |  111 +
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AssetsElbowFactorMgrPage.cs                             |   67 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/EditAssetsElbowSeriesDlg.resx                           |    0 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AssetsElbowMainMgrPage.resx                               |    8 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AddAssetsElbowFactorDlg.cs                              |   24 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/HStation.WinFrmUI.Assets.Core.csproj.user                                  |  346 +++++
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/ViewAssetsElbowMainDlg.Designer.cs                        |    6 
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj.user                                        |    6 
 BLL/HStation.BLL.Assets.Core/04-bll/06-Elbow/03-AssetsElbowCoefficient/AssetsElbowMain_Instance.cs                |   17 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AddAssetsElbowMainDlg.cs                                  |   57 
 Vmo/HStation.Vmo.Assets.Core/06-Elbow/AssetsElbowSeriesVmo.cs                                                     |   44 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/AddAssetsElbowSeriesDlg.cs                              |    0 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/EditAssetsElbowFactorDlg.cs                             |   24 
 Service/HStation.Service.Assets.Core/00-core/DataType.cs                                                          |   19 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AddAssetsElbowMainDlg.Designer.cs                         |  134 +
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/01-property/SimulationPropertyCtrl.cs                           |    2 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/AssetsElbowSeriesMgrTreeCtrl.cs                         |    0 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/EditAssetsElbowSeriesDlg.Designer.cs                    |    0 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/AssetsElbowMgrPage.cs                                             |   58 
 BLL/HStation.BLL.Assets.Core/04-bll/06-Elbow/02-AssetsElbowMain/AssetsElbowMain.cs                                |  101 +
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/AssetsElbowMgrPage.Designer.cs                                    |  120 ++
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/EditAssetsElbowFactorDlg.resx                           |    0 
 Desktop/HStation.Desktop.Xhs.Core/MainForm.cs                                                                     |    2 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/ViewAssetsElbowMainDlg.cs                                 |   14 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/AssetsElbowMgrPage.resx                                           |   30 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/AssetsElbowSeriesMgrTreeCtrl.Designer.cs                |    0 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/ViewAssetsElbowFactorDlg.cs                             |   31 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/EditAssetsElbowMainDlg.cs                                 |   44 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AssetsElbowFactorMgrPage.Designer.cs                    |   22 
 BLL/HStation.BLL.Assets.Core/04-bll/06-Elbow/03-AssetsElbowCoefficient/AssetsElbowCoefficient.cs                  |  121 -
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/EditAssetsElbowSeriesDlg.cs                             |    0 
 Dto/HStation.Dto.Assets.Core/05-Elbow/02-ElbowMain/AddAssetsElbowMainInput.cs                                     |    4 
 BLL/HStation.BLL.Assets.Core/03-localclient/06-Elbow/AssetsElbowFactor.cs                                         |    5 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/ViewAssetsElbowSeriesDlg.Designer.cs                    |    0 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AddAssetsElbowFactorDlg.Designer.cs                     |    6 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/ViewAssetsElbowSeriesDlg.resx                           |    0 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/EditAssetsElbowFactorDlg.Designer.cs                    |    8 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/ViewAssetsElbowMainDlg.resx                               |    0 
 BLL/HStation.BLL.Assets.Core/04-bll/06-Elbow/01-AssetsElbowSeries/AssetsElbowSeries.cs                            |   89 +
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/05-elbows/AssetsElbowSingleMatchingCtrl.cs          |  108 +
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AssetsElbowFactorMgrPage.resx                           |    0 
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj                                             |    8 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/ViewAssetsElbowSeriesDlg.cs                             |    0 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/AssetsElbowSeriesMgrTreeCtrl.resx                       |    0 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/AssetsElbowSeriesMgrViewModel.cs                        |    0 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main-bak/AddElbowMainDlg.Designer.cs                           |    3 
 Service/HStation.Service.Assets.Core/05-service/03-Elbow/02-ElbowMain/ElbowManage.cs                              |  100 +
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AddAssetsElbowFactorDlg.resx                            |    0 
 BLL/HStation.BLL.Assets.Core/03-localclient/06-Elbow/AssetsElbowSeries.cs                                         |    5 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/EditAssetsElbowMainDlg.resx                               |    0 
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/05-elbows/AssetsElbowSingleMatchingDlg.resx         |    0 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series-bak/ElbowTreeListCtrl.cs                                |   10 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/AddAssetsElbowSeriesDlg.Designer.cs                     |    0 
 /dev/null                                                                                                         |  112 -
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/05-elbows/AssetsElbowSingleMatchingCtrl.resx        |    2 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series-bak/EditAssetsElbowSeriesDlg.cs                         |    6 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AssetsElbowMainMgrPage.cs                                 |   66 
 Vmo/HStation.Vmo.Assets.Core/06-Elbow/AssetsElbowMainVmo.cs                                                       |   48 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AssetsElbowMainMgrPage.Designer.cs                        |   78 
 BLL/HStation.BLL.Assets.Core/01-interface/06-IElbowManage/IAssetsElbowSeries.cs                                   |    9 
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/00-core/AssetsMatchingHelper.cs                     |    8 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series-bak/ElbowSeriesViewModel.cs                             |    2 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AddAssetsElbowMainDlg.resx                                |    0 
 WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/EditAssetsElbowMainDlg.Designer.cs                        |  139 +
 78 files changed, 2,495 insertions(+), 1,038 deletions(-)

diff --git a/BLL/HStation.BLL.Assets.Core/01-interface/06-IElbowManage/IAssetsElbowMain.cs b/BLL/HStation.BLL.Assets.Core/01-interface/06-IElbowManage/IAssetsElbowMain.cs
index c68d6c5..e91f8b8 100644
--- a/BLL/HStation.BLL.Assets.Core/01-interface/06-IElbowManage/IAssetsElbowMain.cs
+++ b/BLL/HStation.BLL.Assets.Core/01-interface/06-IElbowManage/IAssetsElbowMain.cs
@@ -5,11 +5,26 @@
     /// <summary>
     ///
     /// </summary>
-    public interface IAssetsElbowMain : IBaseCAL<AddElbowMianInput, UpdateAssetsElbowMainInput, AssetsElbowMainDto>
+    public interface IAssetsElbowMain : IBaseCAL<AddAssetsElbowMainInput, UpdateAssetsElbowMainInput, AssetsElbowMainDto>, IUpdateParas, IUpdateFlags, IUpdateTagName, IUpdateSorter
     {
         /// <summary>
-        /// 閫氳繃 绯诲垪ID 鑾峰彇
+        ///
         /// </summary>
-        public Task<List<AssetsElbowMainDto>> GetBySeriesID(long ID);
+        Task<int> GetCount();
+
+        /// <summary>
+        ///
+        /// </summary>
+        Task<List<AssetsElbowMainDto>> GetBySeriesID(long SeriesID);
+
+        /// <summary>
+        ///
+        /// </summary>
+        Task<bool> IsExistTagName(string TagName);
+
+        /// <summary>
+        ///
+        /// </summary>
+        Task<bool> IsExistTagNameExceptID(string TagName, long ExceptID);
     }
 }
\ No newline at end of file
diff --git a/BLL/HStation.BLL.Assets.Core/01-interface/06-IElbowManage/IAssetsElbowSeries.cs b/BLL/HStation.BLL.Assets.Core/01-interface/06-IElbowManage/IAssetsElbowSeries.cs
index b28cc96..99262bc 100644
--- a/BLL/HStation.BLL.Assets.Core/01-interface/06-IElbowManage/IAssetsElbowSeries.cs
+++ b/BLL/HStation.BLL.Assets.Core/01-interface/06-IElbowManage/IAssetsElbowSeries.cs
@@ -7,5 +7,14 @@
     /// </summary>
     public interface IAssetsElbowSeries : IBaseCAL<AddAssetsElbowSeriesInput, UpdateAssetsElbowSeriesInput, AssetsElbowSeriesDto>, IUpdateParas, IUpdateFlags, IUpdateTagName, IUpdateTreeSorter
     {
+        /// <summary>
+        ///
+        /// </summary>
+        Task<bool> IsExistTagName(string TagName);
+
+        /// <summary>
+        ///
+        /// </summary>
+        Task<bool> IsExistTagNameExceptID(string TagName, long ExceptID);
     }
 }
\ No newline at end of file
diff --git a/BLL/HStation.BLL.Assets.Core/03-localclient/06-Elbow/AssetsElbowCoefficient.cs b/BLL/HStation.BLL.Assets.Core/03-localclient/06-Elbow/AssetsElbowFactor.cs
similarity index 99%
rename from BLL/HStation.BLL.Assets.Core/03-localclient/06-Elbow/AssetsElbowCoefficient.cs
rename to BLL/HStation.BLL.Assets.Core/03-localclient/06-Elbow/AssetsElbowFactor.cs
index 648886d..3929953 100644
--- a/BLL/HStation.BLL.Assets.Core/03-localclient/06-Elbow/AssetsElbowCoefficient.cs
+++ b/BLL/HStation.BLL.Assets.Core/03-localclient/06-Elbow/AssetsElbowFactor.cs
@@ -1,7 +1,7 @@
 锘縩amespace HStation.CAL.LocalClient
 {
     /// <summary>
-    /// 鎹㈢儹鍣ㄧ郴鏁�
+    /// 寮ご绯绘暟
     /// </summary>
     public class AssetsElbowFactor : IAssetsElbowFactor
     {
@@ -48,8 +48,6 @@
         }
 
         #endregion Query
-
-
 
         #region Insert
 
@@ -203,6 +201,5 @@
         }
 
         #endregion Delete
-
     }
 }
\ No newline at end of file
diff --git a/BLL/HStation.BLL.Assets.Core/03-localclient/06-Elbow/AssetsElbowMain.cs b/BLL/HStation.BLL.Assets.Core/03-localclient/06-Elbow/AssetsElbowMain.cs
index 6184cf0..a8b3820 100644
--- a/BLL/HStation.BLL.Assets.Core/03-localclient/06-Elbow/AssetsElbowMain.cs
+++ b/BLL/HStation.BLL.Assets.Core/03-localclient/06-Elbow/AssetsElbowMain.cs
@@ -1,10 +1,9 @@
-锘縰sing System.Collections.Generic;
-using Yw.Dto;
+锘縰sing HStation.Dto.Assets;
 
 namespace HStation.CAL.LocalClient
 {
     /// <summary>
-    /// 鎶ヨ绛夌骇
+    /// 寮ご鍨嬪彿
     /// </summary>
     public class AssetsElbowMain : IAssetsElbowMain
     {
@@ -51,14 +50,25 @@
         }
 
         /// <summary>
-        /// 閫氳繃 绯诲垪ID 鑾峰彇
+        /// 鑾峰彇鏁伴噺
         /// </summary>
-        public async Task<List<AssetsElbowMainDto>> GetBySeriesID(long ID)
+        public async Task<int> GetCount()
         {
             return await Task.Factory.StartNew(() =>
             {
-                var model = _service.GetBySeriesID(ID);
-                var vm_list = model?.Select(x => new AssetsElbowMainDto(x)).ToList();
+                return _service.GetCount();
+            });
+        }
+
+        /// <summary>
+        /// 閫氳繃 SeriesID 鑾峰彇
+        /// </summary>
+        public async Task<List<AssetsElbowMainDto>> GetBySeriesID(long SeriesID)
+        {
+            return await Task.Factory.StartNew(() =>
+            {
+                var list = _service.GetBySeriesID(SeriesID);
+                var vm_list = list?.Select(x => new AssetsElbowMainDto(x)).ToList();
                 return vm_list;
             });
         }
@@ -70,12 +80,24 @@
         /// <summary>
         /// 鎻掑叆涓�鏉�
         /// </summary>
-        public async Task<long> Insert(AddElbowMianInput input)
+        public async Task<long> Insert(AddAssetsElbowMainInput input)
         {
             return await Task.Factory.StartNew(() =>
             {
-                var model = input.Adapt<AddElbowMianInput, Model.AssetsElbowMain>();
-                model.SortCode = _service.GetMaxSortCode() + 1;
+                var series = new HStation.Service.AssetsElbowSeries().GetByID(input.SeriesID);
+                if (series == null)
+                {
+                    throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.D001, $"SeriesID:{input.SeriesID} 鏁版嵁涓嶅瓨鍦�");
+                }
+                if (!string.IsNullOrEmpty(input.TagName))
+                {
+                    if (_service.IsExistTagName(input.TagName))
+                    {
+                        throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.V001, $"TagName:{input.TagName} 鏍囪宸插瓨鍦�");
+                    }
+                }
+                var model = input.Adapt<AddAssetsElbowMainInput, Model.AssetsElbowMain>();
+                model.SortCode = _service.GetMaxSortCode(input.SeriesID) + 1;
                 var id = _service.Insert(model);
                 return id;
             });
@@ -84,24 +106,18 @@
         /// <summary>
         /// 鎵归噺鎻掑叆
         /// </summary>
-        public async Task<bool> Inserts(List<AddElbowMianInput> inputList)
+        public async Task<bool> Inserts(List<AddAssetsElbowMainInput> inputList)
         {
             return await Task.Factory.StartNew(() =>
             {
-                var list = inputList.Select(x => x.Adapt<AddElbowMianInput, Model.AssetsElbowMain>()).ToList();
-                list.ForEach(x =>
-                {
-                    x.SortCode = _service.GetMaxSortCode() + 1 + list.IndexOf(x);
-                });
-                var bol = _service.Inserts(list);
-                return bol;
+                return false;
             });
         }
 
         /// <summary>
         /// 澶ф壒閲忔彃鍏�
         /// </summary>
-        public async Task<bool> BulkInserts(List<AddElbowMianInput> list)
+        public async Task<bool> BulkInserts(List<AddAssetsElbowMainInput> list)
         {
             return await Task.Factory.StartNew(() =>
             {
@@ -125,7 +141,13 @@
                 {
                     throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.D001, $"ID:{input.ID} 鏁版嵁涓嶅瓨鍦�");
                 }
-
+                if (!string.IsNullOrEmpty(input.TagName))
+                {
+                    if (_service.IsExistTagNameExceptID(input.TagName, input.ID))
+                    {
+                        throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.V001, $"TagName:{input.TagName} 鏍囪宸插瓨鍦�");
+                    }
+                }
                 var rhs = new Model.AssetsElbowMain(model);
                 input.Adapt(rhs);
                 var bol = _service.Update(rhs);
@@ -140,13 +162,7 @@
         {
             return await Task.Factory.StartNew(() =>
             {
-                if (inputList == null || inputList.Count < 1)
-                {
-                    return false;
-                }
-                var list = inputList.Select(x => x.Adapt<UpdateAssetsElbowMainInput, Model.AssetsElbowMain>()).ToList();
-                var bol = _service.Updates(list);
-                return bol;
+                return false;
             });
         }
 
@@ -162,18 +178,103 @@
         }
 
         /// <summary>
-        /// 鏇存柊缂栫爜
+        /// 鏇存柊鎺掑簭鐮�
         /// </summary>
-        public async Task<bool> UpdateCode(long ID, string Code)
+        public async Task<bool> UpdateSortCode(long ID, int SortCode)
         {
             return await Task.Factory.StartNew(() =>
             {
-                return false;
+                var bol = _service.UpdateSortCode(ID, SortCode);
+                return bol;
+            });
+        }
+
+        /// <summary>
+        /// 鏇存柊鎺掑簭
+        /// </summary>
+        public async Task<bool> UpdateSorter(List<UpdateSortCodeInput> inputList)
+        {
+            return await Task.Factory.StartNew(() =>
+            {
+                var list = inputList.Select(x => x.Adapt<Yw.Model.Sorter>()).ToList();
+                var bol = _service.UpdateSorter(list);
+                return bol;
+            });
+        }
+
+        /// <summary>
+        /// 鏇存柊 Paras
+        /// </summary>
+        public async Task<bool> UpdateParas(long ID, Dictionary<string, string> Paras)
+        {
+            return await Task.Factory.StartNew(() =>
+            {
+                var bol = _service.UpdateParas(ID, Paras);
+                return bol;
+            });
+        }
+
+        /// <summary>
+        /// 鏇存柊 Flags
+        /// </summary>
+        public async Task<bool> UpdateFlags(long ID, List<string> Flags)
+        {
+            return await Task.Factory.StartNew(() =>
+            {
+                var bol = _service.UpdateFlags(ID, Flags);
+                return bol;
+            });
+        }
+
+        /// <summary>
+        /// 鏇存柊 TagName
+        /// </summary>
+        public async Task<bool> UpdateTagName(long ID, string TagName)
+        {
+            return await Task.Factory.StartNew(() =>
+            {
+                if (!string.IsNullOrEmpty(TagName))
+                {
+                    if (_service.IsExistTagNameExceptID(TagName, ID))
+                    {
+                        throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.V001, $"TagName:{TagName}", "鏍囪鍚嶇О宸插瓨鍦�");
+                    }
+                }
+                var bol = _service.UpdateTagName(ID, TagName);
+                return bol;
             });
         }
 
         #endregion Update
 
+        #region Exist
+
+        /// <summary>
+        ///
+        /// </summary>
+        public async Task<bool> IsExistTagName(string TagName)
+        {
+            return await Task.Factory.StartNew(() =>
+            {
+                var bol = _service.IsExistTagName(TagName);
+                return bol;
+            });
+        }
+
+        /// <summary>
+        ///
+        /// </summary>
+        public async Task<bool> IsExistTagNameExceptID(string TagName, long ExceptID)
+        {
+            return await Task.Factory.StartNew(() =>
+            {
+                var bol = _service.IsExistTagNameExceptID(TagName, ExceptID);
+                return bol;
+            });
+        }
+
+        #endregion Exist
+
         #region Delete
 
         /// <summary>
diff --git a/BLL/HStation.BLL.Assets.Core/03-localclient/06-Elbow/AssetsElbowSeries.cs b/BLL/HStation.BLL.Assets.Core/03-localclient/06-Elbow/AssetsElbowSeries.cs
index 5142b5c..7dae240 100644
--- a/BLL/HStation.BLL.Assets.Core/03-localclient/06-Elbow/AssetsElbowSeries.cs
+++ b/BLL/HStation.BLL.Assets.Core/03-localclient/06-Elbow/AssetsElbowSeries.cs
@@ -1,7 +1,7 @@
 锘縩amespace HStation.CAL.LocalClient
 {
     /// <summary>
-    /// 鎹㈢儹鍣ㄧ郴鍒�
+    /// 寮ご绯诲垪
     /// </summary>
     public class AssetsElbowSeries : IAssetsElbowSeries
     {
@@ -48,8 +48,6 @@
         }
 
         #endregion Query
-
-
 
         #region Insert
 
@@ -354,6 +352,5 @@
         }
 
         #endregion Delete
-
     }
 }
\ No newline at end of file
diff --git a/BLL/HStation.BLL.Assets.Core/04-bll/06-Elbow/01-AssetsElbowSeries/AssetsElbowSeries.cs b/BLL/HStation.BLL.Assets.Core/04-bll/06-Elbow/01-AssetsElbowSeries/AssetsElbowSeries.cs
index b9cd52c..988f12f 100644
--- a/BLL/HStation.BLL.Assets.Core/04-bll/06-Elbow/01-AssetsElbowSeries/AssetsElbowSeries.cs
+++ b/BLL/HStation.BLL.Assets.Core/04-bll/06-Elbow/01-AssetsElbowSeries/AssetsElbowSeries.cs
@@ -1,5 +1,4 @@
-锘縰sing HStation.Vmo;
-using Yw.BLL;
+锘縰sing Yw.BLL;
 
 namespace HStation.BLL
 {
@@ -87,18 +86,81 @@
             return bol;
         }
 
-        #endregion Update
-
-        #region Delete
-
         /// <summary>
-        /// 鍏ㄩ儴鍒犻櫎
+        /// 鏇存柊鎺掑簭鐮�
         /// </summary>
-        public virtual async Task<bool> DeleteAll()
+        public virtual async Task<bool> UpdateSortCode(long ID, int SortCode)
         {
-            var bol = await _cal.DeleteAll();
+            var bol = await _cal.UpdateSortCode(ID, SortCode);
             return bol;
         }
+
+        /// <summary>
+        /// 鎵归噺鏇存柊鎺掑簭鐮�
+        /// </summary>
+        public virtual async Task<bool> UpdateSorter(List<Yw.Vmo.Sorter> Sorters)
+        {
+            var dtoList = Sorters.ToDtoList();
+            var bol = await _cal.UpdateSorter(dtoList);
+            return bol;
+        }
+
+        /// <summary>
+        /// 鏇存柊鏍戞帓搴忕爜
+        /// </summary>
+        public virtual async Task<bool> UpdateTreeSortCode(long ID, long ParentID, int SortCode)
+        {
+            var bol = await _cal.UpdateTreeSortCode(ID, ParentID, SortCode);
+            return bol;
+        }
+
+        /// <summary>
+        /// 鏇存柊 Flags
+        /// </summary>
+        public virtual async Task<bool> UpdateFlags(long ID, List<string> Flags)
+        {
+            return await _cal.UpdateFlags(ID, Flags);
+        }
+
+        /// <summary>
+        /// 鏇存柊 Paras
+        /// </summary>
+        public virtual async Task<bool> UpdateParas(long ID, Dictionary<string, string> Paras)
+        {
+            return await _cal.UpdateParas(ID, Paras);
+        }
+
+        /// <summary>
+        /// 鏇存柊 TagName
+        /// </summary>
+        public virtual async Task<bool> UpdateTagName(long ID, string TagName)
+        {
+            return await _cal.UpdateTagName(ID, TagName);
+        }
+
+        #endregion Update
+
+        #region Exist
+
+        /// <summary>
+        /// 鍒ゆ柇 TagName 鏄惁瀛樺湪
+        /// </summary>
+        public virtual async Task<bool> IsExistTagName(string TagName)
+        {
+            return await _cal.IsExistTagName(TagName);
+        }
+
+        /// <summary>
+        /// 鍒ゆ柇TagName鏄惁瀛樺湪 ExceptID
+        /// </summary>
+        public virtual async Task<bool> IsExistTagNameExceptID(string TagName, long ExceptID)
+        {
+            return await _cal.IsExistTagNameExceptID(TagName, ExceptID);
+        }
+
+        #endregion Exist
+
+        #region Delete
 
         /// <summary>
         /// 閫氳繃 ID 鍒犻櫎
@@ -106,15 +168,6 @@
         public virtual async Task<bool> DeleteByID(long ID)
         {
             var bol = await _cal.DeleteByID(ID);
-            return bol;
-        }
-
-        /// <summary>
-        /// 閫氳繃 Ids 鍒犻櫎
-        /// </summary>
-        public virtual async Task<bool> DeleteByIds(List<long> Ids)
-        {
-            var bol = await _cal.DeleteByIds(Ids);
             return bol;
         }
 
diff --git a/BLL/HStation.BLL.Assets.Core/04-bll/06-Elbow/02-AssetsElbowMain/AssetsElbowMain.cs b/BLL/HStation.BLL.Assets.Core/04-bll/06-Elbow/02-AssetsElbowMain/AssetsElbowMain.cs
index d4a3b8c..ba4069d 100644
--- a/BLL/HStation.BLL.Assets.Core/04-bll/06-Elbow/02-AssetsElbowMain/AssetsElbowMain.cs
+++ b/BLL/HStation.BLL.Assets.Core/04-bll/06-Elbow/02-AssetsElbowMain/AssetsElbowMain.cs
@@ -1,5 +1,4 @@
-锘縰sing HStation.Vmo;
-using Yw.BLL;
+锘縰sing Yw.BLL;
 
 namespace HStation.BLL
 {
@@ -40,15 +39,21 @@
         }
 
         /// <summary>
-        /// 閫氳繃绯诲垪ID鏌ユ壘
+        /// 閫氳繃 SeriesID 鑾峰彇
         /// </summary>
-        /// <param name="ID"></param>
-        /// <returns></returns>
-        public async Task<List<Vmo.AssetsElbowMainVmo>> GetBySeriesID(long ID)
+        public virtual async Task<List<AssetsElbowMainVmo>> GetBySeriesID(long SeriesID)
         {
-            var Dto = await _cal.GetBySeriesID(ID);
-            var dtoList = Dto2Vmos(Dto);
-            return dtoList;
+            var dtoList = await _cal.GetBySeriesID(SeriesID);
+            return Dto2Vmos(dtoList);
+        }
+
+        /// <summary>
+        /// 鑾峰彇鏁伴噺
+        /// </summary>
+        public virtual async Task<int> GetCount()
+        {
+            var count = await _cal.GetCount();
+            return count;
         }
 
         #endregion Query
@@ -86,7 +91,6 @@
         {
             var dto = Vmo2UpdateDto(vmo);
             var bol = await _cal.Update(dto);
-
             return bol;
         }
 
@@ -100,18 +104,72 @@
             return bol;
         }
 
-        #endregion Update
-
-        #region Delete
-
         /// <summary>
-        /// 鍏ㄩ儴鍒犻櫎
+        /// 鏇存柊鎺掑簭鐮�
         /// </summary>
-        public virtual async Task<bool> DeleteAll()
+        public virtual async Task<bool> UpdateSortCode(long ID, int SortCode)
         {
-            var bol = await _cal.DeleteAll();
+            var bol = await _cal.UpdateSortCode(ID, SortCode);
             return bol;
         }
+
+        /// <summary>
+        /// 鎵归噺鏇存柊鎺掑簭鐮�
+        /// </summary>
+        public virtual async Task<bool> UpdateSorter(List<Yw.Vmo.Sorter> Sorters)
+        {
+            var dtoList = Sorters.ToDtoList();
+            var bol = await _cal.UpdateSorter(dtoList);
+            return bol;
+        }
+
+        /// <summary>
+        /// 鏇存柊 Flags
+        /// </summary>
+        public virtual async Task<bool> UpdateFlags(long ID, List<string> Flags)
+        {
+            return await _cal.UpdateFlags(ID, Flags);
+        }
+
+        /// <summary>
+        /// 鏇存柊 Paras
+        /// </summary>
+        public virtual async Task<bool> UpdateParas(long ID, Dictionary<string, string> Paras)
+        {
+            return await _cal.UpdateParas(ID, Paras);
+        }
+
+        /// <summary>
+        /// 鏇存柊 TagName
+        /// </summary>
+        public virtual async Task<bool> UpdateTagName(long ID, string TagName)
+        {
+            return await _cal.UpdateTagName(ID, TagName);
+        }
+
+        #endregion Update
+
+        #region Exist
+
+        /// <summary>
+        /// 鍒ゆ柇 TagName 鏄惁瀛樺湪
+        /// </summary>
+        public virtual async Task<bool> IsExistTagName(string TagName)
+        {
+            return await _cal.IsExistTagName(TagName);
+        }
+
+        /// <summary>
+        /// 鍒ゆ柇TagName鏄惁瀛樺湪 ExceptID
+        /// </summary>
+        public virtual async Task<bool> IsExistTagNameExceptID(string TagName, long ExceptID)
+        {
+            return await _cal.IsExistTagNameExceptID(TagName, ExceptID);
+        }
+
+        #endregion Exist
+
+        #region Delete
 
         /// <summary>
         /// 閫氳繃 ID 鍒犻櫎
@@ -119,15 +177,6 @@
         public virtual async Task<bool> DeleteByID(long ID)
         {
             var bol = await _cal.DeleteByID(ID);
-            return bol;
-        }
-
-        /// <summary>
-        /// 閫氳繃 Ids 鍒犻櫎
-        /// </summary>
-        public virtual async Task<bool> DeleteByIds(List<long> Ids)
-        {
-            var bol = await _cal.DeleteByIds(Ids);
             return bol;
         }
 
diff --git a/BLL/HStation.BLL.Assets.Core/04-bll/06-Elbow/02-AssetsElbowMain/AssetsElbowMain_Instance.cs b/BLL/HStation.BLL.Assets.Core/04-bll/06-Elbow/02-AssetsElbowMain/AssetsElbowMain_Instance.cs
index 04258d2..401320a 100644
--- a/BLL/HStation.BLL.Assets.Core/04-bll/06-Elbow/02-AssetsElbowMain/AssetsElbowMain_Instance.cs
+++ b/BLL/HStation.BLL.Assets.Core/04-bll/06-Elbow/02-AssetsElbowMain/AssetsElbowMain_Instance.cs
@@ -31,28 +31,28 @@
         }
 
         //vmo to add dto
-        internal static HStation.Dto.Assets.AddElbowMianInput Vmo2AddDto(HStation.Vmo.AssetsElbowMainVmo vmo)
+        internal static HStation.Dto.Assets.AddAssetsElbowMainInput Vmo2AddDto(HStation.Vmo.AssetsElbowMainVmo vmo)
         {
             if (vmo == null)
             {
                 return default;
             }
-            var mapper = new MapperConfiguration(cfg => cfg.CreateMap<HStation.Vmo.AssetsElbowMainVmo, HStation.Dto.Assets.AddElbowMianInput>()
+            var mapper = new MapperConfiguration(cfg => cfg.CreateMap<HStation.Vmo.AssetsElbowMainVmo, HStation.Dto.Assets.AddAssetsElbowMainInput>()
             ).CreateMapper();
-            var dto = mapper.Map<HStation.Vmo.AssetsElbowMainVmo, HStation.Dto.Assets.AddElbowMianInput>(vmo);
+            var dto = mapper.Map<HStation.Vmo.AssetsElbowMainVmo, HStation.Dto.Assets.AddAssetsElbowMainInput>(vmo);
             return dto;
         }
 
         //vmo to add dtos
-        internal static List<HStation.Dto.Assets.AddElbowMianInput> Vmo2AddDtos(List<HStation.Vmo.AssetsElbowMainVmo> vmoList)
+        internal static List<HStation.Dto.Assets.AddAssetsElbowMainInput> Vmo2AddDtos(List<HStation.Vmo.AssetsElbowMainVmo> vmoList)
         {
             if (vmoList == null || vmoList.Count < 1)
             {
                 return default;
             }
-            var mapper = new MapperConfiguration(cfg => cfg.CreateMap<HStation.Vmo.AssetsElbowMainVmo, HStation.Dto.Assets.AddElbowMianInput>()
+            var mapper = new MapperConfiguration(cfg => cfg.CreateMap<HStation.Vmo.AssetsElbowMainVmo, HStation.Dto.Assets.AddAssetsElbowMainInput>()
             ).CreateMapper();
-            var dtoList = mapper.Map<List<HStation.Vmo.AssetsElbowMainVmo>, List<HStation.Dto.Assets.AddElbowMianInput>>(vmoList);
+            var dtoList = mapper.Map<List<HStation.Vmo.AssetsElbowMainVmo>, List<HStation.Dto.Assets.AddAssetsElbowMainInput>>(vmoList);
             return dtoList;
         }
 
diff --git a/BLL/HStation.BLL.Assets.Core/04-bll/06-Elbow/03-AssetsElbowCoefficient/AssetsElbowCoefficient.cs b/BLL/HStation.BLL.Assets.Core/04-bll/06-Elbow/03-AssetsElbowCoefficient/AssetsElbowCoefficient.cs
index b2d176d..f8ec937 100644
--- a/BLL/HStation.BLL.Assets.Core/04-bll/06-Elbow/03-AssetsElbowCoefficient/AssetsElbowCoefficient.cs
+++ b/BLL/HStation.BLL.Assets.Core/04-bll/06-Elbow/03-AssetsElbowCoefficient/AssetsElbowCoefficient.cs
@@ -1,48 +1,41 @@
-锘縰sing AutoMapper;
-using HStation.Dto;
-using System.Collections.Generic;
-using Yw;
-using Yw.Dto;
+锘縰sing Yw.BLL;
 
 namespace HStation.BLL
 {
     /// <summary>
     ///
     /// </summary>
-    public partial class AssetsElbowCoefficient
+    public partial class AssetsElbowFactor
     {
         private readonly HStation.CAL.IAssetsElbowFactor _cal = CALCreateHelper.CreateCAL<HStation.CAL.IAssetsElbowFactor>();
 
         #region Query
 
         /// <summary>
-        ///
+        /// 鑾峰彇鎵�鏈�
         /// </summary>
-        public async Task<List<Vmo.AssetsElbowFactorVmo>> GetAll()
+        public virtual async Task<List<AssetsElbowFactorVmo>> GetAll()
         {
-            var DtoList = await _cal.GetAll();
-            var vmoList = Dto2Vmos(DtoList);
-            return vmoList;
+            var dtoList = await _cal.GetAll();
+            return Dto2Vmos(dtoList);
         }
 
         /// <summary>
-        ///
+        /// 閫氳繃 ID 鑾峰彇
         /// </summary>
-        public async Task<Vmo.AssetsElbowFactorVmo> GetByID(long ID)
+        public virtual async Task<AssetsElbowFactorVmo> GetByID(long ID)
         {
-            var Dto = await _cal.GetByID(ID);
-            var vmo = Dto2Vmo(Dto);
-            return vmo;
+            var dto = await _cal.GetByID(ID);
+            return Dto2Vmo(dto);
         }
 
         /// <summary>
-        ///
+        /// 閫氳繃 Ids 鑾峰彇
         /// </summary>
-        public async Task<List<Vmo.AssetsElbowFactorVmo>> GetByIds(List<long> Ids)
+        public virtual async Task<List<AssetsElbowFactorVmo>> GetByIds(List<long> Ids)
         {
-            var DtoList = await _cal.GetByIds(Ids);
-            var vmoList = Dto2Vmos(DtoList);
-            return vmoList;
+            var dtoList = await _cal.GetByIds(Ids);
+            return Dto2Vmos(dtoList);
         }
 
         #endregion Query
@@ -50,30 +43,23 @@
         #region Insert
 
         /// <summary>
-        ///
+        /// 鎻掑叆涓�鏉�
         /// </summary>
-        public async Task<long> Insert(Vmo.AssetsElbowFactorVmo model)
+        public virtual async Task<long> Insert(AssetsElbowFactorVmo vmo)
         {
-            var vmo = Vmo2AddDto(model);
-            return await _cal.Insert(vmo);
+            var dto = Vmo2AddDto(vmo);
+            var id = await _cal.Insert(dto);
+            return id;
         }
 
         /// <summary>
-        ///
+        /// 鎻掑叆澶氭潯
         /// </summary>
-        public async Task<bool> Inserts(List<Vmo.AssetsElbowFactorVmo> list)
+        public virtual async Task<bool> Inserts(List<AssetsElbowFactorVmo> vmoList)
         {
-            var vmoList = Vmo2AddDtos(list);
-            return await _cal.Inserts(vmoList);
-        }
-
-        /// <summary>
-        ///
-        /// </summary>
-        public async Task<bool> BulkInserts(List<Vmo.AssetsElbowFactorVmo> list)
-        {
-            var vmoList = Vmo2AddDtos(list);
-            return await _cal.BulkInserts(vmoList);
+            var dtoList = Vmo2AddDtos(vmoList);
+            var bol = await _cal.Inserts(dtoList);
+            return bol;
         }
 
         #endregion Insert
@@ -81,30 +67,42 @@
         #region Update
 
         /// <summary>
-        ///
+        /// 鏇存柊
         /// </summary>
-        public async Task<bool> Update(Vmo.AssetsElbowFactorVmo model)
+        public virtual async Task<bool> Update(AssetsElbowFactorVmo vmo)
         {
-            var Vmo = Vmo2UpdateDto(model);
-            return await _cal.Update(Vmo);
+            var dto = Vmo2UpdateDto(vmo);
+            var bol = await _cal.Update(dto);
+            return bol;
         }
 
         /// <summary>
-        ///
+        /// 鎵归噺鏇存柊
         /// </summary>
-        public async Task<bool> Updates(List<Vmo.AssetsElbowFactorVmo> list)
+        public virtual async Task<bool> Updates(List<AssetsElbowFactorVmo> vmoList)
         {
-            var VmoList = Vmo2UpdateDtos(list);
-            return await _cal.Updates(VmoList);
+            var dtoList = Vmo2UpdateDtos(vmoList);
+            var bol = await _cal.Updates(dtoList);
+            return bol;
         }
 
         /// <summary>
-        ///
+        /// 鏇存柊鎺掑簭鐮�
         /// </summary>
-        public async Task<bool> BulkUpdates(List<Vmo.AssetsElbowFactorVmo> list)
+        public virtual async Task<bool> UpdateSortCode(long ID, int SortCode)
         {
-            var VmoList = Vmo2UpdateDtos(list);
-            return await _cal.BulkUpdates(VmoList);
+            var bol = await _cal.UpdateSortCode(ID, SortCode);
+            return bol;
+        }
+
+        /// <summary>
+        /// 鎵归噺鏇存柊鎺掑簭鐮�
+        /// </summary>
+        public virtual async Task<bool> UpdateSorter(List<Yw.Vmo.Sorter> Sorters)
+        {
+            var dtoList = Sorters.ToDtoList();
+            var bol = await _cal.UpdateSorter(dtoList);
+            return bol;
         }
 
         #endregion Update
@@ -112,27 +110,12 @@
         #region Delete
 
         /// <summary>
-        ///
+        /// 閫氳繃 ID 鍒犻櫎
         /// </summary>
-        public async Task<bool> DeleteByID(long ID)
+        public virtual async Task<bool> DeleteByID(long ID)
         {
-            return await _cal.DeleteByID(ID);
-        }
-
-        /// <summary>
-        ///
-        /// </summary>
-        public async Task<bool> DeleteByIds(List<long> Ids)
-        {
-            return await _cal.DeleteByIds(Ids);
-        }
-
-        /// <summary>
-        ///
-        /// </summary>
-        public async Task<bool> DeleteAll()
-        {
-            return await _cal.DeleteAll();
+            var bol = await _cal.DeleteByID(ID);
+            return bol;
         }
 
         #endregion Delete
diff --git a/BLL/HStation.BLL.Assets.Core/04-bll/06-Elbow/03-AssetsElbowCoefficient/AssetsElbowMain_Instance.cs b/BLL/HStation.BLL.Assets.Core/04-bll/06-Elbow/03-AssetsElbowCoefficient/AssetsElbowMain_Instance.cs
index d53a4c0..79c7bb7 100644
--- a/BLL/HStation.BLL.Assets.Core/04-bll/06-Elbow/03-AssetsElbowCoefficient/AssetsElbowMain_Instance.cs
+++ b/BLL/HStation.BLL.Assets.Core/04-bll/06-Elbow/03-AssetsElbowCoefficient/AssetsElbowMain_Instance.cs
@@ -1,12 +1,9 @@
-锘縰sing AutoMapper;
-using HStation.Dto;
-
-namespace HStation.BLL
+锘縩amespace HStation.BLL
 {
-    public partial class AssetsElbowCoefficient
+    public partial class AssetsElbowFactor
     {
         //dto to vmo
-        internal static HStation.Vmo.AssetsElbowFactorVmo Dto2Vmo(AssetsElbowFactorDto dto)
+        internal static HStation.Vmo.AssetsElbowFactorVmo Dto2Vmo(HStation.Dto.Assets.AssetsElbowFactorDto dto)
         {
             if (dto == null)
             {
@@ -14,20 +11,20 @@
             }
             var mapper = new MapperConfiguration(cfg => cfg.CreateMap<HStation.Dto.Assets.AssetsElbowFactorDto, HStation.Vmo.AssetsElbowFactorVmo>()
             ).CreateMapper();
-            var vmo = mapper.Map<AssetsElbowFactorDto, HStation.Vmo.AssetsElbowFactorVmo>(dto);
+            var vmo = mapper.Map<HStation.Dto.Assets.AssetsElbowFactorDto, HStation.Vmo.AssetsElbowFactorVmo>(dto);
             return vmo;
         }
 
         //dto to vmos
-        internal static List<HStation.Vmo.AssetsElbowFactorVmo> Dto2Vmos(List<AssetsElbowFactorDto> dtos)
+        internal static List<HStation.Vmo.AssetsElbowFactorVmo> Dto2Vmos(List<HStation.Dto.Assets.AssetsElbowFactorDto> dtos)
         {
             if (dtos == null || dtos.Count < 1)
             {
                 return default;
             }
-            var mapper = new MapperConfiguration(cfg => cfg.CreateMap<AssetsElbowFactorDto, HStation.Vmo.AssetsElbowFactorVmo>()
+            var mapper = new MapperConfiguration(cfg => cfg.CreateMap<HStation.Dto.Assets.AssetsElbowFactorDto, HStation.Vmo.AssetsElbowFactorVmo>()
             ).CreateMapper();
-            var vmos = mapper.Map<List<AssetsElbowFactorDto>, List<HStation.Vmo.AssetsElbowFactorVmo>>(dtos);
+            var vmos = mapper.Map<List<HStation.Dto.Assets.AssetsElbowFactorDto>, List<HStation.Vmo.AssetsElbowFactorVmo>>(dtos);
             return vmos;
         }
 
diff --git a/Desktop/HStation.Desktop.Xhs.Core/MainForm.cs b/Desktop/HStation.Desktop.Xhs.Core/MainForm.cs
index dd09cc5..92820d8 100644
--- a/Desktop/HStation.Desktop.Xhs.Core/MainForm.cs
+++ b/Desktop/HStation.Desktop.Xhs.Core/MainForm.cs
@@ -1079,7 +1079,7 @@
                         };
                         if (!IsExistPage(guid, true))
                         {
-                            var page = new ElbowManageMainPage();
+                            var page = new AssetsElbowMgrPage();
                             CreatePage(page, guid);
                         }
                     }
diff --git a/Dto/HStation.Dto.Assets.Core/05-Elbow/02-ElbowMain/AddElbowMianInput.cs b/Dto/HStation.Dto.Assets.Core/05-Elbow/02-ElbowMain/AddAssetsElbowMainInput.cs
similarity index 94%
rename from Dto/HStation.Dto.Assets.Core/05-Elbow/02-ElbowMain/AddElbowMianInput.cs
rename to Dto/HStation.Dto.Assets.Core/05-Elbow/02-ElbowMain/AddAssetsElbowMainInput.cs
index 85cd83c..7e3c8c0 100644
--- a/Dto/HStation.Dto.Assets.Core/05-Elbow/02-ElbowMain/AddElbowMianInput.cs
+++ b/Dto/HStation.Dto.Assets.Core/05-Elbow/02-ElbowMain/AddAssetsElbowMainInput.cs
@@ -2,9 +2,9 @@
 
 namespace HStation.Dto.Assets
 {
-    public class AddElbowMianInput
+    public class AddAssetsElbowMainInput
     {
-        public AddElbowMianInput()
+        public AddAssetsElbowMainInput()
         { }
 
         /// <summary>
diff --git a/Service/HStation.Service.Assets.Core/00-core/DataType.cs b/Service/HStation.Service.Assets.Core/00-core/DataType.cs
index e4a7f5d..b1ca2b9 100644
--- a/Service/HStation.Service.Assets.Core/00-core/DataType.cs
+++ b/Service/HStation.Service.Assets.Core/00-core/DataType.cs
@@ -165,5 +165,24 @@
         public const string TankFactor = "assets-tank-factor";
 
         #endregion 姘存睜
+
+        #region 寮ご
+
+        /// <summary>
+        /// 寮ご绯诲垪
+        /// </summary>
+        public const string ElbowSeries = "assets-elbow-series";
+
+        /// <summary>
+        ///寮ご鍨嬪彿
+        /// </summary>
+        public const string ElbowMain = "assets-elbow-main";
+
+        /// <summary>
+        /// 寮ご绯绘暟
+        /// </summary>
+        public const string ElbowFactor = "assets-elbow-factor";
+
+        #endregion 寮ご
     }
 }
\ No newline at end of file
diff --git a/Service/HStation.Service.Assets.Core/05-service/03-Elbow/02-ElbowMain/ElbowManage.cs b/Service/HStation.Service.Assets.Core/05-service/03-Elbow/02-ElbowMain/ElbowManage.cs
index 0a0feaf..4b253eb 100644
--- a/Service/HStation.Service.Assets.Core/05-service/03-Elbow/02-ElbowMain/ElbowManage.cs
+++ b/Service/HStation.Service.Assets.Core/05-service/03-Elbow/02-ElbowMain/ElbowManage.cs
@@ -40,7 +40,7 @@
             {
                 model.Reset(model_ds);
             }
-            AssetsPumpSeriesCacheHelper.Trigger();
+            AssetsElbowMainCacheHelper.Trigger();
         }
 
         //閫氳繃 Ids 鏇存柊缂撳瓨
@@ -59,7 +59,7 @@
             {
                 all.AddRange(model_list);
             }
-            AssetsPumpSeriesCacheHelper.Trigger();
+            AssetsElbowMainCacheHelper.Trigger();
         }
 
         //绉婚櫎缂撳瓨
@@ -67,7 +67,7 @@
         {
             var all = GetCache();
             all.RemoveAll(x => x.ID == ID);
-            AssetsPumpSeriesCacheHelper.Trigger();
+            AssetsElbowMainCacheHelper.Trigger();
         }
 
         /// <summary>
@@ -75,10 +75,12 @@
         /// </summary>
         public static void PublishCache(string key)
         {
-            AssetsPumpSeriesCacheHelper.Publish(key);
+            AssetsElbowMainCacheHelper.Publish(key);
         }
 
         #endregion Cache
+
+
 
         #region Query
 
@@ -88,7 +90,7 @@
         public List<Model.AssetsElbowMain> GetAll()
         {
             var all = GetCache();
-            return all;
+            return all.OrderBy(x => x.SortCode).ToList();
         }
 
         /// <summary>
@@ -110,28 +112,46 @@
                 return default;
             }
             var all = GetAll();
-            return all.Where(x => Ids.Contains(x.ID)).ToList();
+            return all.Where(x => Ids.Contains(x.ID)).OrderBy(x => x.SortCode).ToList();
         }
 
         /// <summary>
-        /// 閫氳繃 绯诲垪ID 鑾峰彇
+        /// 鑾峰彇鏁伴噺
         /// </summary>
-        public List<Model.AssetsElbowMain> GetBySeriesID(long id)
+        public int GetCount()
         {
-            if (id < 1)
+            var all = GetAll();
+            return all.Count;
+        }
+
+        /// <summary>
+        /// 閫氳繃 SeriesID 鑾峰彇
+        /// </summary>
+        public List<Model.AssetsElbowMain> GetBySeriesID(long SeriesID)
+        {
+            var all = GetAll();
+            return all.Where(x => x.SeriesID == SeriesID).OrderBy(x => x.SortCode).ToList();
+        }
+
+        /// <summary>
+        /// 閫氳繃 SeriesIds 鑾峰彇
+        /// </summary>
+        public List<Model.AssetsElbowMain> GetBySeriesIds(List<long> SeriesIds)
+        {
+            if (SeriesIds == null || SeriesIds.Count < 1)
             {
                 return default;
             }
             var all = GetAll();
-            return all.Where(x => x.SeriesID == id).ToList();
+            return all.Where(x => SeriesIds.Contains(x.SeriesID)).OrderBy(x => x.SortCode).ToList();
         }
 
         /// <summary>
         /// 鑾峰彇鏈�澶ф帓搴忕爜
         /// </summary>
-        public int GetMaxSortCode()
+        public int GetMaxSortCode(long SeriesID)
         {
-            var all = GetAll();
+            var all = GetBySeriesID(SeriesID);
             if (all == null || all.Count < 1)
             {
                 return 0;
@@ -141,18 +161,7 @@
 
         #endregion Query
 
-        #region Exist
 
-        /// <summary>
-        /// 閫氳繃 SeriesID 鍒ゆ柇鏄惁瀛樺湪
-        /// </summary>
-        public bool IsExistBySeriesID(long SeriesID)
-        {
-            var all = GetAll();
-            return all.Exists(x => x.SeriesID == SeriesID);
-        }
-
-        #endregion Exist
 
         #region Insert
 
@@ -196,6 +205,8 @@
         }
 
         #endregion Insert
+
+
 
         #region Update
 
@@ -337,6 +348,49 @@
 
         #endregion Update
 
+
+
+        #region Exist
+
+        /// <summary>
+        /// 鍒ゆ柇 TagName 鏄惁瀛樺湪
+        /// </summary>
+        public bool IsExistTagName(string TagName)
+        {
+            if (string.IsNullOrEmpty(TagName))
+            {
+                return false;
+            }
+            var all = GetAll();
+            return all.Exists(x => x.TagName == TagName);
+        }
+
+        /// <summary>
+        /// 鍒ゆ柇 TagName 鏄惁瀛樺湪 ExceptID
+        /// </summary>
+        public bool IsExistTagNameExceptID(string TagName, long ExceptID)
+        {
+            if (string.IsNullOrEmpty(TagName))
+            {
+                return false;
+            }
+            var all = GetAll();
+            return all.Exists(x => x.TagName == TagName && x.ID != ExceptID);
+        }
+
+        /// <summary>
+        /// 閫氳繃 SeriesID 鍒ゆ柇鏄惁瀛樺湪
+        /// </summary>
+        public bool IsExistBySeriesID(long SeriesID)
+        {
+            var all = GetAll();
+            return all.Exists(x => x.SeriesID == SeriesID);
+        }
+
+        #endregion Exist
+
+
+
         #region Delete
 
         /// <summary>
diff --git a/Vmo/HStation.Vmo.Assets.Core/06-Elbow/AssetsElbowMainVmo.cs b/Vmo/HStation.Vmo.Assets.Core/06-Elbow/AssetsElbowMainVmo.cs
index 8484df0..3c07d24 100644
--- a/Vmo/HStation.Vmo.Assets.Core/06-Elbow/AssetsElbowMainVmo.cs
+++ b/Vmo/HStation.Vmo.Assets.Core/06-Elbow/AssetsElbowMainVmo.cs
@@ -1,9 +1,53 @@
 锘縰sing HStation.Assets;
+using HStation.Dto.Assets;
 
 namespace HStation.Vmo
 {
     public class AssetsElbowMainVmo
-    {
+    {        /// <summary>
+             ///
+             /// </summary>
+        public AssetsElbowMainVmo()
+        { }
+
+        /// <summary>
+        ///
+        /// </summary>
+        public AssetsElbowMainVmo(AssetsElbowMainDto rhs)
+        {
+            this.ID = rhs.ID;
+            this.SeriesID = rhs.SeriesID;
+            this.Name = rhs.Name;
+            this.Material = rhs.Material;
+            this.Caliber = rhs.Caliber;
+            this.MinorLoss = rhs.MinorLoss;
+            this.KeyWords = rhs.KeyWords;
+            this.Paras = rhs.Paras;
+            this.Flags = rhs.Flags;
+            this.TagName = rhs.TagName;
+            this.SortCode = rhs.SortCode;
+            this.Description = rhs.Description;
+        }
+
+        /// <summary>
+        ///
+        /// </summary>
+        public AssetsElbowMainVmo(AssetsElbowMainVmo rhs)
+        {
+            this.ID = rhs.ID;
+            this.SeriesID = rhs.SeriesID;
+            this.Name = rhs.Name;
+            this.Material = rhs.Material;
+            this.Caliber = rhs.Caliber;
+            this.MinorLoss = rhs.MinorLoss;
+            this.KeyWords = rhs.KeyWords;
+            this.Paras = rhs.Paras;
+            this.Flags = rhs.Flags;
+            this.TagName = rhs.TagName;
+            this.SortCode = rhs.SortCode;
+            this.Description = rhs.Description;
+        }
+
         public long ID { get; set; }
 
         /// <summary>
@@ -44,7 +88,7 @@
         /// <summary>
         /// 璇嗗埆鍏抽敭瀛�
         /// </summary>
-        public List<string> KeyWord { get; set; }
+        public List<string> KeyWords { get; set; }
 
         /// <summary>
         /// 鍙傛暟
diff --git a/Vmo/HStation.Vmo.Assets.Core/06-Elbow/AssetsElbowSeriesVmo.cs b/Vmo/HStation.Vmo.Assets.Core/06-Elbow/AssetsElbowSeriesVmo.cs
index 4792227..561a263 100644
--- a/Vmo/HStation.Vmo.Assets.Core/06-Elbow/AssetsElbowSeriesVmo.cs
+++ b/Vmo/HStation.Vmo.Assets.Core/06-Elbow/AssetsElbowSeriesVmo.cs
@@ -1,7 +1,45 @@
-锘縩amespace HStation.Vmo
+锘縰sing HStation.Dto.Assets;
+
+namespace HStation.Vmo
 {
     public class AssetsElbowSeriesVmo
     {
+        /// <summary>
+        ///
+        /// </summary>
+        public AssetsElbowSeriesVmo()
+        { }
+
+        /// <summary>
+        ///
+        /// </summary>
+        public AssetsElbowSeriesVmo(AssetsElbowSeriesDto rhs)
+        {
+            this.ID = rhs.ID;
+            this.ParentID = rhs.ParentID;
+            this.Name = rhs.Name;
+            this.Paras = rhs.Paras;
+            this.Flags = rhs.Flags;
+            this.TagName = rhs.TagName;
+            this.SortCode = rhs.SortCode;
+            this.Description = rhs.Description;
+        }
+
+        /// <summary>
+        ///
+        /// </summary>
+        public AssetsElbowSeriesVmo(AssetsElbowSeriesVmo rhs)
+        {
+            this.ID = rhs.ID;
+            this.ParentID = rhs.ParentID;
+            this.Name = rhs.Name;
+            this.Paras = rhs.Paras;
+            this.Flags = rhs.Flags;
+            this.TagName = rhs.TagName;
+            this.SortCode = rhs.SortCode;
+            this.Description = rhs.Description;
+        }
+
         /// <summary>
         /// id
         /// </summary>
@@ -13,9 +51,9 @@
         public string Name { get; set; }
 
         /// <summary>
-        /// 鐖剁骇ID
+        /// 鐖剁骇id
         /// </summary>
-        public List<long> ParentIds { get; set; }
+        public long ParentID { get; set; }
 
         /// <summary>
         /// 鎵�灞炵被鍒獻D
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series-bak/EditAssetsElbowSeriesDlg.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series-bak/EditAssetsElbowSeriesDlg.cs
index e541a9f..74f30c2 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series-bak/EditAssetsElbowSeriesDlg.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series-bak/EditAssetsElbowSeriesDlg.cs
@@ -26,10 +26,8 @@
                 _assetsElbowSeriesViews.Add(new AssetsElbowSeriesViewModel(item));
             }
             treeListLookUpEdit1TreeList.DataSource = _assetsElbowSeriesViews;
-            if (_assetsElbowSeries.ParentIds.Count > 0)
-            {
-                textEditParentList.EditValue = _assetsElbowSeries.ParentIds.Last();
-            }
+
+            textEditParentList.EditValue = _assetsElbowSeries.ParentID;
         }
 
         //鏁版嵁楠岃瘉
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series-bak/ElbowSeriesViewModel.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series-bak/ElbowSeriesViewModel.cs
index 2d759cc..b64151e 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series-bak/ElbowSeriesViewModel.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series-bak/ElbowSeriesViewModel.cs
@@ -12,7 +12,6 @@
         {
             this.Name = rhs.Name;
             this.ID = rhs.ID;
-            this.ParentID = TreeParentIdsHelper.GetLastParentID(rhs.ParentIds);
             this.Description = rhs.Description;
         }
 
@@ -20,7 +19,6 @@
         {
             this.Name = rhs.Name;
             this.ID = rhs.ID;
-            this.ParentID = TreeParentIdsHelper.GetLastParentID(rhs.ParentIds);
             this.Description = rhs.Description;
         }
 
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series-bak/ElbowTreeListCtrl.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series-bak/ElbowTreeListCtrl.cs
index f477653..04f3132 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series-bak/ElbowTreeListCtrl.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series-bak/ElbowTreeListCtrl.cs
@@ -54,11 +54,6 @@
             var dlg = new AddAssetsElbowSeriesDlg();
             dlg.ReloadDataEvent += async (rhs, currentId) =>
             {
-                if (currentId != null)
-                {
-                    var select = await _bll.GetByID(Convert.ToInt64(currentId));
-                    rhs.ParentIds = TreeParentIdsHelper.GetChildParentIds(select.ID, select.ParentIds);
-                }
                 var bll = new BLL.AssetsElbowSeries();
                 var id = await bll.Insert(rhs);
                 if (id > 0)
@@ -100,11 +95,6 @@
             dlg.SetBindingData(AssetsElbowSeries);
             dlg.ReloadDataEvent += async (rhs, currentId) =>
             {
-                if (currentId != null)
-                {
-                    var select = await _bll.GetByID(Convert.ToInt64(currentId));
-                    rhs.ParentIds = TreeParentIdsHelper.GetChildParentIds(select.ID, select.ParentIds);
-                }
                 if (await BLLFactory<BLL.AssetsElbowSeries>.Instance.Update(rhs))
                 {
                     vm.Reset(rhs);
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/AddAssetsCoolingSeriesDlg.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/AddAssetsElbowSeriesDlg.Designer.cs
similarity index 100%
rename from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/AddAssetsCoolingSeriesDlg.Designer.cs
rename to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/AddAssetsElbowSeriesDlg.Designer.cs
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/AddAssetsCoolingSeriesDlg.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/AddAssetsElbowSeriesDlg.cs
similarity index 100%
rename from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/AddAssetsCoolingSeriesDlg.cs
rename to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/AddAssetsElbowSeriesDlg.cs
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/AddAssetsCoolingSeriesDlg.resx b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/AddAssetsElbowSeriesDlg.resx
similarity index 100%
rename from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/AddAssetsCoolingSeriesDlg.resx
rename to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/AddAssetsElbowSeriesDlg.resx
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/AssetsCoolingSeriesMgrTreeCtrl.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/AssetsElbowSeriesMgrTreeCtrl.Designer.cs
similarity index 100%
rename from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/AssetsCoolingSeriesMgrTreeCtrl.Designer.cs
rename to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/AssetsElbowSeriesMgrTreeCtrl.Designer.cs
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/AssetsCoolingSeriesMgrTreeCtrl.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/AssetsElbowSeriesMgrTreeCtrl.cs
similarity index 100%
rename from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/AssetsCoolingSeriesMgrTreeCtrl.cs
rename to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/AssetsElbowSeriesMgrTreeCtrl.cs
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/AssetsCoolingSeriesMgrTreeCtrl.resx b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/AssetsElbowSeriesMgrTreeCtrl.resx
similarity index 100%
rename from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/AssetsCoolingSeriesMgrTreeCtrl.resx
rename to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/AssetsElbowSeriesMgrTreeCtrl.resx
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/AssetsCoolingSeriesMgrViewModel.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/AssetsElbowSeriesMgrViewModel.cs
similarity index 100%
rename from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/AssetsCoolingSeriesMgrViewModel.cs
rename to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/AssetsElbowSeriesMgrViewModel.cs
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/EditAssetsCoolingSeriesDlg.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/EditAssetsElbowSeriesDlg.Designer.cs
similarity index 100%
rename from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/EditAssetsCoolingSeriesDlg.Designer.cs
rename to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/EditAssetsElbowSeriesDlg.Designer.cs
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/EditAssetsCoolingSeriesDlg.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/EditAssetsElbowSeriesDlg.cs
similarity index 100%
rename from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/EditAssetsCoolingSeriesDlg.cs
rename to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/EditAssetsElbowSeriesDlg.cs
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/AddAssetsCoolingSeriesDlg.resx b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/EditAssetsElbowSeriesDlg.resx
similarity index 100%
copy from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/AddAssetsCoolingSeriesDlg.resx
copy to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/EditAssetsElbowSeriesDlg.resx
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/ViewAssetsCoolingSeriesDlg.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/ViewAssetsElbowSeriesDlg.Designer.cs
similarity index 100%
rename from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/ViewAssetsCoolingSeriesDlg.Designer.cs
rename to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/ViewAssetsElbowSeriesDlg.Designer.cs
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/ViewAssetsCoolingSeriesDlg.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/ViewAssetsElbowSeriesDlg.cs
similarity index 100%
rename from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/ViewAssetsCoolingSeriesDlg.cs
rename to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/ViewAssetsElbowSeriesDlg.cs
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/ViewAssetsCoolingSeriesDlg.resx b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/ViewAssetsElbowSeriesDlg.resx
similarity index 100%
rename from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/ViewAssetsCoolingSeriesDlg.resx
rename to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/ViewAssetsElbowSeriesDlg.resx
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main-bak/AddElbowMainDlg.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main-bak/AddElbowMainDlg.Designer.cs
index ecfaa43..1646687 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main-bak/AddElbowMainDlg.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main-bak/AddElbowMainDlg.Designer.cs
@@ -194,8 +194,7 @@
             // 
             // elbowCoefficientViewModelBindingSource
             // 
-            elbowCoefficientViewModelBindingSource.DataSource = typeof(ElbowCoefficientViewModel);
-            // 
+             // 
             // BtnOk
             // 
             BtnOk.Appearance.BackColor = DevExpress.LookAndFeel.DXSkinColors.FillColors.Primary;
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main-bak/AddElbowMainDlg.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main-bak/AddElbowMainDlg.cs
index fdb0200..35c7072 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main-bak/AddElbowMainDlg.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main-bak/AddElbowMainDlg.cs
@@ -135,7 +135,7 @@
                 return;
             _ElbowVmo.Description = DescriptionTextEdit.Text.Trim();
             _ElbowVmo.Name = TextEditName.Text.Trim();
-            _ElbowVmo.KeyWord = this.TextEditKeyWorld.Text.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList();
+            _ElbowVmo.KeyWords = this.TextEditKeyWorld.Text.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList();
             if (TextEditMaterial.Text != "榛樿")
             {
                 _ElbowVmo.Material = TextEditMaterial.Text.Trim();
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main-bak/EditElbowMainDlg.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main-bak/EditElbowMainDlg.cs
index a515032..ed2b3d9 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main-bak/EditElbowMainDlg.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main-bak/EditElbowMainDlg.cs
@@ -148,7 +148,7 @@
                 return;
             _ElbowVmo.Description = DescriptionTextEdit.Text.Trim();
             _ElbowVmo.Name = TextEditName.Text.Trim();
-            _ElbowVmo.KeyWord = this.TextEditKeyWorld.Text.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList();
+            _ElbowVmo.KeyWords = this.TextEditKeyWorld.Text.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList();
             if (TextEditMaterial.Text != "榛樿")
             {
                 _ElbowVmo.Material = TextEditMaterial.Text.Trim();
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AddAssetsCoolingMainDlg.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AddAssetsElbowMainDlg.Designer.cs
similarity index 81%
rename from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AddAssetsCoolingMainDlg.Designer.cs
rename to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AddAssetsElbowMainDlg.Designer.cs
index 6e1da48..1967837 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AddAssetsCoolingMainDlg.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AddAssetsElbowMainDlg.Designer.cs
@@ -1,6 +1,6 @@
 锘縩amespace HStation.WinFrmUI
 {
-    partial class AddAssetsCoolingMainDlg
+    partial class AddAssetsElbowMainDlg
     {
         /// <summary>
         /// Required designer variable.
@@ -30,12 +30,13 @@
         {
             components = new Container();
             layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+            imageComboBoxEditConnectlenght = new DevExpress.XtraEditors.ImageComboBoxEdit();
             txtKeyWord = new DevExpress.XtraEditors.TextEdit();
             txtTagName = new DevExpress.XtraEditors.TextEdit();
             setFlagsEditCtrl1 = new SetFlagsEditCtrl();
             generalOkAndCancelCtrl1 = new GeneralOkAndCancelCtrl();
             txtDescription = new DevExpress.XtraEditors.MemoEdit();
-            txtLowerLimit = new DevExpress.XtraEditors.TextEdit();
+            txtAngle = new DevExpress.XtraEditors.TextEdit();
             txtCoefficient = new DevExpress.XtraEditors.TextEdit();
             txtCaliber = new DevExpress.XtraEditors.TextEdit();
             txtMaterial = new DevExpress.XtraEditors.TextEdit();
@@ -44,20 +45,22 @@
             layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
-            layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem();
-            layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem10 = new DevExpress.XtraLayout.LayoutControlItem();
+            layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem();
+            layoutControlItem11 = new DevExpress.XtraLayout.LayoutControlItem();
+            layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
             dxErrorProvider1 = new DevExpress.XtraEditors.DXErrorProvider.DXErrorProvider(components);
             ((ISupportInitialize)layoutControl1).BeginInit();
             layoutControl1.SuspendLayout();
+            ((ISupportInitialize)imageComboBoxEditConnectlenght.Properties).BeginInit();
             ((ISupportInitialize)txtKeyWord.Properties).BeginInit();
             ((ISupportInitialize)txtTagName.Properties).BeginInit();
             ((ISupportInitialize)txtDescription.Properties).BeginInit();
-            ((ISupportInitialize)txtLowerLimit.Properties).BeginInit();
+            ((ISupportInitialize)txtAngle.Properties).BeginInit();
             ((ISupportInitialize)txtCoefficient.Properties).BeginInit();
             ((ISupportInitialize)txtCaliber.Properties).BeginInit();
             ((ISupportInitialize)txtMaterial.Properties).BeginInit();
@@ -66,24 +69,26 @@
             ((ISupportInitialize)layoutControlItem1).BeginInit();
             ((ISupportInitialize)layoutControlItem3).BeginInit();
             ((ISupportInitialize)layoutControlItem4).BeginInit();
-            ((ISupportInitialize)layoutControlItem5).BeginInit();
             ((ISupportInitialize)layoutControlItem2).BeginInit();
             ((ISupportInitialize)layoutControlItem6).BeginInit();
             ((ISupportInitialize)layoutControlItem7).BeginInit();
             ((ISupportInitialize)layoutControlItem8).BeginInit();
-            ((ISupportInitialize)layoutControlItem9).BeginInit();
             ((ISupportInitialize)layoutControlItem10).BeginInit();
+            ((ISupportInitialize)layoutControlItem9).BeginInit();
+            ((ISupportInitialize)layoutControlItem11).BeginInit();
+            ((ISupportInitialize)layoutControlItem5).BeginInit();
             ((ISupportInitialize)dxErrorProvider1).BeginInit();
             SuspendLayout();
             // 
             // layoutControl1
             // 
+            layoutControl1.Controls.Add(imageComboBoxEditConnectlenght);
             layoutControl1.Controls.Add(txtKeyWord);
             layoutControl1.Controls.Add(txtTagName);
             layoutControl1.Controls.Add(setFlagsEditCtrl1);
             layoutControl1.Controls.Add(generalOkAndCancelCtrl1);
             layoutControl1.Controls.Add(txtDescription);
-            layoutControl1.Controls.Add(txtLowerLimit);
+            layoutControl1.Controls.Add(txtAngle);
             layoutControl1.Controls.Add(txtCoefficient);
             layoutControl1.Controls.Add(txtCaliber);
             layoutControl1.Controls.Add(txtMaterial);
@@ -97,6 +102,15 @@
             layoutControl1.TabIndex = 1;
             layoutControl1.Text = "layoutControl1";
             // 
+            // imageComboBoxEditConnectlenght
+            // 
+            imageComboBoxEditConnectlenght.Location = new Point(405, 60);
+            imageComboBoxEditConnectlenght.Name = "imageComboBoxEditConnectlenght";
+            imageComboBoxEditConnectlenght.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo) });
+            imageComboBoxEditConnectlenght.Size = new Size(248, 20);
+            imageComboBoxEditConnectlenght.StyleController = layoutControl1;
+            imageComboBoxEditConnectlenght.TabIndex = 6;
+            // 
             // txtKeyWord
             // 
             txtKeyWord.Location = new Point(405, 12);
@@ -108,18 +122,18 @@
             // 
             // txtTagName
             // 
-            txtTagName.Location = new Point(405, 84);
+            txtTagName.Location = new Point(83, 108);
             txtTagName.Name = "txtTagName";
-            txtTagName.Size = new Size(248, 20);
+            txtTagName.Size = new Size(570, 20);
             txtTagName.StyleController = layoutControl1;
-            txtTagName.TabIndex = 8;
+            txtTagName.TabIndex = 9;
             // 
             // setFlagsEditCtrl1
             // 
             setFlagsEditCtrl1.Location = new Point(83, 84);
             setFlagsEditCtrl1.Name = "setFlagsEditCtrl1";
             setFlagsEditCtrl1.Size = new Size(247, 20);
-            setFlagsEditCtrl1.TabIndex = 7;
+            setFlagsEditCtrl1.TabIndex = 8;
             // 
             // generalOkAndCancelCtrl1
             // 
@@ -130,28 +144,26 @@
             generalOkAndCancelCtrl1.Location = new Point(12, 343);
             generalOkAndCancelCtrl1.Name = "generalOkAndCancelCtrl1";
             generalOkAndCancelCtrl1.Size = new Size(641, 26);
-            generalOkAndCancelCtrl1.TabIndex = 10;
+            generalOkAndCancelCtrl1.TabIndex = 11;
             // 
             // txtDescription
             // 
-            txtDescription.Location = new Point(83, 108);
+            txtDescription.Location = new Point(83, 132);
             txtDescription.Name = "txtDescription";
-            txtDescription.Size = new Size(570, 231);
+            txtDescription.Size = new Size(570, 207);
             txtDescription.StyleController = layoutControl1;
-            txtDescription.TabIndex = 9;
+            txtDescription.TabIndex = 10;
             // 
-            // txtLowerLimit
+            // txtAngle
             // 
-            txtLowerLimit.Location = new Point(405, 60);
-            txtLowerLimit.Name = "txtLowerLimit";
-            txtLowerLimit.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False;
-            txtLowerLimit.Properties.DisplayFormat.FormatString = "{0}m";
-            txtLowerLimit.Properties.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Custom;
-            txtLowerLimit.Properties.MaskSettings.Set("MaskManagerType", typeof(DevExpress.Data.Mask.NumericMaskManager));
-            txtLowerLimit.Properties.NullValuePrompt = "m";
-            txtLowerLimit.Size = new Size(248, 20);
-            txtLowerLimit.StyleController = layoutControl1;
-            txtLowerLimit.TabIndex = 6;
+            txtAngle.Location = new Point(405, 84);
+            txtAngle.Name = "txtAngle";
+            txtAngle.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False;
+            txtAngle.Properties.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Custom;
+            txtAngle.Properties.MaskSettings.Set("MaskManagerType", typeof(DevExpress.Data.Mask.NumericMaskManager));
+            txtAngle.Size = new Size(248, 20);
+            txtAngle.StyleController = layoutControl1;
+            txtAngle.TabIndex = 7;
             // 
             // txtCoefficient
             // 
@@ -202,7 +214,7 @@
             Root.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
             Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
             Root.GroupBordersVisible = false;
-            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1, layoutControlItem3, layoutControlItem4, layoutControlItem5, layoutControlItem2, layoutControlItem6, layoutControlItem7, layoutControlItem8, layoutControlItem9, layoutControlItem10 });
+            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1, layoutControlItem3, layoutControlItem4, layoutControlItem2, layoutControlItem6, layoutControlItem7, layoutControlItem8, layoutControlItem10, layoutControlItem9, layoutControlItem11, layoutControlItem5 });
             Root.Name = "Root";
             Root.Size = new Size(665, 381);
             Root.TextVisible = false;
@@ -236,16 +248,6 @@
             layoutControlItem4.Text = "<color=red>*</color>鍠峰皠绯绘暟:";
             layoutControlItem4.TextSize = new Size(59, 14);
             // 
-            // layoutControlItem5
-            // 
-            layoutControlItem5.AllowHtmlStringInCaption = true;
-            layoutControlItem5.Control = txtLowerLimit;
-            layoutControlItem5.Location = new Point(322, 48);
-            layoutControlItem5.Name = "layoutControlItem5";
-            layoutControlItem5.Size = new Size(323, 24);
-            layoutControlItem5.Text = "<color=red>*</color>鏈�灏忓帇鍔�:";
-            layoutControlItem5.TextSize = new Size(59, 14);
-            // 
             // layoutControlItem2
             // 
             layoutControlItem2.AllowHtmlStringInCaption = true;
@@ -259,9 +261,9 @@
             // layoutControlItem6
             // 
             layoutControlItem6.Control = txtDescription;
-            layoutControlItem6.Location = new Point(0, 96);
+            layoutControlItem6.Location = new Point(0, 120);
             layoutControlItem6.Name = "layoutControlItem6";
-            layoutControlItem6.Size = new Size(645, 235);
+            layoutControlItem6.Size = new Size(645, 211);
             layoutControlItem6.Text = "璇存槑:";
             layoutControlItem6.TextSize = new Size(59, 14);
             // 
@@ -283,15 +285,6 @@
             layoutControlItem8.Text = "鏍囩:";
             layoutControlItem8.TextSize = new Size(59, 14);
             // 
-            // layoutControlItem9
-            // 
-            layoutControlItem9.Control = txtTagName;
-            layoutControlItem9.Location = new Point(322, 72);
-            layoutControlItem9.Name = "layoutControlItem9";
-            layoutControlItem9.Size = new Size(323, 24);
-            layoutControlItem9.Text = "鏍囧織:";
-            layoutControlItem9.TextSize = new Size(59, 14);
-            // 
             // layoutControlItem10
             // 
             layoutControlItem10.Control = txtKeyWord;
@@ -301,25 +294,54 @@
             layoutControlItem10.Text = "鍏抽敭瀛�:";
             layoutControlItem10.TextSize = new Size(59, 14);
             // 
+            // layoutControlItem9
+            // 
+            layoutControlItem9.Control = txtTagName;
+            layoutControlItem9.Location = new Point(0, 96);
+            layoutControlItem9.Name = "layoutControlItem9";
+            layoutControlItem9.Size = new Size(645, 24);
+            layoutControlItem9.Text = "鏍囧織:";
+            layoutControlItem9.TextSize = new Size(59, 14);
+            // 
+            // layoutControlItem11
+            // 
+            layoutControlItem11.Control = imageComboBoxEditConnectlenght;
+            layoutControlItem11.Location = new Point(322, 48);
+            layoutControlItem11.Name = "layoutControlItem11";
+            layoutControlItem11.Size = new Size(323, 24);
+            layoutControlItem11.Text = "寮ご绫诲瀷:";
+            layoutControlItem11.TextSize = new Size(59, 14);
+            // 
+            // layoutControlItem5
+            // 
+            layoutControlItem5.AllowHtmlStringInCaption = true;
+            layoutControlItem5.Control = txtAngle;
+            layoutControlItem5.Location = new Point(322, 72);
+            layoutControlItem5.Name = "layoutControlItem5";
+            layoutControlItem5.Size = new Size(323, 24);
+            layoutControlItem5.Text = "瑙掑害:";
+            layoutControlItem5.TextSize = new Size(59, 14);
+            // 
             // dxErrorProvider1
             // 
             dxErrorProvider1.ContainerControl = this;
             // 
-            // AddAssetsCoolingMainDlg
+            // AddAssetsElbowMainDlg
             // 
             AutoScaleDimensions = new SizeF(7F, 14F);
             AutoScaleMode = AutoScaleMode.Font;
             ClientSize = new Size(665, 381);
             Controls.Add(layoutControl1);
-            Name = "AddAssetsCoolingMainDlg";
+            Name = "AddAssetsElbowMainDlg";
             StartPosition = FormStartPosition.CenterParent;
             Text = "娣诲姞";
             ((ISupportInitialize)layoutControl1).EndInit();
             layoutControl1.ResumeLayout(false);
+            ((ISupportInitialize)imageComboBoxEditConnectlenght.Properties).EndInit();
             ((ISupportInitialize)txtKeyWord.Properties).EndInit();
             ((ISupportInitialize)txtTagName.Properties).EndInit();
             ((ISupportInitialize)txtDescription.Properties).EndInit();
-            ((ISupportInitialize)txtLowerLimit.Properties).EndInit();
+            ((ISupportInitialize)txtAngle.Properties).EndInit();
             ((ISupportInitialize)txtCoefficient.Properties).EndInit();
             ((ISupportInitialize)txtCaliber.Properties).EndInit();
             ((ISupportInitialize)txtMaterial.Properties).EndInit();
@@ -328,13 +350,14 @@
             ((ISupportInitialize)layoutControlItem1).EndInit();
             ((ISupportInitialize)layoutControlItem3).EndInit();
             ((ISupportInitialize)layoutControlItem4).EndInit();
-            ((ISupportInitialize)layoutControlItem5).EndInit();
             ((ISupportInitialize)layoutControlItem2).EndInit();
             ((ISupportInitialize)layoutControlItem6).EndInit();
             ((ISupportInitialize)layoutControlItem7).EndInit();
             ((ISupportInitialize)layoutControlItem8).EndInit();
-            ((ISupportInitialize)layoutControlItem9).EndInit();
             ((ISupportInitialize)layoutControlItem10).EndInit();
+            ((ISupportInitialize)layoutControlItem9).EndInit();
+            ((ISupportInitialize)layoutControlItem11).EndInit();
+            ((ISupportInitialize)layoutControlItem5).EndInit();
             ((ISupportInitialize)dxErrorProvider1).EndInit();
             ResumeLayout(false);
         }
@@ -364,5 +387,8 @@
         private DevExpress.XtraEditors.TextEdit txtTagName;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem10;
+        private DevExpress.XtraEditors.ImageComboBoxEdit imageComboBoxEditConnectlenght;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem11;
+        private DevExpress.XtraEditors.TextEdit txtAngle;
     }
 }
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AddAssetsCoolingMainDlg.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AddAssetsElbowMainDlg.cs
similarity index 74%
rename from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AddAssetsCoolingMainDlg.cs
rename to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AddAssetsElbowMainDlg.cs
index 1b9622c..bad03c3 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AddAssetsCoolingMainDlg.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AddAssetsElbowMainDlg.cs
@@ -1,5 +1,6 @@
 锘縰sing DevExpress.XtraEditors;
 using DevExpress.XtraScheduler.Outlook.Interop;
+using HStation.Assets;
 using HStation.Service.Assets;
 using HStation.Vmo;
 using System;
@@ -15,9 +16,9 @@
 
 namespace HStation.WinFrmUI
 {
-    public partial class AddAssetsCoolingMainDlg : DevExpress.XtraEditors.XtraForm
+    public partial class AddAssetsElbowMainDlg : DevExpress.XtraEditors.XtraForm
     {
-        public AddAssetsCoolingMainDlg()
+        public AddAssetsElbowMainDlg()
         {
             InitializeComponent();
             this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon;
@@ -25,29 +26,29 @@
             this.generalOkAndCancelCtrl1.OkEvent += GeneralOkAndCancelCtrl1_OkEvent;
         }
 
-        private static AssetsCoolingMainVmo _last = null;
+        private static AssetsElbowMainVmo _last = null;
 
         /// <summary>
         /// 杩斿洖鏁版嵁浜嬩欢
         /// </summary>
-        public event Action<HStation.Vmo.AssetsCoolingMainVmo> ReloadDataEvent;
+        public event Action<HStation.Vmo.AssetsElbowMainVmo> ReloadDataEvent;
 
-        private HStation.Vmo.AssetsCoolingSeriesVmo _series = null;
-        private HStation.Vmo.AssetsCoolingMainVmo _vmo = null;
+        private HStation.Vmo.AssetsElbowSeriesVmo _series = null;
+        private HStation.Vmo.AssetsElbowMainVmo _vmo = null;
 
         /// <summary>
         /// 缁戝畾鏁版嵁
         /// </summary>
-        public async void SetBindingData(HStation.Vmo.AssetsCoolingSeriesVmo series)
+        public async void SetBindingData(HStation.Vmo.AssetsElbowSeriesVmo series)
         {
             if (series == null)
             {
                 return;
             }
             _series = series;
-            _vmo = new Vmo.AssetsCoolingMainVmo();
+            _vmo = new Vmo.AssetsElbowMainVmo();
             _vmo.SeriesID = series.ID;
-            var flags = await BLLFactory<Yw.BLL.SysFlag>.Instance.GetBySysType(HStation.Assets.DataType.CoolingMain);
+            var flags = await BLLFactory<Yw.BLL.SysFlag>.Instance.GetBySysType(HStation.Assets.DataType.ElbowMain);
             this.setFlagsEditCtrl1.SetBindingData(flags?.Select(x => x.Name).ToList(), null);
             if (_last != null)
             {
@@ -55,12 +56,13 @@
                 this.txtMaterial.EditValue = _last.Material;
                 this.txtKeyWord.EditValue = KeyWordHelper.ToString(_last.KeyWords);
                 this.txtCaliber.EditValue = _last.Caliber;
-                this.txtCoefficient.EditValue = _last.Coefficient;
-                this.txtLowerLimit.EditValue = _last.LowerLimit;
+                this.txtCoefficient.EditValue = _last.MinorLoss;
                 this.setFlagsEditCtrl1.SetBindingData(flags?.Select(x => x.Name).ToList(), _last.Flags);
                 this.txtTagName.EditValue = _last.TagName;
                 this.txtDescription.EditValue = _last.Description;
             }
+            this.imageComboBoxEditConnectlenght.Properties.AddEnum(typeof(eElbowType));
+            this.imageComboBoxEditConnectlenght.SelectedIndex = 1;
         }
 
         //楠岃瘉
@@ -82,15 +84,10 @@
                 this.dxErrorProvider1.SetError(this.txtCoefficient, "蹇呭~椤�");
                 return false;
             }
-            if (string.IsNullOrEmpty(this.txtLowerLimit.Text.Trim()))
-            {
-                this.dxErrorProvider1.SetError(this.txtLowerLimit, "蹇呭~椤�");
-                return false;
-            }
             var tagname = this.txtTagName.Text.Trim();
             if (!string.IsNullOrEmpty(tagname))
             {
-                if (await BLLFactory<HStation.BLL.AssetsCoolingMain>.Instance.IsExistTagName(tagname))
+                if (await BLLFactory<HStation.BLL.AssetsElbowMain>.Instance.IsExistTagName(tagname))
                 {
                     this.dxErrorProvider1.SetError(this.txtTagName, "閲嶅");
                     return false;
@@ -117,20 +114,20 @@
             _vmo.Name = this.txtName.Text.Trim();
             _vmo.Material = this.txtMaterial.Text.Trim();
             _vmo.Caliber = this.txtCaliber.EditValue == null ? null : double.Parse(this.txtCaliber.EditValue?.ToString());
-            _vmo.Coefficient = double.Parse(this.txtCoefficient.EditValue?.ToString());
-            _vmo.LowerLimit = double.Parse(this.txtLowerLimit.EditValue?.ToString());
+            _vmo.MinorLoss = double.Parse(this.txtCoefficient.EditValue?.ToString());
             _vmo.KeyWords = HStation.Service.Assets.KeyWordHelper.ToList(this.txtKeyWord.Text.Trim());
             _vmo.Flags = this.setFlagsEditCtrl1.SelectedFlagList;
             _vmo.TagName = this.txtTagName.Text.Trim();
             _vmo.Description = this.txtDescription.Text.Trim();
-
-            var id = await BLLFactory<HStation.BLL.AssetsCoolingMain>.Instance.Insert(_vmo);
+            _vmo.ElbowType = (eElbowType)this.imageComboBoxEditConnectlenght.EditValue;
+            _vmo.Angle = int.Parse(this.txtAngle.EditValue?.ToString());
+            var id = await BLLFactory<HStation.BLL.AssetsElbowMain>.Instance.Insert(_vmo);
             if (id < 1)
             {
                 TipFormHelper.ShowError("娣诲姞澶辫触锛�");
                 return;
             }
-            var vmo = await BLLFactory<HStation.BLL.AssetsCoolingMain>.Instance.GetByID(id);
+            var vmo = await BLLFactory<HStation.BLL.AssetsElbowMain>.Instance.GetByID(id);
             _last = vmo;
             this.ReloadDataEvent?.Invoke(vmo);
             this.DialogResult = DialogResult.OK;
@@ -138,24 +135,25 @@
         }
 
         //鑾峰彇鎵�鏈夌郴鏁板垪琛�
-        private async Task<List<AssetsCoolingFactorVmo>> GetAllFactorList()
+        private async Task<List<AssetsElbowFactorVmo>> GetAllFactorList()
         {
             if (_allFactorList == null)
             {
-                _allFactorList = await BLLFactory<HStation.BLL.AssetsCoolingFactor>.Instance.GetAll();
+                _allFactorList = await BLLFactory<HStation.BLL.AssetsElbowFactor>.Instance.GetAll();
                 if (_allFactorList == null)
                 {
-                    _allFactorList = new List<AssetsCoolingFactorVmo>();
+                    _allFactorList = new List<AssetsElbowFactorVmo>();
                 }
             }
             return _allFactorList;
         }
-        private List<AssetsCoolingFactorVmo> _allFactorList = null;
+
+        private List<AssetsElbowFactorVmo> _allFactorList = null;
 
         //鍖归厤绯绘暟
         private async void MatchingFactor()
         {
-            if (this.txtCoefficient.EditValue == null && this.txtLowerLimit.EditValue == null)
+            if (this.txtCoefficient.EditValue == null)
             {
                 var allFactorList = await GetAllFactorList();
                 if (allFactorList != null && allFactorList.Count > 0)
@@ -174,8 +172,7 @@
                     var factor = factorList.FirstOrDefault();
                     if (factor != null)
                     {
-                        this.txtCoefficient.EditValue = factor.Coefficient;
-                        this.txtLowerLimit.EditValue = factor.LowerLimit;
+                        this.txtCoefficient.EditValue = factor.MinorLoss;
                     }
                 }
             }
@@ -190,7 +187,5 @@
         {
             MatchingFactor();
         }
-
-
     }
 }
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AddAssetsCoolingMainDlg.resx b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AddAssetsElbowMainDlg.resx
similarity index 100%
rename from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AddAssetsCoolingMainDlg.resx
rename to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AddAssetsElbowMainDlg.resx
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AssetsCoolingMainMgrPage.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AssetsElbowMainMgrPage.Designer.cs
similarity index 90%
rename from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AssetsCoolingMainMgrPage.Designer.cs
rename to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AssetsElbowMainMgrPage.Designer.cs
index 96e0d08..bafd7f8 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AssetsCoolingMainMgrPage.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AssetsElbowMainMgrPage.Designer.cs
@@ -1,6 +1,6 @@
 锘縩amespace HStation.WinFrmUI
 {
-    partial class AssetsCoolingMainMgrPage
+    partial class AssetsElbowMainMgrPage
     {
         /// <summary> 
         /// Required designer variable.
@@ -29,7 +29,7 @@
         private void InitializeComponent()
         {
             components = new Container();
-            ComponentResourceManager resources = new ComponentResourceManager(typeof(AssetsCoolingMainMgrPage));
+            ComponentResourceManager resources = new ComponentResourceManager(typeof(AssetsElbowMainMgrPage));
             DevExpress.XtraEditors.Controls.EditorButtonImageOptions editorButtonImageOptions1 = new DevExpress.XtraEditors.Controls.EditorButtonImageOptions();
             DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject1 = new DevExpress.Utils.SerializableAppearanceObject();
             DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject2 = new DevExpress.Utils.SerializableAppearanceObject();
@@ -52,14 +52,13 @@
             ribPageGroupForMore = new DevExpress.XtraBars.Ribbon.RibbonPageGroup();
             panelControl1 = new DevExpress.XtraEditors.PanelControl();
             gridControl1 = new DevExpress.XtraGrid.GridControl();
-            assetsCoolingMainMgrViewModelBindingSource = new BindingSource(components);
+            assetsElbowMainMgrViewModelBindingSource = new BindingSource(components);
             gridView1 = new DevExpress.XtraGrid.Views.Grid.GridView();
             colID = new DevExpress.XtraGrid.Columns.GridColumn();
             colName = new DevExpress.XtraGrid.Columns.GridColumn();
             colMaterial = new DevExpress.XtraGrid.Columns.GridColumn();
             colCaliber = new DevExpress.XtraGrid.Columns.GridColumn();
             colCoefficient = new DevExpress.XtraGrid.Columns.GridColumn();
-            colLowerLimit = new DevExpress.XtraGrid.Columns.GridColumn();
             colKeyWords = new DevExpress.XtraGrid.Columns.GridColumn();
             colFlags = new DevExpress.XtraGrid.Columns.GridColumn();
             colTagName = new DevExpress.XtraGrid.Columns.GridColumn();
@@ -67,14 +66,16 @@
             colDescription = new DevExpress.XtraGrid.Columns.GridColumn();
             colDetail = new DevExpress.XtraGrid.Columns.GridColumn();
             repositoryItemButtonEdit1 = new DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit();
+            colAngle = new DevExpress.XtraGrid.Columns.GridColumn();
             svgImg32 = new DevExpress.Utils.SvgImageCollection(components);
             behaviorManager1 = new DevExpress.Utils.Behaviors.BehaviorManager(components);
             dragDropEvents1 = new DevExpress.Utils.DragDrop.DragDropEvents(components);
+            colElbowType = new DevExpress.XtraGrid.Columns.GridColumn();
             ((ISupportInitialize)ribbonControl1).BeginInit();
             ((ISupportInitialize)panelControl1).BeginInit();
             panelControl1.SuspendLayout();
             ((ISupportInitialize)gridControl1).BeginInit();
-            ((ISupportInitialize)assetsCoolingMainMgrViewModelBindingSource).BeginInit();
+            ((ISupportInitialize)assetsElbowMainMgrViewModelBindingSource).BeginInit();
             ((ISupportInitialize)gridView1).BeginInit();
             ((ISupportInitialize)repositoryItemButtonEdit1).BeginInit();
             ((ISupportInitialize)svgImg32).BeginInit();
@@ -94,7 +95,7 @@
             ribbonControl1.ShowExpandCollapseButton = DevExpress.Utils.DefaultBoolean.False;
             ribbonControl1.ShowPageHeadersMode = DevExpress.XtraBars.Ribbon.ShowPageHeadersMode.ShowOnMultiplePages;
             ribbonControl1.ShowToolbarCustomizeItem = false;
-            ribbonControl1.Size = new Size(1107, 128);
+            ribbonControl1.Size = new Size(1107, 101);
             ribbonControl1.Toolbar.ShowCustomizeItem = false;
             ribbonControl1.ToolbarLocation = DevExpress.XtraBars.Ribbon.RibbonQuickAccessToolbarLocation.Hidden;
             // 
@@ -216,33 +217,33 @@
             panelControl1.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
             panelControl1.Controls.Add(gridControl1);
             panelControl1.Dock = DockStyle.Fill;
-            panelControl1.Location = new Point(1, 129);
+            panelControl1.Location = new Point(1, 102);
             panelControl1.Name = "panelControl1";
             panelControl1.Padding = new Padding(0, 1, 0, 0);
-            panelControl1.Size = new Size(1107, 540);
+            panelControl1.Size = new Size(1107, 567);
             panelControl1.TabIndex = 3;
             // 
             // gridControl1
             // 
-            gridControl1.DataSource = assetsCoolingMainMgrViewModelBindingSource;
+            gridControl1.DataSource = assetsElbowMainMgrViewModelBindingSource;
             gridControl1.Dock = DockStyle.Fill;
             gridControl1.Location = new Point(0, 1);
             gridControl1.MainView = gridView1;
             gridControl1.MenuManager = ribbonControl1;
             gridControl1.Name = "gridControl1";
             gridControl1.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] { repositoryItemButtonEdit1 });
-            gridControl1.Size = new Size(1107, 539);
+            gridControl1.Size = new Size(1107, 566);
             gridControl1.TabIndex = 0;
             gridControl1.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { gridView1 });
             // 
-            // assetsCoolingMainMgrViewModelBindingSource
+            // assetsElbowMainMgrViewModelBindingSource
             // 
-            assetsCoolingMainMgrViewModelBindingSource.DataSource = typeof(AssetsCoolingMainMgrViewModel);
+            assetsElbowMainMgrViewModelBindingSource.DataSource = typeof(AssetsElbowMainMgrViewModel);
             // 
             // gridView1
             // 
             behaviorManager1.SetBehaviors(gridView1, new DevExpress.Utils.Behaviors.Behavior[] { DevExpress.Utils.DragDrop.DragDropBehavior.Create(typeof(DevExpress.XtraGrid.Extensions.ColumnViewDragDropSource), true, true, true, true, dragDropEvents1) });
-            gridView1.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { colID, colName, colMaterial, colCaliber, colCoefficient, colLowerLimit, colKeyWords, colFlags, colTagName, colSortCode, colDescription, colDetail });
+            gridView1.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { colID, colName, colMaterial, colCaliber, colCoefficient, colKeyWords, colFlags, colTagName, colSortCode, colDescription, colDetail, colAngle, colElbowType });
             gridView1.GridControl = gridControl1;
             gridView1.Name = "gridView1";
             // 
@@ -271,7 +272,7 @@
             colMaterial.MinWidth = 150;
             colMaterial.Name = "colMaterial";
             colMaterial.Visible = true;
-            colMaterial.VisibleIndex = 1;
+            colMaterial.VisibleIndex = 2;
             colMaterial.Width = 150;
             // 
             // colCaliber
@@ -281,7 +282,7 @@
             colCaliber.MinWidth = 100;
             colCaliber.Name = "colCaliber";
             colCaliber.Visible = true;
-            colCaliber.VisibleIndex = 2;
+            colCaliber.VisibleIndex = 3;
             colCaliber.Width = 100;
             // 
             // colCoefficient
@@ -291,18 +292,8 @@
             colCoefficient.MinWidth = 100;
             colCoefficient.Name = "colCoefficient";
             colCoefficient.Visible = true;
-            colCoefficient.VisibleIndex = 3;
+            colCoefficient.VisibleIndex = 4;
             colCoefficient.Width = 100;
-            // 
-            // colLowerLimit
-            // 
-            colLowerLimit.FieldName = "LowerLimit";
-            colLowerLimit.MaxWidth = 100;
-            colLowerLimit.MinWidth = 100;
-            colLowerLimit.Name = "colLowerLimit";
-            colLowerLimit.Visible = true;
-            colLowerLimit.VisibleIndex = 4;
-            colLowerLimit.Width = 100;
             // 
             // colKeyWords
             // 
@@ -310,7 +301,7 @@
             colKeyWords.MinWidth = 100;
             colKeyWords.Name = "colKeyWords";
             colKeyWords.Visible = true;
-            colKeyWords.VisibleIndex = 5;
+            colKeyWords.VisibleIndex = 6;
             colKeyWords.Width = 100;
             // 
             // colFlags
@@ -319,7 +310,7 @@
             colFlags.MinWidth = 100;
             colFlags.Name = "colFlags";
             colFlags.Visible = true;
-            colFlags.VisibleIndex = 6;
+            colFlags.VisibleIndex = 7;
             colFlags.Width = 100;
             // 
             // colTagName
@@ -328,7 +319,7 @@
             colTagName.MinWidth = 100;
             colTagName.Name = "colTagName";
             colTagName.Visible = true;
-            colTagName.VisibleIndex = 7;
+            colTagName.VisibleIndex = 8;
             colTagName.Width = 100;
             // 
             // colSortCode
@@ -345,7 +336,7 @@
             colDescription.MinWidth = 100;
             colDescription.Name = "colDescription";
             colDescription.Visible = true;
-            colDescription.VisibleIndex = 8;
+            colDescription.VisibleIndex = 9;
             colDescription.Width = 100;
             // 
             // colDetail
@@ -356,7 +347,7 @@
             colDetail.MinWidth = 60;
             colDetail.Name = "colDetail";
             colDetail.Visible = true;
-            colDetail.VisibleIndex = 9;
+            colDetail.VisibleIndex = 10;
             colDetail.Width = 60;
             // 
             // repositoryItemButtonEdit1
@@ -368,6 +359,14 @@
             repositoryItemButtonEdit1.Name = "repositoryItemButtonEdit1";
             repositoryItemButtonEdit1.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.HideTextEditor;
             // 
+            // colAngle
+            // 
+            colAngle.FieldName = "Angle";
+            colAngle.Name = "colAngle";
+            colAngle.Visible = true;
+            colAngle.VisibleIndex = 5;
+            colAngle.Width = 41;
+            // 
             // svgImg32
             // 
             svgImg32.ImageSize = new Size(32, 32);
@@ -377,7 +376,14 @@
             // 
             dragDropEvents1.DragDrop += dragDropEvents1_DragDrop;
             // 
-            // AssetsCoolingMainMgrPage
+            // colElbowType
+            // 
+            colElbowType.FieldName = "ElbowType";
+            colElbowType.Name = "colElbowType";
+            colElbowType.Visible = true;
+            colElbowType.VisibleIndex = 1;
+            // 
+            // AssetsElbowMainMgrPage
             // 
             Appearance.BackColor = SystemColors.Control;
             Appearance.Options.UseBackColor = true;
@@ -385,14 +391,14 @@
             AutoScaleMode = AutoScaleMode.Font;
             Controls.Add(panelControl1);
             Controls.Add(ribbonControl1);
-            Name = "AssetsCoolingMainMgrPage";
+            Name = "AssetsElbowMainMgrPage";
             Padding = new Padding(1);
             Size = new Size(1109, 670);
             ((ISupportInitialize)ribbonControl1).EndInit();
             ((ISupportInitialize)panelControl1).EndInit();
             panelControl1.ResumeLayout(false);
             ((ISupportInitialize)gridControl1).EndInit();
-            ((ISupportInitialize)assetsCoolingMainMgrViewModelBindingSource).EndInit();
+            ((ISupportInitialize)assetsElbowMainMgrViewModelBindingSource).EndInit();
             ((ISupportInitialize)gridView1).EndInit();
             ((ISupportInitialize)repositoryItemButtonEdit1).EndInit();
             ((ISupportInitialize)svgImg32).EndInit();
@@ -432,11 +438,13 @@
         private DevExpress.XtraBars.BarCheckItem barCkDrag;
         private DevExpress.XtraBars.BarButtonItem barBtnFactor;
         private DevExpress.XtraBars.Ribbon.RibbonPageGroup ribbonPageGroup1;
-        private BindingSource assetsCoolingMainMgrViewModelBindingSource;
+        private BindingSource assetsElbowMainMgrViewModelBindingSource;
         private DevExpress.XtraGrid.Columns.GridColumn colKeyWords;
         private DevExpress.XtraGrid.Columns.GridColumn colFlags;
         private DevExpress.XtraGrid.Columns.GridColumn colTagName;
         private DevExpress.Utils.Behaviors.BehaviorManager behaviorManager1;
         private DevExpress.Utils.DragDrop.DragDropEvents dragDropEvents1;
+        private DevExpress.XtraGrid.Columns.GridColumn colAngle;
+        private DevExpress.XtraGrid.Columns.GridColumn colElbowType;
     }
 }
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AssetsCoolingMainMgrPage.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AssetsElbowMainMgrPage.cs
similarity index 84%
rename from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AssetsCoolingMainMgrPage.cs
rename to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AssetsElbowMainMgrPage.cs
index db9646b..b568533 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AssetsCoolingMainMgrPage.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AssetsElbowMainMgrPage.cs
@@ -9,9 +9,9 @@
 
 namespace HStation.WinFrmUI
 {
-    public partial class AssetsCoolingMainMgrPage : DocumentPage
+    public partial class AssetsElbowMainMgrPage : DocumentPage
     {
-        public AssetsCoolingMainMgrPage()
+        public AssetsElbowMainMgrPage()
         {
             InitializeComponent();
             this.gridView1.SetNormalView(30);
@@ -20,14 +20,14 @@
             this.PageTitle.SvgImageSize = new Size(24, 24);
         }
 
-        private AssetsCoolingSeriesVmo _series = null;//绯诲垪
-        private List<AssetsCoolingMainMgrViewModel> _allBindingList = null;//鏁版嵁缁戝畾鍒楄〃
+        private AssetsElbowSeriesVmo _series = null;//绯诲垪
+        private List<AssetsElbowMainMgrViewModel> _allBindingList = null;//鏁版嵁缁戝畾鍒楄〃
         private readonly object _locker = new();//閿佸畾瀵硅薄
 
         /// <summary>
         /// 缁戝畾鏁版嵁
         /// </summary>
-        public void SetBindingData(AssetsCoolingSeriesVmo series)
+        public void SetBindingData(AssetsElbowSeriesVmo series)
         {
             if (series == null)
             {
@@ -54,18 +54,18 @@
                 return;
             }
             var overlay = this.ShowOverlay();
-            var allBindingList = await BLLFactory<HStation.BLL.AssetsCoolingMain>.Instance.GetBySeriesID(_series.ID);
-            _allBindingList = new List<AssetsCoolingMainMgrViewModel>();
+            var allBindingList = await BLLFactory<HStation.BLL.AssetsElbowMain>.Instance.GetBySeriesID(_series.ID);
+            _allBindingList = new List<AssetsElbowMainMgrViewModel>();
             if (allBindingList != null && allBindingList.Count > 0)
             {
                 foreach (var item in allBindingList)
                 {
-                    var vm = new AssetsCoolingMainMgrViewModel(item);
+                    var vm = new AssetsElbowMainMgrViewModel(item);
                     _allBindingList.Add(vm);
                 }
             }
-            this.assetsCoolingMainMgrViewModelBindingSource.DataSource = _allBindingList;
-            this.assetsCoolingMainMgrViewModelBindingSource.ResetBindings(false);
+            this.assetsElbowMainMgrViewModelBindingSource.DataSource = _allBindingList;
+            this.assetsElbowMainMgrViewModelBindingSource.ResetBindings(false);
             overlay.Close();
             SetDragEnable(this.barCkDrag.Checked);
         }
@@ -91,12 +91,12 @@
                 TipFormHelper.ShowError("鏁版嵁鍒濆鍖栧け璐ワ紒");
                 return;
             }
-            var dlg = new AddAssetsCoolingMainDlg();
+            var dlg = new AddAssetsElbowMainDlg();
             dlg.ReloadDataEvent += (rhs) =>
             {
-                var vm = new AssetsCoolingMainMgrViewModel(rhs);
+                var vm = new AssetsElbowMainMgrViewModel(rhs);
                 _allBindingList.Add(vm);
-                this.assetsCoolingMainMgrViewModelBindingSource.ResetBindings(false);
+                this.assetsElbowMainMgrViewModelBindingSource.ResetBindings(false);
                 TipFormHelper.ShowSucceed("娣诲姞鎴愬姛锛�");
             };
             dlg.SetBindingData(_series);
@@ -111,7 +111,7 @@
             {
                 return;
             }
-            var dlg = new EditAssetsCoolingMainDlg();
+            var dlg = new EditAssetsElbowMainDlg();
             dlg.ReloadDataEvent += (rhs) =>
             {
                 vm.Reset(rhs);
@@ -135,14 +135,14 @@
             {
                 return;
             }
-            var bol = await BLLFactory<HStation.BLL.AssetsCoolingMain>.Instance.DeleteByID(vm.ID);
+            var bol = await BLLFactory<HStation.BLL.AssetsElbowMain>.Instance.DeleteByID(vm.ID);
             if (!bol)
             {
                 TipFormHelper.ShowError("鍒犻櫎澶辫触锛�");
                 return;
             }
             _allBindingList.Remove(vm);
-            this.assetsCoolingMainMgrViewModelBindingSource.ResetBindings(false);
+            this.assetsElbowMainMgrViewModelBindingSource.ResetBindings(false);
             TipFormHelper.ShowSucceed("鍒犻櫎鎴愬姛锛�");
         }
 
@@ -154,7 +154,7 @@
             {
                 return;
             }
-            var dlg = new ViewAssetsCoolingMainDlg();
+            var dlg = new ViewAssetsElbowMainDlg();
             dlg.SetBindingData(vm.Vmo);
             dlg.ShowDialog();
         }
@@ -173,13 +173,13 @@
                 TipFormHelper.ShowWarn("涓婄Щ澶辫触锛�");
                 return;
             }
-            var current = this.gridView1.GetRow(rowHandle) as AssetsCoolingMainMgrViewModel;
+            var current = this.gridView1.GetRow(rowHandle) as AssetsElbowMainMgrViewModel;
             if (current == null)
             {
                 return;
             }
             var prevHandle = rowHandle - 1;
-            var prev = this.gridView1.GetRow(prevHandle) as AssetsCoolingMainMgrViewModel;
+            var prev = this.gridView1.GetRow(prevHandle) as AssetsElbowMainMgrViewModel;
             if (prev == null)
             {
                 return;
@@ -187,7 +187,7 @@
             var sorters = new List<Yw.Vmo.Sorter>();
             sorters.Add(new Yw.Vmo.Sorter() { ID = current.ID, SortCode = prev.SortCode });
             sorters.Add(new Yw.Vmo.Sorter() { ID = prev.ID, SortCode = current.SortCode });
-            var bol = await BLLFactory<HStation.BLL.AssetsCoolingMain>.Instance.UpdateSorter(sorters);
+            var bol = await BLLFactory<HStation.BLL.AssetsElbowMain>.Instance.UpdateSorter(sorters);
             if (!bol)
             {
                 TipFormHelper.ShowError("涓婄Щ澶辫触锛�");
@@ -197,8 +197,8 @@
             current.SortCode = prev.SortCode;
             prev.SortCode = sortCode;
             _allBindingList = _allBindingList.OrderBy(x => x.SortCode).ToList();
-            this.assetsCoolingMainMgrViewModelBindingSource.DataSource = _allBindingList;
-            this.assetsCoolingMainMgrViewModelBindingSource.ResetBindings(false);
+            this.assetsElbowMainMgrViewModelBindingSource.DataSource = _allBindingList;
+            this.assetsElbowMainMgrViewModelBindingSource.ResetBindings(false);
             this.gridView1.FocusedRowHandle = prevHandle;
         }
 
@@ -216,13 +216,13 @@
                 TipFormHelper.ShowWarn("涓嬬Щ澶辫触锛�");
                 return;
             }
-            var current = this.gridView1.GetRow(rowHandle) as AssetsCoolingMainMgrViewModel;
+            var current = this.gridView1.GetRow(rowHandle) as AssetsElbowMainMgrViewModel;
             if (current == null)
             {
                 return;
             }
             var nextHandle = rowHandle + 1;
-            var next = this.gridView1.GetRow(nextHandle) as AssetsCoolingMainMgrViewModel;
+            var next = this.gridView1.GetRow(nextHandle) as AssetsElbowMainMgrViewModel;
             if (next == null)
             {
                 return;
@@ -230,7 +230,7 @@
             var sorters = new List<Yw.Vmo.Sorter>();
             sorters.Add(new Yw.Vmo.Sorter() { ID = current.ID, SortCode = next.SortCode });
             sorters.Add(new Yw.Vmo.Sorter() { ID = next.ID, SortCode = current.SortCode });
-            var bol = await BLLFactory<HStation.BLL.AssetsCoolingMain>.Instance.UpdateSorter(sorters);
+            var bol = await BLLFactory<HStation.BLL.AssetsElbowMain>.Instance.UpdateSorter(sorters);
             if (!bol)
             {
                 TipFormHelper.ShowError("涓嬬Щ澶辫触锛�");
@@ -240,15 +240,15 @@
             current.SortCode = next.SortCode;
             next.SortCode = sortCode;
             _allBindingList = _allBindingList.OrderBy(x => x.SortCode).ToList();
-            this.assetsCoolingMainMgrViewModelBindingSource.DataSource = _allBindingList;
-            this.assetsCoolingMainMgrViewModelBindingSource.ResetBindings(false);
+            this.assetsElbowMainMgrViewModelBindingSource.DataSource = _allBindingList;
+            this.assetsElbowMainMgrViewModelBindingSource.ResetBindings(false);
             this.gridView1.FocusedRowHandle = nextHandle;
         }
 
         #region 褰撳墠
 
         //鑾峰彇褰撳墠
-        private AssetsCoolingMainMgrViewModel GetCurrentViewModel()
+        private AssetsElbowMainMgrViewModel GetCurrentViewModel()
         {
             if (_allBindingList == null)
             {
@@ -332,12 +332,12 @@
                 {
                     Modular = AssetsFunctionHelper.Modular,
                     MoudingType = eMoudingType.Tab,
-                    Function = AssetsFunctionHelper.CoolingFactorMgr,
+                    Function = AssetsFunctionHelper.ElbowFactorMgr,
                     TagName = string.Empty
                 };
                 if (!IsExistPage(guid, true))
                 {
-                    var page = new AssetsCoolingFactorMgrPage();
+                    var page = new AssetsElbowFactorMgrPage();
                     CreatePage(page, guid);
                 }
             }
@@ -352,7 +352,7 @@
                 return;
             }
             var sourceIndex = indexs[0];
-            var sourceObj = this.gridView1.GetRow(sourceIndex) as AssetsCoolingMainMgrViewModel;
+            var sourceObj = this.gridView1.GetRow(sourceIndex) as AssetsElbowMainMgrViewModel;
             if (sourceObj == null)
             {
                 e.Handled = true;
@@ -366,7 +366,7 @@
                 return;
             }
 
-            var destObj = this.gridView1.GetRow(destIndex) as AssetsCoolingMainMgrViewModel;
+            var destObj = this.gridView1.GetRow(destIndex) as AssetsElbowMainMgrViewModel;
             if (destObj == null)
             {
                 e.Handled = true;
@@ -409,7 +409,7 @@
                 return;
             }
 
-            var bll = BLLFactory<HStation.BLL.AssetsCoolingMain>.Instance;
+            var bll = BLLFactory<HStation.BLL.AssetsElbowMain>.Instance;
             var bol = await bll.UpdateSorter(sorters);
             if (!bol)
             {
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AssetsCoolingMainMgrPage.resx b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AssetsElbowMainMgrPage.resx
similarity index 98%
rename from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AssetsCoolingMainMgrPage.resx
rename to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AssetsElbowMainMgrPage.resx
index 214ae2c..3de84bf 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AssetsCoolingMainMgrPage.resx
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AssetsElbowMainMgrPage.resx
@@ -326,11 +326,11 @@
         NCwxNi4xeiIgY2xhc3M9IkJsYWNrIiAvPg0KPC9zdmc+Cw==
 </value>
   </data>
-  <metadata name="assetsCoolingMainMgrViewModelBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>417, 17</value>
+  <metadata name="assetsElbowMainMgrViewModelBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
   </metadata>
   <metadata name="behaviorManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>756, 17</value>
+    <value>458, 17</value>
   </metadata>
   <data name="editorButtonImageOptions1.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
@@ -354,6 +354,6 @@
 </value>
   </data>
   <metadata name="svgImg32.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>305, 17</value>
+    <value>346, 17</value>
   </metadata>
 </root>
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AssetsCoolingMainMgrViewModel.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AssetsElbowMainMgrViewModel.cs
similarity index 75%
rename from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AssetsCoolingMainMgrViewModel.cs
rename to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AssetsElbowMainMgrViewModel.cs
index 0f82a66..8a3e8f4 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AssetsCoolingMainMgrViewModel.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AssetsElbowMainMgrViewModel.cs
@@ -1,29 +1,32 @@
-锘縰sing HStation.Service.Assets;
+锘縰sing HStation.Assets;
+using HStation.Service.Assets;
 
 namespace HStation.WinFrmUI
 {
     /// <summary>
-    /// 
+    ///
     /// </summary>
-    public class AssetsCoolingMainMgrViewModel
+    public class AssetsElbowMainMgrViewModel
     {
         /// <summary>
-        /// 
+        ///
         /// </summary>
-        public AssetsCoolingMainMgrViewModel() { }
+        public AssetsElbowMainMgrViewModel()
+        { }
 
         /// <summary>
-        /// 
+        ///
         /// </summary>
-        public AssetsCoolingMainMgrViewModel(HStation.Vmo.AssetsCoolingMainVmo rhs)
+        public AssetsElbowMainMgrViewModel(HStation.Vmo.AssetsElbowMainVmo rhs)
         {
             this.ID = rhs.ID;
             this.SeriesID = rhs.SeriesID;
             this.Name = rhs.Name;
             this.Material = rhs.Material;
             this.Caliber = rhs.Caliber;
-            this.Coefficient = rhs.Coefficient;
-            this.LowerLimit = rhs.LowerLimit;
+            this.Coefficient = rhs.MinorLoss;
+            this.ElbowType = rhs.ElbowType;
+            this.Angle = rhs.Angle;
             this.KeyWords = KeyWordHelper.ToString(rhs.KeyWords);
             this.Flags = Yw.Untity.FlagsHelper.ToString(rhs.Flags);
             this.TagName = rhs.TagName;
@@ -32,17 +35,18 @@
         }
 
         /// <summary>
-        /// 
+        ///
         /// </summary>
-        public void Reset(HStation.Vmo.AssetsCoolingMainVmo rhs)
+        public void Reset(HStation.Vmo.AssetsElbowMainVmo rhs)
         {
             this.ID = rhs.ID;
             this.SeriesID = rhs.SeriesID;
             this.Name = rhs.Name;
             this.Material = rhs.Material;
             this.Caliber = rhs.Caliber;
-            this.Coefficient = rhs.Coefficient;
-            this.LowerLimit = rhs.LowerLimit;
+            this.Coefficient = rhs.MinorLoss;
+            this.ElbowType = rhs.ElbowType;
+            this.Angle = rhs.Angle;
             this.KeyWords = KeyWordHelper.ToString(rhs.KeyWords);
             this.Flags = Yw.Untity.FlagsHelper.ToString(rhs.Flags);
             this.TagName = rhs.TagName;
@@ -52,7 +56,7 @@
 
         /// <summary>
         /// id
-        /// </summary>  
+        /// </summary>
         [Display(Name = "ID")]
         public long ID { get; set; }
 
@@ -87,16 +91,22 @@
         public double Coefficient { get; set; }
 
         /// <summary>
-        /// 鏈�灏忓帇鍔�
-        /// </summary>
-        [Display(Name = "鏈�灏忓帇鍔�(m)")]
-        public double LowerLimit { get; set; }
-
-        /// <summary>
         /// 鍏抽敭瀛�
         /// </summary>
         [Display(Name = "鍏抽敭瀛�")]
         public string KeyWords { get; set; }
+
+        /// <summary>
+        /// 寮ご绫诲瀷
+        /// </summary>
+        [Display(Name = "寮ご绫诲瀷")]
+        public eElbowType? ElbowType { get; set; }
+
+        /// <summary>
+        /// 瑙掑害
+        /// </summary>
+        [Display(Name = "瑙掑害")]
+        public int? Angle { get; set; }
 
         /// <summary>
         /// 鏍囩
@@ -127,9 +137,8 @@
         public string Description { get; set; }
 
         /// <summary>
-        /// 
+        ///
         /// </summary>
-        public HStation.Vmo.AssetsCoolingMainVmo Vmo { get; set; }
-
+        public HStation.Vmo.AssetsElbowMainVmo Vmo { get; set; }
     }
-}
+}
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/EditAssetsCoolingMainDlg.resx b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/EditAssetsCoolingMainDlg.resx
deleted file mode 100644
index d438392..0000000
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/EditAssetsCoolingMainDlg.resx
+++ /dev/null
@@ -1,123 +0,0 @@
-锘�<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!--
-    Microsoft ResX Schema 
-
-    Version 2.0
-
-    The primary goals of this format is to allow a simple XML format
-    that is mostly human readable. The generation and parsing of the
-    various data types are done through the TypeConverter classes
-    associated with the data types.
-
-    Example:
-
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-
-    There are any number of "resheader" rows that contain simple
-    name/value pairs.
-
-    Each data row contains a name, and value. The row also contains a
-    type or mimetype. Type corresponds to a .NET class that support
-    text/value conversion through the TypeConverter architecture.
-    Classes that don't support this are serialized and stored with the
-    mimetype set.
-
-    The mimetype is used for serialized objects, and tells the
-    ResXResourceReader how to depersist the object. This is currently not
-    extensible. For a given mimetype the value must be set accordingly:
-
-    Note - application/x-microsoft.net.object.binary.base64 is the format
-    that the ResXResourceWriter will generate, however the reader can
-    read any of the formats listed below.
-
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <metadata name="dxErrorProvider1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>17, 17</value>
-  </metadata>
-</root>
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/EditAssetsCoolingMainDlg.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/EditAssetsElbowMainDlg.Designer.cs
similarity index 79%
rename from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/EditAssetsCoolingMainDlg.Designer.cs
rename to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/EditAssetsElbowMainDlg.Designer.cs
index cd405c3..56a39f9 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/EditAssetsCoolingMainDlg.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/EditAssetsElbowMainDlg.Designer.cs
@@ -1,6 +1,6 @@
 锘縩amespace HStation.WinFrmUI
 {
-    partial class EditAssetsCoolingMainDlg
+    partial class EditAssetsElbowMainDlg
     {
         /// <summary>
         /// Required designer variable.
@@ -30,12 +30,13 @@
         {
             components = new Container();
             layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+            imageComboBoxEditConnectlenght = new DevExpress.XtraEditors.ImageComboBoxEdit();
+            txtAngle = new DevExpress.XtraEditors.TextEdit();
             txtKeyWord = new DevExpress.XtraEditors.TextEdit();
             txtTagName = new DevExpress.XtraEditors.TextEdit();
             setFlagsEditCtrl1 = new SetFlagsEditCtrl();
             generalOkAndCancelCtrl1 = new GeneralOkAndCancelCtrl();
             txtDescription = new DevExpress.XtraEditors.MemoEdit();
-            txtLowerLimit = new DevExpress.XtraEditors.TextEdit();
             txtCoefficient = new DevExpress.XtraEditors.TextEdit();
             txtCaliber = new DevExpress.XtraEditors.TextEdit();
             txtMaterial = new DevExpress.XtraEditors.TextEdit();
@@ -44,20 +45,22 @@
             layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
-            layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem();
-            layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlItem10 = new DevExpress.XtraLayout.LayoutControlItem();
+            layoutControlItem12 = new DevExpress.XtraLayout.LayoutControlItem();
+            layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem();
+            layoutControlItem11 = new DevExpress.XtraLayout.LayoutControlItem();
             dxErrorProvider1 = new DevExpress.XtraEditors.DXErrorProvider.DXErrorProvider(components);
             ((ISupportInitialize)layoutControl1).BeginInit();
             layoutControl1.SuspendLayout();
+            ((ISupportInitialize)imageComboBoxEditConnectlenght.Properties).BeginInit();
+            ((ISupportInitialize)txtAngle.Properties).BeginInit();
             ((ISupportInitialize)txtKeyWord.Properties).BeginInit();
             ((ISupportInitialize)txtTagName.Properties).BeginInit();
             ((ISupportInitialize)txtDescription.Properties).BeginInit();
-            ((ISupportInitialize)txtLowerLimit.Properties).BeginInit();
             ((ISupportInitialize)txtCoefficient.Properties).BeginInit();
             ((ISupportInitialize)txtCaliber.Properties).BeginInit();
             ((ISupportInitialize)txtMaterial.Properties).BeginInit();
@@ -66,24 +69,26 @@
             ((ISupportInitialize)layoutControlItem1).BeginInit();
             ((ISupportInitialize)layoutControlItem3).BeginInit();
             ((ISupportInitialize)layoutControlItem4).BeginInit();
-            ((ISupportInitialize)layoutControlItem5).BeginInit();
             ((ISupportInitialize)layoutControlItem2).BeginInit();
             ((ISupportInitialize)layoutControlItem6).BeginInit();
             ((ISupportInitialize)layoutControlItem7).BeginInit();
             ((ISupportInitialize)layoutControlItem8).BeginInit();
-            ((ISupportInitialize)layoutControlItem9).BeginInit();
             ((ISupportInitialize)layoutControlItem10).BeginInit();
+            ((ISupportInitialize)layoutControlItem12).BeginInit();
+            ((ISupportInitialize)layoutControlItem9).BeginInit();
+            ((ISupportInitialize)layoutControlItem11).BeginInit();
             ((ISupportInitialize)dxErrorProvider1).BeginInit();
             SuspendLayout();
             // 
             // layoutControl1
             // 
+            layoutControl1.Controls.Add(imageComboBoxEditConnectlenght);
+            layoutControl1.Controls.Add(txtAngle);
             layoutControl1.Controls.Add(txtKeyWord);
             layoutControl1.Controls.Add(txtTagName);
             layoutControl1.Controls.Add(setFlagsEditCtrl1);
             layoutControl1.Controls.Add(generalOkAndCancelCtrl1);
             layoutControl1.Controls.Add(txtDescription);
-            layoutControl1.Controls.Add(txtLowerLimit);
             layoutControl1.Controls.Add(txtCoefficient);
             layoutControl1.Controls.Add(txtCaliber);
             layoutControl1.Controls.Add(txtMaterial);
@@ -97,6 +102,26 @@
             layoutControl1.TabIndex = 1;
             layoutControl1.Text = "layoutControl1";
             // 
+            // imageComboBoxEditConnectlenght
+            // 
+            imageComboBoxEditConnectlenght.Location = new Point(405, 60);
+            imageComboBoxEditConnectlenght.Name = "imageComboBoxEditConnectlenght";
+            imageComboBoxEditConnectlenght.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo) });
+            imageComboBoxEditConnectlenght.Size = new Size(248, 20);
+            imageComboBoxEditConnectlenght.StyleController = layoutControl1;
+            imageComboBoxEditConnectlenght.TabIndex = 8;
+            // 
+            // txtAngle
+            // 
+            txtAngle.Location = new Point(405, 84);
+            txtAngle.Name = "txtAngle";
+            txtAngle.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False;
+            txtAngle.Properties.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Custom;
+            txtAngle.Properties.MaskSettings.Set("MaskManagerType", typeof(DevExpress.Data.Mask.NumericMaskManager));
+            txtAngle.Size = new Size(248, 20);
+            txtAngle.StyleController = layoutControl1;
+            txtAngle.TabIndex = 9;
+            // 
             // txtKeyWord
             // 
             txtKeyWord.Location = new Point(405, 12);
@@ -108,11 +133,11 @@
             // 
             // txtTagName
             // 
-            txtTagName.Location = new Point(405, 84);
+            txtTagName.Location = new Point(83, 108);
             txtTagName.Name = "txtTagName";
-            txtTagName.Size = new Size(248, 20);
+            txtTagName.Size = new Size(570, 20);
             txtTagName.StyleController = layoutControl1;
-            txtTagName.TabIndex = 8;
+            txtTagName.TabIndex = 6;
             // 
             // setFlagsEditCtrl1
             // 
@@ -130,28 +155,15 @@
             generalOkAndCancelCtrl1.Location = new Point(12, 343);
             generalOkAndCancelCtrl1.Name = "generalOkAndCancelCtrl1";
             generalOkAndCancelCtrl1.Size = new Size(641, 26);
-            generalOkAndCancelCtrl1.TabIndex = 10;
+            generalOkAndCancelCtrl1.TabIndex = 11;
             // 
             // txtDescription
             // 
-            txtDescription.Location = new Point(83, 108);
+            txtDescription.Location = new Point(83, 132);
             txtDescription.Name = "txtDescription";
-            txtDescription.Size = new Size(570, 231);
+            txtDescription.Size = new Size(570, 207);
             txtDescription.StyleController = layoutControl1;
-            txtDescription.TabIndex = 9;
-            // 
-            // txtLowerLimit
-            // 
-            txtLowerLimit.Location = new Point(405, 60);
-            txtLowerLimit.Name = "txtLowerLimit";
-            txtLowerLimit.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False;
-            txtLowerLimit.Properties.DisplayFormat.FormatString = "{0}m";
-            txtLowerLimit.Properties.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Custom;
-            txtLowerLimit.Properties.MaskSettings.Set("MaskManagerType", typeof(DevExpress.Data.Mask.NumericMaskManager));
-            txtLowerLimit.Properties.NullValuePrompt = "m";
-            txtLowerLimit.Size = new Size(248, 20);
-            txtLowerLimit.StyleController = layoutControl1;
-            txtLowerLimit.TabIndex = 6;
+            txtDescription.TabIndex = 10;
             // 
             // txtCoefficient
             // 
@@ -200,7 +212,7 @@
             Root.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
             Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
             Root.GroupBordersVisible = false;
-            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1, layoutControlItem3, layoutControlItem4, layoutControlItem5, layoutControlItem2, layoutControlItem6, layoutControlItem7, layoutControlItem8, layoutControlItem9, layoutControlItem10 });
+            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1, layoutControlItem3, layoutControlItem4, layoutControlItem2, layoutControlItem6, layoutControlItem7, layoutControlItem8, layoutControlItem10, layoutControlItem12, layoutControlItem9, layoutControlItem11 });
             Root.Name = "Root";
             Root.Size = new Size(665, 381);
             Root.TextVisible = false;
@@ -234,16 +246,6 @@
             layoutControlItem4.Text = "<color=red>*</color>鍠峰皠绯绘暟:";
             layoutControlItem4.TextSize = new Size(59, 14);
             // 
-            // layoutControlItem5
-            // 
-            layoutControlItem5.AllowHtmlStringInCaption = true;
-            layoutControlItem5.Control = txtLowerLimit;
-            layoutControlItem5.Location = new Point(322, 48);
-            layoutControlItem5.Name = "layoutControlItem5";
-            layoutControlItem5.Size = new Size(323, 24);
-            layoutControlItem5.Text = "<color=red>*</color>鏈�灏忓帇鍔�:";
-            layoutControlItem5.TextSize = new Size(59, 14);
-            // 
             // layoutControlItem2
             // 
             layoutControlItem2.AllowHtmlStringInCaption = true;
@@ -257,9 +259,9 @@
             // layoutControlItem6
             // 
             layoutControlItem6.Control = txtDescription;
-            layoutControlItem6.Location = new Point(0, 96);
+            layoutControlItem6.Location = new Point(0, 120);
             layoutControlItem6.Name = "layoutControlItem6";
-            layoutControlItem6.Size = new Size(645, 235);
+            layoutControlItem6.Size = new Size(645, 211);
             layoutControlItem6.Text = "璇存槑:";
             layoutControlItem6.TextSize = new Size(59, 14);
             // 
@@ -281,15 +283,6 @@
             layoutControlItem8.Text = "鏍囩:";
             layoutControlItem8.TextSize = new Size(59, 14);
             // 
-            // layoutControlItem9
-            // 
-            layoutControlItem9.Control = txtTagName;
-            layoutControlItem9.Location = new Point(322, 72);
-            layoutControlItem9.Name = "layoutControlItem9";
-            layoutControlItem9.Size = new Size(323, 24);
-            layoutControlItem9.Text = "鏍囧織:";
-            layoutControlItem9.TextSize = new Size(59, 14);
-            // 
             // layoutControlItem10
             // 
             layoutControlItem10.Control = txtKeyWord;
@@ -299,25 +292,53 @@
             layoutControlItem10.Text = "鍏抽敭瀛�:";
             layoutControlItem10.TextSize = new Size(59, 14);
             // 
+            // layoutControlItem12
+            // 
+            layoutControlItem12.Control = txtAngle;
+            layoutControlItem12.Location = new Point(322, 72);
+            layoutControlItem12.Name = "layoutControlItem12";
+            layoutControlItem12.Size = new Size(323, 24);
+            layoutControlItem12.Text = "瑙掑害:";
+            layoutControlItem12.TextSize = new Size(59, 14);
+            // 
+            // layoutControlItem9
+            // 
+            layoutControlItem9.Control = txtTagName;
+            layoutControlItem9.Location = new Point(0, 96);
+            layoutControlItem9.Name = "layoutControlItem9";
+            layoutControlItem9.Size = new Size(645, 24);
+            layoutControlItem9.Text = "鏍囧織:";
+            layoutControlItem9.TextSize = new Size(59, 14);
+            // 
+            // layoutControlItem11
+            // 
+            layoutControlItem11.Control = imageComboBoxEditConnectlenght;
+            layoutControlItem11.Location = new Point(322, 48);
+            layoutControlItem11.Name = "layoutControlItem11";
+            layoutControlItem11.Size = new Size(323, 24);
+            layoutControlItem11.Text = "寮ご绫诲瀷:";
+            layoutControlItem11.TextSize = new Size(59, 14);
+            // 
             // dxErrorProvider1
             // 
             dxErrorProvider1.ContainerControl = this;
             // 
-            // EditAssetsCoolingMainDlg
+            // EditAssetsElbowMainDlg
             // 
             AutoScaleDimensions = new SizeF(7F, 14F);
             AutoScaleMode = AutoScaleMode.Font;
             ClientSize = new Size(665, 381);
             Controls.Add(layoutControl1);
-            Name = "EditAssetsCoolingMainDlg";
+            Name = "EditAssetsElbowMainDlg";
             StartPosition = FormStartPosition.CenterParent;
             Text = "缂栬緫";
             ((ISupportInitialize)layoutControl1).EndInit();
             layoutControl1.ResumeLayout(false);
+            ((ISupportInitialize)imageComboBoxEditConnectlenght.Properties).EndInit();
+            ((ISupportInitialize)txtAngle.Properties).EndInit();
             ((ISupportInitialize)txtKeyWord.Properties).EndInit();
             ((ISupportInitialize)txtTagName.Properties).EndInit();
             ((ISupportInitialize)txtDescription.Properties).EndInit();
-            ((ISupportInitialize)txtLowerLimit.Properties).EndInit();
             ((ISupportInitialize)txtCoefficient.Properties).EndInit();
             ((ISupportInitialize)txtCaliber.Properties).EndInit();
             ((ISupportInitialize)txtMaterial.Properties).EndInit();
@@ -326,13 +347,14 @@
             ((ISupportInitialize)layoutControlItem1).EndInit();
             ((ISupportInitialize)layoutControlItem3).EndInit();
             ((ISupportInitialize)layoutControlItem4).EndInit();
-            ((ISupportInitialize)layoutControlItem5).EndInit();
             ((ISupportInitialize)layoutControlItem2).EndInit();
             ((ISupportInitialize)layoutControlItem6).EndInit();
             ((ISupportInitialize)layoutControlItem7).EndInit();
             ((ISupportInitialize)layoutControlItem8).EndInit();
-            ((ISupportInitialize)layoutControlItem9).EndInit();
             ((ISupportInitialize)layoutControlItem10).EndInit();
+            ((ISupportInitialize)layoutControlItem12).EndInit();
+            ((ISupportInitialize)layoutControlItem9).EndInit();
+            ((ISupportInitialize)layoutControlItem11).EndInit();
             ((ISupportInitialize)dxErrorProvider1).EndInit();
             ResumeLayout(false);
         }
@@ -342,7 +364,6 @@
         private DevExpress.XtraLayout.LayoutControl layoutControl1;
         private GeneralOkAndCancelCtrl generalOkAndCancelCtrl1;
         private DevExpress.XtraEditors.MemoEdit txtDescription;
-        private DevExpress.XtraEditors.TextEdit txtLowerLimit;
         private DevExpress.XtraEditors.TextEdit txtCoefficient;
         private DevExpress.XtraEditors.TextEdit txtCaliber;
         private DevExpress.XtraEditors.TextEdit txtMaterial;
@@ -351,7 +372,6 @@
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
-        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
@@ -362,5 +382,10 @@
         private DevExpress.XtraEditors.TextEdit txtTagName;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9;
         private DevExpress.XtraLayout.LayoutControlItem layoutControlItem10;
+        private DevExpress.XtraEditors.ImageComboBoxEdit imageComboBoxEditConnectlenght;
+        private DevExpress.XtraEditors.TextEdit textEdit1;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem12;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem11;
+        private DevExpress.XtraEditors.TextEdit txtAngle;
     }
 }
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/EditAssetsCoolingMainDlg.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/EditAssetsElbowMainDlg.cs
similarity index 73%
rename from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/EditAssetsCoolingMainDlg.cs
rename to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/EditAssetsElbowMainDlg.cs
index c042133..da91dc5 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/EditAssetsCoolingMainDlg.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/EditAssetsElbowMainDlg.cs
@@ -1,4 +1,5 @@
 锘縰sing DevExpress.XtraEditors;
+using HStation.Assets;
 using HStation.Vmo;
 using System;
 using System.Collections.Generic;
@@ -13,9 +14,9 @@
 
 namespace HStation.WinFrmUI
 {
-    public partial class EditAssetsCoolingMainDlg : DevExpress.XtraEditors.XtraForm
+    public partial class EditAssetsElbowMainDlg : DevExpress.XtraEditors.XtraForm
     {
-        public EditAssetsCoolingMainDlg()
+        public EditAssetsElbowMainDlg()
         {
             InitializeComponent();
             this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon;
@@ -26,30 +27,32 @@
         /// <summary>
         /// 杩斿洖鏁版嵁浜嬩欢
         /// </summary>
-        public event Action<HStation.Vmo.AssetsCoolingMainVmo> ReloadDataEvent;
+        public event Action<HStation.Vmo.AssetsElbowMainVmo> ReloadDataEvent;
 
-        private HStation.Vmo.AssetsCoolingMainVmo _vmo = null;
+        private HStation.Vmo.AssetsElbowMainVmo _vmo = null;
 
         /// <summary>
         /// 缁戝畾鏁版嵁
         /// </summary>
-        public async void SetBindingData(HStation.Vmo.AssetsCoolingMainVmo vmo)
+        public async void SetBindingData(HStation.Vmo.AssetsElbowMainVmo vmo)
         {
             if (vmo == null)
             {
                 return;
             }
-            _vmo = new Vmo.AssetsCoolingMainVmo(vmo);
+            _vmo = new Vmo.AssetsElbowMainVmo(vmo);
             this.txtName.EditValue = vmo.Name;
             this.txtMaterial.EditValue = vmo.Material;
             this.txtCaliber.EditValue = vmo.Caliber;
-            this.txtCoefficient.EditValue = vmo.Coefficient;
-            this.txtLowerLimit.EditValue = vmo.LowerLimit;
+            this.txtCoefficient.EditValue = vmo.MinorLoss;
             this.txtKeyWord.EditValue = HStation.Service.Assets.KeyWordHelper.ToString(vmo.KeyWords);
-            var flags = await BLLFactory<Yw.BLL.SysFlag>.Instance.GetBySysType(HStation.Assets.DataType.CoolingMain);
+            var flags = await BLLFactory<Yw.BLL.SysFlag>.Instance.GetBySysType(HStation.Assets.DataType.ElbowMain);
             this.setFlagsEditCtrl1.SetBindingData(flags?.Select(x => x.Name).ToList(), vmo.Flags);
             this.txtTagName.EditValue = vmo.TagName;
             this.txtDescription.EditValue = vmo.Description;
+            this.imageComboBoxEditConnectlenght.Properties.AddEnum(typeof(eElbowType));
+            this.imageComboBoxEditConnectlenght.EditValue = vmo.ElbowType;
+            this.txtAngle.EditValue= vmo.Angle;
         }
 
         //楠岃瘉
@@ -71,15 +74,10 @@
                 this.dxErrorProvider1.SetError(this.txtCoefficient, "蹇呭~椤�");
                 return false;
             }
-            if (string.IsNullOrEmpty(this.txtLowerLimit.Text.Trim()))
-            {
-                this.dxErrorProvider1.SetError(this.txtLowerLimit, "蹇呭~椤�");
-                return false;
-            }
             var tagname = this.txtTagName.Text.Trim();
             if (!string.IsNullOrEmpty(tagname))
             {
-                if (await BLLFactory<HStation.BLL.AssetsCoolingMain>.Instance.IsExistTagNameExceptID(tagname, _vmo.ID))
+                if (await BLLFactory<HStation.BLL.AssetsElbowMain>.Instance.IsExistTagNameExceptID(tagname, _vmo.ID))
                 {
                     this.dxErrorProvider1.SetError(this.txtTagName, "閲嶅");
                     return false;
@@ -102,29 +100,23 @@
             _vmo.Name = this.txtName.Text.Trim();
             _vmo.Material = this.txtMaterial.Text.Trim();
             _vmo.Caliber = this.txtCaliber.EditValue == null ? null : double.Parse(this.txtCaliber.EditValue?.ToString());
-            _vmo.Coefficient = double.Parse(this.txtCoefficient.EditValue?.ToString());
-            _vmo.LowerLimit = double.Parse(this.txtLowerLimit.EditValue?.ToString());
+            _vmo.MinorLoss = double.Parse(this.txtCoefficient.EditValue?.ToString());
             _vmo.KeyWords = HStation.Service.Assets.KeyWordHelper.ToList(this.txtKeyWord.Text.Trim());
             _vmo.Flags = this.setFlagsEditCtrl1.SelectedFlagList;
             _vmo.TagName = this.txtTagName.Text.Trim();
             _vmo.Description = this.txtDescription.Text.Trim();
-
-            var bol = await BLLFactory<HStation.BLL.AssetsCoolingMain>.Instance.Update(_vmo);
+            _vmo.ElbowType = (eElbowType)this.imageComboBoxEditConnectlenght.EditValue;
+            _vmo.Angle = int.Parse(this.txtAngle.EditValue?.ToString());
+            var bol = await BLLFactory<HStation.BLL.AssetsElbowMain>.Instance.Update(_vmo);
             if (!bol)
             {
                 TipFormHelper.ShowError("鏇存柊澶辫触锛�");
                 return;
             }
-            var vmo = await BLLFactory<HStation.BLL.AssetsCoolingMain>.Instance.GetByID(_vmo.ID);
+            var vmo = await BLLFactory<HStation.BLL.AssetsElbowMain>.Instance.GetByID(_vmo.ID);
             this.ReloadDataEvent?.Invoke(vmo);
             this.DialogResult = DialogResult.OK;
             this.Close();
         }
-
-
-
-
-
-
     }
 }
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AddAssetsCoolingMainDlg.resx b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/EditAssetsElbowMainDlg.resx
similarity index 100%
copy from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/AddAssetsCoolingMainDlg.resx
copy to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/EditAssetsElbowMainDlg.resx
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/ViewAssetsCoolingMainDlg.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/ViewAssetsElbowMainDlg.Designer.cs
similarity index 99%
rename from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/ViewAssetsCoolingMainDlg.Designer.cs
rename to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/ViewAssetsElbowMainDlg.Designer.cs
index 60d35ee..80f3c9c 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/ViewAssetsCoolingMainDlg.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/ViewAssetsElbowMainDlg.Designer.cs
@@ -1,6 +1,6 @@
 锘縩amespace HStation.WinFrmUI
 {
-    partial class ViewAssetsCoolingMainDlg
+    partial class ViewAssetsElbowMainDlg
     {
         /// <summary>
         /// Required designer variable.
@@ -285,13 +285,13 @@
             layoutControlItem9.Text = "鏍囧織:";
             layoutControlItem9.TextSize = new Size(52, 14);
             // 
-            // ViewAssetsCoolingMainDlg
+            // ViewAssetsElbowMainDlg
             // 
             AutoScaleDimensions = new SizeF(7F, 14F);
             AutoScaleMode = AutoScaleMode.Font;
             ClientSize = new Size(665, 381);
             Controls.Add(layoutControl1);
-            Name = "ViewAssetsCoolingMainDlg";
+            Name = "ViewAssetsElbowMainDlg";
             StartPosition = FormStartPosition.CenterParent;
             Text = "璇︾粏淇℃伅";
             ((ISupportInitialize)layoutControl1).EndInit();
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/ViewAssetsCoolingMainDlg.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/ViewAssetsElbowMainDlg.cs
similarity index 74%
rename from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/ViewAssetsCoolingMainDlg.cs
rename to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/ViewAssetsElbowMainDlg.cs
index 26e7aeb..4e835f5 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/ViewAssetsCoolingMainDlg.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/ViewAssetsElbowMainDlg.cs
@@ -12,22 +12,21 @@
 
 namespace HStation.WinFrmUI
 {
-    public partial class ViewAssetsCoolingMainDlg : DevExpress.XtraEditors.XtraForm
+    public partial class ViewAssetsElbowMainDlg : DevExpress.XtraEditors.XtraForm
     {
-        public ViewAssetsCoolingMainDlg()
+        public ViewAssetsElbowMainDlg()
         {
             InitializeComponent();
             this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon;
             this.layoutControl1.SetupLayoutControl();
         }
 
-
-        private HStation.Vmo.AssetsCoolingMainVmo _vmo = null;
+        private HStation.Vmo.AssetsElbowMainVmo _vmo = null;
 
         /// <summary>
         /// 缁戝畾鏁版嵁
         /// </summary>
-        public void SetBindingData(HStation.Vmo.AssetsCoolingMainVmo vmo)
+        public void SetBindingData(HStation.Vmo.AssetsElbowMainVmo vmo)
         {
             if (vmo == null)
             {
@@ -37,14 +36,11 @@
             this.txtName.EditValue = vmo.Name;
             this.txtMaterial.EditValue = vmo.Material;
             this.txtCaliber.EditValue = vmo.Caliber;
-            this.txtCoefficient.EditValue = vmo.Coefficient;
-            this.txtLowerLimit.EditValue = vmo.LowerLimit;
+            this.txtCoefficient.EditValue = vmo.MinorLoss;
             this.txtKeyWord.EditValue = HStation.Service.Assets.KeyWordHelper.ToString(vmo.KeyWords);
             this.txtFlags.EditValue = Yw.Untity.FlagsHelper.ToString(vmo.Flags);
             this.txtTagName.EditValue = vmo.TagName;
             this.txtDescription.EditValue = vmo.Description;
         }
-
-
     }
 }
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/ViewAssetsCoolingMainDlg.resx b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/ViewAssetsElbowMainDlg.resx
similarity index 100%
rename from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/ViewAssetsCoolingMainDlg.resx
rename to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/02-main/ViewAssetsElbowMainDlg.resx
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AddAssetsCoolingFactorDlg.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AddAssetsElbowFactorDlg.Designer.cs
similarity index 98%
rename from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AddAssetsCoolingFactorDlg.Designer.cs
rename to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AddAssetsElbowFactorDlg.Designer.cs
index f0d2ff8..21f36c9 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AddAssetsCoolingFactorDlg.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AddAssetsElbowFactorDlg.Designer.cs
@@ -1,6 +1,6 @@
 锘縩amespace HStation.WinFrmUI
 {
-    partial class AddAssetsCoolingFactorDlg
+    partial class AddAssetsElbowFactorDlg
     {
         /// <summary>
         /// Required designer variable.
@@ -248,13 +248,13 @@
             // 
             dxErrorProvider1.ContainerControl = this;
             // 
-            // AddAssetsCoolingFactorDlg
+            // AddAssetsElbowFactorDlg
             // 
             AutoScaleDimensions = new SizeF(7F, 14F);
             AutoScaleMode = AutoScaleMode.Font;
             ClientSize = new Size(525, 316);
             Controls.Add(layoutControl1);
-            Name = "AddAssetsCoolingFactorDlg";
+            Name = "AddAssetsElbowFactorDlg";
             StartPosition = FormStartPosition.CenterParent;
             Text = "娣诲姞";
             ((ISupportInitialize)layoutControl1).EndInit();
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AddAssetsCoolingFactorDlg.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AddAssetsElbowFactorDlg.cs
similarity index 77%
rename from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AddAssetsCoolingFactorDlg.cs
rename to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AddAssetsElbowFactorDlg.cs
index 8c7f4ff..f554f2f 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AddAssetsCoolingFactorDlg.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AddAssetsElbowFactorDlg.cs
@@ -13,9 +13,9 @@
 
 namespace HStation.WinFrmUI
 {
-    public partial class AddAssetsCoolingFactorDlg : DevExpress.XtraEditors.XtraForm
+    public partial class AddAssetsElbowFactorDlg : DevExpress.XtraEditors.XtraForm
     {
-        public AddAssetsCoolingFactorDlg()
+        public AddAssetsElbowFactorDlg()
         {
             InitializeComponent();
             this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon;
@@ -23,28 +23,27 @@
             this.generalOkAndCancelCtrl1.OkEvent += GeneralOkAndCancelCtrl1_OkEvent;
         }
 
-        private static AssetsCoolingFactorVmo _last = null;
+        private static AssetsElbowFactorVmo _last = null;
 
         /// <summary>
         /// 杩斿洖鏁版嵁浜嬩欢
         /// </summary>
-        public event Action<HStation.Vmo.AssetsCoolingFactorVmo> ReloadDataEvent;
+        public event Action<HStation.Vmo.AssetsElbowFactorVmo> ReloadDataEvent;
 
-        private HStation.Vmo.AssetsCoolingFactorVmo _vmo = null;
+        private HStation.Vmo.AssetsElbowFactorVmo _vmo = null;
 
         /// <summary>
         /// 缁戝畾鏁版嵁
         /// </summary>
         public void SetBindingData()
         {
-            _vmo = new Vmo.AssetsCoolingFactorVmo();
+            _vmo = new Vmo.AssetsElbowFactorVmo();
             if (_last != null)
             {
                 this.txtName.EditValue = _last.Name;
                 this.txtMaterial.EditValue = _last.Material;
                 this.txtCaliber.EditValue = _last.Caliber;
-                this.txtCoefficient.EditValue = _last.Coefficient;
-                this.txtLowerLimit.EditValue = _last.LowerLimit;
+                this.txtCoefficient.EditValue = _last.MinorLoss;
                 this.txtDescription.EditValue = _last.Description;
             }
         }
@@ -90,22 +89,19 @@
             _vmo.Name = this.txtName.Text.Trim();
             _vmo.Material = this.txtMaterial.Text.Trim();
             _vmo.Caliber = this.txtCaliber.EditValue == null ? null : double.Parse(this.txtCaliber.EditValue?.ToString());
-            _vmo.Coefficient = double.Parse(this.txtCoefficient.EditValue?.ToString());
-            _vmo.LowerLimit = double.Parse(this.txtLowerLimit.EditValue?.ToString());
+            _vmo.MinorLoss = double.Parse(this.txtCoefficient.EditValue?.ToString());
             _vmo.Description = this.txtDescription.Text.Trim();
-            var id = await BLLFactory<HStation.BLL.AssetsCoolingFactor>.Instance.Insert(_vmo);
+            var id = await BLLFactory<HStation.BLL.AssetsElbowFactor>.Instance.Insert(_vmo);
             if (id < 1)
             {
                 TipFormHelper.ShowError("娣诲姞澶辫触锛�");
                 return;
             }
-            var vmo = await BLLFactory<HStation.BLL.AssetsCoolingFactor>.Instance.GetByID(id);
+            var vmo = await BLLFactory<HStation.BLL.AssetsElbowFactor>.Instance.GetByID(id);
             _last = vmo;
             this.ReloadDataEvent?.Invoke(vmo);
             this.DialogResult = DialogResult.OK;
             this.Close();
         }
-
-
     }
 }
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AddAssetsCoolingFactorDlg.resx b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AddAssetsElbowFactorDlg.resx
similarity index 100%
rename from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AddAssetsCoolingFactorDlg.resx
rename to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AddAssetsElbowFactorDlg.resx
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AssetsCoolingFactorMgrPage.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AssetsElbowFactorMgrPage.Designer.cs
similarity index 96%
rename from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AssetsCoolingFactorMgrPage.Designer.cs
rename to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AssetsElbowFactorMgrPage.Designer.cs
index b7e7712..5f40408 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AssetsCoolingFactorMgrPage.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AssetsElbowFactorMgrPage.Designer.cs
@@ -1,6 +1,6 @@
 锘縩amespace HStation.WinFrmUI
 {
-    partial class AssetsCoolingFactorMgrPage
+    partial class AssetsElbowFactorMgrPage
     {
         /// <summary> 
         /// Required designer variable.
@@ -29,7 +29,7 @@
         private void InitializeComponent()
         {
             components = new Container();
-            ComponentResourceManager resources = new ComponentResourceManager(typeof(AssetsCoolingFactorMgrPage));
+            ComponentResourceManager resources = new ComponentResourceManager(typeof(AssetsElbowFactorMgrPage));
             DevExpress.XtraEditors.Controls.EditorButtonImageOptions editorButtonImageOptions1 = new DevExpress.XtraEditors.Controls.EditorButtonImageOptions();
             DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject1 = new DevExpress.Utils.SerializableAppearanceObject();
             DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject2 = new DevExpress.Utils.SerializableAppearanceObject();
@@ -51,7 +51,7 @@
             ribPageGroupForMore = new DevExpress.XtraBars.Ribbon.RibbonPageGroup();
             panelControl1 = new DevExpress.XtraEditors.PanelControl();
             gridControl1 = new DevExpress.XtraGrid.GridControl();
-            assetsCoolingFactorMgrViewModelBindingSource = new BindingSource(components);
+            assetsElbowFactorMgrViewModelBindingSource = new BindingSource(components);
             gridView1 = new DevExpress.XtraGrid.Views.Grid.GridView();
             colID = new DevExpress.XtraGrid.Columns.GridColumn();
             colName = new DevExpress.XtraGrid.Columns.GridColumn();
@@ -70,7 +70,7 @@
             ((ISupportInitialize)panelControl1).BeginInit();
             panelControl1.SuspendLayout();
             ((ISupportInitialize)gridControl1).BeginInit();
-            ((ISupportInitialize)assetsCoolingFactorMgrViewModelBindingSource).BeginInit();
+            ((ISupportInitialize)assetsElbowFactorMgrViewModelBindingSource).BeginInit();
             ((ISupportInitialize)gridView1).BeginInit();
             ((ISupportInitialize)repositoryItemButtonEdit1).BeginInit();
             ((ISupportInitialize)svgImg32).BeginInit();
@@ -211,7 +211,7 @@
             // 
             // gridControl1
             // 
-            gridControl1.DataSource = assetsCoolingFactorMgrViewModelBindingSource;
+            gridControl1.DataSource = assetsElbowFactorMgrViewModelBindingSource;
             gridControl1.Dock = DockStyle.Fill;
             gridControl1.Location = new Point(0, 1);
             gridControl1.MainView = gridView1;
@@ -222,9 +222,9 @@
             gridControl1.TabIndex = 0;
             gridControl1.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { gridView1 });
             // 
-            // assetsCoolingFactorMgrViewModelBindingSource
+            // assetsElbowFactorMgrViewModelBindingSource
             // 
-            assetsCoolingFactorMgrViewModelBindingSource.DataSource = typeof(AssetsCoolingFactorMgrViewModel);
+            assetsElbowFactorMgrViewModelBindingSource.DataSource = typeof(AssetsElbowFactorMgrViewModel);
             // 
             // gridView1
             // 
@@ -338,7 +338,7 @@
             // 
             dragDropEvents1.DragDrop += dragDropEvents1_DragDrop;
             // 
-            // AssetsCoolingFactorMgrPage
+            // AssetsElbowFactorMgrPage
             // 
             Appearance.BackColor = SystemColors.Control;
             Appearance.Options.UseBackColor = true;
@@ -346,14 +346,14 @@
             AutoScaleMode = AutoScaleMode.Font;
             Controls.Add(panelControl1);
             Controls.Add(ribbonControl1);
-            Name = "AssetsCoolingFactorMgrPage";
+            Name = "AssetsElbowFactorMgrPage";
             Padding = new Padding(1);
             Size = new Size(998, 670);
             ((ISupportInitialize)ribbonControl1).EndInit();
             ((ISupportInitialize)panelControl1).EndInit();
             panelControl1.ResumeLayout(false);
             ((ISupportInitialize)gridControl1).EndInit();
-            ((ISupportInitialize)assetsCoolingFactorMgrViewModelBindingSource).EndInit();
+            ((ISupportInitialize)assetsElbowFactorMgrViewModelBindingSource).EndInit();
             ((ISupportInitialize)gridView1).EndInit();
             ((ISupportInitialize)repositoryItemButtonEdit1).EndInit();
             ((ISupportInitialize)svgImg32).EndInit();
@@ -381,7 +381,7 @@
         private DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit repositoryItemButtonEdit1;
         private DevExpress.XtraBars.BarButtonItem barBtnUp;
         private DevExpress.XtraBars.BarButtonItem barBtnDown;
-        private BindingSource assetsCoolingFactorMgrViewModelBindingSource;
+        private BindingSource assetsElbowFactorMgrViewModelBindingSource;
         private DevExpress.XtraGrid.Columns.GridColumn colName;
         private DevExpress.XtraGrid.Columns.GridColumn colMaterial;
         private DevExpress.XtraGrid.Columns.GridColumn colCaliber;
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AssetsCoolingFactorMgrPage.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AssetsElbowFactorMgrPage.cs
similarity index 84%
rename from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AssetsCoolingFactorMgrPage.cs
rename to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AssetsElbowFactorMgrPage.cs
index e74bbbc..cdd5c98 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AssetsCoolingFactorMgrPage.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AssetsElbowFactorMgrPage.cs
@@ -4,9 +4,9 @@
 
 namespace HStation.WinFrmUI
 {
-    public partial class AssetsCoolingFactorMgrPage : DocumentPage
+    public partial class AssetsElbowFactorMgrPage : DocumentPage
     {
-        public AssetsCoolingFactorMgrPage()
+        public AssetsElbowFactorMgrPage()
         {
             InitializeComponent();
             this.gridView1.SetLimitView(30);
@@ -16,7 +16,7 @@
         }
 
         //鏁版嵁缁戝畾鍒楄〃
-        private List<AssetsCoolingFactorMgrViewModel> _allBindingList = null;
+        private List<AssetsElbowFactorMgrViewModel> _allBindingList = null;
 
         /// <summary>
         /// 鍒濆鍖栨暟鎹簮
@@ -31,18 +31,18 @@
         private async void InitialData()
         {
             var overlay = this.ShowOverlay();
-            var allBindingList = await BLLFactory<HStation.BLL.AssetsCoolingFactor>.Instance.GetAll();
-            _allBindingList = new List<AssetsCoolingFactorMgrViewModel>();
+            var allBindingList = await BLLFactory<HStation.BLL.AssetsElbowFactor>.Instance.GetAll();
+            _allBindingList = new List<AssetsElbowFactorMgrViewModel>();
             if (allBindingList != null && allBindingList.Count > 0)
             {
                 foreach (var item in allBindingList)
                 {
-                    var vm = new AssetsCoolingFactorMgrViewModel(item);
+                    var vm = new AssetsElbowFactorMgrViewModel(item);
                     _allBindingList.Add(vm);
                 }
             }
-            this.assetsCoolingFactorMgrViewModelBindingSource.DataSource = _allBindingList;
-            this.assetsCoolingFactorMgrViewModelBindingSource.ResetBindings(false);
+            this.assetsElbowFactorMgrViewModelBindingSource.DataSource = _allBindingList;
+            this.assetsElbowFactorMgrViewModelBindingSource.ResetBindings(false);
             overlay.Close();
             SetDragEnable(this.barCkDrag.Checked);
         }
@@ -64,12 +64,12 @@
                 TipFormHelper.ShowError("鏁版嵁鍒濆鍖栧け璐ワ紒");
                 return;
             }
-            var dlg = new AddAssetsCoolingFactorDlg();
+            var dlg = new AddAssetsElbowFactorDlg();
             dlg.ReloadDataEvent += (rhs) =>
             {
-                var vm = new AssetsCoolingFactorMgrViewModel(rhs);
+                var vm = new AssetsElbowFactorMgrViewModel(rhs);
                 _allBindingList.Add(vm);
-                this.assetsCoolingFactorMgrViewModelBindingSource.ResetBindings(false);
+                this.assetsElbowFactorMgrViewModelBindingSource.ResetBindings(false);
                 TipFormHelper.ShowSucceed("娣诲姞鎴愬姛锛�");
             };
             dlg.SetBindingData();
@@ -84,7 +84,7 @@
             {
                 return;
             }
-            var dlg = new EditAssetsCoolingFactorDlg();
+            var dlg = new EditAssetsElbowFactorDlg();
             dlg.ReloadDataEvent += (rhs) =>
             {
                 vm.Reset(rhs);
@@ -108,14 +108,14 @@
             {
                 return;
             }
-            var bol = await BLLFactory<HStation.BLL.AssetsCoolingFactor>.Instance.DeleteByID(vm.ID);
+            var bol = await BLLFactory<HStation.BLL.AssetsElbowFactor>.Instance.DeleteByID(vm.ID);
             if (!bol)
             {
                 TipFormHelper.ShowError("鍒犻櫎澶辫触锛�");
                 return;
             }
             _allBindingList.Remove(vm);
-            this.assetsCoolingFactorMgrViewModelBindingSource.ResetBindings(false);
+            this.assetsElbowFactorMgrViewModelBindingSource.ResetBindings(false);
             TipFormHelper.ShowSucceed("鍒犻櫎鎴愬姛锛�");
         }
 
@@ -127,7 +127,7 @@
             {
                 return;
             }
-            var dlg = new ViewAssetsCoolingFactorDlg();
+            var dlg = new ViewAssetsElbowFactorDlg();
             dlg.SetBindingData(vm.Vmo);
             dlg.ShowDialog();
         }
@@ -146,13 +146,13 @@
                 TipFormHelper.ShowWarn("涓婄Щ澶辫触锛�");
                 return;
             }
-            var current = this.gridView1.GetRow(rowHandle) as AssetsCoolingFactorMgrViewModel;
+            var current = this.gridView1.GetRow(rowHandle) as AssetsElbowFactorMgrViewModel;
             if (current == null)
             {
                 return;
             }
             var prevHandle = rowHandle - 1;
-            var prev = this.gridView1.GetRow(prevHandle) as AssetsCoolingFactorMgrViewModel;
+            var prev = this.gridView1.GetRow(prevHandle) as AssetsElbowFactorMgrViewModel;
             if (prev == null)
             {
                 return;
@@ -160,7 +160,7 @@
             var sorters = new List<Yw.Vmo.Sorter>();
             sorters.Add(new Yw.Vmo.Sorter() { ID = current.ID, SortCode = prev.SortCode });
             sorters.Add(new Yw.Vmo.Sorter() { ID = prev.ID, SortCode = current.SortCode });
-            var bol = await BLLFactory<HStation.BLL.AssetsCoolingFactor>.Instance.UpdateSorter(sorters);
+            var bol = await BLLFactory<HStation.BLL.AssetsElbowFactor>.Instance.UpdateSorter(sorters);
             if (!bol)
             {
                 TipFormHelper.ShowError("涓婄Щ澶辫触锛�");
@@ -170,8 +170,8 @@
             current.SortCode = prev.SortCode;
             prev.SortCode = sortCode;
             _allBindingList = _allBindingList.OrderBy(x => x.SortCode).ToList();
-            this.assetsCoolingFactorMgrViewModelBindingSource.DataSource = _allBindingList;
-            this.assetsCoolingFactorMgrViewModelBindingSource.ResetBindings(false);
+            this.assetsElbowFactorMgrViewModelBindingSource.DataSource = _allBindingList;
+            this.assetsElbowFactorMgrViewModelBindingSource.ResetBindings(false);
             this.gridView1.FocusedRowHandle = prevHandle;
         }
 
@@ -189,13 +189,13 @@
                 TipFormHelper.ShowWarn("涓嬬Щ澶辫触锛�");
                 return;
             }
-            var current = this.gridView1.GetRow(rowHandle) as AssetsCoolingFactorMgrViewModel;
+            var current = this.gridView1.GetRow(rowHandle) as AssetsElbowFactorMgrViewModel;
             if (current == null)
             {
                 return;
             }
             var nextHandle = rowHandle + 1;
-            var next = this.gridView1.GetRow(nextHandle) as AssetsCoolingFactorMgrViewModel;
+            var next = this.gridView1.GetRow(nextHandle) as AssetsElbowFactorMgrViewModel;
             if (next == null)
             {
                 return;
@@ -203,7 +203,7 @@
             var sorters = new List<Yw.Vmo.Sorter>();
             sorters.Add(new Yw.Vmo.Sorter() { ID = current.ID, SortCode = next.SortCode });
             sorters.Add(new Yw.Vmo.Sorter() { ID = next.ID, SortCode = current.SortCode });
-            var bol = await BLLFactory<HStation.BLL.AssetsCoolingFactor>.Instance.UpdateSorter(sorters);
+            var bol = await BLLFactory<HStation.BLL.AssetsElbowFactor>.Instance.UpdateSorter(sorters);
             if (!bol)
             {
                 TipFormHelper.ShowError("涓嬬Щ澶辫触锛�");
@@ -213,16 +213,15 @@
             current.SortCode = next.SortCode;
             next.SortCode = sortCode;
             _allBindingList = _allBindingList.OrderBy(x => x.SortCode).ToList();
-            this.assetsCoolingFactorMgrViewModelBindingSource.DataSource = _allBindingList;
-            this.assetsCoolingFactorMgrViewModelBindingSource.ResetBindings(false);
+            this.assetsElbowFactorMgrViewModelBindingSource.DataSource = _allBindingList;
+            this.assetsElbowFactorMgrViewModelBindingSource.ResetBindings(false);
             this.gridView1.FocusedRowHandle = nextHandle;
         }
-
 
         #region 褰撳墠
 
         //鑾峰彇褰撳墠
-        private AssetsCoolingFactorMgrViewModel GetCurrentViewModel()
+        private AssetsElbowFactorMgrViewModel GetCurrentViewModel()
         {
             if (_allBindingList == null)
             {
@@ -243,7 +242,7 @@
             return vm;
         }
 
-        #endregion
+        #endregion 褰撳墠
 
         #region Ribbon
 
@@ -295,7 +294,7 @@
             this.RefreshData();
         }
 
-        #endregion
+        #endregion Ribbon
 
         #region GridView
 
@@ -306,7 +305,8 @@
                 View();
             }
         }
-        #endregion
+
+        #endregion GridView
 
         private async void dragDropEvents1_DragDrop(object sender, DevExpress.Utils.DragDrop.DragDropEventArgs e)
         {
@@ -317,7 +317,7 @@
                 return;
             }
             var sourceIndex = indexs[0];
-            var sourceObj = this.gridView1.GetRow(sourceIndex) as AssetsCoolingFactorMgrViewModel;
+            var sourceObj = this.gridView1.GetRow(sourceIndex) as AssetsElbowFactorMgrViewModel;
             if (sourceObj == null)
             {
                 e.Handled = true;
@@ -331,7 +331,7 @@
                 return;
             }
 
-            var destObj = this.gridView1.GetRow(destIndex) as AssetsCoolingFactorMgrViewModel;
+            var destObj = this.gridView1.GetRow(destIndex) as AssetsElbowFactorMgrViewModel;
             if (destObj == null)
             {
                 e.Handled = true;
@@ -374,7 +374,7 @@
                 return;
             }
 
-            var bll = BLLFactory<HStation.BLL.AssetsCoolingFactor>.Instance;
+            var bll = BLLFactory<HStation.BLL.AssetsElbowFactor>.Instance;
             var bol = await bll.UpdateSorter(sorters);
             if (!bol)
             {
@@ -403,6 +403,5 @@
             var be = this.behaviorManager1.GetBehavior<DevExpress.Utils.DragDrop.DragDropBehavior>(this.gridView1);
             be.Properties.AllowDrag = allowArag;
         }
-
     }
 }
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AssetsCoolingFactorMgrPage.resx b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AssetsElbowFactorMgrPage.resx
similarity index 100%
rename from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AssetsCoolingFactorMgrPage.resx
rename to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AssetsElbowFactorMgrPage.resx
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AssetsCoolingFactorMgrViewModel.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AssetsElbowFactorMgrViewModel.cs
similarity index 71%
rename from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AssetsCoolingFactorMgrViewModel.cs
rename to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AssetsElbowFactorMgrViewModel.cs
index 85b6c55..7e10c9e 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AssetsCoolingFactorMgrViewModel.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AssetsElbowFactorMgrViewModel.cs
@@ -1,48 +1,47 @@
 锘縩amespace HStation.WinFrmUI
 {
     /// <summary>
-    /// 
+    ///
     /// </summary>
-    public class AssetsCoolingFactorMgrViewModel
+    public class AssetsElbowFactorMgrViewModel
     {
         /// <summary>
-        /// 
+        ///
         /// </summary>
-        public AssetsCoolingFactorMgrViewModel() { }
+        public AssetsElbowFactorMgrViewModel()
+        { }
 
         /// <summary>
-        /// 
+        ///
         /// </summary>
-        public AssetsCoolingFactorMgrViewModel(HStation.Vmo.AssetsCoolingFactorVmo rhs)
+        public AssetsElbowFactorMgrViewModel(HStation.Vmo.AssetsElbowFactorVmo rhs)
         {
             this.ID = rhs.ID;
             this.Name = rhs.Name;
             this.Material = rhs.Material;
             this.Caliber = rhs.Caliber;
-            this.Coefficient = rhs.Coefficient;
-            this.LowerLimit = rhs.LowerLimit;
+            this.Coefficient = rhs.MinorLoss;
             this.Description = rhs.Description;
             this.Vmo = rhs;
         }
 
         /// <summary>
-        /// 
+        ///
         /// </summary>
-        public void Reset(HStation.Vmo.AssetsCoolingFactorVmo rhs)
+        public void Reset(HStation.Vmo.AssetsElbowFactorVmo rhs)
         {
             this.ID = rhs.ID;
             this.Name = rhs.Name;
             this.Material = rhs.Material;
             this.Caliber = rhs.Caliber;
-            this.Coefficient = rhs.Coefficient;
-            this.LowerLimit = rhs.LowerLimit;
+            this.Coefficient = rhs.MinorLoss;
             this.Description = rhs.Description;
             this.Vmo = rhs;
         }
 
         /// <summary>
         /// id
-        /// </summary>  
+        /// </summary>
         [Display(Name = "ID")]
         public long ID { get; set; }
 
@@ -71,12 +70,6 @@
         public double Coefficient { get; set; }
 
         /// <summary>
-        /// 鏈�灏忓帇鍔�
-        /// </summary>
-        [Display(Name = "鏈�灏忓帇鍔�(m)")]
-        public double LowerLimit { get; set; }
-
-        /// <summary>
         /// 鎺掑簭鐮�
         /// </summary>
         [Display(Name = "鎺掑簭鐮�")]
@@ -92,11 +85,9 @@
         [Display(Name = "璇存槑")]
         public string Description { get; set; }
 
-
         /// <summary>
-        /// 
+        ///
         /// </summary>
-        public HStation.Vmo.AssetsCoolingFactorVmo Vmo { get; set; }
-
+        public HStation.Vmo.AssetsElbowFactorVmo Vmo { get; set; }
     }
-}
+}
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/EditAssetsCoolingFactorDlg.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/EditAssetsCoolingFactorDlg.Designer.cs
deleted file mode 100644
index 0c93936..0000000
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/EditAssetsCoolingFactorDlg.Designer.cs
+++ /dev/null
@@ -1,302 +0,0 @@
-锘縩amespace HStation.WinFrmUI
-{
-    partial class EditAssetsCoolingFactorDlg
-    {
-        /// <summary>
-        /// Required designer variable.
-        /// </summary>
-        private System.ComponentModel.IContainer components = null;
-
-        /// <summary>
-        /// Clean up any resources being used.
-        /// </summary>
-        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
-        protected override void Dispose(bool disposing)
-        {
-            if (disposing && (components != null))
-            {
-                components.Dispose();
-            }
-            base.Dispose(disposing);
-        }
-
-        #region Windows Form Designer generated code
-
-        /// <summary>
-        /// Required method for Designer support - do not modify
-        /// the contents of this method with the code editor.
-        /// </summary>
-        private void InitializeComponent()
-        {
-            components = new Container();
-            layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
-            generalOkAndCancelCtrl1 = new GeneralOkAndCancelCtrl();
-            txtDescription = new DevExpress.XtraEditors.MemoEdit();
-            txtLowerLimit = new DevExpress.XtraEditors.TextEdit();
-            txtCoefficient = new DevExpress.XtraEditors.TextEdit();
-            txtCaliber = new DevExpress.XtraEditors.TextEdit();
-            txtMaterial = new DevExpress.XtraEditors.TextEdit();
-            txtName = new DevExpress.XtraEditors.TextEdit();
-            Root = new DevExpress.XtraLayout.LayoutControlGroup();
-            layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
-            layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
-            layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
-            layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
-            layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
-            layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
-            emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
-            layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
-            dxErrorProvider1 = new DevExpress.XtraEditors.DXErrorProvider.DXErrorProvider(components);
-            ((ISupportInitialize)layoutControl1).BeginInit();
-            layoutControl1.SuspendLayout();
-            ((ISupportInitialize)txtDescription.Properties).BeginInit();
-            ((ISupportInitialize)txtLowerLimit.Properties).BeginInit();
-            ((ISupportInitialize)txtCoefficient.Properties).BeginInit();
-            ((ISupportInitialize)txtCaliber.Properties).BeginInit();
-            ((ISupportInitialize)txtMaterial.Properties).BeginInit();
-            ((ISupportInitialize)txtName.Properties).BeginInit();
-            ((ISupportInitialize)Root).BeginInit();
-            ((ISupportInitialize)layoutControlItem1).BeginInit();
-            ((ISupportInitialize)layoutControlItem3).BeginInit();
-            ((ISupportInitialize)layoutControlItem4).BeginInit();
-            ((ISupportInitialize)layoutControlItem5).BeginInit();
-            ((ISupportInitialize)layoutControlItem2).BeginInit();
-            ((ISupportInitialize)layoutControlItem6).BeginInit();
-            ((ISupportInitialize)emptySpaceItem1).BeginInit();
-            ((ISupportInitialize)layoutControlItem7).BeginInit();
-            ((ISupportInitialize)dxErrorProvider1).BeginInit();
-            SuspendLayout();
-            // 
-            // layoutControl1
-            // 
-            layoutControl1.Controls.Add(generalOkAndCancelCtrl1);
-            layoutControl1.Controls.Add(txtDescription);
-            layoutControl1.Controls.Add(txtLowerLimit);
-            layoutControl1.Controls.Add(txtCoefficient);
-            layoutControl1.Controls.Add(txtCaliber);
-            layoutControl1.Controls.Add(txtMaterial);
-            layoutControl1.Controls.Add(txtName);
-            layoutControl1.Dock = DockStyle.Fill;
-            layoutControl1.Location = new Point(0, 0);
-            layoutControl1.Name = "layoutControl1";
-            layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new Rectangle(826, 220, 650, 400);
-            layoutControl1.Root = Root;
-            layoutControl1.Size = new Size(525, 316);
-            layoutControl1.TabIndex = 0;
-            layoutControl1.Text = "layoutControl1";
-            // 
-            // generalOkAndCancelCtrl1
-            // 
-            generalOkAndCancelCtrl1.ButtonCancelMaxSize = new Size(100, 26);
-            generalOkAndCancelCtrl1.ButtonCancelMinSize = new Size(100, 26);
-            generalOkAndCancelCtrl1.ButtonOkMaxSize = new Size(100, 26);
-            generalOkAndCancelCtrl1.ButtonOkMinSize = new Size(100, 26);
-            generalOkAndCancelCtrl1.Location = new Point(12, 278);
-            generalOkAndCancelCtrl1.Name = "generalOkAndCancelCtrl1";
-            generalOkAndCancelCtrl1.Size = new Size(501, 26);
-            generalOkAndCancelCtrl1.TabIndex = 8;
-            // 
-            // txtDescription
-            // 
-            txtDescription.Location = new Point(83, 84);
-            txtDescription.Name = "txtDescription";
-            txtDescription.Size = new Size(430, 190);
-            txtDescription.StyleController = layoutControl1;
-            txtDescription.TabIndex = 7;
-            // 
-            // txtLowerLimit
-            // 
-            txtLowerLimit.Location = new Point(335, 60);
-            txtLowerLimit.Name = "txtLowerLimit";
-            txtLowerLimit.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False;
-            txtLowerLimit.Properties.DisplayFormat.FormatString = "{0}m";
-            txtLowerLimit.Properties.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Custom;
-            txtLowerLimit.Properties.MaskSettings.Set("MaskManagerType", typeof(DevExpress.Data.Mask.NumericMaskManager));
-            txtLowerLimit.Properties.NullValuePrompt = "m";
-            txtLowerLimit.Size = new Size(178, 20);
-            txtLowerLimit.StyleController = layoutControl1;
-            txtLowerLimit.TabIndex = 6;
-            // 
-            // txtMinorLoss
-            // 
-            txtCoefficient.Location = new Point(83, 60);
-            txtCoefficient.Name = "txtCoefficient";
-            txtCoefficient.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False;
-            txtCoefficient.Properties.MaskSettings.Set("MaskManagerType", typeof(DevExpress.Data.Mask.NumericMaskManager));
-            txtCoefficient.Size = new Size(177, 20);
-            txtCoefficient.StyleController = layoutControl1;
-            txtCoefficient.TabIndex = 5;
-            // 
-            // txtCaliber
-            // 
-            txtCaliber.Location = new Point(335, 36);
-            txtCaliber.Name = "txtCaliber";
-            txtCaliber.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.True;
-            txtCaliber.Properties.DisplayFormat.FormatString = "{0}mm";
-            txtCaliber.Properties.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Custom;
-            txtCaliber.Properties.MaskSettings.Set("MaskManagerType", typeof(DevExpress.Data.Mask.NumericMaskManager));
-            txtCaliber.Properties.NullValuePrompt = "mm";
-            txtCaliber.Size = new Size(178, 20);
-            txtCaliber.StyleController = layoutControl1;
-            txtCaliber.TabIndex = 4;
-            // 
-            // txtMaterial
-            // 
-            txtMaterial.Location = new Point(83, 36);
-            txtMaterial.Name = "txtMaterial";
-            txtMaterial.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False;
-            txtMaterial.Size = new Size(177, 20);
-            txtMaterial.StyleController = layoutControl1;
-            txtMaterial.TabIndex = 3;
-            // 
-            // txtName
-            // 
-            txtName.Location = new Point(83, 12);
-            txtName.Name = "txtName";
-            txtName.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.False;
-            txtName.Size = new Size(177, 20);
-            txtName.StyleController = layoutControl1;
-            txtName.TabIndex = 0;
-            // 
-            // Root
-            // 
-            Root.AppearanceItemCaption.Options.UseTextOptions = true;
-            Root.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
-            Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
-            Root.GroupBordersVisible = false;
-            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1, layoutControlItem3, layoutControlItem4, layoutControlItem5, layoutControlItem2, layoutControlItem6, emptySpaceItem1, layoutControlItem7 });
-            Root.Name = "Root";
-            Root.Size = new Size(525, 316);
-            Root.TextVisible = false;
-            // 
-            // layoutControlItem1
-            // 
-            layoutControlItem1.AllowHtmlStringInCaption = true;
-            layoutControlItem1.Control = txtName;
-            layoutControlItem1.Location = new Point(0, 0);
-            layoutControlItem1.Name = "layoutControlItem1";
-            layoutControlItem1.Size = new Size(252, 24);
-            layoutControlItem1.Text = "<color=red>*</color>鍚嶇О:";
-            layoutControlItem1.TextSize = new Size(59, 14);
-            // 
-            // layoutControlItem3
-            // 
-            layoutControlItem3.Control = txtCaliber;
-            layoutControlItem3.Location = new Point(252, 24);
-            layoutControlItem3.Name = "layoutControlItem3";
-            layoutControlItem3.Size = new Size(253, 24);
-            layoutControlItem3.Text = "鍙e緞:";
-            layoutControlItem3.TextSize = new Size(59, 14);
-            // 
-            // layoutControlItem4
-            // 
-            layoutControlItem4.AllowHtmlStringInCaption = true;
-            layoutControlItem4.Control = txtCoefficient;
-            layoutControlItem4.Location = new Point(0, 48);
-            layoutControlItem4.Name = "layoutControlItem4";
-            layoutControlItem4.Size = new Size(252, 24);
-            layoutControlItem4.Text = "<color=red>*</color>娴侀噺绯绘暟:";
-            layoutControlItem4.TextSize = new Size(59, 14);
-            // 
-            // layoutControlItem5
-            // 
-            layoutControlItem5.AllowHtmlStringInCaption = true;
-            layoutControlItem5.Control = txtLowerLimit;
-            layoutControlItem5.Location = new Point(252, 48);
-            layoutControlItem5.Name = "layoutControlItem5";
-            layoutControlItem5.Size = new Size(253, 24);
-            layoutControlItem5.Text = "<color=red>*</color>鏈�灏忓帇鍔�:";
-            layoutControlItem5.TextSize = new Size(59, 14);
-            // 
-            // layoutControlItem2
-            // 
-            layoutControlItem2.AllowHtmlStringInCaption = true;
-            layoutControlItem2.Control = txtMaterial;
-            layoutControlItem2.Location = new Point(0, 24);
-            layoutControlItem2.Name = "layoutControlItem2";
-            layoutControlItem2.Size = new Size(252, 24);
-            layoutControlItem2.Text = "<color=red>*</color>鏉愯川:";
-            layoutControlItem2.TextSize = new Size(59, 14);
-            // 
-            // layoutControlItem6
-            // 
-            layoutControlItem6.Control = txtDescription;
-            layoutControlItem6.Location = new Point(0, 72);
-            layoutControlItem6.Name = "layoutControlItem6";
-            layoutControlItem6.Size = new Size(505, 194);
-            layoutControlItem6.Text = "璇存槑:";
-            layoutControlItem6.TextSize = new Size(59, 14);
-            // 
-            // emptySpaceItem1
-            // 
-            emptySpaceItem1.AllowHotTrack = false;
-            emptySpaceItem1.Location = new Point(252, 0);
-            emptySpaceItem1.Name = "emptySpaceItem1";
-            emptySpaceItem1.Size = new Size(253, 24);
-            emptySpaceItem1.TextSize = new Size(0, 0);
-            // 
-            // layoutControlItem7
-            // 
-            layoutControlItem7.Control = generalOkAndCancelCtrl1;
-            layoutControlItem7.Location = new Point(0, 266);
-            layoutControlItem7.Name = "layoutControlItem7";
-            layoutControlItem7.Size = new Size(505, 30);
-            layoutControlItem7.TextSize = new Size(0, 0);
-            layoutControlItem7.TextVisible = false;
-            // 
-            // dxErrorProvider1
-            // 
-            dxErrorProvider1.ContainerControl = this;
-            // 
-            // EditAssetsCoolingFactorDlg
-            // 
-            AutoScaleDimensions = new SizeF(7F, 14F);
-            AutoScaleMode = AutoScaleMode.Font;
-            ClientSize = new Size(525, 316);
-            Controls.Add(layoutControl1);
-            Name = "EditAssetsCoolingFactorDlg";
-            StartPosition = FormStartPosition.CenterParent;
-            Text = "缂栬緫";
-            ((ISupportInitialize)layoutControl1).EndInit();
-            layoutControl1.ResumeLayout(false);
-            ((ISupportInitialize)txtDescription.Properties).EndInit();
-            ((ISupportInitialize)txtLowerLimit.Properties).EndInit();
-            ((ISupportInitialize)txtCoefficient.Properties).EndInit();
-            ((ISupportInitialize)txtCaliber.Properties).EndInit();
-            ((ISupportInitialize)txtMaterial.Properties).EndInit();
-            ((ISupportInitialize)txtName.Properties).EndInit();
-            ((ISupportInitialize)Root).EndInit();
-            ((ISupportInitialize)layoutControlItem1).EndInit();
-            ((ISupportInitialize)layoutControlItem3).EndInit();
-            ((ISupportInitialize)layoutControlItem4).EndInit();
-            ((ISupportInitialize)layoutControlItem5).EndInit();
-            ((ISupportInitialize)layoutControlItem2).EndInit();
-            ((ISupportInitialize)layoutControlItem6).EndInit();
-            ((ISupportInitialize)emptySpaceItem1).EndInit();
-            ((ISupportInitialize)layoutControlItem7).EndInit();
-            ((ISupportInitialize)dxErrorProvider1).EndInit();
-            ResumeLayout(false);
-        }
-
-        #endregion
-
-        private DevExpress.XtraLayout.LayoutControl layoutControl1;
-        private DevExpress.XtraLayout.LayoutControlGroup Root;
-        private DevExpress.XtraEditors.TextEdit txtMaterial;
-        private DevExpress.XtraEditors.TextEdit txtName;
-        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
-        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
-        private DevExpress.XtraEditors.TextEdit txtCaliber;
-        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
-        private DevExpress.XtraEditors.TextEdit txtCoefficient;
-        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
-        private DevExpress.XtraEditors.TextEdit txtLowerLimit;
-        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
-        private GeneralOkAndCancelCtrl generalOkAndCancelCtrl1;
-        private DevExpress.XtraEditors.MemoEdit txtDescription;
-        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
-        private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
-        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
-        private DevExpress.XtraEditors.DXErrorProvider.DXErrorProvider dxErrorProvider1;
-    }
-}
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/EditAssetsCoolingFactorDlg.resx b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/EditAssetsCoolingFactorDlg.resx
deleted file mode 100644
index d438392..0000000
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/EditAssetsCoolingFactorDlg.resx
+++ /dev/null
@@ -1,123 +0,0 @@
-锘�<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!--
-    Microsoft ResX Schema 
-
-    Version 2.0
-
-    The primary goals of this format is to allow a simple XML format
-    that is mostly human readable. The generation and parsing of the
-    various data types are done through the TypeConverter classes
-    associated with the data types.
-
-    Example:
-
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-
-    There are any number of "resheader" rows that contain simple
-    name/value pairs.
-
-    Each data row contains a name, and value. The row also contains a
-    type or mimetype. Type corresponds to a .NET class that support
-    text/value conversion through the TypeConverter architecture.
-    Classes that don't support this are serialized and stored with the
-    mimetype set.
-
-    The mimetype is used for serialized objects, and tells the
-    ResXResourceReader how to depersist the object. This is currently not
-    extensible. For a given mimetype the value must be set accordingly:
-
-    Note - application/x-microsoft.net.object.binary.base64 is the format
-    that the ResXResourceWriter will generate, however the reader can
-    read any of the formats listed below.
-
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <metadata name="dxErrorProvider1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>17, 17</value>
-  </metadata>
-</root>
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AddAssetsCoolingFactorDlg.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/EditAssetsElbowFactorDlg.Designer.cs
similarity index 98%
copy from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AddAssetsCoolingFactorDlg.Designer.cs
copy to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/EditAssetsElbowFactorDlg.Designer.cs
index f0d2ff8..c9083df 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AddAssetsCoolingFactorDlg.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/EditAssetsElbowFactorDlg.Designer.cs
@@ -1,6 +1,6 @@
 锘縩amespace HStation.WinFrmUI
 {
-    partial class AddAssetsCoolingFactorDlg
+    partial class EditAssetsElbowFactorDlg
     {
         /// <summary>
         /// Required designer variable.
@@ -248,15 +248,15 @@
             // 
             dxErrorProvider1.ContainerControl = this;
             // 
-            // AddAssetsCoolingFactorDlg
+            // EditAssetsElbowFactorDlg
             // 
             AutoScaleDimensions = new SizeF(7F, 14F);
             AutoScaleMode = AutoScaleMode.Font;
             ClientSize = new Size(525, 316);
             Controls.Add(layoutControl1);
-            Name = "AddAssetsCoolingFactorDlg";
+            Name = "EditAssetsElbowFactorDlg";
             StartPosition = FormStartPosition.CenterParent;
-            Text = "娣诲姞";
+            Text = "缂栬緫";
             ((ISupportInitialize)layoutControl1).EndInit();
             layoutControl1.ResumeLayout(false);
             ((ISupportInitialize)txtDescription.Properties).EndInit();
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/EditAssetsCoolingFactorDlg.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/EditAssetsElbowFactorDlg.cs
similarity index 76%
rename from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/EditAssetsCoolingFactorDlg.cs
rename to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/EditAssetsElbowFactorDlg.cs
index 05d5148..e57eb3b 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/EditAssetsCoolingFactorDlg.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/EditAssetsElbowFactorDlg.cs
@@ -13,9 +13,9 @@
 
 namespace HStation.WinFrmUI
 {
-    public partial class EditAssetsCoolingFactorDlg : DevExpress.XtraEditors.XtraForm
+    public partial class EditAssetsElbowFactorDlg : DevExpress.XtraEditors.XtraForm
     {
-        public EditAssetsCoolingFactorDlg()
+        public EditAssetsElbowFactorDlg()
         {
             InitializeComponent();
             this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon;
@@ -26,25 +26,24 @@
         /// <summary>
         /// 杩斿洖鏁版嵁浜嬩欢
         /// </summary>
-        public event Action<HStation.Vmo.AssetsCoolingFactorVmo> ReloadDataEvent;
+        public event Action<HStation.Vmo.AssetsElbowFactorVmo> ReloadDataEvent;
 
-        private HStation.Vmo.AssetsCoolingFactorVmo _vmo = null;
+        private HStation.Vmo.AssetsElbowFactorVmo _vmo = null;
 
         /// <summary>
         /// 缁戝畾鏁版嵁
         /// </summary>
-        public void SetBindingData(HStation.Vmo.AssetsCoolingFactorVmo vmo)
+        public void SetBindingData(HStation.Vmo.AssetsElbowFactorVmo vmo)
         {
             if (vmo == null)
             {
                 return;
             }
-            _vmo = new Vmo.AssetsCoolingFactorVmo(vmo);
+            _vmo = new Vmo.AssetsElbowFactorVmo(vmo);
             this.txtName.EditValue = vmo.Name;
             this.txtMaterial.EditValue = vmo.Material;
             this.txtCaliber.EditValue = vmo.Caliber;
-            this.txtCoefficient.EditValue = vmo.Coefficient;
-            this.txtLowerLimit.EditValue = vmo.LowerLimit;
+            this.txtCoefficient.EditValue = vmo.MinorLoss;
             this.txtDescription.EditValue = vmo.Description;
         }
 
@@ -89,21 +88,18 @@
             _vmo.Name = this.txtName.Text.Trim();
             _vmo.Material = this.txtMaterial.Text.Trim();
             _vmo.Caliber = this.txtCaliber.EditValue == null ? null : double.Parse(this.txtCaliber.EditValue?.ToString());
-            _vmo.Coefficient = double.Parse(this.txtCoefficient.EditValue?.ToString());
-            _vmo.LowerLimit = double.Parse(this.txtLowerLimit.EditValue?.ToString());
+            _vmo.MinorLoss = double.Parse(this.txtCoefficient.EditValue?.ToString());
             _vmo.Description = this.txtDescription.Text.Trim();
-            var bol = await BLLFactory<HStation.BLL.AssetsCoolingFactor>.Instance.Update(_vmo);
+            var bol = await BLLFactory<HStation.BLL.AssetsElbowFactor>.Instance.Update(_vmo);
             if (!bol)
             {
                 TipFormHelper.ShowError("鏇存柊澶辫触锛�");
                 return;
             }
-            var vmo = await BLLFactory<HStation.BLL.AssetsCoolingFactor>.Instance.GetByID(_vmo.ID);
+            var vmo = await BLLFactory<HStation.BLL.AssetsElbowFactor>.Instance.GetByID(_vmo.ID);
             this.ReloadDataEvent?.Invoke(vmo);
             this.DialogResult = DialogResult.OK;
             this.Close();
         }
-
-
     }
 }
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AddAssetsCoolingFactorDlg.resx b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/EditAssetsElbowFactorDlg.resx
similarity index 100%
copy from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/AddAssetsCoolingFactorDlg.resx
copy to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/EditAssetsElbowFactorDlg.resx
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/ViewAssetsCoolingFactorDlg.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/ViewAssetsCoolingFactorDlg.cs
deleted file mode 100644
index 7ba063e..0000000
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/ViewAssetsCoolingFactorDlg.cs
+++ /dev/null
@@ -1,50 +0,0 @@
-锘縰sing DevExpress.XtraEditors;
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
-using System.Drawing;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Windows.Forms;
-using Yw;
-using Yw.DAL.Basic;
-
-namespace HStation.WinFrmUI
-{
-    public partial class ViewAssetsCoolingFactorDlg : DevExpress.XtraEditors.XtraForm
-    {
-        public ViewAssetsCoolingFactorDlg()
-        {
-            InitializeComponent();
-            this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon;
-            this.layoutControl1.SetupLayoutControl();
-        }
-
-        private HStation.Vmo.AssetsCoolingFactorVmo _vmo = null;
-
-        /// <summary>
-        /// 缁戝畾鏁版嵁
-        /// </summary>
-        public void SetBindingData(HStation.Vmo.AssetsCoolingFactorVmo vmo)
-        {
-            if (vmo == null)
-            {
-                return;
-            }
-            _vmo = vmo;
-            this.txtName.EditValue = vmo.Name;
-            this.txtMaterial.EditValue = vmo.Material;
-            this.txtCaliber.EditValue = vmo.Caliber;
-            this.txtCoefficient.EditValue = vmo.Coefficient;
-            this.txtLowerLimit.EditValue = vmo.LowerLimit;
-            this.txtDescription.EditValue = vmo.Description;
-        }
-
-
-
-
-
-    }
-}
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/ViewAssetsCoolingFactorDlg.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/ViewAssetsElbowFactorDlg.Designer.cs
similarity index 98%
rename from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/ViewAssetsCoolingFactorDlg.Designer.cs
rename to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/ViewAssetsElbowFactorDlg.Designer.cs
index 5f8f097..1fc7c26 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/ViewAssetsCoolingFactorDlg.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/ViewAssetsElbowFactorDlg.Designer.cs
@@ -1,6 +1,6 @@
 锘縩amespace HStation.WinFrmUI
 {
-    partial class ViewAssetsCoolingFactorDlg
+    partial class ViewAssetsElbowFactorDlg
     {
         /// <summary>
         /// Required designer variable.
@@ -225,13 +225,13 @@
             emptySpaceItem1.Size = new Size(253, 24);
             emptySpaceItem1.TextSize = new Size(0, 0);
             // 
-            // ViewAssetsCoolingFactorDlg
+            // ViewAssetsElbowFactorDlg
             // 
             AutoScaleDimensions = new SizeF(7F, 14F);
             AutoScaleMode = AutoScaleMode.Font;
             ClientSize = new Size(525, 316);
             Controls.Add(layoutControl1);
-            Name = "ViewAssetsCoolingFactorDlg";
+            Name = "ViewAssetsElbowFactorDlg";
             StartPosition = FormStartPosition.CenterParent;
             Text = "璇︾粏淇℃伅";
             ((ISupportInitialize)layoutControl1).EndInit();
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/ViewAssetsElbowFactorDlg.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/ViewAssetsElbowFactorDlg.cs
new file mode 100644
index 0000000..0f7a23d
--- /dev/null
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/ViewAssetsElbowFactorDlg.cs
@@ -0,0 +1,31 @@
+锘縩amespace HStation.WinFrmUI
+{
+    public partial class ViewAssetsElbowFactorDlg : DevExpress.XtraEditors.XtraForm
+    {
+        public ViewAssetsElbowFactorDlg()
+        {
+            InitializeComponent();
+            this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon;
+            this.layoutControl1.SetupLayoutControl();
+        }
+
+        private HStation.Vmo.AssetsElbowFactorVmo _vmo = null;
+
+        /// <summary>
+        /// 缁戝畾鏁版嵁
+        /// </summary>
+        public void SetBindingData(HStation.Vmo.AssetsElbowFactorVmo vmo)
+        {
+            if (vmo == null)
+            {
+                return;
+            }
+            _vmo = vmo;
+            this.txtName.EditValue = vmo.Name;
+            this.txtMaterial.EditValue = vmo.Material;
+            this.txtCaliber.EditValue = vmo.Caliber;
+            this.txtCoefficient.EditValue = vmo.MinorLoss;
+            this.txtDescription.EditValue = vmo.Description;
+        }
+    }
+}
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/ViewAssetsCoolingFactorDlg.resx b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/ViewAssetsElbowFactorDlg.resx
similarity index 100%
rename from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/ViewAssetsCoolingFactorDlg.resx
rename to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/03-factor/ViewAssetsElbowFactorDlg.resx
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/AssetsElbowMgrPage.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/AssetsElbowMgrPage.Designer.cs
new file mode 100644
index 0000000..119cd02
--- /dev/null
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/AssetsElbowMgrPage.Designer.cs
@@ -0,0 +1,120 @@
+锘縩amespace HStation.WinFrmUI
+{
+    partial class AssetsElbowMgrPage
+    {
+        /// <summary> 
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Component Designer generated code
+
+        /// <summary> 
+        /// Required method for Designer support - do not modify 
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            components = new Container();
+            PageTitle pageTitle1 = new PageTitle();
+            ComponentResourceManager resources = new ComponentResourceManager(typeof(AssetsElbowMgrPage));
+            dockManager1 = new DevExpress.XtraBars.Docking.DockManager(components);
+            dockPnlLeft = new DevExpress.XtraBars.Docking.DockPanel();
+            dockPanel1_Container = new DevExpress.XtraBars.Docking.ControlContainer();
+            assetsElbowSeriesMgrTreeCtrl1 = new AssetsElbowSeriesMgrTreeCtrl();
+            assetsElbowMainMgrPage1 = new AssetsElbowMainMgrPage();
+            ((ISupportInitialize)dockManager1).BeginInit();
+            dockPnlLeft.SuspendLayout();
+            dockPanel1_Container.SuspendLayout();
+            SuspendLayout();
+            // 
+            // dockManager1
+            // 
+            dockManager1.Form = this;
+            dockManager1.RootPanels.AddRange(new DevExpress.XtraBars.Docking.DockPanel[] { dockPnlLeft });
+            dockManager1.TopZIndexControls.AddRange(new string[] { "DevExpress.XtraBars.BarDockControl", "DevExpress.XtraBars.StandaloneBarDockControl", "System.Windows.Forms.MenuStrip", "System.Windows.Forms.StatusStrip", "System.Windows.Forms.StatusBar", "DevExpress.XtraBars.Ribbon.RibbonStatusBar", "DevExpress.XtraBars.Ribbon.RibbonControl", "DevExpress.XtraBars.Navigation.OfficeNavigationBar", "DevExpress.XtraBars.Navigation.TileNavPane", "DevExpress.XtraBars.TabFormControl", "DevExpress.XtraBars.FluentDesignSystem.FluentDesignFormControl", "DevExpress.XtraBars.ToolbarForm.ToolbarFormControl" });
+            // 
+            // dockPnlLeft
+            // 
+            dockPnlLeft.Controls.Add(dockPanel1_Container);
+            dockPnlLeft.Dock = DevExpress.XtraBars.Docking.DockingStyle.Left;
+            dockPnlLeft.ID = new Guid("af70ba13-cbf2-4ab4-b38b-d7b6d71a8bd6");
+            dockPnlLeft.Location = new Point(0, 0);
+            dockPnlLeft.Name = "dockPnlLeft";
+            dockPnlLeft.Options.ShowCloseButton = false;
+            dockPnlLeft.OriginalSize = new Size(200, 200);
+            dockPnlLeft.Size = new Size(200, 592);
+            dockPnlLeft.Text = "绯诲垪鍒楄〃";
+            // 
+            // dockPanel1_Container
+            // 
+            dockPanel1_Container.Controls.Add(assetsElbowSeriesMgrTreeCtrl1);
+            dockPanel1_Container.Location = new Point(3, 26);
+            dockPanel1_Container.Name = "dockPanel1_Container";
+            dockPanel1_Container.Size = new Size(193, 563);
+            dockPanel1_Container.TabIndex = 0;
+            // 
+            // assetsElbowSeriesMgrTreeCtrl1
+            // 
+            assetsElbowSeriesMgrTreeCtrl1.Dock = DockStyle.Fill;
+            assetsElbowSeriesMgrTreeCtrl1.Location = new Point(0, 0);
+            assetsElbowSeriesMgrTreeCtrl1.Name = "assetsElbowSeriesMgrTreeCtrl1";
+            assetsElbowSeriesMgrTreeCtrl1.Size = new Size(193, 563);
+            assetsElbowSeriesMgrTreeCtrl1.TabIndex = 0;
+            // 
+            // assetsElbowMainMgrPage1
+            // 
+            assetsElbowMainMgrPage1.Appearance.BackColor = SystemColors.Control;
+            assetsElbowMainMgrPage1.Appearance.Options.UseBackColor = true;
+            assetsElbowMainMgrPage1.Dock = DockStyle.Fill;
+            assetsElbowMainMgrPage1.Location = new Point(200, 0);
+            assetsElbowMainMgrPage1.Name = "assetsElbowMainMgrPage1";
+            assetsElbowMainMgrPage1.Padding = new Padding(1);
+            assetsElbowMainMgrPage1.PageGuid = null;
+            pageTitle1.AllowClose = true;
+            pageTitle1.Caption = "鍐峰嵈濉�";
+            pageTitle1.HeaderImage = null;
+            pageTitle1.HeaderSvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("pageTitle1.HeaderSvgImage");
+            pageTitle1.SvgImageSize = new Size(24, 24);
+            assetsElbowMainMgrPage1.PageTitle = pageTitle1;
+            assetsElbowMainMgrPage1.Size = new Size(825, 592);
+            assetsElbowMainMgrPage1.TabIndex = 1;
+            // 
+            // AssetsElbowMgrPage
+            // 
+            Appearance.BackColor = SystemColors.Control;
+            Appearance.Options.UseBackColor = true;
+            AutoScaleDimensions = new SizeF(7F, 14F);
+            AutoScaleMode = AutoScaleMode.Font;
+            Controls.Add(assetsElbowMainMgrPage1);
+            Controls.Add(dockPnlLeft);
+            Name = "AssetsElbowMgrPage";
+            Size = new Size(1025, 592);
+            ((ISupportInitialize)dockManager1).EndInit();
+            dockPnlLeft.ResumeLayout(false);
+            dockPanel1_Container.ResumeLayout(false);
+            ResumeLayout(false);
+        }
+
+        #endregion
+
+        private DevExpress.XtraBars.Docking.DockManager dockManager1;
+        private DevExpress.XtraBars.Docking.DockPanel dockPnlLeft;
+        private DevExpress.XtraBars.Docking.ControlContainer dockPanel1_Container;
+        private AssetsElbowSeriesMgrTreeCtrl assetsElbowSeriesMgrTreeCtrl1;
+        private AssetsElbowMainMgrPage assetsElbowMainMgrPage1;
+    }
+}
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/AssetsElbowMgrPage.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/AssetsElbowMgrPage.cs
new file mode 100644
index 0000000..2068d12
--- /dev/null
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/AssetsElbowMgrPage.cs
@@ -0,0 +1,58 @@
+锘縰sing DevExpress.XtraEditors;
+using HStation.Vmo;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using Yw.WinFrmUI.Page;
+
+namespace HStation.WinFrmUI
+{
+    public partial class AssetsElbowMgrPage : DocumentPage
+    {
+        public AssetsElbowMgrPage()
+        {
+            InitializeComponent();
+            this.PageTitle.Caption = "寮ご鍨嬪彿绠$悊";
+            this.PageTitle.HeaderSvgImage = AssetsMainSvgImageHelper.Elbow;
+            this.PageTitle.SvgImageSize = new Size(24, 24);
+            this.assetsElbowSeriesMgrTreeCtrl1.FocusedChangedEvent += assetsElbowSeriesMgrTreeCtrl1_FocusedChangedEvent;
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栨暟鎹簮
+        /// </summary>
+        public override void InitialDataSource()
+        {
+            base.InitialDataSource();
+            InitialMainPage();
+            this.assetsElbowSeriesMgrTreeCtrl1.InitialData();
+        }
+
+        //鍒濆鍖栧瀷鍙烽〉闈�
+        private void InitialMainPage()
+        {
+            this.assetsElbowMainMgrPage1.PageGuid = new PageGuid()
+            {
+                Modular = AssetsFunctionHelper.Modular,
+                MoudingType = eMoudingType.Tab,
+                Function = AssetsFunctionHelper.ElbowFactorMgr,
+                TagName = string.Empty
+            };
+            this.assetsElbowMainMgrPage1.IsExistPageEvent += this.IsExistPage;
+            this.assetsElbowMainMgrPage1.CreatePageEvent += this.CreatePage;
+            this.assetsElbowMainMgrPage1.FindPageEvent += this.FindPage;
+        }
+
+        //鑱氱劍鏀瑰彉
+        private void assetsElbowSeriesMgrTreeCtrl1_FocusedChangedEvent(AssetsElbowSeriesVmo series)
+        {
+            this.assetsElbowMainMgrPage1.SetBindingData(series);
+        }
+    }
+}
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/EditAssetsCoolingSeriesDlg.resx b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/AssetsElbowMgrPage.resx
similarity index 69%
copy from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/EditAssetsCoolingSeriesDlg.resx
copy to WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/AssetsElbowMgrPage.resx
index d438392..6331e59 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/EditAssetsCoolingSeriesDlg.resx
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/AssetsElbowMgrPage.resx
@@ -117,7 +117,35 @@
   <resheader name="writer">
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
-  <metadata name="dxErrorProvider1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+  <metadata name="dockManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>17, 17</value>
   </metadata>
+  <assembly alias="DevExpress.Data.v23.2" name="DevExpress.Data.v23.2, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
+  <data name="pageTitle1.HeaderSvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
+        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
+        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAJgEAAAC77u/
+        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
+        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
+        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
+        Y2U9InByZXNlcnZlIiBpZD0iVG9wXzEwX1BlcmNlbnQiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpu
+        ZXcgMCAwIDMyIDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5CbGFja3tmaWxsOiM3Mjcy
+        NzI7fQoJLkdyZWVue2ZpbGw6IzAzOUMyMzt9Cjwvc3R5bGU+DQogIDxwYXRoIGQ9Ik0zMSwySDFDMC41
+        LDIsMCwyLjUsMCwzdjI0YzAsMC41LDAuNSwxLDEsMWgzMGMwLjUsMCwxLTAuNSwxLTFWM0MzMiwyLjUs
+        MzEuNSwyLDMxLDJ6IE04LDEydjEwSDZWMTJIM2w0LTYgIGw0LDZIOHogTTMwLDI2SDE0VjRoMTZWMjZ6
+        IiBjbGFzcz0iR3JlZW4iIC8+DQogIDxwYXRoIGQ9Ik0xOC42LDE1LjFjLTAuOCwwLTEuNC0wLjItMS45
+        LTAuN2MtMC41LTAuNC0wLjctMS0wLjctMS44YzAtMC44LDAuMi0xLjUsMC43LTEuOXMxLjItMC43LDIt
+        MC43ICBjMC44LDAsMS40LDAuMiwxLjksMC42YzAuNCwwLjQsMC43LDEsMC43LDEuOGMwLDAuOC0wLjIs
+        MS40LTAuNywxLjlDMjAsMTQuOCwxOS40LDE1LjEsMTguNiwxNS4xeiBNMjYsMTBsLTYuMiwxMEgxOGw2
+        LjItMTBIMjZ6ICAgTTE4LjcsMTEuMmMtMC43LDAtMS4xLDAuNS0xLjEsMS40YzAsMC45LDAuMywxLjMs
+        MSwxLjNjMC43LDAsMS4xLTAuNSwxLjEtMS40QzE5LjcsMTEuNiwxOS40LDExLjIsMTguNywxMS4yeiBN
+        MjUuMywyMCAgYy0wLjgsMC0xLjQtMC4yLTEuOS0wLjdzLTAuNy0xLTAuNy0xLjhjMC0wLjgsMC4yLTEu
+        NSwwLjctMS45YzAuNS0wLjUsMS4yLTAuNywyLTAuN2MwLjgsMCwxLjQsMC4yLDEuOSwwLjZzMC43LDEs
+        MC43LDEuOCAgYzAsMC44LTAuMiwxLjQtMC43LDEuOUMyNi44LDE5LjgsMjYuMSwyMCwyNS4zLDIweiBN
+        MjUuNCwxNi4xYy0wLjcsMC0xLjEsMC41LTEuMSwxLjRjMCwwLjksMC40LDEuMywxLjEsMS4zYzAuNyww
+        LDEuMS0wLjUsMS4xLTEuNCAgYzAtMC40LTAuMS0wLjctMC4zLTFDMjYsMTYuMiwyNS43LDE2LjEsMjUu
+        NCwxNi4xeiIgY2xhc3M9IkJsYWNrIiAvPg0KPC9zdmc+Cw==
+</value>
+  </data>
 </root>
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/ElbowViewModel.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/ElbowViewModel.cs
deleted file mode 100644
index e6e8d5b..0000000
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/ElbowViewModel.cs
+++ /dev/null
@@ -1,135 +0,0 @@
-锘縰sing HStation.Assets;
-using System.ComponentModel;
-
-namespace HStation.WinFrmUI.Assets
-{
-    public class ElbowViewModel
-    {
-        public ElbowViewModel()
-        {
-        }
-
-        public ElbowViewModel(Vmo.AssetsElbowMainVmo rhs)
-        {
-            this.ID = rhs.ID;
-            this.Description = rhs.Description;
-            if (rhs.Caliber == null)
-            {
-                this.Caliber = "榛樿";
-            }
-            else
-            {
-                this.Caliber = rhs.Caliber.ToString();
-            }
-            if (rhs.Material == null || rhs.Material == string.Empty)
-            {
-                this.MaterialName = "榛樿";
-            }
-            else
-            {
-                this.MaterialName = rhs.Material.ToString();
-            }
-            this.Name = rhs.Name;
-            this.SortCode = rhs.SortCode;
-            this.KeyWord = string.Join(",", rhs.KeyWord);
-            this.Angle = rhs.Angle;
-            this.ElbowLengthType = rhs.ElbowType;
-            this.MinorLoss = rhs.MinorLoss;
-        }
-
-        public void Reset(Vmo.AssetsElbowMainVmo rhs)
-        {
-            this.ID = rhs.ID;
-            if (rhs.Caliber == null)
-            {
-                this.Caliber = "榛樿";
-            }
-            else
-            {
-                this.Caliber = rhs.Caliber.ToString();
-            }
-            if (rhs.Material == null || rhs.Material == string.Empty)
-            {
-                this.MaterialName = "榛樿";
-            }
-            else
-            {
-                this.MaterialName = rhs.Material.ToString();
-            }
-            this.Description = rhs.Description;
-            this.Name = rhs.Name;
-            this.SortCode = rhs.SortCode;
-            this.Angle = rhs.Angle;
-            this.ElbowLengthType = rhs.ElbowType;
-            this.MinorLoss = rhs.MinorLoss;
-        }
-
-        /// <summary>
-        /// ID
-        /// </summary>
-        public long ID { get; set; }
-
-        /// <summary>
-        /// 鍚嶇О
-        /// </summary>
-        [DisplayName("鍚嶇О")]
-        [Browsable(true)]
-        public string Name { get; set; }
-
-        /// <summary>
-        /// 鍙e緞
-        /// </summary>
-        [DisplayName("鍙e緞(mm)")]
-        [Browsable(true)]
-        public string Caliber { get; set; }
-
-        /// <summary>
-        /// 鏉愭枡
-        /// </summary>
-        [DisplayName("鏉愭枡")]
-        [Browsable(true)]
-        public string MaterialName { get; set; }
-
-        /// <summary>
-        /// 绯绘暟
-        /// </summary>
-        [DisplayName("鎹熷け绯绘暟")]
-        [Browsable(true)]
-        public double? MinorLoss { get; set; }
-
-        /// <summary>
-        /// 鎺掑簭鐮�
-        /// </summary>
-        [DisplayName("鎺掑簭鐮�")]
-        [Browsable(true)]
-        public int SortCode { get; set; }
-
-        /// <summary>
-        /// 璇嗗埆鍏抽敭瀛�
-        /// </summary>
-        [DisplayName("鍏抽敭瀛�")]
-        [Browsable(true)]
-        public string KeyWord { get; set; }
-
-        /// <summary>
-        /// 寮ご绫诲瀷
-        /// </summary>
-        [DisplayName("寮ご绫诲瀷")]
-        [Browsable(true)]
-        public eElbowType? ElbowLengthType { get; set; }
-
-        /// <summary>
-        /// 瑙掑害
-        /// </summary>
-        [DisplayName("瑙掑害")]
-        [Browsable(true)]
-        public int? Angle { get; set; }
-
-        /// <summary>
-        /// 璇存槑
-        /// </summary>
-        [DisplayName("璇存槑")]
-        [Browsable(true)]
-        public string Description { get; set; }
-    }
-}
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/14-tank/TankViewModel.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/14-tank/TankViewModel.cs
deleted file mode 100644
index f0bacff..0000000
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/14-tank/TankViewModel.cs
+++ /dev/null
@@ -1,112 +0,0 @@
-锘縰sing HStation.Vmo;
-using System.ComponentModel;
-
-namespace HStation.WinFrmUI.Assets
-{
-    public class TankViewModel
-    {
-        public TankViewModel()
-        {
-        }
-
-        public TankViewModel(Vmo.AssetsTankMainVmo rhs)
-        {
-            this.ID = rhs.ID;
-            this.Name = rhs.Name;
-            this.MinLevel = rhs.MinLevel;
-            this.MaxLevel = rhs.MaxLevel;
-            this.DN = rhs.DN;
-            this.MinVol = rhs.MinVol;
-            this.OverFlow = rhs.OverFlow;
-            this.KeyWord = string.Join(",", rhs.KeyWords);
-            this.SortCode = rhs.SortCode;
-            this.Description = rhs.Description;
-            this.Vmo = rhs;
-        }
-
-        public void Reset(Vmo.AssetsTankMainVmo rhs)
-        {
-            this.ID = rhs.ID;
-            this.Name = rhs.Name;
-            this.MinLevel = rhs.MinLevel;
-            this.MaxLevel = rhs.MaxLevel;
-            this.DN = rhs.DN;
-            this.MinVol = rhs.MinVol;
-            this.OverFlow = rhs.OverFlow;
-            this.KeyWord = string.Join(",", rhs.KeyWords);
-            this.SortCode = rhs.SortCode;
-            this.Description = rhs.Description;
-            this.Vmo = rhs;
-        }
-
-        /// <summary>
-        /// ID
-        /// </summary>
-        public long ID { get; set; }
-
-        /// <summary>
-        /// 鍚嶇О
-        /// </summary>
-        [DisplayName("鍚嶇О")]
-        [Browsable(true)]
-        public string Name { get; set; }
-
-        /// <summary>
-        /// 鏈�浣庢按浣�
-        /// </summary>
-        [DisplayName("鏈�浣庢按浣�")]
-        [Browsable(true)]
-        public double MinLevel { get; set; }
-
-        /// <summary>
-        /// 鏈�楂樻按浣�
-        /// </summary>
-        [DisplayName("鏈�楂樻按浣�")]
-        [Browsable(true)]
-        public double MaxLevel { get; set; }
-
-        /// <summary>
-        /// 鍏О鐩村緞
-        /// </summary>
-        [DisplayName("鍏О鐩村緞")]
-        [Browsable(true)]
-        public double DN { get; set; }
-
-        /// <summary>
-        /// 鏈�灏忓绉�
-        /// </summary>
-        [DisplayName("鏈�灏忓绉�")]
-        [Browsable(true)]
-        public double MinVol { get; set; }
-
-        /// <summary>
-        /// 鏄惁鍏佽婧㈡祦
-        /// </summary>
-        [DisplayName("鏄惁鍏佽婧㈡祦")]
-        [Browsable(true)]
-        public bool OverFlow { get; set; }
-
-        /// <summary>
-        /// 璇嗗埆鍏抽敭瀛�
-        /// </summary>
-        [DisplayName("鍏抽敭瀛�")]
-        [Browsable(true)]
-        public string KeyWord { get; set; }
-
-        /// <summary>
-        /// 鎺掑簭鐮�
-        /// </summary>
-        [DisplayName("鎺掑簭鐮�")]
-        [Browsable(true)]
-        public int SortCode { get; set; }
-
-        /// <summary>
-        /// 璇存槑
-        /// </summary>
-        [DisplayName("璇存槑")]
-        [Browsable(true)]
-        public string Description { get; set; }
-
-        public AssetsTankMainVmo Vmo { get; set; }
-    }
-}
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/HStation.WinFrmUI.Assets.Core.csproj b/WinFrmUI/HStation.WinFrmUI.Assets.Core/HStation.WinFrmUI.Assets.Core.csproj
index a72fe39..9c9079a 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/HStation.WinFrmUI.Assets.Core.csproj
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/HStation.WinFrmUI.Assets.Core.csproj
@@ -13,9 +13,9 @@
     <Compile Remove="03-valve\02-main---bak\**" />
     <Compile Remove="03-valve\04-chart-edit\**" />
     <Compile Remove="03-valve\05-import\**" />
-    <Compile Remove="05-elbow\01-series\**" />
-    <Compile Remove="05-elbow\02-main\**" />
-    <Compile Remove="05-elbow\03-factor\**" />
+    <Compile Remove="05-elbow\01-series-bak\**" />
+    <Compile Remove="05-elbow\02-main-bak\**" />
+    <Compile Remove="05-elbow\03-coefficient\**" />
     <Compile Remove="10-equipment\**" />
     <Compile Remove="11-compressor\04-chart-edit\**" />
     <Compile Remove="11-compressor\05-import\**" />
@@ -28,9 +28,9 @@
     <EmbeddedResource Remove="03-valve\02-main---bak\**" />
     <EmbeddedResource Remove="03-valve\04-chart-edit\**" />
     <EmbeddedResource Remove="03-valve\05-import\**" />
-    <EmbeddedResource Remove="05-elbow\01-series\**" />
-    <EmbeddedResource Remove="05-elbow\02-main\**" />
-    <EmbeddedResource Remove="05-elbow\03-factor\**" />
+    <EmbeddedResource Remove="05-elbow\01-series-bak\**" />
+    <EmbeddedResource Remove="05-elbow\02-main-bak\**" />
+    <EmbeddedResource Remove="05-elbow\03-coefficient\**" />
     <EmbeddedResource Remove="10-equipment\**" />
     <EmbeddedResource Remove="11-compressor\04-chart-edit\**" />
     <EmbeddedResource Remove="11-compressor\05-import\**" />
@@ -43,9 +43,9 @@
     <None Remove="03-valve\02-main---bak\**" />
     <None Remove="03-valve\04-chart-edit\**" />
     <None Remove="03-valve\05-import\**" />
-    <None Remove="05-elbow\01-series\**" />
-    <None Remove="05-elbow\02-main\**" />
-    <None Remove="05-elbow\03-factor\**" />
+    <None Remove="05-elbow\01-series-bak\**" />
+    <None Remove="05-elbow\02-main-bak\**" />
+    <None Remove="05-elbow\03-coefficient\**" />
     <None Remove="10-equipment\**" />
     <None Remove="11-compressor\04-chart-edit\**" />
     <None Remove="11-compressor\05-import\**" />
@@ -58,9 +58,9 @@
     <Page Remove="03-valve\02-main---bak\**" />
     <Page Remove="03-valve\04-chart-edit\**" />
     <Page Remove="03-valve\05-import\**" />
-    <Page Remove="05-elbow\01-series\**" />
-    <Page Remove="05-elbow\02-main\**" />
-    <Page Remove="05-elbow\03-factor\**" />
+    <Page Remove="05-elbow\01-series-bak\**" />
+    <Page Remove="05-elbow\02-main-bak\**" />
+    <Page Remove="05-elbow\03-coefficient\**" />
     <Page Remove="10-equipment\**" />
     <Page Remove="11-compressor\04-chart-edit\**" />
     <Page Remove="11-compressor\05-import\**" />
@@ -79,6 +79,8 @@
     <Compile Remove="03-valve\SetValveCoefficientDlg.Designer.cs" />
     <Compile Remove="03-valve\ValveManageMainPage.cs" />
     <Compile Remove="03-valve\ValveManageMainPage.Designer.cs" />
+    <Compile Remove="05-elbow\ElbowManageMainPage.cs" />
+    <Compile Remove="05-elbow\ElbowManageMainPage.Designer.cs" />
     <Compile Remove="12-package\02-main\01-EditPumpPartProp\EquipmentProductListBox.cs" />
     <Compile Remove="12-package\02-main\01-EditPumpPartProp\EquipmentProductListBox.Designer.cs" />
     <Compile Remove="12-package\02-main\01-EditPumpPartProp\PropGroupChoiceViewModel.cs" />
@@ -93,6 +95,7 @@
     <EmbeddedResource Remove="01-pump\PumpProductMainPanel - 澶嶅埗.resx" />
     <EmbeddedResource Remove="03-valve\SetValveCoefficientDlg.resx" />
     <EmbeddedResource Remove="03-valve\ValveManageMainPage.resx" />
+    <EmbeddedResource Remove="05-elbow\ElbowManageMainPage.resx" />
     <EmbeddedResource Remove="12-package\02-main\01-EditPumpPartProp\EquipmentProductListBox.resx" />
     <EmbeddedResource Remove="14-tank\TankManageMainPage.resx" />
     <EmbeddedResource Remove="20-exchanger\ExchangerManageMainPage.resx" />
@@ -116,24 +119,12 @@
   </ItemGroup>
 
   <ItemGroup>
-    <Compile Update="01-pump\07-PumpChart\01-import\01-excel\ImportPumpPerform2dByExcelDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="01-pump\07-PumpChart\01-import\02-image\ImportPumpPerform2dByImageDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="01-pump\07-PumpChart\02-Eidt\EditAssetsPumpPerform2dDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="01-pump\07-PumpChart\02-Eidt\SetImportanceDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="01-pump\07-PumpChart\02-Eidt\SetOtherNameDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="01-pump\07-PumpChart\AssetsPumpCurveQLViewDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
+    <Compile Update="01-pump\07-PumpChart\01-import\01-excel\ImportPumpPerform2dByExcelDlg.cs" />
+    <Compile Update="01-pump\07-PumpChart\01-import\02-image\ImportPumpPerform2dByImageDlg.cs" />
+    <Compile Update="01-pump\07-PumpChart\02-Eidt\EditAssetsPumpPerform2dDlg.cs" />
+    <Compile Update="01-pump\07-PumpChart\02-Eidt\SetImportanceDlg.cs" />
+    <Compile Update="01-pump\07-PumpChart\02-Eidt\SetOtherNameDlg.cs" />
+    <Compile Update="01-pump\07-PumpChart\AssetsPumpCurveQLViewDlg.cs" />
     <Compile Update="02-adapting\EditAdaptingMainDlg.cs" />
     <Compile Update="02-adapting\AddAdaptingMainDlg.cs" />
     <Compile Update="01-pump\03-AssetsPumpType\EditAssetsPumpTypeDlg.cs">
@@ -145,23 +136,13 @@
     <Compile Update="01-pump\04-PumpMain\AddPumpProductMainDlg.cs" />
     <Compile Update="01-pump\05-PumpSeries\EditPumpProductSeriesDlg.cs" />
     <Compile Update="02-adapting\AdaptingManageMainPage.cs" />
-    <Compile Update="03-valve\04-curve\AssetsValveCurveMgrPage.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Update="03-valve\04-curve\AssetsValveCurveViewDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="03-valve\04-curve\EditAssetsValveCurveDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="03-valve\04-curve\ImportAssetsValveCurveByExcelDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="03-valve\04-curve\ImportAssetsValveCurveByPictureDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
+    <Compile Update="03-valve\04-curve\AssetsValveCurveMgrPage.cs" />
+    <Compile Update="03-valve\04-curve\AssetsValveCurveViewDlg.cs" />
+    <Compile Update="03-valve\04-curve\EditAssetsValveCurveDlg.cs" />
+    <Compile Update="03-valve\04-curve\ImportAssetsValveCurveByExcelDlg.cs" />
+    <Compile Update="03-valve\04-curve\ImportAssetsValveCurveByPictureDlg.cs" />
     <Compile Update="04-pipe\03-coefficient\SetPipeLineCoefficientDlg.cs" />
-    <Compile Update="05-elbow\03-coefficient\SetElbowCoefficientDlg.cs" />
+    <Compile Update="05-elbow\AssetsElbowMgrPage.cs" />
     <Compile Update="06-threeLink\01-series\AddAssetsThreelinkSeriesDlg.cs" />
     <Compile Update="06-threeLink\01-series\EditAssetsThreelinkSeriesDlg.cs" />
     <Compile Update="06-threeLink\01-series\ThreeLinkTreeListCtrl.cs" />
@@ -173,10 +154,6 @@
     </Compile>
     <Compile Update="06-threeLink\03-coefficient\SetThreelinkCoefficientDlg.cs" />
     <Compile Update="06-threeLink\ThreeLinkManageMainPage.cs" />
-    <Compile Update="05-elbow\01-series-bak\AddAssetsElbowSeriesDlg.cs" />
-    <Compile Update="05-elbow\01-series-bak\EditAssetsElbowSeriesDlg.cs" />
-    <Compile Update="05-elbow\01-series-bak\ElbowTreeListCtrl.cs" />
-    <Compile Update="05-elbow\ElbowManageMainPage.cs" />
     <Compile Update="04-pipe\01-series\AddPipeLineSeriesDlg.cs" />
     <Compile Update="04-pipe\01-series\EditPipeLineSeriesDlg.cs" />
     <Compile Update="04-pipe\02-main\EditAssetsPipeMainDlg.cs">
@@ -203,177 +180,63 @@
     <Compile Update="11-compressor\06-prop\ExchangerProductListBox.cs">
       <SubType>UserControl</SubType>
     </Compile>
-    <Compile Update="14-tank\01-series\AddAssetsTankSeriesDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="14-tank\01-series\AssetsTankSeriesMgrTreeCtrl.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Update="14-tank\01-series\EditAssetsTankSeriesDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="14-tank\01-series\ViewAssetsTankSeriesDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="14-tank\02-main\AddAssetsTankMainDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="14-tank\02-main\AssetsTankMainMgrPage.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Update="14-tank\02-main\EditAssetsTankMainDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="14-tank\02-main\ViewAssetsTankMainDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="14-tank\03-factor\AddAssetsTankFactorDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="14-tank\03-factor\AssetsTankFactorMgrPage.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Update="14-tank\03-factor\EditAssetsTankFactorDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="14-tank\03-factor\ViewAssetsTankFactorDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="14-tank\04-curveVol\AssetsTankCurveVOLMgrPage.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Update="14-tank\04-curveVol\AssetsTankCurveVOLViewDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="14-tank\04-curveVol\EditAssetsTankCurveVOLDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="14-tank\04-curveVol\ImportAssetsTankCurveVOLByExcelDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="14-tank\04-curveVol\ImportAssetsTankCurveVOLByPictureDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="14-tank\AssetsTankMgrPage.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Update="15-meter\01-series\AddAssetsMeterSeriesDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="15-meter\01-series\AssetsMeterSeriesMgrTreeCtrl.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Update="15-meter\01-series\EditAssetsMeterSeriesDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="15-meter\01-series\ViewAssetsMeterSeriesDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="15-meter\02-main\AddAssetsMeterMainDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="15-meter\02-main\AssetsMeterMainMgrPage.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Update="15-meter\02-main\EditAssetsMeterMainDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="15-meter\02-main\ViewAssetsMeterMainDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="15-meter\03-factor\AddAssetsMeterFactorDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="15-meter\03-factor\AssetsMeterFactorMgrPage.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Update="15-meter\03-factor\EditAssetsMeterFactorDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="15-meter\03-factor\ViewAssetsMeterFactorDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="15-meter\AssetsMeterMgrPage.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Update="16-flowmeter\01-series\AddAssetsFlowmeterSeriesDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="16-flowmeter\01-series\AssetsFlowmeterSeriesMgrTreeCtrl.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Update="16-flowmeter\01-series\EditAssetsFlowmeterSeriesDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="16-flowmeter\01-series\ViewAssetsFlowmeterSeriesDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="16-flowmeter\02-main\AddAssetsFlowmeterMainDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="16-flowmeter\02-main\AssetsFlowmeterMainMgrPage.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Update="16-flowmeter\02-main\EditAssetsFlowmeterMainDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="16-flowmeter\02-main\ViewAssetsFlowmeterMainDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="16-flowmeter\03-factor\AddAssetsFlowmeterFactorDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="16-flowmeter\03-factor\AssetsFlowmeterFactorMgrPage.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Update="16-flowmeter\03-factor\EditAssetsFlowmeterFactorDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="16-flowmeter\03-factor\ViewAssetsFlowmeterFactorDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="16-flowmeter\AssetsFlowmeterMgrPage.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Update="18-pressmeter\01-series\AddAssetsPressmeterSeriesDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="18-pressmeter\01-series\AssetsPressmeterSeriesMgrTreeCtrl.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Update="18-pressmeter\01-series\EditAssetsPressmeterSeriesDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="18-pressmeter\01-series\ViewAssetsPressmeterSeriesDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="18-pressmeter\02-main\AddAssetsPressmeterMainDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="18-pressmeter\02-main\AssetsPressmeterMainMgrPage.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Update="18-pressmeter\02-main\EditAssetsPressmeterMainDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="18-pressmeter\02-main\ViewAssetsPressmeterMainDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="18-pressmeter\03-factor\AddAssetsPressmeterFactorDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="18-pressmeter\03-factor\AssetsPressmeterFactorMgrPage.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Update="18-pressmeter\03-factor\EditAssetsPressmeterFactorDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="18-pressmeter\03-factor\ViewAssetsPressmeterFactorDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="18-pressmeter\AssetsPressmeterMgrPage.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
+    <Compile Update="14-tank\01-series\AddAssetsTankSeriesDlg.cs" />
+    <Compile Update="14-tank\01-series\AssetsTankSeriesMgrTreeCtrl.cs" />
+    <Compile Update="14-tank\01-series\EditAssetsTankSeriesDlg.cs" />
+    <Compile Update="14-tank\01-series\ViewAssetsTankSeriesDlg.cs" />
+    <Compile Update="14-tank\02-main\AddAssetsTankMainDlg.cs" />
+    <Compile Update="14-tank\02-main\AssetsTankMainMgrPage.cs" />
+    <Compile Update="14-tank\02-main\EditAssetsTankMainDlg.cs" />
+    <Compile Update="14-tank\02-main\ViewAssetsTankMainDlg.cs" />
+    <Compile Update="14-tank\03-factor\AddAssetsTankFactorDlg.cs" />
+    <Compile Update="14-tank\03-factor\AssetsTankFactorMgrPage.cs" />
+    <Compile Update="14-tank\03-factor\EditAssetsTankFactorDlg.cs" />
+    <Compile Update="14-tank\03-factor\ViewAssetsTankFactorDlg.cs" />
+    <Compile Update="14-tank\04-curveVol\AssetsTankCurveVOLMgrPage.cs" />
+    <Compile Update="14-tank\04-curveVol\AssetsTankCurveVOLViewDlg.cs" />
+    <Compile Update="14-tank\04-curveVol\EditAssetsTankCurveVOLDlg.cs" />
+    <Compile Update="14-tank\04-curveVol\ImportAssetsTankCurveVOLByExcelDlg.cs" />
+    <Compile Update="14-tank\04-curveVol\ImportAssetsTankCurveVOLByPictureDlg.cs" />
+    <Compile Update="14-tank\AssetsTankMgrPage.cs" />
+    <Compile Update="15-meter\01-series\AddAssetsMeterSeriesDlg.cs" />
+    <Compile Update="15-meter\01-series\AssetsMeterSeriesMgrTreeCtrl.cs" />
+    <Compile Update="15-meter\01-series\EditAssetsMeterSeriesDlg.cs" />
+    <Compile Update="15-meter\01-series\ViewAssetsMeterSeriesDlg.cs" />
+    <Compile Update="15-meter\02-main\AddAssetsMeterMainDlg.cs" />
+    <Compile Update="15-meter\02-main\AssetsMeterMainMgrPage.cs" />
+    <Compile Update="15-meter\02-main\EditAssetsMeterMainDlg.cs" />
+    <Compile Update="15-meter\02-main\ViewAssetsMeterMainDlg.cs" />
+    <Compile Update="15-meter\03-factor\AddAssetsMeterFactorDlg.cs" />
+    <Compile Update="15-meter\03-factor\AssetsMeterFactorMgrPage.cs" />
+    <Compile Update="15-meter\03-factor\EditAssetsMeterFactorDlg.cs" />
+    <Compile Update="15-meter\03-factor\ViewAssetsMeterFactorDlg.cs" />
+    <Compile Update="15-meter\AssetsMeterMgrPage.cs" />
+    <Compile Update="16-flowmeter\01-series\AddAssetsFlowmeterSeriesDlg.cs" />
+    <Compile Update="16-flowmeter\01-series\AssetsFlowmeterSeriesMgrTreeCtrl.cs" />
+    <Compile Update="16-flowmeter\01-series\EditAssetsFlowmeterSeriesDlg.cs" />
+    <Compile Update="16-flowmeter\01-series\ViewAssetsFlowmeterSeriesDlg.cs" />
+    <Compile Update="16-flowmeter\02-main\AddAssetsFlowmeterMainDlg.cs" />
+    <Compile Update="16-flowmeter\02-main\AssetsFlowmeterMainMgrPage.cs" />
+    <Compile Update="16-flowmeter\02-main\EditAssetsFlowmeterMainDlg.cs" />
+    <Compile Update="16-flowmeter\02-main\ViewAssetsFlowmeterMainDlg.cs" />
+    <Compile Update="16-flowmeter\03-factor\AddAssetsFlowmeterFactorDlg.cs" />
+    <Compile Update="16-flowmeter\03-factor\AssetsFlowmeterFactorMgrPage.cs" />
+    <Compile Update="16-flowmeter\03-factor\EditAssetsFlowmeterFactorDlg.cs" />
+    <Compile Update="16-flowmeter\03-factor\ViewAssetsFlowmeterFactorDlg.cs" />
+    <Compile Update="16-flowmeter\AssetsFlowmeterMgrPage.cs" />
+    <Compile Update="18-pressmeter\01-series\AddAssetsPressmeterSeriesDlg.cs" />
+    <Compile Update="18-pressmeter\01-series\AssetsPressmeterSeriesMgrTreeCtrl.cs" />
+    <Compile Update="18-pressmeter\01-series\EditAssetsPressmeterSeriesDlg.cs" />
+    <Compile Update="18-pressmeter\01-series\ViewAssetsPressmeterSeriesDlg.cs" />
+    <Compile Update="18-pressmeter\02-main\AddAssetsPressmeterMainDlg.cs" />
+    <Compile Update="18-pressmeter\02-main\AssetsPressmeterMainMgrPage.cs" />
+    <Compile Update="18-pressmeter\02-main\EditAssetsPressmeterMainDlg.cs" />
+    <Compile Update="18-pressmeter\02-main\ViewAssetsPressmeterMainDlg.cs" />
+    <Compile Update="18-pressmeter\03-factor\AddAssetsPressmeterFactorDlg.cs" />
+    <Compile Update="18-pressmeter\03-factor\AssetsPressmeterFactorMgrPage.cs" />
+    <Compile Update="18-pressmeter\03-factor\EditAssetsPressmeterFactorDlg.cs" />
+    <Compile Update="18-pressmeter\03-factor\ViewAssetsPressmeterFactorDlg.cs" />
+    <Compile Update="18-pressmeter\AssetsPressmeterMgrPage.cs" />
     <Compile Update="19-translation\01-series\AddAssetsTranslationSeriesDlg.cs" />
     <Compile Update="19-translation\01-series\TranslationTreeListCtrl.cs" />
     <Compile Update="19-translation\01-series\EditAssetsTranslationSeriesDlg.cs" />
@@ -434,84 +297,34 @@
     <Compile Update="12-package\EditPackagePartPropDlg.cs" />
     <Compile Update="12-package\PackageManageMainPage.cs" />
     <Compile Update="12-package\PackageProductListBox.cs" />
-    <Compile Update="20-exchanger\01-series\AddAssetsExchangerSeriesDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="20-exchanger\01-series\AssetsExchangerSeriesMgrTreeCtrl.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Update="20-exchanger\01-series\EditAssetsExchangerSeriesDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="20-exchanger\01-series\ViewAssetsExchangerSeriesDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="20-exchanger\02-main\AddAssetsExchangerMainDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="20-exchanger\02-main\AssetsExchangerMainMgrPage.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Update="20-exchanger\02-main\EditAssetsExchangerMainDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="20-exchanger\02-main\ViewAssetsExchangerMainDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="20-exchanger\03-factor\AddAssetsExchangerFactorDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="20-exchanger\03-factor\AssetsExchangerFactorMgrPage.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Update="20-exchanger\03-factor\EditAssetsExchangerFactorDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
+    <Compile Update="20-exchanger\01-series\AddAssetsExchangerSeriesDlg.cs" />
+    <Compile Update="20-exchanger\01-series\AssetsExchangerSeriesMgrTreeCtrl.cs" />
+    <Compile Update="20-exchanger\01-series\EditAssetsExchangerSeriesDlg.cs" />
+    <Compile Update="20-exchanger\01-series\ViewAssetsExchangerSeriesDlg.cs" />
+    <Compile Update="20-exchanger\02-main\AddAssetsExchangerMainDlg.cs" />
+    <Compile Update="20-exchanger\02-main\AssetsExchangerMainMgrPage.cs" />
+    <Compile Update="20-exchanger\02-main\EditAssetsExchangerMainDlg.cs" />
+    <Compile Update="20-exchanger\02-main\ViewAssetsExchangerMainDlg.cs" />
+    <Compile Update="20-exchanger\03-factor\AddAssetsExchangerFactorDlg.cs" />
+    <Compile Update="20-exchanger\03-factor\AssetsExchangerFactorMgrPage.cs" />
+    <Compile Update="20-exchanger\03-factor\EditAssetsExchangerFactorDlg.cs" />
     <Compile Update="20-exchanger\03-factor\ViewAssetsCoolingFactorDlg.cs">
       <SubType>Form</SubType>
     </Compile>
-    <Compile Update="20-exchanger\04-curveql\AssetsExchangerCurveQLViewDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="20-exchanger\04-curveql\ImportAssetsExchangerCurveQLByPictureDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="20-exchanger\AssetsExchangerMgrPage.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Update="22-cooling\01-series\ViewAssetsCoolingSeriesDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="22-cooling\01-series\EditAssetsCoolingSeriesDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="22-cooling\01-series\AddAssetsCoolingSeriesDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="22-cooling\01-series\AssetsCoolingSeriesMgrTreeCtrl.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Update="22-cooling\02-main\ViewAssetsCoolingMainDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="22-cooling\02-main\EditAssetsCoolingMainDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="22-cooling\02-main\AddAssetsCoolingMainDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="22-cooling\02-main\AssetsCoolingMainMgrPage.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Update="22-cooling\03-factor\ViewAssetsCoolingFactorDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="22-cooling\03-factor\EditAssetsCoolingFactorDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="22-cooling\03-factor\AssetsCoolingFactorMgrPage.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
+    <Compile Update="20-exchanger\04-curveql\AssetsExchangerCurveQLViewDlg.cs" />
+    <Compile Update="20-exchanger\04-curveql\ImportAssetsExchangerCurveQLByPictureDlg.cs" />
+    <Compile Update="20-exchanger\AssetsExchangerMgrPage.cs" />
+    <Compile Update="22-cooling\01-series\ViewAssetsCoolingSeriesDlg.cs" />
+    <Compile Update="22-cooling\01-series\EditAssetsCoolingSeriesDlg.cs" />
+    <Compile Update="22-cooling\01-series\AddAssetsCoolingSeriesDlg.cs" />
+    <Compile Update="22-cooling\01-series\AssetsCoolingSeriesMgrTreeCtrl.cs" />
+    <Compile Update="22-cooling\02-main\ViewAssetsCoolingMainDlg.cs" />
+    <Compile Update="22-cooling\02-main\EditAssetsCoolingMainDlg.cs" />
+    <Compile Update="22-cooling\02-main\AddAssetsCoolingMainDlg.cs" />
+    <Compile Update="22-cooling\02-main\AssetsCoolingMainMgrPage.cs" />
+    <Compile Update="22-cooling\03-factor\ViewAssetsCoolingFactorDlg.cs" />
+    <Compile Update="22-cooling\03-factor\EditAssetsCoolingFactorDlg.cs" />
+    <Compile Update="22-cooling\03-factor\AssetsCoolingFactorMgrPage.cs" />
     <Compile Update="Properties\Resources.Designer.cs">
       <DesignTime>True</DesignTime>
       <AutoGen>True</AutoGen>
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/HStation.WinFrmUI.Assets.Core.csproj.user b/WinFrmUI/HStation.WinFrmUI.Assets.Core/HStation.WinFrmUI.Assets.Core.csproj.user
index 743c7d3..45732ad 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/HStation.WinFrmUI.Assets.Core.csproj.user
+++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/HStation.WinFrmUI.Assets.Core.csproj.user
@@ -32,25 +32,43 @@
     <Compile Update="01-pump\03-PumpType\EditPumpTypeDlg.cs">
       <SubType>Form</SubType>
     </Compile>
-    <Compile Update="01-pump\06-PumpGroup\AddPumpProductGroupDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
     <Compile Update="01-pump\04-PumpMain\AddPumpProductMainDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="01-pump\05-PumpSeries\AddPumpProductSeriesDlg.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Update="01-pump\06-PumpGroup\EditPumpProductGroupDlg.cs">
       <SubType>Form</SubType>
     </Compile>
     <Compile Update="01-pump\04-PumpMain\EditPumpProductMainDlg.cs">
       <SubType>Form</SubType>
     </Compile>
+    <Compile Update="01-pump\05-PumpSeries\AddPumpProductSeriesDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Update="01-pump\05-PumpSeries\EditPumpProductSeriesDlg.cs">
       <SubType>Form</SubType>
     </Compile>
+    <Compile Update="01-pump\06-PumpGroup\AddPumpProductGroupDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="01-pump\06-PumpGroup\EditPumpProductGroupDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="01-pump\07-PumpChart\01-import\01-excel\ImportPumpPerform2dByExcelDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="01-pump\07-PumpChart\01-import\02-image\ImportPumpPerform2dByImageDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Update="01-pump\07-PumpChart\01-import\03-point\ImportPumpChartPoint.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="01-pump\07-PumpChart\02-Eidt\EditAssetsPumpPerform2dDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="01-pump\07-PumpChart\02-Eidt\SetImportanceDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="01-pump\07-PumpChart\02-Eidt\SetOtherNameDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="01-pump\07-PumpChart\AssetsPumpCurveQLViewDlg.cs">
       <SubType>Form</SubType>
     </Compile>
     <Compile Update="01-pump\07-PumpChart\PumpChartMainPage.cs">
@@ -134,6 +152,21 @@
     <Compile Update="03-valve\04-chart-edit\XhsValveMainPhartMinorLossPanel.cs">
       <SubType>UserControl</SubType>
     </Compile>
+    <Compile Update="03-valve\04-curve\AssetsValveCurveMgrPage.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Update="03-valve\04-curve\AssetsValveCurveViewDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="03-valve\04-curve\EditAssetsValveCurveDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="03-valve\04-curve\ImportAssetsValveCurveByExcelDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="03-valve\04-curve\ImportAssetsValveCurveByPictureDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Update="03-valve\05-import\01-excel\ImportValvePerform2dByExcelCtrl.cs">
       <SubType>UserControl</SubType>
     </Compile>
@@ -176,16 +209,49 @@
     <Compile Update="05-elbow\01-series-bak\ElbowTreeListCtrl.cs">
       <SubType>UserControl</SubType>
     </Compile>
-    <Compile Update="05-elbow\02-main-bak\AddElbowMainDlg.cs">
+    <Compile Update="05-elbow\01-series\AddAssetsElbowSeriesDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="05-elbow\01-series\AssetsElbowSeriesMgrTreeCtrl.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Update="05-elbow\01-series\EditAssetsElbowSeriesDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="05-elbow\01-series\ViewAssetsElbowSeriesDlg.cs">
       <SubType>Form</SubType>
     </Compile>
     <Compile Update="05-elbow\02-main-bak\EditElbowMainDlg.cs">
       <SubType>Form</SubType>
     </Compile>
+    <Compile Update="05-elbow\02-main\AddAssetsElbowMainDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="05-elbow\02-main\AssetsElbowMainMgrPage.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Update="05-elbow\02-main\EditAssetsElbowMainDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="05-elbow\02-main\ViewAssetsElbowMainDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Update="05-elbow\03-coefficient\SetElbowCoefficientDlg.cs">
       <SubType>Form</SubType>
     </Compile>
-    <Compile Update="05-elbow\ElbowManageMainPage.cs">
+    <Compile Update="05-elbow\03-factor\AddAssetsElbowFactorDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="05-elbow\03-factor\AssetsElbowFactorMgrPage.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Update="05-elbow\03-factor\EditAssetsElbowFactorDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="05-elbow\03-factor\ViewAssetsElbowFactorDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="05-elbow\AssetsElbowMgrPage.cs">
       <SubType>UserControl</SubType>
     </Compile>
     <Compile Update="06-threeLink\01-series\AddAssetsThreelinkSeriesDlg.cs">
@@ -317,10 +383,46 @@
     <Compile Update="14-tank\01-series-bak\TankTreeListCtrl.cs">
       <SubType>UserControl</SubType>
     </Compile>
+    <Compile Update="14-tank\01-series\AddAssetsTankSeriesDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="14-tank\01-series\AssetsTankSeriesMgrTreeCtrl.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Update="14-tank\01-series\EditAssetsTankSeriesDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="14-tank\01-series\ViewAssetsTankSeriesDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Update="14-tank\02-main-bak\AddAssetsTankMainDlg.cs">
       <SubType>Form</SubType>
     </Compile>
     <Compile Update="14-tank\02-main-bak\EditAssetsTankMainDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="14-tank\02-main\AddAssetsTankMainDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="14-tank\02-main\AssetsTankMainMgrPage.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Update="14-tank\02-main\EditAssetsTankMainDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="14-tank\02-main\ViewAssetsTankMainDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="14-tank\03-factor\AddAssetsTankFactorDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="14-tank\03-factor\AssetsTankFactorMgrPage.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Update="14-tank\03-factor\EditAssetsTankFactorDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="14-tank\03-factor\ViewAssetsTankFactorDlg.cs">
       <SubType>Form</SubType>
     </Compile>
     <Compile Update="14-tank\04-chart-edit\TankMainPhartMinorLossPanel.cs">
@@ -335,20 +437,116 @@
     <Compile Update="14-tank\04-chart-edit\TankPerform2dEditDlg.cs">
       <SubType>Form</SubType>
     </Compile>
+    <Compile Update="14-tank\04-curveVol\AssetsTankCurveVOLMgrPage.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Update="14-tank\04-curveVol\AssetsTankCurveVOLViewDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="14-tank\04-curveVol\EditAssetsTankCurveVOLDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="14-tank\04-curveVol\ImportAssetsTankCurveVOLByExcelDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="14-tank\04-curveVol\ImportAssetsTankCurveVOLByPictureDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Update="14-tank\05-import\01-excel\ImportTankPerform2dByExcelCtrl.cs">
       <SubType>UserControl</SubType>
     </Compile>
     <Compile Update="14-tank\05-import\01-excel\ImportTankPerform2dByExcelDlg.cs">
       <SubType>Form</SubType>
     </Compile>
+    <Compile Update="14-tank\AssetsTankMgrPage.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Update="15-meter\01-series\AddAssetsMeterSeriesDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="15-meter\01-series\AssetsMeterSeriesMgrTreeCtrl.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Update="15-meter\01-series\EditAssetsMeterSeriesDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="15-meter\01-series\ViewAssetsMeterSeriesDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="15-meter\02-main\AddAssetsMeterMainDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="15-meter\02-main\AssetsMeterMainMgrPage.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Update="15-meter\02-main\EditAssetsMeterMainDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="15-meter\02-main\ViewAssetsMeterMainDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="15-meter\03-factor\AddAssetsMeterFactorDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="15-meter\03-factor\AssetsMeterFactorMgrPage.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Update="15-meter\03-factor\EditAssetsMeterFactorDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="15-meter\03-factor\ViewAssetsMeterFactorDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="15-meter\AssetsMeterMgrPage.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Update="16-flowmeter\01-series\AddAssetsFlowmeterSeriesDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="16-flowmeter\01-series\AssetsFlowmeterSeriesMgrTreeCtrl.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Update="16-flowmeter\01-series\EditAssetsFlowmeterSeriesDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="16-flowmeter\01-series\ViewAssetsFlowmeterSeriesDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="16-flowmeter\02-main\AddAssetsFlowmeterMainDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="16-flowmeter\02-main\AssetsFlowmeterMainMgrPage.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Update="16-flowmeter\02-main\EditAssetsFlowmeterMainDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="16-flowmeter\02-main\ViewAssetsFlowmeterMainDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="16-flowmeter\03-factor\AddAssetsFlowmeterFactorDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="16-flowmeter\03-factor\AssetsFlowmeterFactorMgrPage.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Update="16-flowmeter\03-factor\EditAssetsFlowmeterFactorDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="16-flowmeter\03-factor\ViewAssetsFlowmeterFactorDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="16-flowmeter\AssetsFlowmeterMgrPage.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
     <Compile Update="17-hydrant\01-series\AddAssetsHydrantSeriesDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="17-hydrant\01-series\EditAssetsHydrantSeriesDlg.cs">
       <SubType>Form</SubType>
     </Compile>
     <Compile Update="17-hydrant\01-series\HydrantTreeListCtrl.cs">
       <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Update="17-hydrant\01-series\EditAssetsHydrantSeriesDlg.cs">
-      <SubType>Form</SubType>
     </Compile>
     <Compile Update="17-hydrant\02-main\AddAssetsHydrantMainDlg.cs">
       <SubType>Form</SubType>
@@ -362,14 +560,53 @@
     <Compile Update="17-hydrant\HydrantManageMainPage.cs">
       <SubType>UserControl</SubType>
     </Compile>
+    <Compile Update="18-pressmeter\01-series\AddAssetsPressmeterSeriesDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="18-pressmeter\01-series\AssetsPressmeterSeriesMgrTreeCtrl.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Update="18-pressmeter\01-series\EditAssetsPressmeterSeriesDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="18-pressmeter\01-series\ViewAssetsPressmeterSeriesDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="18-pressmeter\02-main\AddAssetsPressmeterMainDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="18-pressmeter\02-main\AssetsPressmeterMainMgrPage.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Update="18-pressmeter\02-main\EditAssetsPressmeterMainDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="18-pressmeter\02-main\ViewAssetsPressmeterMainDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="18-pressmeter\03-factor\AddAssetsPressmeterFactorDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="18-pressmeter\03-factor\AssetsPressmeterFactorMgrPage.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Update="18-pressmeter\03-factor\EditAssetsPressmeterFactorDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="18-pressmeter\03-factor\ViewAssetsPressmeterFactorDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="18-pressmeter\AssetsPressmeterMgrPage.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
     <Compile Update="19-translation\01-series\AddAssetsTranslationSeriesDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="19-translation\01-series\EditAssetsTranslationSeriesDlg.cs">
       <SubType>Form</SubType>
     </Compile>
     <Compile Update="19-translation\01-series\TranslationTreeListCtrl.cs">
       <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Update="19-translation\01-series\EditAssetsTranslationSeriesDlg.cs">
-      <SubType>Form</SubType>
     </Compile>
     <Compile Update="19-translation\02-main\AddAssetsTranslationMainDlg.cs">
       <SubType>Form</SubType>
@@ -383,17 +620,59 @@
     <Compile Update="19-translation\TranslationManageMainPage.cs">
       <SubType>UserControl</SubType>
     </Compile>
+    <Compile Update="20-exchanger\01-series\AddAssetsExchangerSeriesDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="20-exchanger\01-series\AssetsExchangerSeriesMgrTreeCtrl.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Update="20-exchanger\01-series\EditAssetsExchangerSeriesDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="20-exchanger\01-series\ViewAssetsExchangerSeriesDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="20-exchanger\02-main\AddAssetsExchangerMainDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="20-exchanger\02-main\AssetsExchangerMainMgrPage.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Update="20-exchanger\02-main\EditAssetsExchangerMainDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="20-exchanger\02-main\ViewAssetsExchangerMainDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="20-exchanger\03-factor\AddAssetsExchangerFactorDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="20-exchanger\03-factor\AssetsExchangerFactorMgrPage.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Update="20-exchanger\03-factor\EditAssetsExchangerFactorDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Update="20-exchanger\03-factor\ViewAssetsExchangerFactorDlg.cs">
       <SubType>Form</SubType>
     </Compile>
     <Compile Update="20-exchanger\04-curveql\AssetsExchangerCurveQLMgrPage.cs">
       <SubType>UserControl</SubType>
     </Compile>
+    <Compile Update="20-exchanger\04-curveql\AssetsExchangerCurveQLViewDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Update="20-exchanger\04-curveql\EditAssetsExchangerCurveQLDlg.cs">
       <SubType>Form</SubType>
     </Compile>
     <Compile Update="20-exchanger\04-curveql\ImportAssetsExchangerCurveQLByExcelDlg.cs">
       <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="20-exchanger\04-curveql\ImportAssetsExchangerCurveQLByPictureDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="20-exchanger\AssetsExchangerMgrPage.cs">
+      <SubType>UserControl</SubType>
     </Compile>
     <Compile Update="21-compressor\01-series\AddAssetsCompressorSeriesDlg.cs">
       <SubType>Form</SubType>
@@ -449,9 +728,42 @@
     <Compile Update="21-compressor\AssetsCompressorMgrPage.cs">
       <SubType>UserControl</SubType>
     </Compile>
+    <Compile Update="22-cooling\01-series\AddAssetsCoolingSeriesDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="22-cooling\01-series\AssetsCoolingSeriesMgrTreeCtrl.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Update="22-cooling\01-series\EditAssetsCoolingSeriesDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="22-cooling\01-series\ViewAssetsCoolingSeriesDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="22-cooling\02-main\AddAssetsCoolingMainDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="22-cooling\02-main\AssetsCoolingMainMgrPage.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Update="22-cooling\02-main\EditAssetsCoolingMainDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="22-cooling\02-main\ViewAssetsCoolingMainDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Update="22-cooling\03-factor\AddAssetsCoolingFactorDlg.cs">
       <SubType>Form</SubType>
     </Compile>
+    <Compile Update="22-cooling\03-factor\AssetsCoolingFactorMgrPage.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Update="22-cooling\03-factor\EditAssetsCoolingFactorDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Update="22-cooling\03-factor\ViewAssetsCoolingFactorDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Update="22-cooling\AssetsCoolingMgrPage.cs">
       <SubType>UserControl</SubType>
     </Compile>
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/01-property/SimulationPropertyCtrl.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/01-property/SimulationPropertyCtrl.cs
index 5cdc0f6..d35beb8 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/01-property/SimulationPropertyCtrl.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/01-property/SimulationPropertyCtrl.cs
@@ -186,7 +186,7 @@
                     {
                         var elbowViewModel = vm as HydroElbowViewModel;
                         var input = HydroMatchingHelper.Create(elbowViewModel);
-                        var dlg = new SimulationElbowSingleMatchingDlg();
+                        var dlg = new AssetsElbowSingleMatchingDlg();
                         dlg.ReloadDataEvent += (output) =>
                         {
                             HydroMatchingHelper.Apply(elbowViewModel, output);
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/00-core/AssetsMatchingHelper.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/00-core/AssetsMatchingHelper.cs
index d0161dd..3f422af 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/00-core/AssetsMatchingHelper.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/00-core/AssetsMatchingHelper.cs
@@ -620,12 +620,12 @@
             }
             Vmo.AssetsElbowMainVmo vmo = null;
             var nameMatching = elbowMainVmos.Where(x =>
-        (x.KeyWord != null && x.KeyWord.Any(keyword => GetIntersect(keyword, input.ModelType) >= 1)) ||
-        (x.KeyWord == null || !x.KeyWord.Any()) && GetIntersect(x.Name, input.ModelType) >= 1
+        (x.KeyWords != null && x.KeyWords.Any(keyword => GetIntersect(keyword, input.ModelType) >= 1)) ||
+        (x.KeyWords == null || !x.KeyWords.Any()) && GetIntersect(x.Name, input.ModelType) >= 1
         ) //鍏堣繘琛岀瓫閫�,鍚庤繘琛屼粠澶у埌灏忔帓搴�
        .OrderByDescending(x =>
-        (x.KeyWord != null && x.KeyWord.Any(keyword => GetIntersect(keyword, input.ModelType) >= 1)) ||
-        (x.KeyWord == null || !x.KeyWord.Any()) && GetIntersect(x.Name, input.ModelType) >= 1).ToList();
+        (x.KeyWords != null && x.KeyWords.Any(keyword => GetIntersect(keyword, input.ModelType) >= 1)) ||
+        (x.KeyWords == null || !x.KeyWords.Any()) && GetIntersect(x.Name, input.ModelType) >= 1).ToList();
 
             if (nameMatching.Count > 1)
             {
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/05-elbows/AssetsElbowSingleMatchingCtrl.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/05-elbows/AssetsElbowSingleMatchingCtrl.Designer.cs
new file mode 100644
index 0000000..a11dd9c
--- /dev/null
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/05-elbows/AssetsElbowSingleMatchingCtrl.Designer.cs
@@ -0,0 +1,425 @@
+锘縩amespace HStation.WinFrmUI
+{
+    partial class AssetsElbowSingleMatchingCtrl
+    {
+        /// <summary> 
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Component Designer generated code
+
+        /// <summary> 
+        /// Required method for Designer support - do not modify 
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            components = new Container();
+            layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+            generalSearchCtrl1 = new GeneralSearchCtrl();
+            txtCaliberMax = new TextEdit();
+            txtCaliberMin = new TextEdit();
+            txtMaterial = new TextEdit();
+            txtName = new TextEdit();
+            gridControl1 = new DevExpress.XtraGrid.GridControl();
+            assetsElbowSingleMatchingViewModelBindingSource = new BindingSource(components);
+            gridView1 = new DevExpress.XtraGrid.Views.Grid.GridView();
+            colName = new DevExpress.XtraGrid.Columns.GridColumn();
+            colMaterial = new DevExpress.XtraGrid.Columns.GridColumn();
+            colCaliber = new DevExpress.XtraGrid.Columns.GridColumn();
+            colCoefficient = new DevExpress.XtraGrid.Columns.GridColumn();
+            colKeyWords = new DevExpress.XtraGrid.Columns.GridColumn();
+            colFlags = new DevExpress.XtraGrid.Columns.GridColumn();
+            colTagName = new DevExpress.XtraGrid.Columns.GridColumn();
+            colDescription = new DevExpress.XtraGrid.Columns.GridColumn();
+            Root = new DevExpress.XtraLayout.LayoutControlGroup();
+            layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+            layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
+            layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+            layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
+            layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
+            layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
+            layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
+            simpleLabelItem1 = new DevExpress.XtraLayout.SimpleLabelItem();
+            colElbowType = new DevExpress.XtraGrid.Columns.GridColumn();
+            colAngle = new DevExpress.XtraGrid.Columns.GridColumn();
+            ((ISupportInitialize)layoutControl1).BeginInit();
+            layoutControl1.SuspendLayout();
+            ((ISupportInitialize)txtCaliberMax.Properties).BeginInit();
+            ((ISupportInitialize)txtCaliberMin.Properties).BeginInit();
+            ((ISupportInitialize)txtMaterial.Properties).BeginInit();
+            ((ISupportInitialize)txtName.Properties).BeginInit();
+            ((ISupportInitialize)gridControl1).BeginInit();
+            ((ISupportInitialize)assetsElbowSingleMatchingViewModelBindingSource).BeginInit();
+            ((ISupportInitialize)gridView1).BeginInit();
+            ((ISupportInitialize)Root).BeginInit();
+            ((ISupportInitialize)layoutControlItem1).BeginInit();
+            ((ISupportInitialize)layoutControlGroup1).BeginInit();
+            ((ISupportInitialize)layoutControlItem2).BeginInit();
+            ((ISupportInitialize)layoutControlItem3).BeginInit();
+            ((ISupportInitialize)layoutControlItem4).BeginInit();
+            ((ISupportInitialize)layoutControlItem6).BeginInit();
+            ((ISupportInitialize)layoutControlItem5).BeginInit();
+            ((ISupportInitialize)simpleLabelItem1).BeginInit();
+            SuspendLayout();
+            // 
+            // layoutControl1
+            // 
+            layoutControl1.Controls.Add(generalSearchCtrl1);
+            layoutControl1.Controls.Add(txtCaliberMax);
+            layoutControl1.Controls.Add(txtCaliberMin);
+            layoutControl1.Controls.Add(txtMaterial);
+            layoutControl1.Controls.Add(txtName);
+            layoutControl1.Controls.Add(gridControl1);
+            layoutControl1.Dock = DockStyle.Fill;
+            layoutControl1.Location = new Point(0, 0);
+            layoutControl1.Name = "layoutControl1";
+            layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new Rectangle(1206, 280, 650, 400);
+            layoutControl1.Root = Root;
+            layoutControl1.Size = new Size(1028, 569);
+            layoutControl1.TabIndex = 0;
+            layoutControl1.Text = "layoutControl1";
+            // 
+            // generalSearchCtrl1
+            // 
+            generalSearchCtrl1.Location = new Point(556, 33);
+            generalSearchCtrl1.Margin = new Padding(2);
+            generalSearchCtrl1.Name = "generalSearchCtrl1";
+            generalSearchCtrl1.Size = new Size(460, 24);
+            generalSearchCtrl1.TabIndex = 9;
+            // 
+            // txtCaliberMax
+            // 
+            txtCaliberMax.Location = new Point(496, 35);
+            txtCaliberMax.Name = "txtCaliberMax";
+            txtCaliberMax.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.True;
+            txtCaliberMax.Properties.DisplayFormat.FormatString = "{0}mm";
+            txtCaliberMax.Properties.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Custom;
+            txtCaliberMax.Properties.MaskSettings.Set("MaskManagerType", typeof(DevExpress.Data.Mask.NumericMaskManager));
+            txtCaliberMax.Properties.MaskSettings.Set("MaskManagerSignature", "allowNull=False");
+            txtCaliberMax.Properties.NullValuePrompt = "mm";
+            txtCaliberMax.Size = new Size(56, 20);
+            txtCaliberMax.StyleController = layoutControl1;
+            txtCaliberMax.TabIndex = 8;
+            // 
+            // txtCaliberMin
+            // 
+            txtCaliberMin.Location = new Point(412, 35);
+            txtCaliberMin.Name = "txtCaliberMin";
+            txtCaliberMin.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.True;
+            txtCaliberMin.Properties.DisplayFormat.FormatString = "{0}mm";
+            txtCaliberMin.Properties.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Custom;
+            txtCaliberMin.Properties.MaskSettings.Set("MaskManagerType", typeof(DevExpress.Data.Mask.NumericMaskManager));
+            txtCaliberMin.Properties.MaskSettings.Set("MaskManagerSignature", "allowNull=False");
+            txtCaliberMin.Properties.NullValuePrompt = "mm";
+            txtCaliberMin.Size = new Size(56, 20);
+            txtCaliberMin.StyleController = layoutControl1;
+            txtCaliberMin.TabIndex = 7;
+            // 
+            // txtMaterial
+            // 
+            txtMaterial.Location = new Point(232, 35);
+            txtMaterial.Name = "txtMaterial";
+            txtMaterial.Size = new Size(136, 20);
+            txtMaterial.StyleController = layoutControl1;
+            txtMaterial.TabIndex = 6;
+            // 
+            // txtName
+            // 
+            txtName.Location = new Point(52, 35);
+            txtName.Name = "txtName";
+            txtName.Size = new Size(136, 20);
+            txtName.StyleController = layoutControl1;
+            txtName.TabIndex = 5;
+            // 
+            // gridControl1
+            // 
+            gridControl1.DataSource = assetsElbowSingleMatchingViewModelBindingSource;
+            gridControl1.Location = new Point(0, 70);
+            gridControl1.MainView = gridView1;
+            gridControl1.Name = "gridControl1";
+            gridControl1.Size = new Size(1028, 499);
+            gridControl1.TabIndex = 4;
+            gridControl1.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { gridView1 });
+            // 
+            // assetsElbowSingleMatchingViewModelBindingSource
+            // 
+            assetsElbowSingleMatchingViewModelBindingSource.DataSource = typeof(AssetsElbowSingleMatchingViewModel);
+            // 
+            // gridView1
+            // 
+            gridView1.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { colName, colMaterial, colCaliber, colCoefficient, colKeyWords, colFlags, colTagName, colDescription, colElbowType, colAngle });
+            gridView1.GridControl = gridControl1;
+            gridView1.Name = "gridView1";
+            // 
+            // colName
+            // 
+            colName.FieldName = "Name";
+            colName.MaxWidth = 150;
+            colName.MinWidth = 100;
+            colName.Name = "colName";
+            colName.Visible = true;
+            colName.VisibleIndex = 0;
+            colName.Width = 100;
+            // 
+            // colMaterial
+            // 
+            colMaterial.FieldName = "Material";
+            colMaterial.MaxWidth = 100;
+            colMaterial.MinWidth = 100;
+            colMaterial.Name = "colMaterial";
+            colMaterial.Visible = true;
+            colMaterial.VisibleIndex = 2;
+            colMaterial.Width = 100;
+            // 
+            // colCaliber
+            // 
+            colCaliber.FieldName = "Caliber";
+            colCaliber.MaxWidth = 80;
+            colCaliber.MinWidth = 80;
+            colCaliber.Name = "colCaliber";
+            colCaliber.Visible = true;
+            colCaliber.VisibleIndex = 3;
+            colCaliber.Width = 80;
+            // 
+            // colCoefficient
+            // 
+            colCoefficient.FieldName = "Coefficient";
+            colCoefficient.MaxWidth = 80;
+            colCoefficient.MinWidth = 80;
+            colCoefficient.Name = "colCoefficient";
+            colCoefficient.Visible = true;
+            colCoefficient.VisibleIndex = 4;
+            colCoefficient.Width = 80;
+            // 
+            // colKeyWords
+            // 
+            colKeyWords.FieldName = "KeyWords";
+            colKeyWords.MinWidth = 100;
+            colKeyWords.Name = "colKeyWords";
+            colKeyWords.Visible = true;
+            colKeyWords.VisibleIndex = 6;
+            colKeyWords.Width = 100;
+            // 
+            // colFlags
+            // 
+            colFlags.FieldName = "Flags";
+            colFlags.MinWidth = 100;
+            colFlags.Name = "colFlags";
+            colFlags.Visible = true;
+            colFlags.VisibleIndex = 7;
+            colFlags.Width = 100;
+            // 
+            // colTagName
+            // 
+            colTagName.FieldName = "TagName";
+            colTagName.MaxWidth = 150;
+            colTagName.MinWidth = 100;
+            colTagName.Name = "colTagName";
+            colTagName.Visible = true;
+            colTagName.VisibleIndex = 8;
+            colTagName.Width = 100;
+            // 
+            // colDescription
+            // 
+            colDescription.FieldName = "Description";
+            colDescription.MinWidth = 100;
+            colDescription.Name = "colDescription";
+            colDescription.Visible = true;
+            colDescription.VisibleIndex = 9;
+            colDescription.Width = 100;
+            // 
+            // Root
+            // 
+            Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+            Root.GroupBordersVisible = false;
+            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1, layoutControlGroup1 });
+            Root.Name = "Root";
+            Root.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+            Root.Size = new Size(1028, 569);
+            Root.TextVisible = false;
+            // 
+            // layoutControlItem1
+            // 
+            layoutControlItem1.Control = gridControl1;
+            layoutControlItem1.Location = new Point(0, 69);
+            layoutControlItem1.Name = "layoutControlItem1";
+            layoutControlItem1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 1, 0);
+            layoutControlItem1.Size = new Size(1028, 500);
+            layoutControlItem1.TextSize = new Size(0, 0);
+            layoutControlItem1.TextVisible = false;
+            // 
+            // layoutControlGroup1
+            // 
+            layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem2, layoutControlItem3, layoutControlItem4, layoutControlItem6, layoutControlItem5, simpleLabelItem1 });
+            layoutControlGroup1.Location = new Point(0, 0);
+            layoutControlGroup1.Name = "layoutControlGroup1";
+            layoutControlGroup1.Size = new Size(1028, 69);
+            layoutControlGroup1.Spacing = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+            layoutControlGroup1.Text = "妫�绱㈡潯浠�";
+            // 
+            // layoutControlItem2
+            // 
+            layoutControlItem2.ContentVertAlignment = DevExpress.Utils.VertAlignment.Center;
+            layoutControlItem2.Control = txtName;
+            layoutControlItem2.Location = new Point(0, 0);
+            layoutControlItem2.MaxSize = new Size(180, 24);
+            layoutControlItem2.MinSize = new Size(180, 24);
+            layoutControlItem2.Name = "layoutControlItem2";
+            layoutControlItem2.Size = new Size(180, 28);
+            layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            layoutControlItem2.Text = "鍚嶇О:";
+            layoutControlItem2.TextSize = new Size(28, 14);
+            // 
+            // layoutControlItem3
+            // 
+            layoutControlItem3.ContentVertAlignment = DevExpress.Utils.VertAlignment.Center;
+            layoutControlItem3.Control = txtMaterial;
+            layoutControlItem3.Location = new Point(180, 0);
+            layoutControlItem3.MaxSize = new Size(180, 24);
+            layoutControlItem3.MinSize = new Size(180, 24);
+            layoutControlItem3.Name = "layoutControlItem3";
+            layoutControlItem3.Size = new Size(180, 28);
+            layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            layoutControlItem3.Text = "鏉愯川:";
+            layoutControlItem3.TextSize = new Size(28, 14);
+            // 
+            // layoutControlItem4
+            // 
+            layoutControlItem4.ContentVertAlignment = DevExpress.Utils.VertAlignment.Center;
+            layoutControlItem4.Control = txtCaliberMin;
+            layoutControlItem4.Location = new Point(360, 0);
+            layoutControlItem4.MaxSize = new Size(100, 24);
+            layoutControlItem4.MinSize = new Size(100, 24);
+            layoutControlItem4.Name = "layoutControlItem4";
+            layoutControlItem4.Size = new Size(100, 28);
+            layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            layoutControlItem4.Text = "鍙e緞:";
+            layoutControlItem4.TextSize = new Size(28, 14);
+            // 
+            // layoutControlItem6
+            // 
+            layoutControlItem6.ContentVertAlignment = DevExpress.Utils.VertAlignment.Center;
+            layoutControlItem6.Control = generalSearchCtrl1;
+            layoutControlItem6.Location = new Point(544, 0);
+            layoutControlItem6.Name = "layoutControlItem6";
+            layoutControlItem6.Size = new Size(464, 28);
+            layoutControlItem6.TextSize = new Size(0, 0);
+            layoutControlItem6.TextVisible = false;
+            // 
+            // layoutControlItem5
+            // 
+            layoutControlItem5.ContentVertAlignment = DevExpress.Utils.VertAlignment.Center;
+            layoutControlItem5.Control = txtCaliberMax;
+            layoutControlItem5.Location = new Point(484, 0);
+            layoutControlItem5.MaxSize = new Size(60, 24);
+            layoutControlItem5.MinSize = new Size(60, 24);
+            layoutControlItem5.Name = "layoutControlItem5";
+            layoutControlItem5.Size = new Size(60, 28);
+            layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            layoutControlItem5.Text = "鍙e緞:";
+            layoutControlItem5.TextSize = new Size(0, 0);
+            layoutControlItem5.TextVisible = false;
+            // 
+            // simpleLabelItem1
+            // 
+            simpleLabelItem1.AllowHotTrack = false;
+            simpleLabelItem1.AppearanceItemCaption.Options.UseTextOptions = true;
+            simpleLabelItem1.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+            simpleLabelItem1.Location = new Point(460, 0);
+            simpleLabelItem1.MaxSize = new Size(24, 0);
+            simpleLabelItem1.MinSize = new Size(24, 18);
+            simpleLabelItem1.Name = "simpleLabelItem1";
+            simpleLabelItem1.Size = new Size(24, 28);
+            simpleLabelItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            simpleLabelItem1.Text = "~";
+            simpleLabelItem1.TextSize = new Size(28, 14);
+            // 
+            // colElbowType
+            // 
+            colElbowType.FieldName = "ElbowType";
+            colElbowType.Name = "colElbowType";
+            colElbowType.Visible = true;
+            colElbowType.VisibleIndex = 1;
+            // 
+            // colAngle
+            // 
+            colAngle.FieldName = "Angle";
+            colAngle.Name = "colAngle";
+            colAngle.Visible = true;
+            colAngle.VisibleIndex = 5;
+            // 
+            // AssetsElbowSingleMatchingCtrl
+            // 
+            AutoScaleDimensions = new SizeF(7F, 14F);
+            AutoScaleMode = AutoScaleMode.Font;
+            Controls.Add(layoutControl1);
+            Name = "AssetsElbowSingleMatchingCtrl";
+            Size = new Size(1028, 569);
+            ((ISupportInitialize)layoutControl1).EndInit();
+            layoutControl1.ResumeLayout(false);
+            ((ISupportInitialize)txtCaliberMax.Properties).EndInit();
+            ((ISupportInitialize)txtCaliberMin.Properties).EndInit();
+            ((ISupportInitialize)txtMaterial.Properties).EndInit();
+            ((ISupportInitialize)txtName.Properties).EndInit();
+            ((ISupportInitialize)gridControl1).EndInit();
+            ((ISupportInitialize)assetsElbowSingleMatchingViewModelBindingSource).EndInit();
+            ((ISupportInitialize)gridView1).EndInit();
+            ((ISupportInitialize)Root).EndInit();
+            ((ISupportInitialize)layoutControlItem1).EndInit();
+            ((ISupportInitialize)layoutControlGroup1).EndInit();
+            ((ISupportInitialize)layoutControlItem2).EndInit();
+            ((ISupportInitialize)layoutControlItem3).EndInit();
+            ((ISupportInitialize)layoutControlItem4).EndInit();
+            ((ISupportInitialize)layoutControlItem6).EndInit();
+            ((ISupportInitialize)layoutControlItem5).EndInit();
+            ((ISupportInitialize)simpleLabelItem1).EndInit();
+            ResumeLayout(false);
+        }
+
+        #endregion
+
+        private DevExpress.XtraLayout.LayoutControl layoutControl1;
+        private TextEdit txtCaliberMax;
+        private TextEdit txtCaliberMin;
+        private TextEdit txtMaterial;
+        private TextEdit txtName;
+        private DevExpress.XtraGrid.GridControl gridControl1;
+        private DevExpress.XtraGrid.Views.Grid.GridView gridView1;
+        private DevExpress.XtraLayout.LayoutControlGroup Root;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+        private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
+        private GeneralSearchCtrl generalSearchCtrl1;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
+        private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem1;
+        private BindingSource assetsElbowSingleMatchingViewModelBindingSource;
+        private DevExpress.XtraGrid.Columns.GridColumn colName;
+        private DevExpress.XtraGrid.Columns.GridColumn colMaterial;
+        private DevExpress.XtraGrid.Columns.GridColumn colCaliber;
+        private DevExpress.XtraGrid.Columns.GridColumn colCoefficient;
+        private DevExpress.XtraGrid.Columns.GridColumn colKeyWords;
+        private DevExpress.XtraGrid.Columns.GridColumn colFlags;
+        private DevExpress.XtraGrid.Columns.GridColumn colTagName;
+        private DevExpress.XtraGrid.Columns.GridColumn colDescription;
+        private DevExpress.XtraGrid.Columns.GridColumn colElbowType;
+        private DevExpress.XtraGrid.Columns.GridColumn colAngle;
+    }
+}
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/05-elbows/AssetsElbowSingleMatchingCtrl.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/05-elbows/AssetsElbowSingleMatchingCtrl.cs
new file mode 100644
index 0000000..5346759
--- /dev/null
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/05-elbows/AssetsElbowSingleMatchingCtrl.cs
@@ -0,0 +1,108 @@
+锘縰sing DevExpress.XtraEditors;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace HStation.WinFrmUI
+{
+    public partial class AssetsElbowSingleMatchingCtrl : DevExpress.XtraEditors.XtraUserControl
+    {
+        public AssetsElbowSingleMatchingCtrl()
+        {
+            InitializeComponent();
+            this.layoutControl1.SetupLayoutControl();
+            this.gridView1.SetLimitView();
+            this.gridView1.RegistCustomDrawCell(Color.BurlyWood, Color.White);
+            this.generalSearchCtrl1.SearchEvent += Search;
+            this.generalSearchCtrl1.ClearEvent += Clear;
+        }
+
+        public List<AssetsElbowSingleMatchingViewModel> _allList = null;
+        private List<AssetsElbowSingleMatchingViewModel> _allBindingList = null;
+        private AssetsElbowMainVmo _selected = null;
+
+        /// <summary>
+        /// 缁戝畾鏁版嵁
+        /// </summary>
+        public async void SetBindingData(string dbId)
+        {
+            var allList = await BLLFactory<HStation.BLL.AssetsElbowMain>.Instance.GetAll();
+            _allList = new List<AssetsElbowSingleMatchingViewModel>();
+            allList.ForEach(x => _allList.Add(new AssetsElbowSingleMatchingViewModel(x)));
+            if (long.TryParse(dbId, out long id))
+            {
+                var item = allList?.Find(x => x.ID == id);
+                _selected = item;
+            }
+            Search();
+            await Task.Delay(300);
+            if (_selected != null)
+            {
+                if (_allBindingList != null && _allBindingList.Count > 0)
+                {
+                    var dataSourceIndex = _allBindingList.FindIndex(x => x.Vmo == _selected);
+                    if (dataSourceIndex >= 0)
+                    {
+                        var rowIndex = this.gridView1.GetRowHandle(dataSourceIndex);
+                        this.gridView1.FocusedRowHandle = rowIndex;
+                    }
+                }
+            }
+        }
+
+        private void Search()
+        {
+            _allBindingList = _allList;
+            var name = this.txtName.Text.Trim();
+            if (!string.IsNullOrEmpty(this.txtName.Text.Trim()))
+            {
+                _allBindingList = _allBindingList.Where(x => !string.IsNullOrEmpty(x.Name) && x.Name.Contains(name)).ToList();
+            }
+            var material = this.txtMaterial.Text.Trim();
+            if (!string.IsNullOrEmpty(material))
+            {
+                _allBindingList = _allBindingList.Where(x => !string.IsNullOrEmpty(x.Material) && x.Material.Contains(material)).ToList();
+            }
+            double? caliberMin = this.txtCaliberMin.EditValue == null ? null : double.Parse(this.txtCaliberMin.EditValue.ToString());
+            if (caliberMin.HasValue)
+            {
+                _allBindingList = _allBindingList.Where(x => x.Caliber.HasValue && x.Caliber.Value >= caliberMin.Value).ToList();
+            }
+            double? caliberMax = this.txtCaliberMax.EditValue == null ? null : double.Parse(this.txtCaliberMax.EditValue.ToString());
+            if (caliberMax.HasValue)
+            {
+                _allBindingList = _allBindingList.Where(x => x.Caliber.HasValue && x.Caliber.Value <= caliberMax.Value).ToList();
+            }
+            this.assetsElbowSingleMatchingViewModelBindingSource.DataSource = _allBindingList;
+            this.assetsElbowSingleMatchingViewModelBindingSource.ResetBindings(false);
+        }
+
+        private void Clear()
+        {
+            this.txtName.EditValue = null;
+            this.txtMaterial.EditValue = null;
+            this.txtCaliberMin.EditValue = null;
+            this.txtCaliberMax.EditValue = null;
+            Search();
+        }
+
+        /// <summary>
+        /// 鑾峰彇
+        /// </summary>
+        public AssetsElbowMainVmo Get()
+        {
+            var vm = this.gridView1.GetFocusedRow() as AssetsElbowSingleMatchingViewModel;
+            if (vm == null)
+            {
+                return default;
+            }
+            return vm.Vmo;
+        }
+    }
+}
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/EditAssetsCoolingSeriesDlg.resx b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/05-elbows/AssetsElbowSingleMatchingCtrl.resx
similarity index 95%
rename from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/EditAssetsCoolingSeriesDlg.resx
rename to WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/05-elbows/AssetsElbowSingleMatchingCtrl.resx
index d438392..415e7c3 100644
--- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/EditAssetsCoolingSeriesDlg.resx
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/05-elbows/AssetsElbowSingleMatchingCtrl.resx
@@ -117,7 +117,7 @@
   <resheader name="writer">
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
-  <metadata name="dxErrorProvider1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+  <metadata name="assetsElbowSingleMatchingViewModelBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>17, 17</value>
   </metadata>
 </root>
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/05-elbows/AssetsElbowSingleMatchingDlg.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/05-elbows/AssetsElbowSingleMatchingDlg.Designer.cs
new file mode 100644
index 0000000..46ca67d
--- /dev/null
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/05-elbows/AssetsElbowSingleMatchingDlg.Designer.cs
@@ -0,0 +1,127 @@
+锘縩amespace HStation.WinFrmUI
+{
+    partial class AssetsElbowSingleMatchingDlg
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
+            Root = new DevExpress.XtraLayout.LayoutControlGroup();
+            assetsElbowSingleMatchingCtrl1 = new AssetsElbowSingleMatchingCtrl();
+            layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
+            generalOkAndCancelCtrl1 = new GeneralOkAndCancelCtrl();
+            layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
+            ((ISupportInitialize)layoutControl1).BeginInit();
+            layoutControl1.SuspendLayout();
+            ((ISupportInitialize)Root).BeginInit();
+            ((ISupportInitialize)layoutControlItem1).BeginInit();
+            ((ISupportInitialize)layoutControlItem2).BeginInit();
+            SuspendLayout();
+            // 
+            // layoutControl1
+            // 
+            layoutControl1.Controls.Add(generalOkAndCancelCtrl1);
+            layoutControl1.Controls.Add(assetsElbowSingleMatchingCtrl1);
+            layoutControl1.Dock = DockStyle.Fill;
+            layoutControl1.Location = new Point(0, 0);
+            layoutControl1.Name = "layoutControl1";
+            layoutControl1.Root = Root;
+            layoutControl1.Size = new Size(978, 552);
+            layoutControl1.TabIndex = 0;
+            layoutControl1.Text = "layoutControl1";
+            // 
+            // Root
+            // 
+            Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+            Root.GroupBordersVisible = false;
+            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1, layoutControlItem2 });
+            Root.Name = "Root";
+            Root.Size = new Size(978, 552);
+            Root.TextVisible = false;
+            // 
+            // assetsElbowSingleMatchingCtrl1
+            // 
+            assetsElbowSingleMatchingCtrl1.Location = new Point(12, 12);
+            assetsElbowSingleMatchingCtrl1.Name = "assetsElbowSingleMatchingCtrl1";
+            assetsElbowSingleMatchingCtrl1.Size = new Size(954, 498);
+            assetsElbowSingleMatchingCtrl1.TabIndex = 4;
+            // 
+            // layoutControlItem1
+            // 
+            layoutControlItem1.Control = assetsElbowSingleMatchingCtrl1;
+            layoutControlItem1.Location = new Point(0, 0);
+            layoutControlItem1.Name = "layoutControlItem1";
+            layoutControlItem1.Size = new Size(958, 502);
+            layoutControlItem1.TextSize = new Size(0, 0);
+            layoutControlItem1.TextVisible = false;
+            // 
+            // generalOkAndCancelCtrl1
+            // 
+            generalOkAndCancelCtrl1.ButtonCancelMaxSize = new Size(100, 26);
+            generalOkAndCancelCtrl1.ButtonCancelMinSize = new Size(100, 26);
+            generalOkAndCancelCtrl1.ButtonOkMaxSize = new Size(100, 26);
+            generalOkAndCancelCtrl1.ButtonOkMinSize = new Size(100, 26);
+            generalOkAndCancelCtrl1.Location = new Point(12, 514);
+            generalOkAndCancelCtrl1.Name = "generalOkAndCancelCtrl1";
+            generalOkAndCancelCtrl1.Size = new Size(954, 26);
+            generalOkAndCancelCtrl1.TabIndex = 5;
+            // 
+            // layoutControlItem2
+            // 
+            layoutControlItem2.Control = generalOkAndCancelCtrl1;
+            layoutControlItem2.Location = new Point(0, 502);
+            layoutControlItem2.Name = "layoutControlItem2";
+            layoutControlItem2.Size = new Size(958, 30);
+            layoutControlItem2.TextSize = new Size(0, 0);
+            layoutControlItem2.TextVisible = false;
+            // 
+            // AssetsElbowSingleMatchingDlg
+            // 
+            AutoScaleDimensions = new SizeF(7F, 14F);
+            AutoScaleMode = AutoScaleMode.Font;
+            ClientSize = new Size(978, 552);
+            Controls.Add(layoutControl1);
+            Name = "AssetsElbowSingleMatchingDlg";
+            StartPosition = FormStartPosition.CenterParent;
+            Text = "鍐峰嵈濉�";
+            ((ISupportInitialize)layoutControl1).EndInit();
+            layoutControl1.ResumeLayout(false);
+            ((ISupportInitialize)Root).EndInit();
+            ((ISupportInitialize)layoutControlItem1).EndInit();
+            ((ISupportInitialize)layoutControlItem2).EndInit();
+            ResumeLayout(false);
+        }
+
+        #endregion
+
+        private DevExpress.XtraLayout.LayoutControl layoutControl1;
+        private GeneralOkAndCancelCtrl generalOkAndCancelCtrl1;
+        private AssetsElbowSingleMatchingCtrl assetsElbowSingleMatchingCtrl1;
+        private DevExpress.XtraLayout.LayoutControlGroup Root;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
+    }
+}
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/05-elbows/AssetsElbowSingleMatchingDlg.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/05-elbows/AssetsElbowSingleMatchingDlg.cs
new file mode 100644
index 0000000..84d40b4
--- /dev/null
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/05-elbows/AssetsElbowSingleMatchingDlg.cs
@@ -0,0 +1,52 @@
+锘縩amespace HStation.WinFrmUI
+{
+    public partial class AssetsElbowSingleMatchingDlg : DevExpress.XtraEditors.XtraForm
+    {
+        public AssetsElbowSingleMatchingDlg()
+        {
+            InitializeComponent();
+            this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon;
+            this.generalOkAndCancelCtrl1.OkEvent += GeneralOkAndCancelCtrl1_OkEvent;
+        }
+
+        public event Action<HydroElbowMatchingViewModel> ReloadDataEvent;
+
+        private HydroElbowMatchingViewModel _input = null;
+
+        /// <summary>
+        ///
+        /// </summary>
+        public void SetBindingData(HydroElbowMatchingViewModel input)
+        {
+            if (input == null)
+            {
+                return;
+            }
+            _input = input;
+            this.assetsElbowSingleMatchingCtrl1.SetBindingData(input.DbId);
+        }
+
+        private void GeneralOkAndCancelCtrl1_OkEvent()
+        {
+            if (_input == null)
+            {
+                return;
+            }
+            var vm = this.assetsElbowSingleMatchingCtrl1.Get();
+            if (vm == null)
+            {
+                return;
+            }
+
+            _input.MatchingModelType = vm.Name;
+            _input.MatchingMaterial = vm.Material;
+            _input.MatchingCaliber = vm.Caliber;
+            _input.MatchingBendingAngle = vm.Angle;
+            _input.MatchingElbowType = (Yw.WinFrmUI.eElbowType)(int)vm.ElbowType;
+            _input.MatchingMinorLoss = vm.MinorLoss;
+            this.ReloadDataEvent?.Invoke(_input);
+            this.DialogResult = DialogResult.OK;
+            this.Close();
+        }
+    }
+}
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/ViewAssetsCoolingSeriesDlg.resx b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/05-elbows/AssetsElbowSingleMatchingDlg.resx
similarity index 100%
copy from WinFrmUI/HStation.WinFrmUI.Assets.Core/05-elbow/01-series/ViewAssetsCoolingSeriesDlg.resx
copy to WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/05-elbows/AssetsElbowSingleMatchingDlg.resx
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/05-elbows/AssetsElbowSingleMatchingViewModel.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/05-elbows/AssetsElbowSingleMatchingViewModel.cs
new file mode 100644
index 0000000..2b57068
--- /dev/null
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/05-elbows/AssetsElbowSingleMatchingViewModel.cs
@@ -0,0 +1,111 @@
+锘縩amespace HStation.WinFrmUI
+{
+    /// <summary>
+    ///
+    /// </summary>
+    public class AssetsElbowSingleMatchingViewModel
+    {
+        /// <summary>
+        ///
+        /// </summary>
+        public AssetsElbowSingleMatchingViewModel()
+        { }
+
+        /// <summary>
+        ///
+        /// </summary>
+        public AssetsElbowSingleMatchingViewModel(AssetsElbowMainVmo rhs)
+        {
+            this.ID = rhs.ID;
+            this.Name = rhs.Name;
+            this.Material = rhs.Material;
+            this.Caliber = rhs.Caliber;
+            this.Coefficient = rhs.MinorLoss;
+            this.Angle = rhs.Angle;
+            this.ElbowType = rhs.ElbowType;
+            this.KeyWords = HStation.Service.Assets.KeyWordHelper.ToString(rhs.KeyWords);
+            this.Flags = Yw.Untity.FlagsHelper.ToString(rhs.Flags);
+            this.TagName = rhs.TagName;
+            this.SortCode = rhs.SortCode;
+            this.Description = rhs.Description;
+            this.Vmo = rhs;
+        }
+
+        /// <summary>
+        /// id
+        /// </summary>
+        [Display(Name = "ID")]
+        public long ID { get; set; }
+
+        /// <summary>
+        /// 鍨嬪彿
+        /// </summary>
+        [DisplayName("鍨嬪彿")]
+        public string Name { get; set; }
+
+        /// <summary>
+        /// 鏉愯川
+        /// </summary>
+        [DisplayName("鏉愯川")]
+        public string Material { get; set; }
+
+        /// <summary>
+        /// 鍙e緞 mm
+        /// </summary>
+        [DisplayName("鍙e緞(mm)")]
+        public double? Caliber { get; set; }
+
+        /// <summary>
+        /// 鍠峰皠绯绘暟
+        /// </summary>
+        [DisplayName("鍠峰皠绯绘暟")]
+        public double Coefficient { get; set; }
+
+        /// <summary>
+        /// 鍏抽敭瀛�
+        /// </summary>
+        [DisplayName("鍏抽敭瀛�")]
+        public string KeyWords { get; set; }
+
+        /// <summary>
+        /// 寮ご绫诲瀷
+        /// </summary>
+        [Display(Name = "寮ご绫诲瀷")]
+        public HStation.Assets.eElbowType? ElbowType { get; set; }
+
+        /// <summary>
+        /// 瑙掑害
+        /// </summary>
+        [Display(Name = "瑙掑害")]
+        public int? Angle { get; set; }
+
+        /// <summary>
+        /// 鏍囩
+        /// </summary>
+        [DisplayName("鏍囩")]
+        public string Flags { get; set; }
+
+        /// <summary>
+        /// 鏍囧織
+        /// </summary>
+        [DisplayName("鏍囧織")]
+        public string TagName { get; set; }
+
+        /// <summary>
+        /// 鎺掑簭鐮�
+        /// </summary>
+        [DisplayName("鎺掑簭鐮�")]
+        public int SortCode { get; set; }
+
+        /// <summary>
+        /// 璇存槑
+        /// </summary>
+        [DisplayName("璇存槑")]
+        public string Description { get; set; }
+
+        /// <summary>
+        ///
+        /// </summary>
+        public AssetsElbowMainVmo Vmo { get; set; }
+    }
+}
\ No newline at end of file
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj
index 53e717f..06a26eb 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj
@@ -10,6 +10,7 @@
 	<ItemGroup>
 		<Compile Remove="02-project\01-import\01-ModelFile\**" />
 		<Compile Remove="03-simulation\04-scheme\01-info - 澶嶅埗\**" />
+		<Compile Remove="03-simulation\07-matching\05-elbows\01-elbowsinglematching\**" />
 		<Compile Remove="03-ViewModel\**" />
 		<Compile Remove="04-HomePageMainPanel\**" />
 		<Compile Remove="04-pump\02-analy\**" />
@@ -17,6 +18,7 @@
 		<Compile Remove="Resources\**" />
 		<EmbeddedResource Remove="02-project\01-import\01-ModelFile\**" />
 		<EmbeddedResource Remove="03-simulation\04-scheme\01-info - 澶嶅埗\**" />
+		<EmbeddedResource Remove="03-simulation\07-matching\05-elbows\01-elbowsinglematching\**" />
 		<EmbeddedResource Remove="03-ViewModel\**" />
 		<EmbeddedResource Remove="04-HomePageMainPanel\**" />
 		<EmbeddedResource Remove="04-pump\02-analy\**" />
@@ -24,6 +26,7 @@
 		<EmbeddedResource Remove="Resources\**" />
 		<None Remove="02-project\01-import\01-ModelFile\**" />
 		<None Remove="03-simulation\04-scheme\01-info - 澶嶅埗\**" />
+		<None Remove="03-simulation\07-matching\05-elbows\01-elbowsinglematching\**" />
 		<None Remove="03-ViewModel\**" />
 		<None Remove="04-HomePageMainPanel\**" />
 		<None Remove="04-pump\02-analy\**" />
@@ -31,6 +34,7 @@
 		<None Remove="Resources\**" />
 		<Page Remove="02-project\01-import\01-ModelFile\**" />
 		<Page Remove="03-simulation\04-scheme\01-info - 澶嶅埗\**" />
+		<Page Remove="03-simulation\07-matching\05-elbows\01-elbowsinglematching\**" />
 		<Page Remove="03-ViewModel\**" />
 		<Page Remove="04-HomePageMainPanel\**" />
 		<Page Remove="04-pump\02-analy\**" />
@@ -215,6 +219,8 @@
 		<Compile Update="03-simulation\04-scheme\02-change\01-pump\CreateXhsSchemePumpChangePage.cs" />
 		<Compile Update="03-simulation\07-matching\03-valve\AssetsValveSingleMatchingCtrl.cs" />
 		<Compile Update="03-simulation\07-matching\03-valve\AssetsValveSingleMatchingDlg.cs" />
+		<Compile Update="03-simulation\07-matching\05-elbows\AssetsElbowSingleMatchingCtrl.cs" />
+		<Compile Update="03-simulation\07-matching\05-elbows\AssetsElbowSingleMatchingDlg.cs" />
 		<Compile Update="03-simulation\07-matching\09-Tank\AssetsTankSingleMatchingCtrl.cs" />
 		<Compile Update="03-simulation\07-matching\09-Tank\AssetsTankSingleMatchingDlg.cs" />
 		<Compile Update="03-simulation\07-matching\17-compressor\AssetsCompressorSingleMatchingCtrl.cs" />
@@ -241,8 +247,6 @@
 		<Compile Update="03-simulation\03-q3d\XhsProjectSimulationQ3dCtrl.cs" />
 		<Compile Update="eMatchingDlg.cs" />
 		<Compile Update="03-simulation\07-matching\04-pipe\01-pipesinglematching\PipeSingleMatchingCtrl.cs" />
-		<Compile Update="03-simulation\07-matching\05-elbows\01-elbowsinglematching\ElbowSingleMatchingCtrl.cs" />
-		<Compile Update="03-simulation\07-matching\05-elbows\01-elbowsinglematching\SimulationElbowSingleMatchingDlg.cs" />
 		<Compile Update="03-simulation\07-matching\07-fourlink\01-fourlinksinglematching\FourlinkSingleMatchingCtrl.cs" />
 		<Compile Update="03-simulation\07-matching\07-fourlink\01-fourlinksinglematching\SimulationFourlinkSingleMatchingDlg.cs" />
 		<Compile Update="03-simulation\06-simulation\XhsProjectSimulationCorePage.cs" />
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj.user b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj.user
index 160a605..8310565 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj.user
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj.user
@@ -166,6 +166,12 @@
     <Compile Update="03-simulation\07-matching\05-elbows\01-elbowsinglematching\SimulationElbowSingleMatchingDlg.cs">
       <SubType>Form</SubType>
     </Compile>
+    <Compile Update="03-simulation\07-matching\05-elbows\AssetsElbowSingleMatchingCtrl.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Update="03-simulation\07-matching\05-elbows\AssetsElbowSingleMatchingDlg.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Update="03-simulation\07-matching\06-threelink\01-threelinksinglematching\SimulationThreelinkSingleMatchingDlg.cs">
       <SubType>Form</SubType>
     </Compile>

--
Gitblit v1.9.3