From 2d16fdba4ed8df56cec1036318f01661010f12a1 Mon Sep 17 00:00:00 2001 From: Val Erastov Date: Tue, 5 Apr 2022 00:32:05 -0700 Subject: [PATCH] optimize double sided extrude --- .../features/extrude/extrude.operation.ts | 29 +++++++------------ 1 file changed, 10 insertions(+), 19 deletions(-) diff --git a/modules/workbenches/modeler/features/extrude/extrude.operation.ts b/modules/workbenches/modeler/features/extrude/extrude.operation.ts index 6abe9850..2af474bd 100644 --- a/modules/workbenches/modeler/features/extrude/extrude.operation.ts +++ b/modules/workbenches/modeler/features/extrude/extrude.operation.ts @@ -38,34 +38,25 @@ export const ExtrudeOperation: OperationDescriptor = { params.profiles } + const dir: UnitVector = (params.direction || face.normal()).normalize(); + let extrusionVector = dir._multiply(params.length); let sketch = ctx.sketchStorageService.readSketch(face.id); if (!sketch) { occFaces.push(params.face); } else { - occFaces = occ.utils.sketchToFaces(sketch, face.csys); + let csys = face.csys; + if (params.doubleSided) { + csys = csys.clone(); + csys.origin._minus(extrusionVector); + extrusionVector._scale(2); + } + occFaces = occ.utils.sketchToFaces(sketch, csys); } - - - - - const dir: UnitVector = params.direction || face.normal(); - - const extrusionVector = dir.normalize()._multiply(params.length).data(); - const extrusionVectorFliped = dir.normalize()._multiply(params.length).negate().data(); - - const tools = occFaces.map((faceName, i) => { const shapeName = "Tool/" + i; - oci.prism(shapeName, faceName, ...extrusionVector); - - if(params.doubleSided){ - oci.prism(shapeName + "B", faceName, ...extrusionVectorFliped); - oci.bop(shapeName, shapeName + "B"); - oci.bopfuse(shapeName); - } - + oci.prism(shapeName, faceName, ...extrusionVector.data()); // occIterateFaces(oc, shape, face => { // let role;