From 368869e50aa1bc741d4cc319dbd24e798e48b3a2 Mon Sep 17 00:00:00 2001 From: cloudflight <cloudflight@126.com> Date: 星期六, 20 七月 2024 11:12:06 +0800 Subject: [PATCH] 更新项目名称 --- Hydraulic/Hydro.Inp2.2/Hydro.Inp.csproj | 0 Hydraulic/Hydro.Revit2022/Hydro.Revit2022.csproj | 1 Hydraulic/Hydro.MapView/Model/RepeaterViewModel.cs | 2 Hydraulic/Hydro.Core/NetWork/NetWork.cs | 1084 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ HydroV1.1Core.sln | 21 - Hydro.ClientCore/Hydro.Tool.csproj | 1 Hydraulic/Hydro.HydraulicCore/HydraulicCore.vcxproj | 2 Hydraulic/Hydro.Core/NetWork/NetRelationExtentions.cs | 17 Hydraulic/Hydro.MapUI/Map/MapViewer.cs | 2 Hydraulic/Hydro.MapView/Template/Template.cs | 2 Hydraulic/Hydro.HydraulicOptimizer/Hydro.HydraulicOptimizer.csproj | 4 Hydraulic/Hydro.MapView/MapViewNetWork.cs | 2 Hydraulic/Hydro.Core/Yw.Epanet.Calcu.Core.csproj | 4 Hydraulic/Hydro.ConfigModel/Hydro.ConfigModel.csproj | 2 Hydraulic/Hydro.Core/Yw.Epanet.Calcu.Core.csproj.user | 0 Hydraulic/Hydro.HydraulicModel/Yw.EPAnet.Core.csproj | 0 Hydraulic/Hydro.MapView/Common/MapObjectExtensions.cs | 2 Hydraulic/Hydro.HydraulicHelper/Hydro.HydraulicHelper.csproj | 2 Hydraulic/Hydro.MapView/Hydro.MapView.csproj | 1 Hydraulic/Hydro.MapUI/Hydro.MapUI.csproj | 1 20 files changed, 1,115 insertions(+), 35 deletions(-) diff --git a/Hydraulic/Hydro.ConfigModel/Hydro.ConfigModel.csproj b/Hydraulic/Hydro.ConfigModel/Hydro.ConfigModel.csproj index 79224ae..aee530b 100644 --- a/Hydraulic/Hydro.ConfigModel/Hydro.ConfigModel.csproj +++ b/Hydraulic/Hydro.ConfigModel/Hydro.ConfigModel.csproj @@ -57,7 +57,7 @@ </ItemGroup> <ItemGroup> <ProjectReference Include="..\Hydro.CommonBase\Hydro.CommonBase.csproj" /> - <ProjectReference Include="..\Hydro.HydraulicModel\Hydro.HydraulicModel.csproj" /> + <ProjectReference Include="..\Hydro.HydraulicModel\Yw.EPAnet.Core.csproj" /> </ItemGroup> <ItemGroup> <Analyzer Include="..\..\packages\Microsoft.DependencyValidation.Analyzers.0.11.0\analyzers\dotnet\cs\Microsoft.DependencyValidation.Analyzers.resources.dll" /> diff --git a/Hydraulic/Hydro.Core/NetWork/NetRelationExtentions.cs b/Hydraulic/Hydro.Core/NetWork/NetRelationExtentions.cs new file mode 100644 index 0000000..e330a03 --- /dev/null +++ b/Hydraulic/Hydro.Core/NetWork/NetRelationExtentions.cs @@ -0,0 +1,17 @@ +锘縰sing Hydro.Core.Model; +using Hydro.Model; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Text; +using System.Threading.Tasks; + +namespace Hydro.Core +{ + public static class NetRelationExtentions + { + + } +} diff --git a/Hydraulic/Hydro.Core/NetWork/NetWork.cs b/Hydraulic/Hydro.Core/NetWork/NetWork.cs new file mode 100644 index 0000000..2bd1f14 --- /dev/null +++ b/Hydraulic/Hydro.Core/NetWork/NetWork.cs @@ -0,0 +1,1084 @@ +锘縰sing Hydro.CommonBase; +using Hydro.Core.Model; +//using Hydro.HydraulicModel; +using System; +using System.Collections.Generic; +using System.Data; +using System.Drawing; +using System.IO; +using System.IO.Ports; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading; +using System.Threading.Tasks; +using System.Xml.Linq; +using static Hydro.Core.EpanetEnum; +using static Hydro.Core.ObjectEnum; + +namespace Hydro.Core +{ + [Serializable] + public class NetWork //: INetWork + { + public NetWork() + { + } + + public List<JunctionModel> Junctions + { + get + { + var js = Nodes.Where(d => d is JunctionModel); + return js?.Select(d => d as JunctionModel).ToList(); + } + + } + public List<TankModel> Tanks + { + get + { + var js = Nodes.Where(d => d is TankModel); + return js?.Select(d => d as TankModel).ToList(); + } + } + + public List<PipeModel> Pipes + { + get + { + var js = Links.Where(d => d is PipeModel); + return js?.Select(d => d as PipeModel).ToList(); + } + } + + public List<PumpModel> Pumps + { + get + { + var js = Links.Where(d => d is PumpModel); + return js?.Select(d => d as PumpModel).ToList(); + } + } + + public List<ValveModel> Valves + { + get + { + var js = Links.Where(d => d is ValveModel); + return js?.Select(d => d as ValveModel).ToList(); + } + } + + public List<ReservoisModel> Reservos + { + get + { + var js = Nodes.Where(d => d is ReservoisModel); + return js?.Select(d => d as ReservoisModel).ToList(); + } + } + + public List<MeterModel> Meters + { + get + { + var js = Nodes.Where(d => d is MeterModel); + return js?.Select(d => d as MeterModel).ToList(); + } + } + + public List<NozzleModel> Nozzles + { + get + { + var js = Nodes.Where(d => d is NozzleModel); + return js?.Select(d => d as NozzleModel).ToList(); + } + } + + public virtual void AddJunction(JunctionModel junction) + { + CheckNodesExist(junction); + Nodes.Add(junction); + } + + public virtual void AddJunctions(List<JunctionModel> junctions) + { + junctions.ForEach(junction => { AddJunction(junction); }); + } + + public virtual void AddTank(TankModel tank) + { + CheckNodesExist(tank); + Nodes.Add(tank); + } + + public virtual void AddTanks(List<TankModel> tanks) + { + tanks.ForEach(tank => { AddTank(tank); }); + } + + public virtual void AddPipe(PipeModel pipe) + { + CheckLinksExist(pipe); + Links.Add(pipe); + } + + public virtual void AddPipes(List<PipeModel> pipes) + { + pipes.ForEach(pipe => { AddPipe(pipe); }); + } + public virtual void AddPump(PumpModel pump) + { + CheckLinksExist(pump); + Links.Add(pump); + } + + public virtual void AddPumps(List<PumpModel> pumps) + { + pumps.ForEach(pump => { AddPump(pump); }); + } + public virtual void AddValve(ValveModel valve) + { + CheckLinksExist(valve); + Links.Add(valve); + } + + public virtual void AddValves(List<ValveModel> valves) + { + valves.ForEach(valve => { AddValve(valve); }); + } + public virtual void AddReservos(ReservoisModel reservois) + { + CheckNodesExist(reservois); + Nodes.Add(reservois); + } + public virtual void AddReservoss(List<ReservoisModel> reservoiss) + { + reservoiss.ForEach(reservois => { AddReservos(reservois); }); + } + public virtual void AddMeter(MeterModel meter) + { + CheckNodesExist(meter); + Nodes.Add(meter); + } + public virtual void AddMeters(List<MeterModel> meters) + { + meters.ForEach(meter => { AddMeter(meter); }); + } + public virtual void AddNozzle(NozzleModel nozzle) + { + CheckNodesExist(nozzle); + Nodes.Add(nozzle); + } + public virtual void AddNozzles(List<NozzleModel> nozzles) + { + nozzles.ForEach(nozzle => { AddNozzle(nozzle); }); + } + + private void CheckNodesExist(NodeCalcModel node) + { + if (Nodes.Any(d => d.ID == node.ID)) + throw new Exception("宸插瓨鍦ㄩ噸澶嶇殑瀵硅薄"); + } + + private void CheckLinksExist(LinkCalcModel link) + { + if (Links.Any(d => d.ID == link.ID)) + throw new Exception("宸插瓨鍦ㄩ噸澶嶇殑瀵硅薄"); + } + + public List<NodeCalcModel> Nodes { get; set; } = new List<NodeCalcModel>(); + public List<LinkCalcModel> Links { get; set; } = new List<LinkCalcModel>(); + + /// <summary> + /// 鏍规嵁INP鏂囦欢鐢熸垚 + /// </summary> + /// <param name="InpPath"></param> + /// <returns></returns> + public virtual bool BuildFromInp(string InpPath) + { + if (InpPath == null || !File.Exists(InpPath)) return false; + List<Coor> points = new List<Coor>(); + StreamReader sr = new StreamReader(InpPath); + //try + { + string line; + string section = ""; + while ((line = sr.ReadLine()) != null) + { + if (line.Trim().StartsWith("[")) + { + section = line.TrimStart('[').TrimEnd(']'); + } + else + { + string s = line.Trim('\t').Trim(' '); + if (s.Length == 0 || s[0] == ';') continue; + line = line.Replace("\t\t", "\t_\t").Replace("\t \t", "\t_\t"); + Parts parts = new Parts(line.Split(new char[] { '\t', ' ', ';' }, StringSplitOptions.RemoveEmptyEntries)); + switch (section) + { + case "JUNCTIONS": + { + var ID = parts[0]; + float elev; + float.TryParse(parts[1], out elev); + var Elev = elev; + float demand; + float.TryParse(parts[2], out demand); + var Demand = demand; + var PatternID = parts[3]; + int level; + int.TryParse(parts[6], out level); + var Level = level; + + if (parts[5] == "Meter") + { + AddMeter(new MeterModel() + { + ID = ID, + Elev = Elev, + Demand = Demand, + PatternID = PatternID, + }); + } + else if (parts[5] == "Nozzle") + { + AddNozzle(new NozzleModel() + { + ID = ID, + Elev = Elev, + Demand = Demand, + PatternID = PatternID, + }); + } + else + { + AddJunction(new JunctionModel() + { + ID = ID, + Elev = Elev, + Demand = Demand, + PatternID = PatternID, + }); + } + + } + break; + case "RESERVOIRS": + { + ReservoisModel r = new ReservoisModel(); + r.ID = parts[0]; + float head; + if (float.TryParse(parts[1], out head)) + r.Head = head; + r.PatternID = parts.Length > 2 ? parts[2] : ""; + int level; + //if (int.TryParse(parts[3], out level)) + // r.Level = level; + AddReservos(r); + } + break; + case "TANKS": + { + //TankModel tank = new TankModel(parts[0], parts[1], parts[2], parts[3], parts[4], parts[5], parts[6], parts[7], parts[8]); + float initLevel = 0; + float.TryParse(parts[2], out initLevel); + + float minLevel = 0; + float.TryParse(parts[3], out minLevel); + + float maxLevel = 0; + float.TryParse(parts[4], out maxLevel); + + float diamter = 0; + float.TryParse(parts[5], out diamter); + + float minVol = 0; + float.TryParse(parts[6], out minVol); + var tank = new TankModel() + { + ID = parts[0], + Elev = float.Parse(parts[1]), + InitLevel = initLevel, + MinLevel = minLevel, + MaxLevel = maxLevel, + Diameter = diamter, + MinVol = minVol, + VolCurve = "", + IsOverFlow = true + }; + //int level; + //if (int.TryParse(parts[9], out level)) + // tank.Level = level; + AddTank(tank); + } + break; + case "PIPES": + { + PipeModel p = new PipeModel(); + p.ID = parts[0]; + p.Node1 = parts[1]; + p.Node2 = parts[2]; + float length; + if (float.TryParse(parts[3], out length)) + p.Length = length; + float diameter; + if (float.TryParse(parts[4], out diameter)) + p.Diameter = diameter; + float roughness; + if (float.TryParse(parts[5], out roughness)) + p.Roughness = roughness; + float minorLoss; + if (float.TryParse(parts[6], out minorLoss)) + p.MinorLoss = minorLoss; + p.Status = parts.Length > 7 ? StatusType.CLOSED : StatusType.DEFAULT; + //int level; + //if (int.TryParse(parts[8], out level)) + // p.Level = level; + AddPipe(p); + } + break; + case "VALVES": + { + ValveModel valve = new ValveModel(); + valve.ID = parts[0]; + + // 鍙栧嚭Node1鍜孨ode2涓殑瀛楁瘝閮ㄥ垎锛屼緥濡傗�淪201326593鈥濊鍙栧嚭涓衡��201326593鈥� + valve.Node1 = parts[1]; // Regex.Replace(parts[1], "[^0-9]", ""); + valve.Node2 = parts[2]; // Regex.Replace(parts[2], "[^0-9]", ""); + + float diameter; + if (float.TryParse(parts[3], out diameter)) + valve.Diameter = diameter; + valve.Type = parts[4]; + valve.CurvSetting = parts[5]; + float minorLoss; + if (float.TryParse(parts[6], out minorLoss)) + valve.MinorLoss = minorLoss; + //int level; + //if (int.TryParse(parts[7], out level)) + // valve.Level = level; + AddValve(valve); + } + break; + case "REPEATERS": + { + //Repeater repeater = new Repeater(); + //repeater.ID = parts[0]; + //repeater.Node1 = parts[1]; + //repeater.Node2 = parts[2]; + //// 鍙栧嚭Node1鍜孨ode2涓殑瀛楁瘝閮ㄥ垎锛屼緥濡傗�淪201326593鈥濊鍙栧嚭涓衡��201326593鈥� + //repeater.TemplateID = parts[3]; + //int repeatTimes; + //if (int.TryParse(parts[4], out repeatTimes)) + // repeater.RepeatTimes = repeatTimes; + //RepeatStatus status; + //if (Enum.TryParse(parts[5], out status)) + // repeater.Status = status; + //repeater.NetworkPreName = parts[6]; + //int networkPreStartNum; + //if (int.TryParse(parts[7], out networkPreStartNum)) + // repeater.NetworkPreStartNum = networkPreStartNum; + //bool networkIsAscNum; + //if (bool.TryParse(parts[8], out networkIsAscNum)) + // repeater.NetworkIsAscNum = networkIsAscNum; + //repeater.NetworkShowName = parts[9]; + //int level; + //if (int.TryParse(parts[10], out level)) + // repeater.Level = level; + //Links.Add(repeater); + } + break; + case "COORDINATES": + { + string id = parts[0]; + float x; + float y; + if (float.TryParse(parts[1], out x) && float.TryParse(parts[2], out y)) + { + points.Add(new Coor(id, new PointF(x, y))); + } + } + break; + } + } + } + sr.Close(); + + #region 鍧愭爣鍖归厤鏂规硶 + #endregion + + #region 鍒犻櫎 + //[Cloudflight淇敼]2023-11-27 浜岄噸寰幆鍖归厤鍧愭爣閫熷害澶參 + ////璇诲彇鍧愭爣 + //Junctions.ForEach(o => + //{ + // var p = points.Where(d => d.ID == o.ID).FirstOrDefault(); + // if (p != null) + // { + // o.X = p.Position.X; + // o.Y = p.Position.Y; + // } + //}); + + //Reservos.ForEach(o => + //{ + // var p = points.Where(d => d.ID == o.ID).FirstOrDefault(); + // if (p != null) + // { + // o.X = p.Position.X; + // o.Y = p.Position.Y; + // } + //}); + + //Tanks.ForEach(o => + //{ + // var p = points.Where(d => d.ID == o.ID).FirstOrDefault(); + // if (p != null) + // { + // o.X = p.Position.X; + // o.Y = p.Position.Y; + // } + //}); + + //Meters.ForEach(o => + //{ + // var p = points.Where(d => d.ID == o.ID).FirstOrDefault(); + // if (p != null) + // { + // o.X = p.Position.X; + // o.Y = p.Position.Y; + // } + //}); + + //Nozzles.ForEach(o => + //{ + // var p = points.Where(d => d.ID == o.ID).FirstOrDefault(); + // if (p != null) + // { + // o.X = p.Position.X; + // o.Y = p.Position.Y; + // } + //}); + #endregion + + #region 浼樺寲鏂规 + int k1 = 0; + int k2 = 0; + + + Nodes.Sort((a, b) => string.Compare(a.ID, b.ID)); + points.Sort((a, b) => string.Compare(a.ID, b.ID)); + k1 = 0; + k2 = 0; + while (k1 < Nodes.Count) + { + var J = Nodes[k1]; + var coor = points[k2]; + + while (J.ID != coor.ID && k2 < points.Count) + { + k2++; + if (k2 < points.Count) coor = points[k2]; + + } + if (k2 == points.Count) + { + throw new Exception($"鏈壘鍒癗ode[{J.ID}]鐨勫潗鏍�"); + } + J.X = coor.Position.X; + J.Y = coor.Position.Y; + + k1++; + } + #endregion + + + + //寤虹珛鐐圭嚎鍏崇郴閾捐〃StartNode锛屽厛灏嗙绾夸互Node1锛堣妭鐐�1鐨処D锛夋帓搴忥紝鍐嶅皢Nodes鎸塈D鎺掑簭锛屽缓绔嬩袱涓父鏍噆1銆乲2锛屾鍚戜竴娆″惊鐜紝寤虹珛閾捐〃鍏崇郴 + //鏃堕棿澶嶆潅搴� O(n) + Links.Sort((a, b) => string.Compare(a.Node1, b.Node1)); + k1 = 0; + k2 = 0; + while (k2 < Links.Count) + { + var p = Links[k2]; + var J = Nodes[k1]; + while (J.ID != p.Node1 && k1 < Nodes.Count) + { + k1++; + if (k1 < Nodes.Count) J = Nodes[k1]; + + } + if (k1 == Nodes.Count) + { + throw new Exception($"鏈壘鍒癓ink[{p.ID}]鐨勮捣濮嬭妭鐐筟{p.Node1}]"); + } + //p.StartNode = J; + //if (J.MaxDiameter < p.Diameter) J.MaxDiameter = p.Diameter; + //J.Links.Add(p); + k2++; + } + + //寤虹珛鐐圭嚎鍏崇郴閾捐〃StartNode锛屽厛灏嗙绾夸互Node2锛堣妭鐐�1鐨処D锛夋帓搴忥紝鍐嶅皢Nodes鎸塈D鎺掑簭锛屽缓绔嬩袱涓父鏍噆1銆乲2锛屾鍚戜竴娆″惊鐜紝寤虹珛閾捐〃鍏崇郴 + //鏃堕棿澶嶆潅搴� O(n) + Links.Sort((a, b) => string.Compare(a.Node2, b.Node2)); + k1 = 0; + k2 = 0; + while (k2 < Links.Count) + { + var p = Links[k2]; + var J = Nodes[k1]; + while (J.ID != p.Node2 && k1 < Nodes.Count) + { + k1++; + if (k1 < Nodes.Count) J = Nodes[k1]; + } + if (k1 == Nodes.Count) + { + throw new Exception($"鏈壘鍒癓ink[{p.ID}]鐨勭粓姝㈣妭鐐筟{p.Node2}]"); + } + //p.EndNode = J; + //if (J.MaxDiameter < p.Diameter) J.MaxDiameter = p.Diameter; + //J.Links.Add(p); + k2++; + } + return true; + } + } + + /// <summary> + /// 鐢熸垚INP鏂囦欢 + /// </summary> + /// <param name="InpPath">Inp鏂囦欢璺緞</param> + /// <param name="TemplateInpFullPath">Inp妯℃澘鏂囦欢缁濆璺緞锛屽鏋滀负绌哄氨鐢ㄧ郴缁熼粯璁ゆā鏉挎枃浠�</param> + /// <exception cref="Exception"></exception> + public virtual void BuildToInp(string InpPath, string TemplateInpFullPath = "", string sourcePath = null, bool isReplace = false) + { + + string tempString = ""; + var tempPath = Path.Combine(Directory.GetCurrentDirectory(), @"template\inp\瀵煎嚭妯℃澘.inp"); + if (!string.IsNullOrEmpty(TemplateInpFullPath)) + { + tempPath = TemplateInpFullPath; + } + if (!File.Exists(tempPath)) + { + throw new Exception("妯℃澘鏂囦欢涓嶅瓨鍦�," + tempPath); + } + + if (!File.Exists(InpPath)) + { + FileInfo fi=new FileInfo(InpPath); + if (!Directory.Exists(fi.DirectoryName)) + Directory.CreateDirectory(fi.DirectoryName); + File.Create(InpPath).Close(); + + } + tempString = File.ReadAllText(tempPath); + StringBuilder statusStringBuilder = new StringBuilder(); + statusStringBuilder.AppendLine(";ID \tStatus/Setting\r\n"); + + StringBuilder emitterStringBuilder = new StringBuilder(); + emitterStringBuilder.AppendLine(";Junction \tCoefficient"); + + StringBuilder coorStringBuilder = new StringBuilder(); + coorStringBuilder.AppendLine(";Node X-Coord Y-Coord"); + + Dictionary<string, string> dictExchange = new Dictionary<string, string>() { + {"{junctions}","{0}" }, + {"{reservoirs}","{1}" }, + {"{tanks}","{2}" }, + {"{pipes}","{3}" }, + {"{valves}","{4}" }, + {"{pumps}","{5}" }, + + {"{coor}","{6}" }, + {"{curve}","{7}" }, + }; + dictExchange.ToList().ForEach(m => tempString = tempString.Replace(m.Key, m.Value)); + + StringBuilder junctionStringBuilder = new StringBuilder(); + + junctionStringBuilder.AppendLine(";ID Elev Demand Pattern Type"); + + Junctions.ForEach(j => + { + junctionStringBuilder.AppendLine(j.ToString() + $"0\tJunction"); + coorStringBuilder.AppendLine(j.ToCoorString()); + + }); + Meters.ForEach(m => + { + junctionStringBuilder.AppendLine(m.ToString() + $"0\tMeters"); + coorStringBuilder.AppendLine(m.ToCoorString()); + }); + Nozzles.ForEach(no => + { + junctionStringBuilder.AppendLine(no.ToString() + $"0\tNozzle\t{no.FlowCoefficient}"); + emitterStringBuilder.Append(no.ToEmitterString()); + coorStringBuilder.AppendLine(no.ToCoorString()); + }); + + string junctionString = junctionStringBuilder.ToString(); + + StringBuilder reservoirStringBuilder = new StringBuilder(); + + reservoirStringBuilder.AppendLine(";ID Head Pattern "); + + Reservos.ForEach(o => + { + reservoirStringBuilder.AppendLine(o.ToString() + $"0\t{o.Elev}"); + coorStringBuilder.AppendLine(o.ToCoorString()); + }); + string reserverString = reservoirStringBuilder.ToString(); + + StringBuilder tankStringBuilder = new StringBuilder(); + + tankStringBuilder.AppendLine(";ID Elevation InitLevel MinLevel MaxLevel Diameter MinVol VolCurve Overflow"); + + Tanks.ForEach(o => + { + tankStringBuilder.AppendLine(o.ToString());// + $"0"); + coorStringBuilder.AppendLine(o.ToCoorString()); + }); + string tankString = tankStringBuilder.ToString(); + + StringBuilder pipeStringBuilder = new StringBuilder(); + + pipeStringBuilder.AppendLine(";ID Node1 Node2 Length Diameter Roughness MinorLoss Status"); + + Pipes.ForEach(p => + { + pipeStringBuilder.AppendLine(p.ToString());// + $"{p.Level}"); + statusStringBuilder.Append(p.ToStatusString()); + }); + + string pipeString = pipeStringBuilder.ToString(); + + StringBuilder valveStringBuilder = new StringBuilder(); + + valveStringBuilder.AppendLine(";ID Node1 Node2 Diameter Type Setting MinorLoss "); + + Valves.ForEach(o => + { + valveStringBuilder.AppendLine(o.ToString());// + $"0"); + statusStringBuilder.Append(o.ToStatusString()); + }); + string valveString = valveStringBuilder.ToString(); + + StringBuilder pumpStringBuilder = new StringBuilder(); + + pumpStringBuilder.AppendLine(";ID Node1 Node2 Diameter Type Setting MinorLoss "); + + Pumps.ForEach(o => + { + pumpStringBuilder.AppendLine(o.ToString());// + $"0"); + statusStringBuilder.Append(o.ToStatusString()); + }); + string pumpString = pumpStringBuilder.ToString(); + StringBuilder curveStringBuilder = new StringBuilder(); + curveStringBuilder.AppendLine(@";ID X-Value Y-Value + ;HEADLOSS: + GPVDefault 0 0 + GPVDefault 100 0 + ;PUMP: + PumpDefault 0 45.38 + PumpDefault 83.33333333 45.25 + PumpDefault 111.1111111 45.12 + PumpDefault 138.8888889 44.96 + PumpDefault 166.6666667 44.76 + PumpDefault 194.4444444 44.52 + PumpDefault 222.2222222 44.24 + PumpDefault 250 43.92 + PumpDefault 277.7777778 43.56 + PumpDefault 305.5555556 43.17 + PumpDefault 333.3333333 42.73 + PumpDefault 361.1111111 42.25 + PumpDefault 388.8888889 41.74 + PumpDefault 416.6666667 41.18 + PumpDefault 444.4444444 40.58 + PumpDefault 472.2222222 39.95 + PumpDefault 500 39.28 + PumpDefault 527.7777778 38.56 + PumpDefault 555.5555556 37.81 + PumpDefault 583.3333333 37.02 + PumpDefault 611.1111111 36.19 + PumpDefault 638.8888889 35.32 + PumpDefault 666.6666667 34.41 + PumpDefault 694.4444444 33.46 + PumpDefault 722.2222222 32.47 + PumpDefault 750 31.44 + PumpDefault 777.7777778 30.37 + PumpDefault 805.5555556 29.27 "); + + Pumps.ForEach(o => + { + curveStringBuilder.AppendLine(o.CreateFlowCurve()); + }); + string curveString = curveStringBuilder.ToString(); + string coorString = coorStringBuilder.ToString(); + string output = ""; + string emitterString = emitterStringBuilder.ToString(); + string statusString = statusStringBuilder.ToString(); + output = tempString; + output = ReplaceContent(output, "JUNCTIONS", junctionString); + output = ReplaceContent(output, "RESERVOIRS", reserverString); + output = ReplaceContent(output, "TANKS", tankString); + output = ReplaceContent(output, "PIPES", pipeString); + output = ReplaceContent(output, "VALVES", valveString); + output = ReplaceContent(output, "PUMPS", pumpString); + output = ReplaceContent(output, "CURVES", curveString); + output = ReplaceContent(output, "COORDINATES", coorString); + output = ReplaceContent(output, "EMITTERS", emitterString); + output = ReplaceContent(output, "STATUS", statusString); + string backupFolderPath = Path.Combine(Path.GetDirectoryName(InpPath), "bk"); + if (!Directory.Exists(backupFolderPath)) + Directory.CreateDirectory(backupFolderPath); + + string backupFileName = $"{Path.GetFileNameWithoutExtension(InpPath)}_{DateTime.Now:yyyyMMddHHmmss}{Path.GetExtension(InpPath)}"; + string backupFilePath = Path.Combine(backupFolderPath, backupFileName); + FileCopy.Copy(InpPath, backupFilePath, true); + + //Global.ClearFileReadOnly(InpPath); + File.WriteAllText(InpPath, output); + } + //public void BuildToInp(string filePath, string userCoorString = null, string sourcePath = null, bool isReplace = false) + //{ + + // if (sourcePath == null) sourcePath = filePath; + + // string tempString = ""; + // if (!isReplace) + // { + // var tempPath = Path.Combine(Directory.GetCurrentDirectory(), @"template\inp\瀵煎嚭妯℃澘.inp"); + // if (!File.Exists(tempPath)) + // { + // //MessageBox.Show($"妯℃澘鏂囦欢涓嶅瓨鍦╗{tempPath}]"); + // return; + // } + // tempString = File.ReadAllText(tempPath); + // } + // else + // { + // tempString = File.ReadAllText(sourcePath); + // } + + + // Dictionary<string, string> dictExchange = new Dictionary<string, string>() { + // {"{junctions}","{0}" }, + // {"{reservoirs}","{1}" }, + // {"{tanks}","{2}" }, + // {"{pipes}","{3}" }, + // {"{valves}","{4}" }, + // {"{pumps}","{5}" }, + + // {"{coor}","{6}" }, + // {"{curve}","{7}" }, + // }; + // dictExchange.ToList().ForEach(m => tempString = tempString.Replace(m.Key, m.Value)); + + // StringBuilder junctionStringBuilder = new StringBuilder(); + + // junctionStringBuilder.AppendLine(";ID Elev Demand Pattern Type"); + + // Nodes.ForEach(o => + // { + // //if (!o.Visible) return; + // if (o is JunctionModel j) + // junctionStringBuilder.AppendLine(j.ToString() + $"0\tJunction"); + // else if (o is MeterModel m) + // junctionStringBuilder.AppendLine(m.ToString() + $"0\tMeter"); + // else if (o is NozzleModel no) + // junctionStringBuilder.AppendLine(no.ToString() + $"0\tNozzle\t{no.FlowCoefficient}"); + // }); + // string junctionString = junctionStringBuilder.ToString(); + + // StringBuilder reservoirStringBuilder = new StringBuilder(); + + // reservoirStringBuilder.AppendLine(";ID Head Pattern "); + + // Reservos.ForEach(o => + // { + // //if (!o.Visible) return; + // reservoirStringBuilder.AppendLine(o.ToString() + $"0\t{o.Elev}"); + // }); + // string reserverString = reservoirStringBuilder.ToString(); + + // StringBuilder tankStringBuilder = new StringBuilder(); + + // tankStringBuilder.AppendLine(";ID Elevation InitLevel MinLevel MaxLevel Diameter MinVol VolCurve Overflow"); + + // Tanks.ForEach(o => + // { + // //if (!o.Visible) return; + // tankStringBuilder.AppendLine(o.ToString() + $"0"); + // }); + // string tankString = tankStringBuilder.ToString(); + + // StringBuilder pipeStringBuilder = new StringBuilder(); + + // pipeStringBuilder.AppendLine(";ID Node1 Node2 Length Diameter Roughness MinorLoss Status"); + + // Links.ForEach(o => + // { + // //if (!o.Visible) return; + // if (o is PipeModel p) + // pipeStringBuilder.AppendLine(p.ToString() + $"0"); + // //else if (o is RepeaterViewModel r) + // // pipeStringBuilder.AppendLine(r.ToString()); + // }); + // string pipeString = pipeStringBuilder.ToString(); + + // StringBuilder valveStringBuilder = new StringBuilder(); + + // valveStringBuilder.AppendLine(";ID Node1 Node2 Diameter Type Setting MinorLoss "); + + // Valves.ForEach(o => + // { + // //if (!o.Visible) return; + // valveStringBuilder.AppendLine(o.ToString() + $"0"); + // }); + // string valveString = valveStringBuilder.ToString(); + + // StringBuilder pumpStringBuilder = new StringBuilder(); + + // pumpStringBuilder.AppendLine(";ID Node1 Node2 Diameter Type Setting MinorLoss "); + + // Pumps.ForEach(o => + // { + // //if (!o.Visible) return; + // pumpStringBuilder.AppendLine(o.ToString() + $"0"); + // }); + // string pumpString = pumpStringBuilder.ToString(); + + + // StringBuilder curveStringBuilder = new StringBuilder(); + + + + // //pumps.ForEach(o => + // //{ + // // if (!o.Visible || !o.Datasets.ContainsKey("娴侀噺鎵▼鏇茬嚎")) return; + // // curveStringBuilder.AppendLine(o.Datasets["娴侀噺鎵▼鏇茬嚎"].ToString()); + // //}); + // if (dict_dataset != null) + // foreach (var kp in dict_dataset) + // { + // curveStringBuilder.AppendLine(kp.Value.ToString()); + // } + // string curveString = curveStringBuilder.ToString(); + + + // StringBuilder coorStringBuilder = new StringBuilder(); + // if (userCoorString == null) + // { + + // coorStringBuilder.AppendLine(";Node X-Coord Y-Coord"); + // Nodes.ForEach(o => coorStringBuilder.AppendLine(o.ToCoorString())); + // } + // else + // { + // coorStringBuilder.Append(userCoorString); + // } + + + + // string coorString = coorStringBuilder.ToString(); + // string output = ""; + + + + + + // StringBuilder emitterStringBuilder = new StringBuilder(); + // emitterStringBuilder.AppendLine(";Junction \tCoefficient"); + // Nodes.ForEach(o => emitterStringBuilder.Append(o.ToEmitterString())); + + + + // string emitterString = emitterStringBuilder.ToString(); + + + + + + // StringBuilder statusStringBuilder = new StringBuilder(); + // statusStringBuilder.AppendLine(";ID \tStatus/Setting\r\n"); + // Links.ForEach(o => statusStringBuilder.Append(o.ToStatusString())); + + + + // string statusString = statusStringBuilder.ToString(); + + + + // output = tempString; + + // output = ReplaceContent(output, "JUNCTIONS", junctionString); + // output = ReplaceContent(output, "RESERVOIRS", reserverString); + // output = ReplaceContent(output, "TANKS", tankString); + // output = ReplaceContent(output, "PIPES", pipeString); + // output = ReplaceContent(output, "VALVES", valveString); + // output = ReplaceContent(output, "PUMPS", pumpString); + // output = ReplaceContent(output, "CURVES", curveString); + + + // output = ReplaceContent(output, "COORDINATES", coorString); + // output = ReplaceContent(output, "EMITTERS", emitterString); + // output = ReplaceContent(output, "STATUS", statusString); + // string backupFolderPath = Path.Combine(Path.GetDirectoryName(filePath), "bk"); + // if (!Directory.Exists(backupFolderPath)) + // { + // Directory.CreateDirectory(backupFolderPath); + // } + + // string backupFileName = $"{Path.GetFileNameWithoutExtension(filePath)}_{DateTime.Now:yyyyMMddHHmmss}{Path.GetExtension(filePath)}"; + // string backupFilePath = Path.Combine(backupFolderPath, backupFileName); + // if (File.Exists(filePath)) File.Copy(filePath, backupFilePath, true); + + + // // 妫�鏌ユ枃浠舵槸鍚﹀瓨鍦� + // try + // { + // Global.ClearFileReadOnly(filePath); + + // File.WriteAllText(filePath, output); + // } + // catch (Exception ex) + // { + // MessageBox.Show(ex.Message); + // } + + // //MessageBox.Show($"淇濆瓨鎴愬姛!"); + //} + /// <summary> + /// 鏍规嵁Inp鏂囦欢璁$畻 + /// </summary> + /// <returns></returns> + public virtual List<TimePoint> Calc(string InpPath) + { + HydraulicModel.HydraulicCore epanet = new HydraulicModel.HydraulicCore(true); + var result = new List<TimePoint>(); + var err = epanet.open(InpPath, "", ""); + + if (err != 0) + { + throw new Exception($"鎵撳紑璁$畻鏂囦欢澶辫触锛歿err}"); + } + var errCal = epanet.solveH(); + if (errCal != 0) + { + throw new Exception($"璁$畻澶辫触锛歿errCal}"); + } + int nodeCount = 0, linkCount = 0; + epanet.getcount((int)CountType.Node, ref nodeCount); + epanet.getcount((int)CountType.Link, ref linkCount); + const int MAXID = 31; + + var sb = new StringBuilder(MAXID); + + for (int i = 1; i <= nodeCount; i++) + { + epanet.getnodeid(i, sb); + var arr = new string[] {"Press", "Head", "Demand" }; //System.Enum.GetValues(typeof(HydraulicModel.NodeValueType)); + var arrnum = new int[] { 10, 11, 9 }; + for (var j = 0; j < arr.Length; j++) + { + float v = 0; + var t = (HydraulicModel.NodeValueType)j; + epanet.getnodevalue(i, arrnum[j], ref v); + result.Add(new TimePoint() + { + Key = arr[j] + "_"+sb.ToString(), + Value = v, + }); + } + } + + for (int i = 1; i <= linkCount; i++) + { + epanet.getlinkid(i, sb); + //var arr = System.Enum.GetValues(typeof(HydraulicModel.LinkValueType)); + var arr = new string[] { "Flow", "Velocity", "Headloss" }; //System.Enum.GetValues(typeof(HydraulicModel.NodeValueType)); + var arrnum = new int[] { 8, 9, 10 }; + for (var j = 0; j < arr.Length; j++) + { + float v = 0; + var t = (HydraulicModel.LinkValueType)j; + epanet.getlinkvalue(i, arrnum[j], ref v); + result.Add(new TimePoint() + { + Key = arr[j] + "_" +sb.ToString(), + Value = v, + }); + } + } + return result; + } + + /// <summary> + /// 鍏堢敓鎴怚np鏂囦欢锛屽啀璁$畻 + /// </summary> + /// <returns></returns> + public virtual List<TimePoint> Calc() + { + + var inpPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"data\inp\calc.inp"); + BuildToInp(inpPath); + return Calc(inpPath); + } + + /// <summary> + /// 鏁版嵁鏈夋晥鎬ф牎楠� + /// </summary> + /// <returns></returns> + public virtual CheckModel Check() + { + var result = new CheckModel(); + + return result; + } + + private string ReplaceContent(string text, string content, string replaceString) + { + + + string str = replaceString; + + string replacedText = ReplaceCoordinatesSection(text, content, str); + + return replacedText; + //Console.WriteLine(replacedText); + } + + public static string ReplaceCoordinatesSection(string text, string content, string str) + { + string pattern = $@"(\[{content}\]).*?(\[|$)"; + + string replacedText = Regex.Replace(text, pattern, match => + { + string section = match.Groups[2].Value.Trim(); + + if (!string.IsNullOrEmpty(section)) + { + return $"{match.Groups[1].Value}\n{str}\n["; + } + else + { + return $"{match.Groups[1].Value}\n{str}\n["; + } + }, RegexOptions.Singleline); + + return replacedText; + } + + } + + + + +} diff --git a/Hydraulic/Hydro.Core/Hydro.Core.csproj b/Hydraulic/Hydro.Core/Yw.Epanet.Calcu.Core.csproj similarity index 87% rename from Hydraulic/Hydro.Core/Hydro.Core.csproj rename to Hydraulic/Hydro.Core/Yw.Epanet.Calcu.Core.csproj index 12e4508..5117ebd 100644 --- a/Hydraulic/Hydro.Core/Hydro.Core.csproj +++ b/Hydraulic/Hydro.Core/Yw.Epanet.Calcu.Core.csproj @@ -29,4 +29,8 @@ <Compile Remove="Object\LinkObject.cs" /> <Compile Remove="Object\VisualObject.cs" /> </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\Hydro.CommonBase\Hydro.CommonBase.csproj" /> + <ProjectReference Include="..\Hydro.ConfigModel\Hydro.ConfigModel.csproj" /> + </ItemGroup> </Project> \ No newline at end of file diff --git a/Hydraulic/Hydro.Core/Hydro.Core.csproj.user b/Hydraulic/Hydro.Core/Yw.Epanet.Calcu.Core.csproj.user similarity index 100% rename from Hydraulic/Hydro.Core/Hydro.Core.csproj.user rename to Hydraulic/Hydro.Core/Yw.Epanet.Calcu.Core.csproj.user diff --git a/Hydraulic/Hydro.HydraulicCore/HydraulicCore.vcxproj b/Hydraulic/Hydro.HydraulicCore/HydraulicCore.vcxproj index 8e9a251..a2d4214 100644 --- a/Hydraulic/Hydro.HydraulicCore/HydraulicCore.vcxproj +++ b/Hydraulic/Hydro.HydraulicCore/HydraulicCore.vcxproj @@ -31,7 +31,7 @@ <RootNamespace>ModelEpaCalc</RootNamespace> <Keyword>ManagedCProj</Keyword> <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion> - <ProjectName>Hydro.HydraulicCore</ProjectName> + <ProjectName>Yw.EPAcore.Core</ProjectName> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> diff --git a/Hydraulic/Hydro.HydraulicHelper/Hydro.HydraulicHelper.csproj b/Hydraulic/Hydro.HydraulicHelper/Hydro.HydraulicHelper.csproj index befd191..6eb755b 100644 --- a/Hydraulic/Hydro.HydraulicHelper/Hydro.HydraulicHelper.csproj +++ b/Hydraulic/Hydro.HydraulicHelper/Hydro.HydraulicHelper.csproj @@ -47,7 +47,7 @@ <ProjectReference Include="..\Hydro.CodeProvider\Hydro.CodeProvider.csproj" /> <ProjectReference Include="..\Hydro.CommonBase\Hydro.CommonBase.csproj" /> <ProjectReference Include="..\Hydro.ConfigModel\Hydro.ConfigModel.csproj" /> - <ProjectReference Include="..\Hydro.HydraulicModel\Hydro.HydraulicModel.csproj" /> + <ProjectReference Include="..\Hydro.HydraulicModel\Yw.EPAnet.Core.csproj" /> </ItemGroup> <ItemGroup> <Analyzer Include="..\..\packages\Microsoft.DependencyValidation.Analyzers.0.11.0\analyzers\dotnet\cs\Microsoft.DependencyValidation.Analyzers.resources.dll" /> diff --git a/Hydraulic/Hydro.HydraulicModel/Hydro.HydraulicModel.csproj b/Hydraulic/Hydro.HydraulicModel/Yw.EPAnet.Core.csproj similarity index 100% rename from Hydraulic/Hydro.HydraulicModel/Hydro.HydraulicModel.csproj rename to Hydraulic/Hydro.HydraulicModel/Yw.EPAnet.Core.csproj diff --git a/Hydraulic/Hydro.HydraulicOptimizer/Hydro.HydraulicOptimizer.csproj b/Hydraulic/Hydro.HydraulicOptimizer/Hydro.HydraulicOptimizer.csproj index b7c56e4..35d8a83 100644 --- a/Hydraulic/Hydro.HydraulicOptimizer/Hydro.HydraulicOptimizer.csproj +++ b/Hydraulic/Hydro.HydraulicOptimizer/Hydro.HydraulicOptimizer.csproj @@ -17,9 +17,9 @@ <ProjectReference Include="..\Hydro.CodeProvider\Hydro.CodeProvider.csproj" /> <ProjectReference Include="..\Hydro.CommonBase\Hydro.CommonBase.csproj" /> <ProjectReference Include="..\Hydro.ConfigModel\Hydro.ConfigModel.csproj" /> - <ProjectReference Include="..\Hydro.Core\Hydro.Core.csproj" /> + <ProjectReference Include="..\Hydro.Core\Yw.Epanet.Calcu.Core.csproj" /> <ProjectReference Include="..\Hydro.HydraulicHelper\Hydro.HydraulicHelper.csproj" /> - <ProjectReference Include="..\Hydro.HydraulicModel\Hydro.HydraulicModel.csproj" /> + <ProjectReference Include="..\Hydro.HydraulicModel\Yw.EPAnet.Core.csproj" /> </ItemGroup> <ItemGroup> <PackageReference Include="Dapper" Version="2.1.28" /> diff --git a/Hydraulic/Hydro.Inp2.2/Hydro.Inp2.2.csproj b/Hydraulic/Hydro.Inp2.2/Hydro.Inp.csproj similarity index 100% rename from Hydraulic/Hydro.Inp2.2/Hydro.Inp2.2.csproj rename to Hydraulic/Hydro.Inp2.2/Hydro.Inp.csproj diff --git a/Hydraulic/Hydro.MapUI/Hydro.MapUI.csproj b/Hydraulic/Hydro.MapUI/Hydro.MapUI.csproj index bfa1cf6..5b262d0 100644 --- a/Hydraulic/Hydro.MapUI/Hydro.MapUI.csproj +++ b/Hydraulic/Hydro.MapUI/Hydro.MapUI.csproj @@ -55,7 +55,6 @@ <ItemGroup> <ProjectReference Include="..\Hydro.CommonBase\Hydro.CommonBase.csproj" /> <ProjectReference Include="..\Hydro.Core\Hydro.Core.csproj" /> - <ProjectReference Include="..\Hydro.Inp2.2\Hydro.Inp2.2.csproj" /> <ProjectReference Include="..\Hydro.MapView\Hydro.MapView.csproj" /> </ItemGroup> <ItemGroup> diff --git a/Hydraulic/Hydro.MapUI/Map/MapViewer.cs b/Hydraulic/Hydro.MapUI/Map/MapViewer.cs index eb20cc1..8aa6812 100644 --- a/Hydraulic/Hydro.MapUI/Map/MapViewer.cs +++ b/Hydraulic/Hydro.MapUI/Map/MapViewer.cs @@ -3,7 +3,7 @@ using DevExpress.XtraEditors.Filtering; using Hydro.CommonBase; using Hydro.Core.Model; -using Hydro.Inp; +using Hydro.Core; //using ConfigApp; //using DevExpress.Diagram.Core.Layout; //using DevExpress.DirectX.NativeInterop.Direct2D; diff --git a/Hydraulic/Hydro.MapView/Common/MapObjectExtensions.cs b/Hydraulic/Hydro.MapView/Common/MapObjectExtensions.cs index c4e0d99..aa23090 100644 --- a/Hydraulic/Hydro.MapView/Common/MapObjectExtensions.cs +++ b/Hydraulic/Hydro.MapView/Common/MapObjectExtensions.cs @@ -1,4 +1,4 @@ -锘縰sing Hydro.Inp; +锘縰sing Hydro.Core; using System; using System.Collections.Generic; using System.ComponentModel; diff --git a/Hydraulic/Hydro.MapView/Hydro.MapView.csproj b/Hydraulic/Hydro.MapView/Hydro.MapView.csproj index 0970430..f4014f9 100644 --- a/Hydraulic/Hydro.MapView/Hydro.MapView.csproj +++ b/Hydraulic/Hydro.MapView/Hydro.MapView.csproj @@ -32,7 +32,6 @@ <ProjectReference Include="..\Hydro.ConfigModel\Hydro.ConfigModel.csproj" /> <ProjectReference Include="..\Hydro.Core\Hydro.Core.csproj" /> <ProjectReference Include="..\Hydro.HydraulicModel\Hydro.HydraulicModel.csproj" /> - <ProjectReference Include="..\Hydro.Inp2.2\Hydro.Inp2.2.csproj" /> </ItemGroup> <ItemGroup> <PackageReference Include="MathNet.Numerics" Version="4.1.0" /> diff --git a/Hydraulic/Hydro.MapView/MapViewNetWork.cs b/Hydraulic/Hydro.MapView/MapViewNetWork.cs index b776855..d99cb73 100644 --- a/Hydraulic/Hydro.MapView/MapViewNetWork.cs +++ b/Hydraulic/Hydro.MapView/MapViewNetWork.cs @@ -1,5 +1,5 @@ 锘縰sing Hydro.Core.Model; -using Hydro.Inp; +//using Hydro.Inp; using Newtonsoft.Json.Linq; using Newtonsoft.Json; using System; diff --git a/Hydraulic/Hydro.MapView/Model/RepeaterViewModel.cs b/Hydraulic/Hydro.MapView/Model/RepeaterViewModel.cs index 42b653c..2ce6a44 100644 --- a/Hydraulic/Hydro.MapView/Model/RepeaterViewModel.cs +++ b/Hydraulic/Hydro.MapView/Model/RepeaterViewModel.cs @@ -1,5 +1,5 @@ 锘縰sing Hydro.CommonBase; -using Hydro.Inp; +using Hydro.Core; using System; using System.Collections.Generic; using System.ComponentModel; diff --git a/Hydraulic/Hydro.MapView/Template/Template.cs b/Hydraulic/Hydro.MapView/Template/Template.cs index a43dc2b..3043aa3 100644 --- a/Hydraulic/Hydro.MapView/Template/Template.cs +++ b/Hydraulic/Hydro.MapView/Template/Template.cs @@ -1,5 +1,5 @@ 锘縰sing Hydro.CommonBase; -using Hydro.Inp; +//using Hydro.Inp; using Newtonsoft.Json; using System; using System.Collections.Generic; diff --git a/Hydraulic/Hydro.Revit2022/Hydro.Revit2022.csproj b/Hydraulic/Hydro.Revit2022/Hydro.Revit2022.csproj index c21dfa4..2b68eb1 100644 --- a/Hydraulic/Hydro.Revit2022/Hydro.Revit2022.csproj +++ b/Hydraulic/Hydro.Revit2022/Hydro.Revit2022.csproj @@ -24,6 +24,5 @@ </ItemGroup> <ItemGroup> <ProjectReference Include="..\Hydro.Core\Hydro.Core.csproj" /> - <ProjectReference Include="..\Hydro.Inp2.2\Hydro.Inp2.2.csproj" /> </ItemGroup> </Project> \ No newline at end of file diff --git a/Hydro.ClientCore/Hydro.Tool.csproj b/Hydro.ClientCore/Hydro.Tool.csproj index af57e82..cd48f09 100644 --- a/Hydro.ClientCore/Hydro.Tool.csproj +++ b/Hydro.ClientCore/Hydro.Tool.csproj @@ -23,7 +23,6 @@ <ProjectReference Include="..\Hydraulic\Hydro.CommonBase\Hydro.CommonBase.csproj" /> <ProjectReference Include="..\Hydraulic\Hydro.Core\Hydro.Core.csproj" /> <ProjectReference Include="..\Hydraulic\Hydro.HydraulicOptimizer\Hydro.HydraulicOptimizer.csproj" /> - <ProjectReference Include="..\Hydraulic\Hydro.Inp2.2\Hydro.Inp2.2.csproj" /> <ProjectReference Include="..\Hydraulic\Hydro.MapUI\Hydro.MapUI.csproj" /> <ProjectReference Include="..\Hydraulic\Hydro.MapView\Hydro.MapView.csproj" /> </ItemGroup> diff --git a/HydroV1.1Core.sln b/HydroV1.1Core.sln index a9653a5..76d30d2 100644 --- a/HydroV1.1Core.sln +++ b/HydroV1.1Core.sln @@ -8,8 +8,6 @@ EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Hydro.Core", "Hydraulic\Hydro.Core\Hydro.Core.csproj", "{CA211620-16A7-4953-929D-723A5F9D3239}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Hydro.Inp2.2", "Hydraulic\Hydro.Inp2.2\Hydro.Inp2.2.csproj", "{FFFBE974-BA86-420D-AA27-6DB215017C8C}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Hydro.MapUI", "Hydraulic\Hydro.MapUI\Hydro.MapUI.csproj", "{50A0264A-17C1-4132-BF90-91E4BA593C88}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Hydro.MapView", "Hydraulic\Hydro.MapView\Hydro.MapView.csproj", "{18E2E3D7-508E-4781-A760-BA852564E409}" @@ -65,24 +63,6 @@ {CA211620-16A7-4953-929D-723A5F9D3239}.Release|x64.Build.0 = Release|Any CPU {CA211620-16A7-4953-929D-723A5F9D3239}.Release|x86.ActiveCfg = Release|Any CPU {CA211620-16A7-4953-929D-723A5F9D3239}.Release|x86.Build.0 = Release|Any CPU - {FFFBE974-BA86-420D-AA27-6DB215017C8C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FFFBE974-BA86-420D-AA27-6DB215017C8C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FFFBE974-BA86-420D-AA27-6DB215017C8C}.Debug|x64.ActiveCfg = Debug|Any CPU - {FFFBE974-BA86-420D-AA27-6DB215017C8C}.Debug|x64.Build.0 = Debug|Any CPU - {FFFBE974-BA86-420D-AA27-6DB215017C8C}.Debug|x86.ActiveCfg = Debug|Any CPU - {FFFBE974-BA86-420D-AA27-6DB215017C8C}.Debug|x86.Build.0 = Debug|Any CPU - {FFFBE974-BA86-420D-AA27-6DB215017C8C}.dll_test|Any CPU.ActiveCfg = Debug|Any CPU - {FFFBE974-BA86-420D-AA27-6DB215017C8C}.dll_test|Any CPU.Build.0 = Debug|Any CPU - {FFFBE974-BA86-420D-AA27-6DB215017C8C}.dll_test|x64.ActiveCfg = Debug|Any CPU - {FFFBE974-BA86-420D-AA27-6DB215017C8C}.dll_test|x64.Build.0 = Debug|Any CPU - {FFFBE974-BA86-420D-AA27-6DB215017C8C}.dll_test|x86.ActiveCfg = Debug|Any CPU - {FFFBE974-BA86-420D-AA27-6DB215017C8C}.dll_test|x86.Build.0 = Debug|Any CPU - {FFFBE974-BA86-420D-AA27-6DB215017C8C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FFFBE974-BA86-420D-AA27-6DB215017C8C}.Release|Any CPU.Build.0 = Release|Any CPU - {FFFBE974-BA86-420D-AA27-6DB215017C8C}.Release|x64.ActiveCfg = Release|Any CPU - {FFFBE974-BA86-420D-AA27-6DB215017C8C}.Release|x64.Build.0 = Release|Any CPU - {FFFBE974-BA86-420D-AA27-6DB215017C8C}.Release|x86.ActiveCfg = Release|Any CPU - {FFFBE974-BA86-420D-AA27-6DB215017C8C}.Release|x86.Build.0 = Release|Any CPU {50A0264A-17C1-4132-BF90-91E4BA593C88}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {50A0264A-17C1-4132-BF90-91E4BA593C88}.Debug|Any CPU.Build.0 = Debug|Any CPU {50A0264A-17C1-4132-BF90-91E4BA593C88}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -305,7 +285,6 @@ EndGlobalSection GlobalSection(NestedProjects) = preSolution {CA211620-16A7-4953-929D-723A5F9D3239} = {5B5DE24F-D205-4B5A-A439-8EA61C1B23C7} - {FFFBE974-BA86-420D-AA27-6DB215017C8C} = {5B5DE24F-D205-4B5A-A439-8EA61C1B23C7} {50A0264A-17C1-4132-BF90-91E4BA593C88} = {5B5DE24F-D205-4B5A-A439-8EA61C1B23C7} {18E2E3D7-508E-4781-A760-BA852564E409} = {5B5DE24F-D205-4B5A-A439-8EA61C1B23C7} {78653BED-368A-470D-A021-929F2E583313} = {5B5DE24F-D205-4B5A-A439-8EA61C1B23C7} -- Gitblit v1.9.3