From 5aa42f632c4b095f7f0537b696b5d43119f4d6a0 Mon Sep 17 00:00:00 2001 From: ChenX Date: Wed, 8 May 2019 18:17:29 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=B7=A6=E4=BE=A7=E7=89=88?= =?UTF-8?q?=E5=88=87=E5=89=B2=E5=8F=B3=E4=BE=A7=E6=9D=BF=E9=80=A0=E6=88=90?= =?UTF-8?q?=E7=9A=84=E9=94=99=E8=AF=AF(=E6=9C=AA=E6=8B=B7=E8=B4=9D?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E5=AF=BC=E8=87=B4=E6=BA=90=E5=AE=9E=E4=BD=93?= =?UTF-8?q?=E8=A2=AB=E4=BF=AE=E6=94=B9),=E4=BF=AE=E6=AD=A3=E9=80=A0?= =?UTF-8?q?=E5=9E=8B=E8=BD=AC=E6=8D=A2=E5=8E=9A=E5=BA=A6.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Add-on/BoardCutting/NonAssociativeCutting.ts | 2 +- src/DatabaseServices/Extrude.ts | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/Add-on/BoardCutting/NonAssociativeCutting.ts b/src/Add-on/BoardCutting/NonAssociativeCutting.ts index 1eb77cb8e..fb41350c8 100644 --- a/src/Add-on/BoardCutting/NonAssociativeCutting.ts +++ b/src/Add-on/BoardCutting/NonAssociativeCutting.ts @@ -45,7 +45,7 @@ export class NonAssociativeCutting implements Command { for (let br of cutBoards) { - let gs = orgBoard.ConverToLocalGroove(br); + let gs = orgBoard.ConverToLocalGroove(br.Clone()); for (let g of gs) orgBoard.AppendGroove(g); } diff --git a/src/DatabaseServices/Extrude.ts b/src/DatabaseServices/Extrude.ts index 1d891ad2a..7ed0e9141 100644 --- a/src/DatabaseServices/Extrude.ts +++ b/src/DatabaseServices/Extrude.ts @@ -674,7 +674,7 @@ export class ExtureSolid extends Entity if (isParallelTo(this.Normal, target.Normal)) { if (this.GrooveCheckPosition(target) !== Status.True) - return; + return []; return this.GrooveCheckContour(target); } @@ -725,19 +725,17 @@ export class ExtureSolid extends Entity let maxZ = tp.z + target.thickness; if (minZ <= 1e-2)//背面 { - target.Thickness = maxZ; + target.Thickness = Math.min(maxZ, this.thickness); if (minZ < -1e-4) target.ApplyMatrix( MoveMatrix(this.Normal.multiplyScalar(-minZ)) ); } else if (maxZ >= (this.thickness - 1e-3) && minZ > 0)//正面 - { target.Thickness = this.thickness - minZ; - } else return Status.False; - return Status.True; + return target.Thickness > 0 ? Status.True : Status.False; } /**