From 29936784ff69fa61306b1c567243e7ed2e6bae8a Mon Sep 17 00:00:00 2001
From: DYH <1742647821@qq.com>
Date: Tue, 11 Apr 2023 23:00:10 +0800
Subject: [PATCH 1/5] =?UTF-8?q?Point2d=E7=9A=84=E8=8E=B7=E5=8F=96=E4=B8=AD?=
=?UTF-8?q?=E7=82=B9=E5=87=BD=E6=95=B0=E5=90=8D=E4=B8=8EPoint3d=E7=BB=9F?=
=?UTF-8?q?=E4=B8=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/CAD/IFox.CAD.Shared/ExtensionMethod/PointEx.cs | 2 +-
.../HatchConverter.cs" | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/CAD/IFox.CAD.Shared/ExtensionMethod/PointEx.cs b/src/CAD/IFox.CAD.Shared/ExtensionMethod/PointEx.cs
index 2cfa8d2..54b3f77 100644
--- a/src/CAD/IFox.CAD.Shared/ExtensionMethod/PointEx.cs
+++ b/src/CAD/IFox.CAD.Shared/ExtensionMethod/PointEx.cs
@@ -56,7 +56,7 @@ public static double GetAngle(this Point2d startPoint, Point2d endPoint)
///
///
///
- public static Point2d GetCenter(this Point2d a, Point2d b)
+ public static Point2d GetMidPointTo(this Point2d a, Point2d b)
{
// (p1 + p2) / 2; // 溢出风险
return new Point2d(a.X * 0.5 + b.X * 0.5,
diff --git "a/src/CAD/IFox.CAD.Shared/ExtensionMethod/\346\226\260\345\273\272\345\241\253\345\205\205/HatchConverter.cs" "b/src/CAD/IFox.CAD.Shared/ExtensionMethod/\346\226\260\345\273\272\345\241\253\345\205\205/HatchConverter.cs"
index 34a1604..688bf78 100644
--- "a/src/CAD/IFox.CAD.Shared/ExtensionMethod/\346\226\260\345\273\272\345\241\253\345\205\205/HatchConverter.cs"
+++ "b/src/CAD/IFox.CAD.Shared/ExtensionMethod/\346\226\260\345\273\272\345\241\253\345\205\205/HatchConverter.cs"
@@ -25,7 +25,7 @@ class CircleData
/// 对称点2
public CircleData(PointV symmetryAxisPoint1, PointV symmetryAxisPoint2)
{
- Center = symmetryAxisPoint1.GetCenter(symmetryAxisPoint2);
+ Center = PointEx.GetMidPointTo(symmetryAxisPoint1, symmetryAxisPoint2);
Radius = symmetryAxisPoint1.GetDistanceTo(symmetryAxisPoint2) * 0.5;
}
}
--
Gitee
From 1f2d860cdd891a49f2c94d57d0a2e593f699be81 Mon Sep 17 00:00:00 2001
From: DYH <1742647821@qq.com>
Date: Tue, 11 Apr 2023 23:03:18 +0800
Subject: [PATCH 2/5] =?UTF-8?q?=E6=B7=BB=E5=8A=A0Point3d=20Z=E5=80=BC?=
=?UTF-8?q?=E5=BD=92=E9=9B=B6=E5=87=BD=E6=95=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/CAD/IFox.CAD.Shared/ExtensionMethod/PointEx.cs | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/src/CAD/IFox.CAD.Shared/ExtensionMethod/PointEx.cs b/src/CAD/IFox.CAD.Shared/ExtensionMethod/PointEx.cs
index 54b3f77..e059633 100644
--- a/src/CAD/IFox.CAD.Shared/ExtensionMethod/PointEx.cs
+++ b/src/CAD/IFox.CAD.Shared/ExtensionMethod/PointEx.cs
@@ -62,6 +62,15 @@ public static Point2d GetMidPointTo(this Point2d a, Point2d b)
return new Point2d(a.X * 0.5 + b.X * 0.5,
a.Y * 0.5 + b.Y * 0.5);
}
+ ///
+ /// Z值归零
+ ///
+ /// 点
+ /// 新点
+ internal static Point3d Z20(this Point3d point)
+ {
+ return new Point3d(point.X, point.Y, 0);
+ }
/// http://www.lee-mac.com/bulgeconversion.html
///
--
Gitee
From 02f2aaaffb62aa664c6bbdc8646d1e916bcbf621 Mon Sep 17 00:00:00 2001
From: DYH <1742647821@qq.com>
Date: Tue, 11 Apr 2023 23:55:29 +0800
Subject: [PATCH 3/5] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=8D=E4=BD=BF?=
=?UTF-8?q?=E7=94=A8DBTrans=E6=A0=B9=E6=8D=AE=E5=AF=B9=E8=B1=A1=E5=8F=A5?=
=?UTF-8?q?=E6=9F=84=E5=AD=97=E7=AC=A6=E4=B8=B2=E8=8E=B7=E5=8F=96=E5=AF=B9?=
=?UTF-8?q?=E8=B1=A1Id=E7=9A=84=E5=87=BD=E6=95=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ExtensionMethod/ObjectIdEx.cs | 24 +++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/src/CAD/IFox.CAD.Shared/ExtensionMethod/ObjectIdEx.cs b/src/CAD/IFox.CAD.Shared/ExtensionMethod/ObjectIdEx.cs
index f5ebcb6..e9333fb 100644
--- a/src/CAD/IFox.CAD.Shared/ExtensionMethod/ObjectIdEx.cs
+++ b/src/CAD/IFox.CAD.Shared/ExtensionMethod/ObjectIdEx.cs
@@ -58,6 +58,30 @@ public static IEnumerable OfType(this IEnumerable ids) wh
}
#endregion GetObject
+ ///
+ /// 根据对象句柄字符串获取对象Id
+ ///
+ /// 数据库
+ /// 句柄字符串
+ /// 对象的ObjectId
+ public static ObjectId GetObjectId(this Database db, string handleString)
+ {
+ long l;
+ try
+ {
+ l = Convert.ToInt64(handleString, 16);
+ }
+ catch
+ {
+ return ObjectId.Null;
+ }
+ var hanle = new Handle(l);
+ if (db.TryGetObjectId(hanle, out ObjectId id))
+ {
+ return id;
+ }
+ return ObjectId.Null;
+ }
///
/// id是否有效,未被删除
--
Gitee
From b9582e3b937050adf3321bd95c4d560ca10c431f Mon Sep 17 00:00:00 2001
From: DYH <1742647821@qq.com>
Date: Tue, 11 Apr 2023 23:57:21 +0800
Subject: [PATCH 4/5] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=8D=E4=BD=BF?=
=?UTF-8?q?=E7=94=A8DBTrans=E6=A0=B9=E6=8D=AE=E5=AF=B9=E8=B1=A1=E5=8F=A5?=
=?UTF-8?q?=E6=9F=84=E5=AD=97=E7=AC=A6=E4=B8=B2=E8=8E=B7=E5=8F=96=E5=AF=B9?=
=?UTF-8?q?=E8=B1=A1Id=E7=9A=84=E5=87=BD=E6=95=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ExtensionMethod/ObjectIdEx.cs | 18 ++++++------------
1 file changed, 6 insertions(+), 12 deletions(-)
diff --git a/src/CAD/IFox.CAD.Shared/ExtensionMethod/ObjectIdEx.cs b/src/CAD/IFox.CAD.Shared/ExtensionMethod/ObjectIdEx.cs
index e9333fb..c2ab322 100644
--- a/src/CAD/IFox.CAD.Shared/ExtensionMethod/ObjectIdEx.cs
+++ b/src/CAD/IFox.CAD.Shared/ExtensionMethod/ObjectIdEx.cs
@@ -66,19 +66,13 @@ public static IEnumerable OfType(this IEnumerable ids) wh
/// 对象的ObjectId
public static ObjectId GetObjectId(this Database db, string handleString)
{
- long l;
- try
+ if (long.TryParse(handleString, System.Globalization.NumberStyles.HexNumber, null, out long l))
{
- l = Convert.ToInt64(handleString, 16);
- }
- catch
- {
- return ObjectId.Null;
- }
- var hanle = new Handle(l);
- if (db.TryGetObjectId(hanle, out ObjectId id))
- {
- return id;
+ var hanle = new Handle(l);
+ if (db.TryGetObjectId(hanle, out ObjectId id))
+ {
+ return id;
+ }
}
return ObjectId.Null;
}
--
Gitee
From 80c23d9605b6853aa0d4a3787428ae2a8d297ac5 Mon Sep 17 00:00:00 2001
From: DYH <1742647821@qq.com>
Date: Wed, 12 Apr 2023 00:02:20 +0800
Subject: [PATCH 5/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9ObjectIdEx.OfType?=
=?UTF-8?q?=E5=87=BD=E6=95=B0=EF=BC=8C=E5=A2=9E=E5=8A=A0=E7=B2=BE=E7=A1=AE?=
=?UTF-8?q?=E5=8C=B9=E9=85=8D=E9=80=89=E9=A1=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ExtensionMethod/ObjectIdEx.cs | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/src/CAD/IFox.CAD.Shared/ExtensionMethod/ObjectIdEx.cs b/src/CAD/IFox.CAD.Shared/ExtensionMethod/ObjectIdEx.cs
index c2ab322..2e74dd2 100644
--- a/src/CAD/IFox.CAD.Shared/ExtensionMethod/ObjectIdEx.cs
+++ b/src/CAD/IFox.CAD.Shared/ExtensionMethod/ObjectIdEx.cs
@@ -1,4 +1,5 @@
using System.Data.Common;
+using System.Text.RegularExpressions;
namespace IFoxCAD.Cad;
@@ -50,11 +51,20 @@ public static T GetObject(this ObjectId id,
///
/// 对象类型
/// 对象id集合
+ /// 精确匹配
/// 对象id集合
- public static IEnumerable OfType(this IEnumerable ids) where T : DBObject
+ public static IEnumerable OfType(this IEnumerable ids,bool exactMatch =false) where T : DBObject
{
- string dxfName = RXClass.GetClass(typeof(T)).DxfName;
- return ids.Where(id => id.ObjectClass.DxfName == dxfName);
+ var rxc = RXClass.GetClass(typeof(T));
+ if (exactMatch)
+ {
+ var dxfName = rxc.DxfName;
+ return ids.Where(id => id.ObjectClass.DxfName == dxfName);
+ }
+ else
+ {
+ return ids.Where(id => id.ObjectClass.IsDerivedFrom(rxc));
+ }
}
#endregion GetObject
--
Gitee