diff --git a/src/DatabaseServices/Entity/Entity.ts b/src/DatabaseServices/Entity/Entity.ts index 792f7693b..d59679108 100644 --- a/src/DatabaseServices/Entity/Entity.ts +++ b/src/DatabaseServices/Entity/Entity.ts @@ -168,6 +168,17 @@ export class Entity extends CADObject DisposeThreeObj(obj); this._CacheDrawObject.clear(); } + ClearDrawOfJig() + { + let jig = this._CacheDrawObject.get(RenderType.Jig); + if (jig) + this._CacheDrawObject.delete(RenderType.Jig); + for (let [type, obj] of this._CacheDrawObject) + DisposeThreeObj(obj); + this._CacheDrawObject.clear(); + if (jig) + this._CacheDrawObject.set(RenderType.Jig, jig); + } protected _drawObject: Object3D; diff --git a/src/DatabaseServices/Entity/Extrude.ts b/src/DatabaseServices/Entity/Extrude.ts index 6b5453d9e..1be26dcf8 100644 --- a/src/DatabaseServices/Entity/Extrude.ts +++ b/src/DatabaseServices/Entity/Extrude.ts @@ -580,9 +580,9 @@ export class ExtrudeSolid extends Entity } } - this.CheckContourCurve(); if (this.objectId) { + this.CheckContourCurve(); let splitEntitys: this[] = []; this.GrooveCheckAll(splitEntitys); @@ -1143,7 +1143,7 @@ export class ExtrudeSolid extends Entity { if (this._EdgeGeometry) return this._EdgeGeometry; - + this.MeshGeometry; this._EdgeGeometry = new EdgesGeometry().FromCSG(this.CSG); return this._EdgeGeometry; } @@ -1207,8 +1207,6 @@ export class ExtrudeSolid extends Entity DisposeThreeObj(obj); this._EdgeGeometry = undefined; this._MeshGeometry = undefined; - this.MeshGeometry; - if (renderType === RenderType.Wireframe) { let l = obj as LineSegments; diff --git a/src/Editor/Jig.ts b/src/Editor/Jig.ts index 2893f9dd9..cc30adf29 100644 --- a/src/Editor/Jig.ts +++ b/src/Editor/Jig.ts @@ -32,6 +32,8 @@ export class Jig if (enOrg.Id) { enNew = enOrg.Clone(); + if (fast) + enNew.ClearDrawOfJig(); this.m_OrgEntitys.push(enOrg); enOrg.UpdateJigMaterial(); let f = new CADFiler();