diff --git a/modules/workbenches/modeler/features/extrude/extrude.operation.ts b/modules/workbenches/modeler/features/extrude/extrude.operation.ts index 70b01c38..710d3f2b 100644 --- a/modules/workbenches/modeler/features/extrude/extrude.operation.ts +++ b/modules/workbenches/modeler/features/extrude/extrude.operation.ts @@ -5,12 +5,14 @@ import {EntityKind} from "cad/model/entities"; import {BooleanDefinition} from "cad/craft/schema/common/BooleanDefinition"; import {UnitVector} from "math/vector"; import {OperationDescriptor} from "cad/craft/operationPlugin"; +import {MLoop} from "cad/model/mloop"; interface ExtrudeParams { length: number; doubleSided:boolean, face: MFace; + loops: MLoop[]; direction?: UnitVector, boolean: BooleanDefinition } @@ -31,6 +33,12 @@ export const ExtrudeOperation: OperationDescriptor = { let occFaces = []; + if (params.loops?.length > 0) { + + params.loops + + } + let sketch = ctx.sketchStorageService.readSketch(face.id); if (!sketch) { occFaces.push(params.face); @@ -114,6 +122,13 @@ export const ExtrudeOperation: OperationDescriptor = { preselectionIndex: 0 }, }, + { + type: 'selection', + name: 'loops', + capture: [EntityKind.LOOP], + label: 'loops', + multi: true + }, { type: 'direction', name: 'direction',