From 2fdec267eb5f6ffff6ef7cd13059683d0266c8e8 Mon Sep 17 00:00:00 2001 From: ChenX Date: Wed, 14 Jun 2023 17:14:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D:=E5=A4=9A=E6=AE=B5=E7=BA=BF?= =?UTF-8?q?=E5=90=88=E5=B9=B6=E9=95=9C=E5=83=8F=E7=9A=84=E5=9C=86=E5=BC=A7?= =?UTF-8?q?=E6=97=B6,=E5=87=B8=E5=BA=A6=E9=94=99=E8=AF=AF,fix=20#I7DHNJ?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/DatabaseServices/Entity/Polyline.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/DatabaseServices/Entity/Polyline.ts b/src/DatabaseServices/Entity/Polyline.ts index cd0414a93..64a4dcd87 100644 --- a/src/DatabaseServices/Entity/Polyline.ts +++ b/src/DatabaseServices/Entity/Polyline.ts @@ -859,7 +859,14 @@ export class Polyline extends Curve } else if (cu instanceof Arc) { - this._LineData.push({ pt: cuSp2, bul: cu.Bul }); + let x = new Vector3().setFromMatrixColumn(cu.OCSNoClone, 0); + let y = new Vector3().setFromMatrixColumn(cu.OCSNoClone, 1); + let cuZ = x.cross(y); + + let dir = equalv3(this.Normal, cuZ, 1e-4) ? 1 : -1; + let bul = cu.Bul * dir; + + this._LineData.push({ pt: cuSp2, bul: bul }); this._LineData.push({ pt: cuEp2, bul: 0 }); } else if (cu instanceof Polyline) @@ -935,7 +942,11 @@ export class Polyline extends Curve } else if (cu instanceof Arc) { - let dir = equalv3(this.Normal, cu.Normal.negate()) ? -1 : 1; + let x = new Vector3().setFromMatrixColumn(cu.OCSNoClone, 0); + let y = new Vector3().setFromMatrixColumn(cu.OCSNoClone, 1); + let cuZ = x.cross(y); + + let dir = equalv3(this.Normal, cuZ, 1e-4) ? 1 : -1; let bul = cu.Bul * dir; if (linkType === LinkType.SpSp) {