Desktop/HStation.Desktop.Xhs.Core/AutoUpdater/AutoUpdateConfirmDlg.cs
@@ -30,10 +30,10 @@ { var description = VersionHelper.GetServerDescription(UpdateConfigHelper.ServerIP, UpdateConfigHelper.ServerPort); this.txtDescription.EditValue = description; if (string.IsNullOrEmpty(description)) { this.itemForDescription.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; } //if (string.IsNullOrEmpty(description)) //{ // this.itemForDescription.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; //} } //ç¡®å®äºä»¶ Entry/HStation.Entry.Xhs.Core/HStation.Entry.Xhs.Core.csproj
@@ -20,7 +20,7 @@ <PackageReference Include="Yw.Application.Basic.Core" Version="3.3.2" /> <PackageReference Include="Yw.Application.Bimface.Core" Version="3.2.0" /> <PackageReference Include="Yw.Application.Dict.Core" Version="3.1.3" /> <PackageReference Include="Yw.Application.Hydro.Core" Version="3.7.9" /> <PackageReference Include="Yw.Application.Hydro.Core" Version="3.8.0" /> <PackageReference Include="Yw.Application.Map.Core" Version="3.2.2" /> <PackageReference Include="Yw.Application.Phart.Core" Version="3.3.1" /> <PackageReference Include="Yw.Application.Unit.Core" Version="3.1.8" /> Entry/HStation.Entry.Xhs.Core/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -5,7 +5,7 @@ <Project> <PropertyGroup> <_PublishTargetUrl>D:\WorkData\git\HStation\XHS\Entry\HStation.Entry.Xhs.Core\bin\Release\net6.0\publish\</_PublishTargetUrl> <History>True|2025-01-23T02:54:42.2796686Z;True|2025-01-22T07:53:29.9931150+08:00;True|2025-01-21T11:37:36.9296374+08:00;True|2025-01-20T10:42:21.8992153+08:00;True|2025-01-20T10:41:30.8562468+08:00;True|2025-01-20T10:36:54.9849821+08:00;True|2025-01-20T10:31:16.0442319+08:00;True|2025-01-13T15:07:40.9182715+08:00;True|2025-01-13T12:08:58.0115763+08:00;True|2025-01-13T12:08:44.3187386+08:00;True|2025-01-13T12:07:41.4659157+08:00;True|2025-01-13T11:53:47.1828627+08:00;True|2025-01-13T11:38:53.6150404+08:00;True|2025-01-13T11:37:14.9075336+08:00;True|2025-01-13T11:35:23.3939940+08:00;True|2025-01-13T11:33:41.6199459+08:00;True|2025-01-13T11:32:15.2734783+08:00;True|2025-01-13T11:30:39.9296756+08:00;True|2025-01-13T11:25:02.3605923+08:00;True|2025-01-13T11:21:03.0110309+08:00;True|2025-01-13T11:17:46.3662069+08:00;True|2025-01-08T09:44:09.5132234+08:00;True|2024-09-03T11:22:43.3813050+08:00;True|2024-09-03T11:06:18.0799295+08:00;True|2024-09-03T10:52:25.3198740+08:00;True|2024-09-02T09:16:17.5197059+08:00;False|2024-09-02T09:08:02.4504522+08:00;True|2024-06-20T12:16:07.3854116+08:00;True|2024-06-18T09:13:21.8960491+08:00;True|2024-06-12T18:55:43.2697624+08:00;True|2024-06-12T18:54:42.2191664+08:00;True|2024-06-12T18:37:39.2735086+08:00;True|2024-06-12T18:32:59.2340941+08:00;True|2024-06-12T18:18:57.9018714+08:00;True|2024-06-12T18:13:13.4471521+08:00;True|2024-06-12T18:11:38.4803257+08:00;True|2024-06-12T18:10:00.3753638+08:00;True|2024-06-12T18:03:08.9521607+08:00;True|2024-06-12T17:59:46.2755740+08:00;True|2024-06-12T17:58:01.8017051+08:00;True|2024-06-12T17:56:20.6946001+08:00;True|2024-06-12T17:32:53.8291604+08:00;True|2024-06-12T17:32:38.6492118+08:00;False|2024-06-12T17:32:17.0260105+08:00;True|2024-06-12T17:08:59.9367775+08:00;True|2024-06-12T16:32:42.3320305+08:00;True|2024-06-07T13:34:17.3014803+08:00;True|2024-06-07T13:20:33.5124438+08:00;True|2024-06-07T10:24:47.0351087+08:00;True|2024-06-05T17:04:55.4017239+08:00;True|2024-06-05T16:05:35.1432805+08:00;True|2024-06-05T15:18:06.1797165+08:00;True|2024-06-05T13:53:59.9366676+08:00;True|2024-06-05T13:43:45.7009774+08:00;True|2024-06-05T13:38:18.1415782+08:00;True|2024-06-05T12:14:05.4745826+08:00;True|2024-06-05T12:10:02.8443283+08:00;True|2024-06-02T18:41:28.5233205+08:00;True|2024-06-02T18:21:27.5679625+08:00;True|2024-06-02T17:34:02.6234679+08:00;True|2024-06-02T16:58:23.9422671+08:00;True|2024-06-02T16:16:43.6949096+08:00;True|2024-06-02T14:44:06.8963915+08:00;True|2024-06-02T11:10:51.5587482+08:00;True|2024-06-01T11:30:39.5033584+08:00;True|2024-05-30T16:29:38.0730664+08:00;True|2024-05-30T15:16:14.5429969+08:00;True|2024-05-29T17:31:27.5349115+08:00;True|2024-05-29T16:49:44.3085849+08:00;True|2024-05-29T10:46:15.3071701+08:00;True|2024-05-28T16:21:22.2987178+08:00;True|2024-05-28T11:55:02.0680294+08:00;True|2024-05-24T09:27:50.0479340+08:00;True|2024-05-23T14:16:32.3824342+08:00;True|2024-05-23T10:51:43.4383910+08:00;True|2024-05-22T11:19:10.1709647+08:00;True|2024-05-22T11:12:47.8835237+08:00;True|2024-05-22T10:43:34.7720709+08:00;True|2024-05-21T17:25:46.9831973+08:00;True|2024-05-21T12:11:55.2774332+08:00;True|2024-05-13T10:32:18.9951394+08:00;True|2024-05-09T09:53:09.1673089+08:00;True|2024-05-08T17:18:58.3017566+08:00;True|2024-05-08T11:15:08.3734126+08:00;True|2024-05-07T10:59:04.2016283+08:00;True|2024-05-07T10:58:56.6254107+08:00;True|2024-05-07T10:56:03.7274034+08:00;True|2024-05-07T10:55:53.5496684+08:00;True|2024-05-07T10:55:41.1246352+08:00;True|2024-05-07T09:57:18.3908307+08:00;True|2024-05-06T18:17:15.0427456+08:00;True|2024-05-06T17:38:00.0855585+08:00;True|2024-05-06T14:04:15.4665470+08:00;True|2024-05-06T09:38:06.9447096+08:00;False|2024-05-06T09:37:21.4257032+08:00;True|2024-04-30T10:27:11.6268274+08:00;True|2024-04-29T17:32:47.8657162+08:00;True|2024-04-29T17:26:03.4222331+08:00;True|2024-04-29T15:01:02.7501034+08:00;True|2024-04-29T14:40:23.2902896+08:00;</History> <History>True|2025-01-24T01:10:22.0248945Z;True|2025-01-23T10:54:42.2796686+08:00;True|2025-01-22T07:53:29.9931150+08:00;True|2025-01-21T11:37:36.9296374+08:00;True|2025-01-20T10:42:21.8992153+08:00;True|2025-01-20T10:41:30.8562468+08:00;True|2025-01-20T10:36:54.9849821+08:00;True|2025-01-20T10:31:16.0442319+08:00;True|2025-01-13T15:07:40.9182715+08:00;True|2025-01-13T12:08:58.0115763+08:00;True|2025-01-13T12:08:44.3187386+08:00;True|2025-01-13T12:07:41.4659157+08:00;True|2025-01-13T11:53:47.1828627+08:00;True|2025-01-13T11:38:53.6150404+08:00;True|2025-01-13T11:37:14.9075336+08:00;True|2025-01-13T11:35:23.3939940+08:00;True|2025-01-13T11:33:41.6199459+08:00;True|2025-01-13T11:32:15.2734783+08:00;True|2025-01-13T11:30:39.9296756+08:00;True|2025-01-13T11:25:02.3605923+08:00;True|2025-01-13T11:21:03.0110309+08:00;True|2025-01-13T11:17:46.3662069+08:00;True|2025-01-08T09:44:09.5132234+08:00;True|2024-09-03T11:22:43.3813050+08:00;True|2024-09-03T11:06:18.0799295+08:00;True|2024-09-03T10:52:25.3198740+08:00;True|2024-09-02T09:16:17.5197059+08:00;False|2024-09-02T09:08:02.4504522+08:00;True|2024-06-20T12:16:07.3854116+08:00;True|2024-06-18T09:13:21.8960491+08:00;True|2024-06-12T18:55:43.2697624+08:00;True|2024-06-12T18:54:42.2191664+08:00;True|2024-06-12T18:37:39.2735086+08:00;True|2024-06-12T18:32:59.2340941+08:00;True|2024-06-12T18:18:57.9018714+08:00;True|2024-06-12T18:13:13.4471521+08:00;True|2024-06-12T18:11:38.4803257+08:00;True|2024-06-12T18:10:00.3753638+08:00;True|2024-06-12T18:03:08.9521607+08:00;True|2024-06-12T17:59:46.2755740+08:00;True|2024-06-12T17:58:01.8017051+08:00;True|2024-06-12T17:56:20.6946001+08:00;True|2024-06-12T17:32:53.8291604+08:00;True|2024-06-12T17:32:38.6492118+08:00;False|2024-06-12T17:32:17.0260105+08:00;True|2024-06-12T17:08:59.9367775+08:00;True|2024-06-12T16:32:42.3320305+08:00;True|2024-06-07T13:34:17.3014803+08:00;True|2024-06-07T13:20:33.5124438+08:00;True|2024-06-07T10:24:47.0351087+08:00;True|2024-06-05T17:04:55.4017239+08:00;True|2024-06-05T16:05:35.1432805+08:00;True|2024-06-05T15:18:06.1797165+08:00;True|2024-06-05T13:53:59.9366676+08:00;True|2024-06-05T13:43:45.7009774+08:00;True|2024-06-05T13:38:18.1415782+08:00;True|2024-06-05T12:14:05.4745826+08:00;True|2024-06-05T12:10:02.8443283+08:00;True|2024-06-02T18:41:28.5233205+08:00;True|2024-06-02T18:21:27.5679625+08:00;True|2024-06-02T17:34:02.6234679+08:00;True|2024-06-02T16:58:23.9422671+08:00;True|2024-06-02T16:16:43.6949096+08:00;True|2024-06-02T14:44:06.8963915+08:00;True|2024-06-02T11:10:51.5587482+08:00;True|2024-06-01T11:30:39.5033584+08:00;True|2024-05-30T16:29:38.0730664+08:00;True|2024-05-30T15:16:14.5429969+08:00;True|2024-05-29T17:31:27.5349115+08:00;True|2024-05-29T16:49:44.3085849+08:00;True|2024-05-29T10:46:15.3071701+08:00;True|2024-05-28T16:21:22.2987178+08:00;True|2024-05-28T11:55:02.0680294+08:00;True|2024-05-24T09:27:50.0479340+08:00;True|2024-05-23T14:16:32.3824342+08:00;True|2024-05-23T10:51:43.4383910+08:00;True|2024-05-22T11:19:10.1709647+08:00;True|2024-05-22T11:12:47.8835237+08:00;True|2024-05-22T10:43:34.7720709+08:00;True|2024-05-21T17:25:46.9831973+08:00;True|2024-05-21T12:11:55.2774332+08:00;True|2024-05-13T10:32:18.9951394+08:00;True|2024-05-09T09:53:09.1673089+08:00;True|2024-05-08T17:18:58.3017566+08:00;True|2024-05-08T11:15:08.3734126+08:00;True|2024-05-07T10:59:04.2016283+08:00;True|2024-05-07T10:58:56.6254107+08:00;True|2024-05-07T10:56:03.7274034+08:00;True|2024-05-07T10:55:53.5496684+08:00;True|2024-05-07T10:55:41.1246352+08:00;True|2024-05-07T09:57:18.3908307+08:00;True|2024-05-06T18:17:15.0427456+08:00;True|2024-05-06T17:38:00.0855585+08:00;True|2024-05-06T14:04:15.4665470+08:00;True|2024-05-06T09:38:06.9447096+08:00;False|2024-05-06T09:37:21.4257032+08:00;True|2024-04-30T10:27:11.6268274+08:00;True|2024-04-29T17:32:47.8657162+08:00;True|2024-04-29T17:26:03.4222331+08:00;True|2024-04-29T15:01:02.7501034+08:00;</History> <LastFailureDetails /> </PropertyGroup> </Project> Hydro/HStation.Hydro.Core/HStation.Hydro.Core.csproj
@@ -7,7 +7,7 @@ </PropertyGroup> <ItemGroup> <PackageReference Include="Yw.Service.Hydro.Core" Version="5.0.7" /> <PackageReference Include="Yw.Service.Hydro.Core" Version="5.0.8" /> </ItemGroup> <ItemGroup> Hydro/Yw.Hydro.Core/Yw.Hydro.Core.csproj
@@ -8,7 +8,7 @@ <ItemGroup> <PackageReference Include="Yw.Geometry.Core" Version="3.3.2" /> <PackageReference Include="Yw.Service.Hydro.Core" Version="5.0.7" /> <PackageReference Include="Yw.Service.Hydro.Core" Version="5.0.8" /> </ItemGroup> <ItemGroup> WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/00-core/ImportXhsProjectHelper.cs
@@ -333,8 +333,8 @@ return true; } var bimfaceId = await Yw.WinFrmUI.BimfaceHelper.UploadFile(rvtFileInfo.FullName);//æ£å¼ä»£ç //var bimfaceId = 10000899666805;//æµè¯ç¨ä¾ å¶æ°®å¾ªç¯:10000884893369 10000894297457 10000895957527 10000896316958 10000896755736 //var bimfaceId = await Yw.WinFrmUI.BimfaceHelper.UploadFile(rvtFileInfo.FullName);//æ£å¼ä»£ç var bimfaceId = 10000884893369;//æµè¯ç¨ä¾ å¶æ°®å¾ªç¯:10000884893369 10000894297457 10000895957527 10000896316958 10000896755736 10000899666805 if (bimfaceId < 1) { feedBackMsg?.Invoke("Revit模åæä»¶ä¸ä¼ 失败ï¼ï¼ï¼", Color.Red); @@ -404,39 +404,14 @@ feedBackProgress?.Invoke(100, 60); feedBackMsg?.Invoke("æ£å¨è¿è¡æ¨¡åè½»éå...", Color.Black); var bimfaceTranslateStatus = await Yw.WinFrmUI.BimfaceHelper.TranslateRvtFile(bimfaceId);//åèµ·è½¬æ¢ //var bimfaceTranslateStatus = Yw.BIMFace.eTranslateStatus.Processing;//æµè¯ä»£ç //var bimfaceTranslateStatus = await Yw.WinFrmUI.BimfaceHelper.TranslateRvtFile(bimfaceId);//åèµ·è½¬æ¢ var bimfaceTranslateStatus = Yw.BIMFace.eTranslateStatus.Processing;//æµè¯ä»£ç if (bimfaceTranslateStatus != Yw.BIMFace.eTranslateStatus.Success) { var dlgResult = XtraMessageBox.Show("Bimface模åè½»éåéè¦ä¸å®çæ¶é´ï¼æ¯å¦ç»§ç»çå¾ ï¼", "询é®", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (dlgResult == DialogResult.Yes) { await Yw.WinFrmUI.BimfaceHelper.WaitFileTranslateStatusUntilSuccess(bimfaceId, 3000); feedBackMsg?.Invoke("模åè½»éå宿ããã", Color.Green); } else { bol = await BLLFactory<Yw.BLL.BimfaceFile>.Instance.UpdateFileStatus(vm.BimfaceFile.ID, (int)Yw.Bimface.eFileStatus.Converting); if (bol) { vm.BimfaceFile.FileStatus = (int)Yw.Bimface.eFileStatus.Converting; } else { feedBackMsg?.Invoke("模åæä»¶ç¶ææ´æ°å¤±è´¥ï¼ï¼ï¼", Color.Red); } feedBackMsg?.Invoke("è·³è¿æ¨¡åè½»éåçå¾ ããã", Color.Black); feedBackMsg?.Invoke("项ç®å¯¼å ¥ç»æããã", Color.Blue); feedBackProgress?.Invoke(100, 100); return true; } await Yw.WinFrmUI.BimfaceHelper.WaitFileTranslateStatusUntilSuccess(bimfaceId, 3000); } else { feedBackMsg?.Invoke("模åè½»éå宿ããã", Color.Green); } feedBackMsg?.Invoke("模åè½»éå宿ããã", Color.Green); feedBackProgress?.Invoke(100, 90); #endregion WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/02-bimface/SimulationBimfaceCtrl.cs
@@ -578,5 +578,45 @@ #endregion #region ä¸å¡æ´ä½åå ææ /// <summary> /// 设置ä¸å¡æ´ä½åå ææ /// </summary> public async Task SetLogicBodyGlowEffect(List<string> obj) { await _bimfaceInteropContainer?.SetLogicBodyGlowEffect(obj); } /// <summary> /// ç§»é¤ä¸å¡æ´ä½åå ææ /// </summary> public async Task RemoveLogicBodyGlowEffect() { await _bimfaceInteropContainer?.RemoveLogicBodyGlowEffect(); } #endregion #region ä¸å¡è½®å»çº¿åå ææ /// <summary> /// 设置ä¸å¡è½®å»çº¿åå ææ /// </summary> public async Task SetLogicOutlineGlowEffect(List<string> obj) { await _bimfaceInteropContainer?.SetLogicOutlineGlowEffect(obj); } /// <summary> /// ç§»é¤ä¸å¡è½®å»çº¿åå ææ /// </summary> public async Task RemoveLogicOutlineGlowEffect() { await _bimfaceInteropContainer?.RemoveLogicOutlineGlowEffect(); } #endregion } } WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs
@@ -2580,7 +2580,7 @@ Calcu(); } #endregion æ°´åè®¡ç® #endregion #region å¯¼åºæ¥å @@ -2622,7 +2622,7 @@ dlg.ShowDialog(); } #endregion å¯¼åºæ¥å #endregion #region å½åå·¥åµ @@ -3006,19 +3006,27 @@ #region æå¤±æ²çº¿ //å工嵿失æ²çº¿æ§ä»¶ private HydroSingleWorkingLossCurveCtrl _singleWorkingLossCurveCtrl = null; private HydroSingleWorkingLossCurveInteropCtrl _singleWorkingLossCurveCtrl = null; //è·åå工嵿失æ²çº¿æ§ä»¶ private HydroSingleWorkingLossCurveCtrl GetSingleWorkingLossCurveCtrl() private HydroSingleWorkingLossCurveInteropCtrl GetSingleWorkingLossCurveCtrl() { if (_singleWorkingLossCurveCtrl == null) { _singleWorkingLossCurveCtrl = new HydroSingleWorkingLossCurveCtrl(); _singleWorkingLossCurveCtrl = new HydroSingleWorkingLossCurveInteropCtrl(); _singleWorkingLossCurveCtrl.Dock = DockStyle.Fill; _singleWorkingLossCurveCtrl.HydroClickEvent += (code) => { var visual = GetVisual(code); SelectVisual(visual, eSimulationVisualSource.None); }; _singleWorkingLossCurveCtrl.HydroSpecialDisplayEvent += (list) => { _bimfaceCtrl?.SetLogicOutlineGlowEffect(list); }; _singleWorkingLossCurveCtrl.HydroCancelSpecialDisplayEvent += () => { _bimfaceCtrl?.RemoveLogicOutlineGlowEffect(); }; } return _singleWorkingLossCurveCtrl; @@ -3033,7 +3041,7 @@ { if (this.controlContainerBottom.Controls.Count > 0) { if (this.controlContainerBottom.Controls[0] is HydroSingleWorkingLossCurveCtrl) if (this.controlContainerBottom.Controls[0] is HydroSingleWorkingLossCurveInteropCtrl) { return true; } @@ -3101,7 +3109,7 @@ } } #endregion æå¤±æ²çº¿ #endregion #region æ¹æ¡ç®¡ç @@ -3177,5 +3185,6 @@ } #endregion æ¹æ¡ç®¡ç } } WinFrmUI/HStation.WinFrmUI.Xhs.Core/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -4,7 +4,7 @@ --> <Project> <PropertyGroup> <History>True|2025-01-23T05:56:43.0505103Z;</History> <History>True|2025-01-23T06:38:49.1770007Z;True|2025-01-23T13:56:43.0505103+08:00;</History> <LastFailureDetails /> </PropertyGroup> </Project> WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/BimfaceInterop3dContainer.cs
@@ -597,5 +597,65 @@ #endregion #region ä¸å¡æ´ä½åå /// <summary> /// 设置ä¸å¡æ´ä½åå ææ /// </summary> public async Task SetLogicBodyGlowEffect(List<string> obj) { if (!_isViewInitialized) { return; } await this.webViewControl1.EvaluateScriptAsync("setLogicBodyGlowEffect", obj); } /// <summary> /// ç§»é¤ä¸å¡æ´ä½åå ææ /// </summary> public async Task RemoveLogicBodyGlowEffect() { if (!_isViewInitialized) { return; } await this.webViewControl1.EvaluateScriptAsync("removeLogicBodyGlowEffect()"); } #endregion #region ä¸å¡è½®å»çº¿åå ææ /// <summary> /// 设置ä¸å¡è½®å»çº¿åå ææ /// </summary> public async Task SetLogicOutlineGlowEffect(List<string> obj) { if (!_isViewInitialized) { return; } await this.webViewControl1.EvaluateScriptAsync("setLogicOutlineGlowEffect", obj); } /// <summary> /// ç§»é¤ä¸å¡è½®å»çº¿åå ææ /// </summary> public async Task RemoveLogicOutlineGlowEffect() { if (!_isViewInitialized) { return; } await this.webViewControl1.EvaluateScriptAsync("removeLogicOutlineGlowEffect()"); } #endregion } } WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/IBimfaceInterop3dContainer.cs
@@ -236,5 +236,36 @@ #endregion #region ä¸å¡æä»¶æ´ä½åå /// <summary> /// 设置ä¸å¡æ´ä½åå ææ /// </summary> Task SetLogicBodyGlowEffect(List<string> obj); /// <summary> /// ç§»é¤ä¸å¡æ´ä½åå ææ /// </summary> Task RemoveLogicBodyGlowEffect(); #endregion #region ä¸å¡æä»¶è½®å»çº¿åå /// <summary> /// 设置ä¸å¡è½®å»çº¿åå ææ /// </summary> Task SetLogicOutlineGlowEffect(List<string> obj); /// <summary> /// ç§»é¤ä¸å¡è½®å»çº¿åå ææ /// </summary> Task RemoveLogicOutlineGlowEffect(); #endregion } } WinFrmUI/Yw.WinFrmUI.Bimface.Core/Yw.WinFrmUI.Bimface.Core.csproj
@@ -54,10 +54,12 @@ <None Remove="bimface\js\DrawableContainer.js" /> <None Remove="bimface\js\GetComponents.js" /> <None Remove="bimface\js\Layer.js" /> <None Remove="bimface\js\LogicBodyGlowEffect.js" /> <None Remove="bimface\js\LogicCalcuCustomLabel.js" /> <None Remove="bimface\js\LogicFlowEffect.js" /> <None Remove="bimface\js\LogicMarkLeadLabel.js" /> <None Remove="bimface\js\LogicMonitor.js" /> <None Remove="bimface\js\LogicOutlineGlowEffect.js" /> <None Remove="bimface\js\Marker3dContainer.js" /> <None Remove="bimface\js\Panel.js" /> <None Remove="bimface\js\SelectedComponents.js" /> @@ -157,6 +159,12 @@ <Content Include="bimface\js\Layer.js"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> <Content Include="bimface\js\LogicBodyGlowEffect.js"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> <Content Include="bimface\js\LogicOutlineGlowEffect.js"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> <Content Include="bimface\js\LogicMonitor.js"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> WinFrmUI/Yw.WinFrmUI.Bimface.Core/bimface/html/Interop3d.html
@@ -102,6 +102,8 @@ _callBackObj.ClickOut(JSON.stringify(objectdata)); } }); //å¼å¯æä»¶åå ææ _viewer.enableGlowEffect(true); } else { _callBackObj.LoadViewFailed("æªå®ä¹ViewTypeï¼" + viewMetaData.viewType); @@ -137,6 +139,8 @@ <script src="../js/LogicFlowEffect.js"></script> <script src="../js/Marker3dContainer.js"></script> <script src="../js/LogicMonitor.js"></script> <script src="../js/LogicBodyGlowEffect.js"></script> <script src="../js/LogicOutlineGlowEffect.js"></script> <script src="js/CameraStatus.js"></script> <script src="js/GetComponents.js"></script> WinFrmUI/Yw.WinFrmUI.Bimface.Core/bimface/js/LogicBodyGlowEffect.js
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,33 @@ //idå表 let _logicBodyGlowIds = new Set(); //设置ç©ä½æ´ä½åå ææ //"body"为æ´ä½åå ï¼"outline"为轮å»çº¿åå function setLogicBodyGlowEffect(obj) { removeLogicBodyGlowEffect(); if (obj == null || obj.length < 1) { return; } _modeler.setGlowEffectById(obj, { type: "body", color: new Glodon.Web.Graphics.Color(139, 0, 0, 1), intensity: 0.3, spread: 3 }); _viewer.render(); _logicBodyGlowIds = new Set(obj); } //ç§»é¤ç©ä½æ´ä½åå ææ function removeLogicBodyGlowEffect() { if (_logicBodyGlowIds.size > 0) { var myArray = Array.from(_logicBodyGlowIds); _modeler.removeGlowEffectById(myArray); _viewer.render(); _logicBodyGlowIds.clear(); } } WinFrmUI/Yw.WinFrmUI.Bimface.Core/bimface/js/LogicOutlineGlowEffect.js
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,33 @@ //idå表 let _logicOutlineGlowIds = new Set(); //设置ç©ä½è½®å»çº¿åå ææ //"body"为æ´ä½åå ï¼"outline"为轮å»çº¿åå function setLogicOutlineGlowEffect(obj) { removeLogicOutlineGlowEffect(); if (obj == null || obj.length < 1) { return; } _modeler.setGlowEffectById(obj, { type: "outline", color: new Glodon.Web.Graphics.Color(139, 0, 0, 1), intensity: 0.4, spread: 3 }); _viewer.render(); _logicOutlineGlowIds = new Set(obj); } //ç§»é¤ç©ä½è½®å»çº¿åå ææ function removeLogicOutlineGlowEffect() { if (_logicOutlineGlowIds.size > 0) { var myArray = Array.from(_logicOutlineGlowIds); _modeler.removeGlowEffectById(myArray); _viewer.render(); _logicOutlineGlowIds.clear(); } } WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveCtrl.cs
@@ -45,7 +45,7 @@ } var allPathList1 = network.AnalyzeUpstreamPath(node, calcuResult.EPAnetCalcuResult); var allPathList2 = network.AnalyzeDownstreamPath(node, calcuResult.EPAnetCalcuResult); var allPathList= allPathList1.Concat(allPathList2).ToList(); var allPathList = allPathList1.Concat(allPathList2).ToList(); var allEpaLossList = network.GetChartNodeByPathLinks(allPathList, calcuResult.EPAnetCalcuResult); var allNodeLossList = new List<HydroNodeLossViewModel>(); allEpaLossList?.ForEach(x => WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveInteropCtrl.Designer.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,347 @@ namespace Yw.WinFrmUI { partial class HydroSingleWorkingLossCurveInteropCtrl { /// <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(); DevExpress.XtraCharts.TextAnnotation textAnnotation1 = new DevExpress.XtraCharts.TextAnnotation(); DevExpress.XtraCharts.ChartAnchorPoint chartAnchorPoint1 = new DevExpress.XtraCharts.ChartAnchorPoint(); DevExpress.XtraCharts.FreePosition freePosition1 = new DevExpress.XtraCharts.FreePosition(); DevExpress.XtraCharts.XYDiagram xyDiagram1 = new DevExpress.XtraCharts.XYDiagram(); DevExpress.XtraCharts.Series series1 = new DevExpress.XtraCharts.Series(); DevExpress.XtraCharts.AreaSeriesView areaSeriesView1 = new DevExpress.XtraCharts.AreaSeriesView(); DevExpress.XtraCharts.Series series2 = new DevExpress.XtraCharts.Series(); DevExpress.XtraCharts.AreaSeriesView areaSeriesView2 = new DevExpress.XtraCharts.AreaSeriesView(); lossBindingSource = new BindingSource(components); elevBindingSource = new BindingSource(components); chartControl1 = new DevExpress.XtraCharts.ChartControl(); layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); ckSpecial = new DevExpress.XtraEditors.CheckEdit(); ckStart = new DevExpress.XtraEditors.CheckEdit(); ckEnd = new DevExpress.XtraEditors.CheckEdit(); Root = new DevExpress.XtraLayout.LayoutControlGroup(); layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem(); layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem(); layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem(); emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem(); ((ISupportInitialize)lossBindingSource).BeginInit(); ((ISupportInitialize)elevBindingSource).BeginInit(); ((ISupportInitialize)chartControl1).BeginInit(); ((ISupportInitialize)textAnnotation1).BeginInit(); ((ISupportInitialize)xyDiagram1).BeginInit(); ((ISupportInitialize)series1).BeginInit(); ((ISupportInitialize)areaSeriesView1).BeginInit(); ((ISupportInitialize)series2).BeginInit(); ((ISupportInitialize)areaSeriesView2).BeginInit(); ((ISupportInitialize)layoutControl1).BeginInit(); layoutControl1.SuspendLayout(); ((ISupportInitialize)ckSpecial.Properties).BeginInit(); ((ISupportInitialize)ckStart.Properties).BeginInit(); ((ISupportInitialize)ckEnd.Properties).BeginInit(); ((ISupportInitialize)Root).BeginInit(); ((ISupportInitialize)layoutControlItem1).BeginInit(); ((ISupportInitialize)layoutControlItem2).BeginInit(); ((ISupportInitialize)layoutControlItem3).BeginInit(); ((ISupportInitialize)layoutControlItem4).BeginInit(); ((ISupportInitialize)emptySpaceItem1).BeginInit(); SuspendLayout(); // // lossBindingSource // lossBindingSource.DataSource = typeof(HydroLossCurvePointVieModel); // // elevBindingSource // elevBindingSource.DataSource = typeof(HydroLossCurvePointVieModel); // // chartControl1 // textAnnotation1.AnchorPoint = chartAnchorPoint1; textAnnotation1.AnnotationID = 1; textAnnotation1.AutoHeight = true; textAnnotation1.AutoWidth = true; textAnnotation1.ConnectorStyle = DevExpress.XtraCharts.AnnotationConnectorStyle.None; textAnnotation1.Name = "Annotation 1"; freePosition1.DockCorner = DevExpress.XtraCharts.DockCorner.RightTop; freePosition1.InnerIndents.Left = 1160; freePosition1.InnerIndents.Top = 35; textAnnotation1.ShapePosition = freePosition1; chartControl1.AnnotationRepository.AddRange(new DevExpress.XtraCharts.Annotation[] { textAnnotation1 }); chartControl1.CrosshairOptions.ContentShowMode = DevExpress.XtraCharts.CrosshairContentShowMode.Label; chartControl1.CrosshairOptions.ShowArgumentLabels = true; chartControl1.CrosshairOptions.ShowValueLabels = true; chartControl1.CrosshairOptions.ShowValueLine = true; chartControl1.DataSource = elevBindingSource; xyDiagram1.AxisX.CrosshairAxisLabelOptions.Visibility = DevExpress.Utils.DefaultBoolean.True; xyDiagram1.AxisX.GridLines.Visible = true; xyDiagram1.AxisX.MinorCount = 1; xyDiagram1.AxisX.NumericScaleOptions.AutoGrid = false; xyDiagram1.AxisX.Tickmarks.MinorVisible = false; xyDiagram1.AxisX.Title.Text = "è·ç¦»"; xyDiagram1.AxisX.Visibility = DevExpress.Utils.DefaultBoolean.True; xyDiagram1.AxisX.VisibleInPanesSerializable = "-1"; xyDiagram1.AxisX.WholeRange.EndSideMargin = 0D; xyDiagram1.AxisX.WholeRange.StartSideMargin = 0D; xyDiagram1.AxisY.GridLines.Visible = false; xyDiagram1.AxisY.MinorCount = 1; xyDiagram1.AxisY.NumericScaleOptions.AutoGrid = false; xyDiagram1.AxisY.Tickmarks.MinorVisible = false; xyDiagram1.AxisY.VisibleInPanesSerializable = "-1"; xyDiagram1.EnableAxisXScrolling = true; xyDiagram1.EnableAxisXZooming = true; chartControl1.Diagram = xyDiagram1; chartControl1.Legend.AlignmentHorizontal = DevExpress.XtraCharts.LegendAlignmentHorizontal.Center; chartControl1.Legend.Direction = DevExpress.XtraCharts.LegendDirection.LeftToRight; chartControl1.Legend.LegendID = -1; chartControl1.Legend.MarkerMode = DevExpress.XtraCharts.LegendMarkerMode.CheckBox; chartControl1.Location = new Point(2, 26); chartControl1.Name = "chartControl1"; chartControl1.Padding.Bottom = 10; chartControl1.Padding.Left = 20; chartControl1.Padding.Right = 10; chartControl1.Padding.Top = 10; chartControl1.SelectionMode = DevExpress.XtraCharts.ElementSelectionMode.Single; series1.ArgumentDataMember = "X"; series1.CrosshairEnabled = DevExpress.Utils.DefaultBoolean.True; series1.CrosshairHighlightPoints = DevExpress.Utils.DefaultBoolean.True; series1.CrosshairLabelPattern = "æ»æ°´å¤´:{V:N1}m"; series1.CrosshairLabelVisibility = DevExpress.Utils.DefaultBoolean.True; series1.CrosshairTextOptions.EnableAntialiasing = DevExpress.Utils.DefaultBoolean.True; series1.DataSource = lossBindingSource; series1.LabelsVisibility = DevExpress.Utils.DefaultBoolean.False; series1.LegendTextPattern = "æ»æ°´å¤´"; series1.Name = "SeriesLoss"; series1.SeriesID = 0; series1.ToolTipHintDataMember = "Name"; series1.ToolTipSeriesPattern = ""; series1.ValueDataMembersSerializable = "Y"; areaSeriesView1.Color = Color.FromArgb(255, 192, 0); areaSeriesView1.EmptyPointOptions.FillStyle.FillMode = DevExpress.XtraCharts.FillMode.Solid; series1.View = areaSeriesView1; series2.ArgumentDataMember = "X"; series2.CrosshairEnabled = DevExpress.Utils.DefaultBoolean.True; series2.CrosshairHighlightPoints = DevExpress.Utils.DefaultBoolean.True; series2.CrosshairLabelPattern = "é«ç¨:{V:N1}m"; series2.CrosshairLabelVisibility = DevExpress.Utils.DefaultBoolean.True; series2.CrosshairTextOptions.EnableAntialiasing = DevExpress.Utils.DefaultBoolean.True; series2.DataSource = elevBindingSource; series2.LegendTextPattern = "é«ç¨"; series2.Name = "SeriesElev"; series2.SeriesID = 1; series2.ToolTipHintDataMember = "Name"; series2.ToolTipSeriesPattern = ""; series2.ValueDataMembersSerializable = "Y"; areaSeriesView2.Color = Color.FromArgb(79, 129, 189); areaSeriesView2.EmptyPointOptions.FillStyle.FillMode = DevExpress.XtraCharts.FillMode.Solid; areaSeriesView2.Transparency = 0; series2.View = areaSeriesView2; chartControl1.SeriesSerializable = new DevExpress.XtraCharts.Series[] { series1, series2 }; chartControl1.SeriesTemplate.ArgumentDataMember = "X"; chartControl1.SeriesTemplate.ToolTipHintDataMember = "Name"; chartControl1.SeriesTemplate.ValueDataMembersSerializable = "Y"; chartControl1.Size = new Size(989, 703); chartControl1.TabIndex = 0; chartControl1.ToolTipEnabled = DevExpress.Utils.DefaultBoolean.True; chartControl1.ToolTipOptions.ShowForSeries = true; chartControl1.CustomDrawCrosshair += chartControl1_CustomDrawCrosshair; chartControl1.MouseClick += chartControl1_MouseClick; // // layoutControl1 // layoutControl1.Controls.Add(ckSpecial); layoutControl1.Controls.Add(ckStart); layoutControl1.Controls.Add(ckEnd); layoutControl1.Controls.Add(chartControl1); layoutControl1.Dock = DockStyle.Fill; layoutControl1.Location = new Point(0, 0); layoutControl1.Name = "layoutControl1"; layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new Rectangle(1248, 442, 650, 400); layoutControl1.Root = Root; layoutControl1.Size = new Size(993, 731); layoutControl1.TabIndex = 1; layoutControl1.Text = "layoutControl1"; // // ckSpecial // ckSpecial.EditValue = true; ckSpecial.Location = new Point(306, 2); ckSpecial.Name = "ckSpecial"; ckSpecial.Properties.AutoWidth = true; ckSpecial.Properties.Caption = ""; ckSpecial.Size = new Size(20, 20); ckSpecial.StyleController = layoutControl1; ckSpecial.TabIndex = 6; ckSpecial.CheckedChanged += ckSpecial_CheckedChanged; // // ckStart // ckStart.EditValue = true; ckStart.Location = new Point(66, 2); ckStart.Name = "ckStart"; ckStart.Properties.AutoWidth = true; ckStart.Properties.Caption = ""; ckStart.Size = new Size(20, 20); ckStart.StyleController = layoutControl1; ckStart.TabIndex = 5; ckStart.CheckedChanged += ckStart_CheckedChanged; // // ckEnd // ckEnd.EditValue = true; ckEnd.Location = new Point(186, 2); ckEnd.Name = "ckEnd"; ckEnd.Properties.AutoWidth = true; ckEnd.Properties.Caption = ""; ckEnd.Size = new Size(20, 20); ckEnd.StyleController = layoutControl1; ckEnd.TabIndex = 4; ckEnd.CheckedChanged += ckEnd_CheckedChanged; // // Root // Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; Root.GroupBordersVisible = false; Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1, layoutControlItem2, layoutControlItem3, layoutControlItem4, emptySpaceItem1 }); Root.Name = "Root"; Root.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0); Root.Size = new Size(993, 731); Root.TextVisible = false; // // layoutControlItem1 // layoutControlItem1.Control = chartControl1; layoutControlItem1.Location = new Point(0, 24); layoutControlItem1.Name = "layoutControlItem1"; layoutControlItem1.Size = new Size(993, 707); layoutControlItem1.TextSize = new Size(0, 0); layoutControlItem1.TextVisible = false; // // layoutControlItem2 // layoutControlItem2.ContentHorzAlignment = DevExpress.Utils.HorzAlignment.Center; layoutControlItem2.ContentVertAlignment = DevExpress.Utils.VertAlignment.Center; layoutControlItem2.Control = ckEnd; layoutControlItem2.Location = new Point(120, 0); layoutControlItem2.MaxSize = new Size(120, 24); layoutControlItem2.MinSize = new Size(120, 24); layoutControlItem2.Name = "layoutControlItem2"; layoutControlItem2.Size = new Size(120, 24); layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; layoutControlItem2.Text = "䏿¸¸è¿½è¸ª:"; layoutControlItem2.TextSize = new Size(52, 14); // // layoutControlItem3 // layoutControlItem3.ContentHorzAlignment = DevExpress.Utils.HorzAlignment.Center; layoutControlItem3.ContentVertAlignment = DevExpress.Utils.VertAlignment.Center; layoutControlItem3.Control = ckStart; layoutControlItem3.Location = new Point(0, 0); layoutControlItem3.MaxSize = new Size(120, 24); layoutControlItem3.MinSize = new Size(120, 24); layoutControlItem3.Name = "layoutControlItem3"; layoutControlItem3.Size = new Size(120, 24); layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; layoutControlItem3.Text = "䏿¸¸è¿½è¸ª:"; layoutControlItem3.TextSize = new Size(52, 14); // // layoutControlItem4 // layoutControlItem4.ContentHorzAlignment = DevExpress.Utils.HorzAlignment.Center; layoutControlItem4.ContentVertAlignment = DevExpress.Utils.VertAlignment.Center; layoutControlItem4.Control = ckSpecial; layoutControlItem4.Location = new Point(240, 0); layoutControlItem4.MaxSize = new Size(120, 24); layoutControlItem4.MinSize = new Size(120, 24); layoutControlItem4.Name = "layoutControlItem4"; layoutControlItem4.Size = new Size(120, 24); layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; layoutControlItem4.Text = "é«äº®æ¾ç¤º:"; layoutControlItem4.TextSize = new Size(52, 14); // // emptySpaceItem1 // emptySpaceItem1.AllowHotTrack = false; emptySpaceItem1.Location = new Point(360, 0); emptySpaceItem1.MinSize = new Size(1, 1); emptySpaceItem1.Name = "emptySpaceItem1"; emptySpaceItem1.Size = new Size(633, 24); emptySpaceItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; emptySpaceItem1.TextSize = new Size(0, 0); // // HydroSingleWorkingLossCurveInteropCtrl // AutoScaleDimensions = new SizeF(7F, 14F); AutoScaleMode = AutoScaleMode.Font; Controls.Add(layoutControl1); Name = "HydroSingleWorkingLossCurveInteropCtrl"; Size = new Size(993, 731); ((ISupportInitialize)lossBindingSource).EndInit(); ((ISupportInitialize)elevBindingSource).EndInit(); ((ISupportInitialize)textAnnotation1).EndInit(); ((ISupportInitialize)xyDiagram1).EndInit(); ((ISupportInitialize)areaSeriesView1).EndInit(); ((ISupportInitialize)series1).EndInit(); ((ISupportInitialize)areaSeriesView2).EndInit(); ((ISupportInitialize)series2).EndInit(); ((ISupportInitialize)chartControl1).EndInit(); ((ISupportInitialize)layoutControl1).EndInit(); layoutControl1.ResumeLayout(false); ((ISupportInitialize)ckSpecial.Properties).EndInit(); ((ISupportInitialize)ckStart.Properties).EndInit(); ((ISupportInitialize)ckEnd.Properties).EndInit(); ((ISupportInitialize)Root).EndInit(); ((ISupportInitialize)layoutControlItem1).EndInit(); ((ISupportInitialize)layoutControlItem2).EndInit(); ((ISupportInitialize)layoutControlItem3).EndInit(); ((ISupportInitialize)layoutControlItem4).EndInit(); ((ISupportInitialize)emptySpaceItem1).EndInit(); ResumeLayout(false); } #endregion private DevExpress.XtraCharts.ChartControl chartControl1; private BindingSource lossBindingSource; private BindingSource elevBindingSource; private DevExpress.XtraLayout.LayoutControl layoutControl1; private DevExpress.XtraLayout.LayoutControlGroup Root; private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; private DevExpress.XtraEditors.CheckEdit ckSpecial; private DevExpress.XtraEditors.CheckEdit ckStart; private DevExpress.XtraEditors.CheckEdit ckEnd; private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3; private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4; private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1; } } WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveInteropCtrl.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,382 @@ using DevExpress.Drawing; using DevExpress.Pdf.Native; using DevExpress.XtraCharts; using System.Data; using Yw.DAL.Basic; using Yw.EPAnet; using Yw.Hydro; namespace Yw.WinFrmUI { public partial class HydroSingleWorkingLossCurveInteropCtrl : DevExpress.XtraEditors.XtraUserControl { public HydroSingleWorkingLossCurveInteropCtrl() { InitializeComponent(); this.layoutControl1.SetupLayoutControl(); } /// <summary> /// æ°´åç¹å»äºä»¶ /// </summary> public event Action<string> HydroClickEvent; /// <summary> /// æ°´åç¹æ®æ¾ç¤ºäºä»¶ /// </summary> public event Action<List<string>> HydroSpecialDisplayEvent; /// <summary> /// æ°´ååæ¶ç¹æ®æ¾ç¤ºäºä»¶ /// </summary> public event Action HydroCancelSpecialDisplayEvent; private Yw.Model.HydroModelInfo _hydroInfo = null;//æ°´åä¿¡æ¯ private HydroCalcuResult _calcuResult = null;//计ç®ç»æ private Yw.Model.HydroVisualInfo _visual = null;//å¯è§æä»¶ /// <summary> /// ç»å®æ°æ® /// </summary> public void SetBindingData ( Yw.Model.HydroModelInfo hydroInfo, HydroCalcuResult calcuResult, Yw.Model.HydroVisualInfo visual ) { _hydroInfo = hydroInfo; _calcuResult = calcuResult; _visual = visual; Analy(); } /// <summary> /// ç»å®æ°æ® /// </summary> public void SetBindingData(List<HydroNodeLossViewModel> allNodeLossList) { AutoFitAxises(allNodeLossList); var allElevList = allNodeLossList?.Select(x => new HydroLossCurvePointVieModel(x.Code, x.Name, x.Distance, x.Elev)).ToList(); this.elevBindingSource.DataSource = allElevList; this.elevBindingSource.ResetBindings(false); var allLossList = new List<HydroLossCurvePointVieModel>(); allNodeLossList?.ForEach(x => { allLossList.Add(new HydroLossCurvePointVieModel(x.Code, x.Name, x.Distance, x.StartHead)); allLossList.Add(new HydroLossCurvePointVieModel(x.Code, x.Name, x.Distance, x.EndHead)); }); this.lossBindingSource.DataSource = allLossList; this.lossBindingSource.ResetBindings(false); if (allNodeLossList != null && allNodeLossList.Count > 0) { var startHead = allNodeLossList.Max(x => x.StartHead); var endHead = allNodeLossList.Min(x => x.EndHead); var allHeadLoss = startHead - endHead; var allMinorLoss = allNodeLossList.Sum(x => x.MinorLoss); var allForLoss = allHeadLoss - allMinorLoss; var sb = new StringBuilder(); sb.AppendLine($"水头æå¤±:{allHeadLoss:N2}m"); sb.AppendLine($"å±é¨æå¤±:{allMinorLoss:N2}m"); sb.AppendLine($"æ²¿ç¨æå¤±:{allForLoss:N2}m"); var anno = this.chartControl1.AnnotationRepository[0] as DevExpress.XtraCharts.TextAnnotation; anno.Text = sb.ToString(); anno.AutoSize = true; } } //èªå¨éåºå»åº¦ private void AutoFitAxises(List<HydroNodeLossViewModel> allNodeLossList) { if (allNodeLossList == null || allNodeLossList.Count < 1) { return; } var diagram = this.chartControl1.Diagram as XYDiagram; #region Xè½´ var allDistances = allNodeLossList.Select(x => x.Distance).Distinct().ToList(); var distanceMax = allDistances.Max(); diagram.AxisX.Tickmarks.MinorVisible = false; diagram.AxisX.WholeRange.SideMarginsValue = 0; if (distanceMax <= 10) { var maxValue = Math.Ceiling(distanceMax); diagram.AxisX.WholeRange.MinValue = 0; diagram.AxisX.WholeRange.MaxValue = maxValue; diagram.AxisX.NumericScaleOptions.GridSpacing = 1; } else if (distanceMax <= 50) { var maxValue = Math.Ceiling(distanceMax / 10); diagram.AxisX.WholeRange.MinValue = 0; diagram.AxisX.WholeRange.MaxValue = maxValue * 10; diagram.AxisX.NumericScaleOptions.GridSpacing = 5; } else if (distanceMax <= 100) { var maxValue = Math.Ceiling(distanceMax / 10); diagram.AxisX.WholeRange.MinValue = 0; diagram.AxisX.WholeRange.MaxValue = maxValue * 10; diagram.AxisX.NumericScaleOptions.GridSpacing = 10; } else if (distanceMax <= 500) { var maxValue = Math.Ceiling(distanceMax / 100); diagram.AxisX.WholeRange.MinValue = 0; diagram.AxisX.WholeRange.MaxValue = maxValue * 100; diagram.AxisX.NumericScaleOptions.GridSpacing = 50; } else if (distanceMax <= 3000) { var maxValue = Math.Ceiling(distanceMax / 100); diagram.AxisX.WholeRange.MinValue = 0; diagram.AxisX.WholeRange.MaxValue = maxValue * 100; diagram.AxisX.NumericScaleOptions.GridSpacing = 100; } else if (distanceMax <= 5000) { var maxValue = Math.Ceiling(distanceMax / 1000); diagram.AxisX.WholeRange.MinValue = 0; diagram.AxisX.WholeRange.MaxValue = maxValue * 1000; diagram.AxisX.NumericScaleOptions.GridSpacing = 200; } else if (distanceMax <= 10000) { var maxValue = Math.Ceiling(distanceMax / 1000); diagram.AxisX.WholeRange.MinValue = 0; diagram.AxisX.WholeRange.MaxValue = maxValue * 1000; diagram.AxisX.NumericScaleOptions.GridSpacing = 1000; } else { } #endregion #region åå var allPressMinList = allNodeLossList.Select(x => Math.Min(Math.Min(x.StartHead, x.EndHead), x.Elev)).ToList(); var allPressMaxList = allNodeLossList.Select(x => Math.Max(Math.Max(x.StartHead, x.EndHead), x.Elev)).ToList(); var pressMin = allPressMinList.Min(); var pressMax = allPressMaxList.Max(); diagram.AxisY.Tickmarks.MinorVisible = false; diagram.AxisY.WholeRange.SideMarginsValue = 0; diagram.AxisY.CrosshairAxisLabelOptions.EnableAntialiasing = DevExpress.Utils.DefaultBoolean.True; if (pressMax <= 10) { diagram.AxisY.WholeRange.MinValue = Math.Floor(pressMin); diagram.AxisY.WholeRange.MaxValue = 10; diagram.AxisY.NumericScaleOptions.GridSpacing = 1; diagram.AxisY.VisualRange.SetMinMaxValues(0, 10); } else if (pressMax <= 100) { var maxValue = Math.Ceiling(pressMax / 10); diagram.AxisY.WholeRange.MinValue = Math.Floor(pressMin); diagram.AxisY.WholeRange.MaxValue = maxValue * 10; diagram.AxisY.NumericScaleOptions.GridSpacing = 5; diagram.AxisY.VisualRange.SetMinMaxValues(0, maxValue * 10); } else if (pressMax <= 3000) { var maxValue = Math.Ceiling(pressMax / 100); diagram.AxisY.WholeRange.MinValue = Math.Floor(pressMin); diagram.AxisY.WholeRange.MaxValue = maxValue * 100; diagram.AxisY.NumericScaleOptions.GridSpacing = 50; diagram.AxisY.VisualRange.SetMinMaxValues(0, maxValue * 100); } else if (pressMax <= 6000) { var maxValue = Math.Ceiling(pressMax / 1000); diagram.AxisY.WholeRange.MinValue = Math.Floor(pressMin); diagram.AxisY.WholeRange.MaxValue = maxValue * 1000; diagram.AxisY.NumericScaleOptions.GridSpacing = 100; diagram.AxisY.VisualRange.SetMinMaxValues(0, maxValue * 1000); } else { } #endregion } //æç¤º private void chartControl1_CustomDrawCrosshair(object sender, CustomDrawCrosshairEventArgs e) { // Specify the crosshair argument line color, dash style and thickness. e.CrosshairLineElement.Color = Color.Green; e.CrosshairLineElement.LineStyle.DashStyle = DashStyle.DashDot; e.CrosshairLineElement.LineStyle.Thickness = 3; // Specify the back color for the crosshair argument axis label. foreach (CrosshairAxisLabelElement axisLabelElement in e.CrosshairAxisLabelElements) { axisLabelElement.BackColor = Color.Blue; axisLabelElement.Text = $"{axisLabelElement.AxisValue:N2}"; } foreach (CrosshairElementGroup group in e.CrosshairElementGroups) { CrosshairGroupHeaderElement groupHeaderElement = group.HeaderElement; var pt = group.HeaderElement.SeriesPoints.FirstOrDefault(); if (pt != null) { var model = pt.Tag as HydroLossCurvePointVieModel; if (model != null) { groupHeaderElement.Text = model.Name; } } // Specify the text, text color and font for the crosshair group header element. groupHeaderElement.TextColor = Color.Green; groupHeaderElement.DXFont = new DXFont("SegoeUI", 12, DXFontStyle.Bold); //groupHeaderElement.Text = group.CrosshairElements[0].AxisLabelElement.Text; foreach (var ele in group.CrosshairElements) { ele.AxisLabelElement.Text = $"{ele.AxisLabelElement.AxisValue:N1}"; ele.AxisLabelElement.DXFont = new DXFont(this.Font.Name, 6); //ele.AxisLabelElement.Visible = false; } //// Obtain the first series. //CrosshairElement element = group.CrosshairElements[0]; //// Specify the color, dash style and thickness for the crosshair value lines. //element.LineElement.Color = Color.DarkViolet; //element.LineElement.LineStyle.DashStyle = DashStyle.Dash; //element.LineElement.LineStyle.Thickness = 2; //// Specify the text color and back color for the crosshair value labels. //element.AxisLabelElement.TextColor = Color.Red; //element.AxisLabelElement.BackColor = Color.Yellow; //// Format the text shown for the series in the crosshair cursor label. Specify the text color and marker size. //element.LabelElement.TextColor = Color.Red; //element.LabelElement.MarkerSize = new Size(15, 15); //element.LabelElement.Text = $"é«ç¨:{element.SeriesPoint.Values[0]}m"; } } //ç¹å»äºä»¶ private void chartControl1_MouseClick(object sender, MouseEventArgs e) { ChartHitInfo hitInfo = this.chartControl1.CalcHitInfo(e.Location); if (hitInfo.Series != null) { if (hitInfo.SeriesPoint != null) { var vm = hitInfo.SeriesPoint.Tag as HydroLossCurvePointVieModel; if (vm != null) { this.HydroClickEvent?.Invoke(vm.Code); } } } } /// <summary> /// 导åºå¾ç /// </summary> public void ExportToImage(string filePath) { this.chartControl1.ExportToImage(filePath, DXImageFormat.Png); } //䏿¸¸è¿½è¸ªéæ© private void ckStart_CheckedChanged(object sender, EventArgs e) { Analy(); } //䏿¸¸è¿½è¸ªéæ© private void ckEnd_CheckedChanged(object sender, EventArgs e) { Analy(); } //é«äº®æ¾ç¤º private void ckSpecial_CheckedChanged(object sender, EventArgs e) { Analy(); } //åæ private void Analy() { if (_hydroInfo == null) { return; } var network = _hydroInfo.ToNetwork(); if (network == null) { return; } var node = network.GetAllNodes()?.Find(x => x.Id == _visual?.Code); if (node == null) { return; } var allStartPathList = new List<Link>(); if (this.ckStart.Checked) { allStartPathList = network.AnalyzeUpstreamPath(node, _calcuResult?.EPAnetCalcuResult); if (allStartPathList == null) { allStartPathList = new List<Link>(); } } var allEndPathList = new List<Link>(); if (this.ckEnd.Checked) { allEndPathList = network.AnalyzeDownstreamPath(node, _calcuResult?.EPAnetCalcuResult); if (allEndPathList == null) { allEndPathList = new List<Link>(); } } var allPathList = allStartPathList.Concat(allEndPathList).ToList(); var allEpaLossList = network.GetChartNodeByPathLinks(allPathList, _calcuResult?.EPAnetCalcuResult); var allVisualDict = _hydroInfo.GetVisualDict(); var allNodeLossList = new List<HydroNodeLossViewModel>(); allEpaLossList?.ForEach(x => { var visualNode = allVisualDict?.GetValue(x.Id); if (visualNode != null) { allNodeLossList.Add(new HydroNodeLossViewModel(x, visualNode)); } }); SetBindingData(allNodeLossList); if (this.ckSpecial.Checked) { var allCodeList = new List<string>(); allPathList?.ForEach(x => allCodeList.Add(x.Id)); allNodeLossList?.ForEach(x => allCodeList.Add(x.Code)); this.HydroSpecialDisplayEvent?.Invoke(allCodeList); } else { this.HydroCancelSpecialDisplayEvent?.Invoke(); } } } } WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveInteropCtrl.resx
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,126 @@ <?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="lossBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <value>17, 17</value> </metadata> <metadata name="elevBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <value>239, 17</value> </metadata> </root> WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj
@@ -57,7 +57,7 @@ <ItemGroup> <PackageReference Include="DevExpress.Win.Design" Version="23.2.4" /> <PackageReference Include="Yw.BLL.Basic.Core" Version="3.3.3" /> <PackageReference Include="Yw.BLL.Hydro.Core" Version="3.8.6" /> <PackageReference Include="Yw.BLL.Hydro.Core" Version="3.8.7" /> <PackageReference Include="Yw.Pump.Core" Version="3.2.4" /> </ItemGroup> @@ -237,6 +237,9 @@ <Compile Update="18-loss\01-curve\HydroMultiWorkingLossCurveDlg.cs"> <SubType>Form</SubType> </Compile> <Compile Update="18-loss\01-curve\HydroSingleWorkingLossCurveInteropCtrl.cs"> <SubType>UserControl</SubType> </Compile> <Compile Update="18-loss\01-curve\HydroSingleWorkingLossCurveDlg.cs"> <SubType>Form</SubType> </Compile>