|
|
@ -1,5 +1,6 @@ |
|
|
|
using System.Collections.ObjectModel; |
|
|
|
using System.Collections.ObjectModel; |
|
|
|
using System.IO; |
|
|
|
using System.IO; |
|
|
|
|
|
|
|
using System.Text; |
|
|
|
using System.Windows; |
|
|
|
using System.Windows; |
|
|
|
using System.Windows.Media; |
|
|
|
using System.Windows.Media; |
|
|
|
using System.Windows.Media.Animation; |
|
|
|
using System.Windows.Media.Animation; |
|
|
@ -21,6 +22,9 @@ using HelixToolkit.Wpf; |
|
|
|
using MeshBuilder = HelixToolkit.Wpf.SharpDX.MeshBuilder; |
|
|
|
using MeshBuilder = HelixToolkit.Wpf.SharpDX.MeshBuilder; |
|
|
|
using OrthographicCamera = HelixToolkit.Wpf.SharpDX.OrthographicCamera; |
|
|
|
using OrthographicCamera = HelixToolkit.Wpf.SharpDX.OrthographicCamera; |
|
|
|
using System.Windows.Input; |
|
|
|
using System.Windows.Input; |
|
|
|
|
|
|
|
using SparkClient.Model.Extension; |
|
|
|
|
|
|
|
using SparkClient.Model.Helper; |
|
|
|
|
|
|
|
using MessageBox = SparkClient.Views.Dialog.MessageBox; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
namespace SparkClient.Views.UserControl.ViewportData.Helper; |
|
|
|
namespace SparkClient.Views.UserControl.ViewportData.Helper; |
|
|
@ -582,12 +586,16 @@ public class ViewportHelperPro |
|
|
|
/// <param name="valKey">指定数据集</param> |
|
|
|
/// <param name="valKey">指定数据集</param> |
|
|
|
/// <returns></returns> |
|
|
|
/// <returns></returns> |
|
|
|
public static List<GeometryModel3D> GenerateLineTextModels(List<Viewport3DTriangleEntity> entities, string valKey = "") |
|
|
|
public static List<GeometryModel3D> GenerateLineTextModels(List<Viewport3DTriangleEntity> entities, string valKey = "") |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
var result = new List<GeometryModel3D>(); |
|
|
|
|
|
|
|
string steps = ViewportManager.DiamondType.Split(" ").Last(); |
|
|
|
|
|
|
|
if (Common.RunMode == 0 && steps.StartsWith("S")) |
|
|
|
{ |
|
|
|
{ |
|
|
|
Logger.Info("【面文本生成】开始生成面相关文本信息"); |
|
|
|
Logger.Info("【面文本生成】开始生成面相关文本信息"); |
|
|
|
var selFacet = entities; |
|
|
|
var selFacet = entities; |
|
|
|
var selFacetType = entities.First().PlaneType; |
|
|
|
var selFacetType = entities.First().PlaneType; |
|
|
|
|
|
|
|
|
|
|
|
var result = new List<GeometryModel3D>(); |
|
|
|
|
|
|
|
if (selFacetType == PlaneType.Girdle && string.IsNullOrWhiteSpace(valKey)) |
|
|
|
if (selFacetType == PlaneType.Girdle && string.IsNullOrWhiteSpace(valKey)) |
|
|
|
{ |
|
|
|
{ |
|
|
|
// Logger.Info($"【面文本生成】 命中面{selFacetType},是腰"); |
|
|
|
// Logger.Info($"【面文本生成】 命中面{selFacetType},是腰"); |
|
|
@ -1023,6 +1031,83 @@ public class ViewportHelperPro |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
}else if (Common.RunMode == 1) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
// |
|
|
|
|
|
|
|
var selFacetType = entities.First().PlaneType; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
string step = ViewportManager.DiamondType.Split(" ").Last(); |
|
|
|
|
|
|
|
if ("S1".Equals(step)) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
try |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
//有效数据 |
|
|
|
|
|
|
|
List<Viewport3DTriangleEntity> facetTypeAll = |
|
|
|
|
|
|
|
ViewportManager.ViewportTriangle.FindAll(e => e.PlaneType == selFacetType); |
|
|
|
|
|
|
|
var groupedDic = facetTypeAll.GroupBy(entity => entity.PlaneCode) |
|
|
|
|
|
|
|
.ToDictionary(group => group.Key, group => group.ToList()); |
|
|
|
|
|
|
|
Logger.Info($"【面文本生成】 [工厂模式]同类面{groupedDic.Count}个"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
foreach (var kv in groupedDic) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
var value = kv.Value; |
|
|
|
|
|
|
|
var key = kv.Key; |
|
|
|
|
|
|
|
var facetIndex = -1; |
|
|
|
|
|
|
|
int.TryParse(key.Split("_")[1], out facetIndex); |
|
|
|
|
|
|
|
List<Vector3> facetPoints = new List<Vector3>(); |
|
|
|
|
|
|
|
value.ForEach(e => |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
facetPoints.Add(e.Point1); |
|
|
|
|
|
|
|
facetPoints.Add(e.Point2); |
|
|
|
|
|
|
|
facetPoints.Add(e.Point3); |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
var facetTextPoint = GetOffsetCenter(facetPoints, ViewportManager.CenterVector); |
|
|
|
|
|
|
|
facetIndex += 1; |
|
|
|
|
|
|
|
if (valKey.IsNullOrEmpty()) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
//显示两个值 |
|
|
|
|
|
|
|
var param = new List<string> { "CROWN_ANGLE", "CROWN_HEIGHT" }; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
StringBuilder sbShowText = new StringBuilder(); |
|
|
|
|
|
|
|
foreach (var p in param) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
var detail = ViewportManager.DiamondData[$"{p}_DETAIL"]; |
|
|
|
|
|
|
|
var paramValue = detail[$"{p}_{facetIndex}"]; |
|
|
|
|
|
|
|
var valueFloat = ValueFormat(paramValue.ToString(), p, true); |
|
|
|
|
|
|
|
sbShowText.Append(valueFloat); |
|
|
|
|
|
|
|
sbShowText.Append("\r\n"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sbShowText.Append($" {facetIndex}"); |
|
|
|
|
|
|
|
result.Add(DisplayText3D(sbShowText.ToString(), |
|
|
|
|
|
|
|
new Vector3(facetTextPoint.X, facetTextPoint.Y - 0.4f, facetTextPoint.Z))); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
//显示一个值 |
|
|
|
|
|
|
|
StringBuilder sbShowText = new StringBuilder(); |
|
|
|
|
|
|
|
var detail = ViewportManager.DiamondData[$"{valKey}_DETAIL"]; |
|
|
|
|
|
|
|
var paramValue = detail[$"{valKey}_{facetIndex}"]; |
|
|
|
|
|
|
|
var valueFloat = ValueFormat(paramValue.ToString(), valKey, true); |
|
|
|
|
|
|
|
sbShowText.Append(valueFloat); |
|
|
|
|
|
|
|
sbShowText.Append("\r\n"); |
|
|
|
|
|
|
|
sbShowText.Append($" {facetIndex}"); |
|
|
|
|
|
|
|
result.Add(DisplayText3D(sbShowText.ToString(), |
|
|
|
|
|
|
|
new Vector3(facetTextPoint.X, facetTextPoint.Y - 0.2f, facetTextPoint.Z))); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
catch (Exception ex) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
new MessageBox().Show($"面取值错误:{ex.Message}"); |
|
|
|
|
|
|
|
return result; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return result; |
|
|
|
return result; |
|
|
|