修复:带槽的板件切割错误

pull/823/head
ChenX 5 years ago
parent 4b581e7153
commit 88b57be507

@ -222,6 +222,7 @@ export class Entity extends CADObject
for (let [, obj] of this._CacheDrawObject)
DisposeThreeObj(obj);
this._CacheDrawObject.clear();
return this;
}
ClearDrawOfJig()
{

@ -814,7 +814,7 @@ export class ExtrudeSolid extends Entity
let n2 = target.Normal;
if (isParallelTo(n1, n2))
{
target = target.Clone();
target = target.Clone().ClearDraw();
if (!equalv3(n1, n2))
{
let mtx = target._Matrix;
@ -880,7 +880,7 @@ export class ExtrudeSolid extends Entity
let projection2SideMatrix4 = new Matrix4().makeBasis(xv, yv, zv);
for (let c of contours)
{
let g = target.Clone();
let g = target.Clone().ClearDraw();
let gs = [g];
g.ContourCurve = c.Curve;
g.GrooveCheckAll(gs);
@ -1005,7 +1005,7 @@ export class ExtrudeSolid extends Entity
let grooves: ExtrudeSolid[] = [];
for (let contour of inters)
{
let ext = target.Clone();
let ext = target.Clone().ClearDraw();
ext.ContourCurve = contour.Outline.Curve;
ext.GrooveCheckAll(grooves);
grooves.push(ext);
@ -1280,6 +1280,10 @@ export class ExtrudeSolid extends Entity
return this._MeshGeometry;
this.csg = undefined;
if (this.thickness <= 0)
return new BufferGeometry();
let grooves = this.Grooves;
if (grooves.every(g => equaln(g.thickness, this.thickness)))
{

@ -1082,6 +1082,8 @@ function UnionRange(a: number, b: number, c: number, d: number, end: number): [n
function SubtractRange(a: number, b: number, c: number, d: number, end: number): Range[]
{
if (a < 0 || b < 0) return [];
if (a > b)
return [...SubtractRange(a, end, c, d, end), ...SubtractRange(0, b, c, d, end)];
if (c > d)

Loading…
Cancel
Save