You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
118 lines
4.1 KiB
C#
118 lines
4.1 KiB
C#
using Newtonsoft.Json.Linq;
|
|
using Newtonsoft.Json;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Media;
|
|
using Txgy.Microseismic.BaseLib.Models;
|
|
using System.Runtime.CompilerServices;
|
|
|
|
namespace Txgy.EWS.Client.Models
|
|
{
|
|
public class CadLayerModel
|
|
{
|
|
/// <summary>
|
|
/// 层名称
|
|
/// </summary>
|
|
public string name { get; set; }
|
|
[JsonProperty(PropertyName = "linecolor")]
|
|
/// <summary>
|
|
/// 层线颜色字符串
|
|
/// </summary>
|
|
public string linecolorStr { get; set; }
|
|
[JsonIgnore]
|
|
/// <summary>
|
|
/// 线颜色
|
|
/// </summary>
|
|
public Color lineColor { get; set; }
|
|
/// <summary>
|
|
/// 层线宽度
|
|
/// </summary>
|
|
public double linewidth { get; set; }
|
|
/// <summary>
|
|
/// 线是否闭合
|
|
/// </summary>
|
|
public bool lineClose { get; set; }
|
|
/// <summary>
|
|
/// 层高度
|
|
/// </summary>
|
|
public int layerHeight { get; set; }
|
|
/// <summary>
|
|
/// 是否显示
|
|
/// </summary>
|
|
public bool isShow { get; set; }
|
|
/// <summary>
|
|
/// 文字大小
|
|
/// </summary>
|
|
public double fontSize { get; set; }
|
|
/// <summary>
|
|
/// 是否填充
|
|
/// </summary>
|
|
public bool isFill { get; set; }
|
|
public CadLayerModel()
|
|
{
|
|
|
|
}
|
|
public CadLayerModel(string name,Color lineColor,double lineWidth,bool isClose,int layerHeight)
|
|
{
|
|
|
|
}
|
|
public void SetColor()
|
|
{
|
|
string[] sts = linecolorStr.Split(',');
|
|
bool noError=true;
|
|
byte[] data = new byte[sts.Length];
|
|
if (!byte.TryParse(sts[0], out data[0])) noError = false;
|
|
if (!byte.TryParse(sts[1], out data[1])) noError = false;
|
|
if (!byte.TryParse(sts[2], out data[2])) noError = false;
|
|
lineColor = noError ? Color.FromRgb(data[0], data[1], data[2]) : Colors.Black;
|
|
}
|
|
public static List<CadLayerModel> ReadDwgTxtConfig(string configPath)
|
|
{
|
|
List<CadLayerModel> lds = new List<CadLayerModel>();
|
|
//string filePath = AppDomain.CurrentDomain.BaseDirectory +
|
|
// System.Configuration.ConfigurationManager.AppSettings["DwgSettings"].ToString();
|
|
string[] rows, cols;
|
|
using (StreamReader sr = new StreamReader(configPath))
|
|
{
|
|
rows = sr.ReadToEnd().Trim().Split(new char[] { '\n' }, StringSplitOptions.RemoveEmptyEntries);
|
|
}
|
|
|
|
for (int i = 1; i < rows.Length; i++)
|
|
{
|
|
cols = rows[i].Trim('\r').Split(new char[] { '\t' }, StringSplitOptions.RemoveEmptyEntries);
|
|
string name = cols[0];
|
|
string[] ci = cols[1].Split(',');
|
|
Color color = Color.FromRgb(byte.Parse(ci[0]), byte.Parse(ci[1]), byte.Parse(ci[2]));
|
|
double lineW = double.Parse(cols[2]);
|
|
bool closeLine = true;
|
|
if (cols[3] == "0")
|
|
{
|
|
closeLine = false;
|
|
}
|
|
int layerHeight = int.Parse(cols[4]);
|
|
lds.Add(new CadLayerModel(name, color, lineW, closeLine, layerHeight));
|
|
}
|
|
return lds;
|
|
}
|
|
|
|
public static List<CadLayerModel> CreateFromJson(string jsonFile)
|
|
{
|
|
List<CadLayerModel> cadLayerModels = new List<CadLayerModel>();
|
|
StreamReader streamReader = new StreamReader(jsonFile);
|
|
string jsonRoot = streamReader.ReadToEnd(); //读全部json
|
|
//jsonRoot.Dump();
|
|
JArray jA = JArray.Parse(jsonRoot);
|
|
foreach (var element in jA)
|
|
{
|
|
CadLayerModel la = JsonConvert.DeserializeObject<CadLayerModel>(element.ToString());
|
|
cadLayerModels.Add(la);
|
|
}
|
|
return cadLayerModels;
|
|
}
|
|
}
|
|
}
|