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