From a065e5b0be89ae860c570ca835d6968a121bc7f1 Mon Sep 17 00:00:00 2001 From: ChenX Date: Wed, 9 Aug 2023 17:34:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D:=E4=BA=8C=E7=BB=B4=E5=88=80?= =?UTF-8?q?=E8=B7=AF=E5=9C=A8=E4=BA=8C=E7=BB=B4=E7=BA=BF=E6=A1=86=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E4=B8=8B=E6=9B=B4=E6=96=B0=E9=97=AE=E9=A2=98=20fix=20?= =?UTF-8?q?#I7RJ39?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/DatabaseServices/Entity/Board.ts | 2 ++ src/DatabaseServices/Entity/Extrude.ts | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/DatabaseServices/Entity/Board.ts b/src/DatabaseServices/Entity/Board.ts index 8cf9697d0..b73db0e14 100644 --- a/src/DatabaseServices/Entity/Board.ts +++ b/src/DatabaseServices/Entity/Board.ts @@ -1360,6 +1360,8 @@ export class Board extends ExtrudeSolid } //#endregion + protected get Has2DPath() { return this._2DModelingList.length > 0; } + //二维刀路切割后返回几何体 override UpdateMeshGeom(geo: Geometry): BufferGeometry { diff --git a/src/DatabaseServices/Entity/Extrude.ts b/src/DatabaseServices/Entity/Extrude.ts index d2ce2a63e..7e3508d73 100644 --- a/src/DatabaseServices/Entity/Extrude.ts +++ b/src/DatabaseServices/Entity/Extrude.ts @@ -1978,6 +1978,8 @@ export class ExtrudeSolid extends Entity return geo as BufferGeometry; } + protected get Has2DPath() { return false; } + protected _EdgeGeometry: EdgesGeometry | BufferGeometry; get EdgeGeometry() { @@ -1991,7 +1993,7 @@ export class ExtrudeSolid extends Entity return this._EdgeGeometry; //这里我们超过100就用这个,为了性能 和MaxDrawGrooveCount不一致 - if (this.grooves.length > 100 || this.grooves.every(g => equaln(g.thickness, this.thickness)) || this.grooves.length === 0) + if (this.grooves.length > 100 || this.grooves.every(g => equaln(g.thickness, this.thickness)) || (this.grooves.length === 0 && !this.Has2DPath)) { let coords = FastExtrudeEdgeGeometry(this, this.ColorIndex, 12, true); let edgeGeo = new BufferGeometry();