From 0e0709e63ed50093d09fb88ac1ea4eb9b5a37afc Mon Sep 17 00:00:00 2001 From: lixiaojun <1287241240@qq.com> Date: 星期二, 13 八月 2024 02:08:46 +0800 Subject: [PATCH] Yw.EPAnet修改 --- Hydro/Yw.EPAnet.Calcu.Core/04-Inp/InpInteropHelper.cs | 49 +++++++++++++++++++++++-------------------------- 1 files changed, 23 insertions(+), 26 deletions(-) diff --git a/Hydro/Yw.EPAnet.Calcu.Core/04-Inp/InpInteropHelper.cs b/Hydro/Yw.EPAnet.Calcu.Core/04-Inp/InpInteropHelper.cs index 99935e9..6720079 100644 --- a/Hydro/Yw.EPAnet.Calcu.Core/04-Inp/InpInteropHelper.cs +++ b/Hydro/Yw.EPAnet.Calcu.Core/04-Inp/InpInteropHelper.cs @@ -1,11 +1,6 @@ -锘縰sing Hydro.CommonBase; -using System.Diagnostics.Metrics; -using System.Drawing; -using System.Text; +锘縰sing System.Text; using System.Text.RegularExpressions; -using System.Threading.Tasks; -using System.Xml.Linq; - +using Hydro.CommonBase; namespace Yw.EPAnet { @@ -22,7 +17,7 @@ { string tempString = ""; var tempPath = Path.Combine(Directory.GetCurrentDirectory(), @"template\template.inp"); - + if (!File.Exists(tempPath)) { throw new Exception("妯℃澘鏂囦欢涓嶅瓨鍦�," + tempPath); @@ -58,8 +53,8 @@ net.Junctions.ForEach(o => { var pTemp = o.DemandPattern; - if (string.IsNullOrEmpty(pTemp) || pTemp == ";" || pTemp=="_") pTemp = ""; - + if (string.IsNullOrEmpty(pTemp) || pTemp == ";" || pTemp == "_") pTemp = ""; + junctionStringBuilder.AppendLine($"{o.Id}\t{o.Elev}\t{o.Demand}\t{pTemp}\t;\t" + $"0\tJunction"); coorStringBuilder.AppendLine(o.Id + " " + o.Position.X + " " + o.Position.Y); @@ -102,7 +97,7 @@ { tankStringBuilder.AppendLine($"{o.Id}\t{o.PoolElev}\t{o.InitLevel}\t{o.MinLevel}\t{o.MaxLevel}\t{o.Diameter}\t{o.MinVol}\t{o.VolCurve}\t{o.Overflow}\t;\t");// + $"0"); - coorStringBuilder.AppendLine(o.Id + " " + o.Position.X+" "+o.Position.Y); + coorStringBuilder.AppendLine(o.Id + " " + o.Position.X + " " + o.Position.Y); }); string tankString = tankStringBuilder.ToString(); @@ -113,11 +108,13 @@ net.Pipes.ForEach(o => { if (o.Roughness == 0) o.Roughness = 110; - string statusString = o.LinkStatus == LinkStatus.Closed ? "CLOSED" : ""; - + string statusString = o.LinkStatus == PipeStatus.Closed ? "CLOSED" : ""; + pipeStringBuilder.AppendLine($"{o.Id}\t{o.StartNode.Id}\t{o.EndNode.Id}\t{o.Length}\t{o.Diameter}\t{o.Roughness}\t{o.MinorLoss}\t{statusString}\t;\t");// + $"{p.Level}"); - if (o.LinkStatus!=LinkStatus.Open) + if (o.LinkStatus != PipeStatus.Open) + { statusStringBuilder.AppendLine(o.Id + "\t" + statusString); + } }); string pipeString = pipeStringBuilder.ToString(); @@ -129,7 +126,7 @@ net.Valves.ForEach(o => { valveStringBuilder.AppendLine($"{o.Id}\t{o.StartNode.Id}\t{o.EndNode.Id}\t{o.Diameter:F4}\t{o.ValveType}\t{o.ValveSetting}\t{o.MinorLoss:F4}\t;\t");// + $"0"); - if (!string.IsNullOrEmpty(o.LinkStatus )) + if (!string.IsNullOrEmpty(o.LinkStatus)) statusStringBuilder.AppendLine(o.Id + "\t" + o.LinkStatus); }); string valveString = valveStringBuilder.ToString(); @@ -142,7 +139,7 @@ { pumpStringBuilder.AppendLine($"{o.Id}\t{o.StartNode.Id}\t{o.EndNode.Id}\tHead\t{o.CurveQH}\tSPEED\t{o.SpeedRatio}\t;\t");// + $"0"); if (!string.IsNullOrEmpty(o.LinkStatus)) - statusStringBuilder.AppendLine(o.Id+"\t"+ o.LinkStatus); + statusStringBuilder.AppendLine(o.Id + "\t" + o.LinkStatus); }); string pumpString = pumpStringBuilder.ToString(); StringBuilder curveStringBuilder = new StringBuilder(); @@ -202,14 +199,14 @@ output = ReplaceContent(output, "STATUS", statusString); - - + + return output; } - + private static string ReplaceContent(string text, string content, string replaceString) { @@ -370,7 +367,7 @@ { InpPipe p = new InpPipe(); p.Id = parts[0]; - p.Node1 = parts[1] ; + p.Node1 = parts[1]; p.Node2 = parts[2]; float length; if (float.TryParse(parts[3], out length)) @@ -384,7 +381,7 @@ float minorLoss; if (float.TryParse(parts[6], out minorLoss)) p.MinorLoss = minorLoss; - p.LinkStatus = parts.Length > 7 ? LinkStatus.Closed : LinkStatus.Open; + p.LinkStatus = parts.Length > 7 ? PipeStatus.Closed : PipeStatus.Open; //int level; //if (int.TryParse(parts[8], out level)) // p.Level = level; @@ -408,7 +405,7 @@ float minorLoss; if (float.TryParse(parts[6], out minorLoss)) valve.MinorLoss = minorLoss; - + net.Valves.Add(valve); } break; @@ -429,12 +426,12 @@ } sr.Close(); - + #region 浼樺寲鏂规 int k1 = 0; int k2 = 0; - var Nodes= net.GetAllNodes(); + var Nodes = net.GetAllNodes(); var Links = net.GetAllLinks(); Nodes.Sort((a, b) => string.Compare(a.Id, b.Id)); points.Sort((a, b) => string.Compare(a.Id, b.Id)); @@ -457,7 +454,7 @@ //throw new Exception($"鏈壘鍒癗ode[{J.Id}]鐨勫潗鏍�"); } - J.Position=new Position2d(); + J.Position = new Position2d(); J.Position.X = coor.Position.X; J.Position.Y = coor.Position.Y; @@ -488,7 +485,7 @@ //throw new Exception($"鏈壘鍒癓ink[{p.Id}]鐨勮捣濮嬭妭鐐筟{((IInpParser)p).Node1}]"); } p.StartNode = J; - if (J.Links==null) J.Links = new List<ILink>(); + if (J.Links == null) J.Links = new List<ILink>(); J.Links.Add(p); k2++; } -- Gitblit v1.9.3