From 61898f29c0b79632fd6f4b9c98f356ffde6b2f7d Mon Sep 17 00:00:00 2001 From: DYH <1742647821@qq.com> Date: Tue, 7 Jun 2022 12:00:50 +0800 Subject: [PATCH 1/5] =?UTF-8?q?add=E5=BA=8F=E5=88=97=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ExtensionMethod/SerializeTool.cs | 169 ++++++++++++++++++ 1 file changed, 169 insertions(+) create mode 100644 src/IFoxCAD.Cad/ExtensionMethod/SerializeTool.cs diff --git a/src/IFoxCAD.Cad/ExtensionMethod/SerializeTool.cs b/src/IFoxCAD.Cad/ExtensionMethod/SerializeTool.cs new file mode 100644 index 0000000..04fc825 --- /dev/null +++ b/src/IFoxCAD.Cad/ExtensionMethod/SerializeTool.cs @@ -0,0 +1,169 @@ +using Newtonsoft.Json; + +namespace IFoxCAD.Cad +{ + /// + /// 序列化 + /// + public static class SerializeTool + { + /// + /// 序列化为Json + /// + /// + /// 对象 + /// 字符串 + /// + public static string SerializeToJson(this T obj) + { + try + { + var str = JsonConvert.SerializeObject(obj); + return str; + } + catch (System.Exception ex) + { + Env.Editor.WriteMessage(ex.Message); + return String.Empty; + } + } + /// + /// 序列化为Json + /// + /// + /// 对象 + /// 文件路径名 + /// 成功返回True + public static bool SerializeToJson(this T obj, string filename) + { + try + { + var str = JsonConvert.SerializeObject(obj); + File.WriteAllText(filename, str); + return true; + } + catch (System.Exception ex) + { + Env.Editor.WriteMessage(ex.Message); + return false; + } + } + /// + /// Json反序列化 + /// + /// + /// 文件路径名 + /// + public static T? DeserializeFromJsonFile(this string filename) + { + try + { + var str = File.ReadAllText(filename); + return JsonConvert.DeserializeObject(str); + } + catch (System.Exception ex) + { + Env.Editor.WriteMessage(ex.Message); + return default; + } + } + /// + /// Json反序列化 + /// + /// + /// JSON字符串 + /// + public static T? DeserializeFromJson(this string jsonString) + { + try + { + return JsonConvert.DeserializeObject(jsonString); + } + catch (System.Exception ex) + { + Env.Editor.WriteMessage(ex.Message); + return default; + } + } + /// + /// 序列化为二进制数组 + /// + /// + /// 对象 + /// 二进制数组 + public static byte[]? SerializeToByteArray(this T obj) + { + try + { + var str = JsonConvert.SerializeObject(obj); + return System.Text.Encoding.UTF8.GetBytes(str); + } + catch (System.Exception ex) + { + Env.Editor.WriteMessage(ex.Message); + return default; + } + } + /// + /// 序列化为二进制数组 + /// + /// + /// 对象 + /// 文件路径名 + /// 成功返回True + public static bool SerializeToByteArray(this T obj, string filename) + { + try + { + var str = JsonConvert.SerializeObject(obj); + var byteArray = System.Text.Encoding.UTF8.GetBytes(str); + File.WriteAllBytes(filename, byteArray); + return true; + } + catch (System.Exception ex) + { + Env.Editor.WriteMessage(ex.Message); + return false; + } + } + /// + /// 二进制数组反序列化 + /// + /// + /// 二进制数组 + /// + public static T? DeserializeTo(this byte[] byteArray) + { + try + { + var str = System.Text.Encoding.UTF8.GetString(byteArray); + return JsonConvert.DeserializeObject(str); + } + catch (System.Exception ex) + { + Env.Editor.WriteMessage(ex.Message); + return default; + } + } + /// + /// 二进制数组反序列化 + /// + /// + /// 二进制数组 + /// + public static T? DeserializeFromByteArrayFile(this string filename) + { + try + { + var byteArray = File.ReadAllBytes(filename); + var str = System.Text.Encoding.UTF8.GetString(byteArray); + return JsonConvert.DeserializeObject(str); + } + catch (System.Exception ex) + { + Env.Editor.WriteMessage(ex.Message); + return default; + } + } + } +} -- Gitee From 79426cc8795c76943409d2bc0edc850b03790a62 Mon Sep 17 00:00:00 2001 From: DYH <1742647821@qq.com> Date: Wed, 8 Jun 2022 04:31:21 +0000 Subject: [PATCH 2/5] update src/IFoxCAD.Cad/ExtensionMethod/PointEx.cs. --- src/IFoxCAD.Cad/ExtensionMethod/PointEx.cs | 23 +++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/IFoxCAD.Cad/ExtensionMethod/PointEx.cs b/src/IFoxCAD.Cad/ExtensionMethod/PointEx.cs index b7010b5..c534be6 100644 --- a/src/IFoxCAD.Cad/ExtensionMethod/PointEx.cs +++ b/src/IFoxCAD.Cad/ExtensionMethod/PointEx.cs @@ -1,4 +1,4 @@ -namespace IFoxCAD.Cad; +namespace IFoxCAD.Cad; public static class PointEx { @@ -20,6 +20,27 @@ public static string GetHashString(this Point3d pt, int xyz = 3, int decimalReta _ => $"({pt.X.ToString(de)},{pt.Y.ToString(de)},{pt.Z.ToString(de)})" }; } + /// + /// 两点计算弧度范围0到2Pi + /// + /// 起点 + /// 终点 + /// 方向 + /// 弧度值 + public static double GetAngle(this Point3d startPoint, Point3d endPoint, Vector3d? direction = null) + { + return startPoint.GetVectorTo(endPoint).AngleOnPlane(new Plane(Point3d.Origin, direction ?? Vector3d.ZAxis)); + } + /// + /// 两点计算弧度范围0到2Pi + /// + /// 起点 + /// 终点 + /// 弧度值 + public static double GetAngle(this Point2d startPoint, Point2d endPoint) + { + return startPoint.GetVectorTo(endPoint).Angle; + } } \ No newline at end of file -- Gitee From 2c52e375a78edceea4d8fe4776837b5e867d3971 Mon Sep 17 00:00:00 2001 From: DYH <1742647821@qq.com> Date: Wed, 15 Jun 2022 03:25:42 +0000 Subject: [PATCH 3/5] =?UTF-8?q?update=20src/IFoxCAD.Cad/ExtensionMethod/Ge?= =?UTF-8?q?ometryEx.cs.=20Polar=E5=87=BD=E6=95=B0=E5=A2=9E=E5=8A=A0point2d?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/IFoxCAD.Cad/ExtensionMethod/GeometryEx.cs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/IFoxCAD.Cad/ExtensionMethod/GeometryEx.cs b/src/IFoxCAD.Cad/ExtensionMethod/GeometryEx.cs index 84b57f7..bc4231b 100644 --- a/src/IFoxCAD.Cad/ExtensionMethod/GeometryEx.cs +++ b/src/IFoxCAD.Cad/ExtensionMethod/GeometryEx.cs @@ -1,4 +1,4 @@ -namespace IFoxCAD.Cad; +namespace IFoxCAD.Cad; using System.Drawing; using IFoxCAD.Basal; @@ -646,4 +646,16 @@ public static Point3d Polar(this Point3d pt, double ang, double len) { return pt + Vector3d.XAxis.RotateBy(ang, Vector3d.ZAxis) * len; } + /// + /// 计算指定距离和角度的点 + /// + /// 本函数仅适用于x-y平面 + /// 基点 + /// 角度,x轴正向逆时针弧度 + /// 距离 + /// 目标点 + public static Point2d Polar(this Point2d pt, double ang, double len) + { + return pt + Vector2d.XAxis.RotateBy(ang) * len; + } } -- Gitee From c5e660a5268d4e068c027f79435d18cab355b77e Mon Sep 17 00:00:00 2001 From: DYH <1742647821@qq.com> Date: Wed, 15 Jun 2022 03:29:28 +0000 Subject: [PATCH 4/5] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20src/?= =?UTF-8?q?IFoxCAD.Cad/ExtensionMethod/SerializeTool.cs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ExtensionMethod/SerializeTool.cs | 169 ------------------ 1 file changed, 169 deletions(-) delete mode 100644 src/IFoxCAD.Cad/ExtensionMethod/SerializeTool.cs diff --git a/src/IFoxCAD.Cad/ExtensionMethod/SerializeTool.cs b/src/IFoxCAD.Cad/ExtensionMethod/SerializeTool.cs deleted file mode 100644 index 04fc825..0000000 --- a/src/IFoxCAD.Cad/ExtensionMethod/SerializeTool.cs +++ /dev/null @@ -1,169 +0,0 @@ -using Newtonsoft.Json; - -namespace IFoxCAD.Cad -{ - /// - /// 序列化 - /// - public static class SerializeTool - { - /// - /// 序列化为Json - /// - /// - /// 对象 - /// 字符串 - /// - public static string SerializeToJson(this T obj) - { - try - { - var str = JsonConvert.SerializeObject(obj); - return str; - } - catch (System.Exception ex) - { - Env.Editor.WriteMessage(ex.Message); - return String.Empty; - } - } - /// - /// 序列化为Json - /// - /// - /// 对象 - /// 文件路径名 - /// 成功返回True - public static bool SerializeToJson(this T obj, string filename) - { - try - { - var str = JsonConvert.SerializeObject(obj); - File.WriteAllText(filename, str); - return true; - } - catch (System.Exception ex) - { - Env.Editor.WriteMessage(ex.Message); - return false; - } - } - /// - /// Json反序列化 - /// - /// - /// 文件路径名 - /// - public static T? DeserializeFromJsonFile(this string filename) - { - try - { - var str = File.ReadAllText(filename); - return JsonConvert.DeserializeObject(str); - } - catch (System.Exception ex) - { - Env.Editor.WriteMessage(ex.Message); - return default; - } - } - /// - /// Json反序列化 - /// - /// - /// JSON字符串 - /// - public static T? DeserializeFromJson(this string jsonString) - { - try - { - return JsonConvert.DeserializeObject(jsonString); - } - catch (System.Exception ex) - { - Env.Editor.WriteMessage(ex.Message); - return default; - } - } - /// - /// 序列化为二进制数组 - /// - /// - /// 对象 - /// 二进制数组 - public static byte[]? SerializeToByteArray(this T obj) - { - try - { - var str = JsonConvert.SerializeObject(obj); - return System.Text.Encoding.UTF8.GetBytes(str); - } - catch (System.Exception ex) - { - Env.Editor.WriteMessage(ex.Message); - return default; - } - } - /// - /// 序列化为二进制数组 - /// - /// - /// 对象 - /// 文件路径名 - /// 成功返回True - public static bool SerializeToByteArray(this T obj, string filename) - { - try - { - var str = JsonConvert.SerializeObject(obj); - var byteArray = System.Text.Encoding.UTF8.GetBytes(str); - File.WriteAllBytes(filename, byteArray); - return true; - } - catch (System.Exception ex) - { - Env.Editor.WriteMessage(ex.Message); - return false; - } - } - /// - /// 二进制数组反序列化 - /// - /// - /// 二进制数组 - /// - public static T? DeserializeTo(this byte[] byteArray) - { - try - { - var str = System.Text.Encoding.UTF8.GetString(byteArray); - return JsonConvert.DeserializeObject(str); - } - catch (System.Exception ex) - { - Env.Editor.WriteMessage(ex.Message); - return default; - } - } - /// - /// 二进制数组反序列化 - /// - /// - /// 二进制数组 - /// - public static T? DeserializeFromByteArrayFile(this string filename) - { - try - { - var byteArray = File.ReadAllBytes(filename); - var str = System.Text.Encoding.UTF8.GetString(byteArray); - return JsonConvert.DeserializeObject(str); - } - catch (System.Exception ex) - { - Env.Editor.WriteMessage(ex.Message); - return default; - } - } - } -} -- Gitee From 024840477506c5d10a4c8b41e5d5844c70986f30 Mon Sep 17 00:00:00 2001 From: DYH <1742647821@qq.com> Date: Wed, 15 Jun 2022 04:29:25 +0000 Subject: [PATCH 5/5] update src/IFoxCAD.Cad/ExtensionMethod/GeometryEx.cs. --- src/IFoxCAD.Cad/ExtensionMethod/GeometryEx.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/IFoxCAD.Cad/ExtensionMethod/GeometryEx.cs b/src/IFoxCAD.Cad/ExtensionMethod/GeometryEx.cs index bc4231b..2c1a45a 100644 --- a/src/IFoxCAD.Cad/ExtensionMethod/GeometryEx.cs +++ b/src/IFoxCAD.Cad/ExtensionMethod/GeometryEx.cs @@ -608,6 +608,16 @@ public static Point3d Point3d(this Point2d pt) { return new Point3d(pt.X, pt.Y, 0); } + /// + /// 将二维点转换为三维点 + /// + /// 二维点 + /// Z值 + /// 三维点 + public static Point3d Point3d(this Point2d pt,double z) + { + return new Point3d(pt.X, pt.Y, z); + } /// /// 获取两个点之间的中点 -- Gitee