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