diff --git a/modules/workbenches/modeler/features/extrude/extrude.operation.ts b/modules/workbenches/modeler/features/extrude/extrude.operation.ts index 710d3f2b..6abe9850 100644 --- a/modules/workbenches/modeler/features/extrude/extrude.operation.ts +++ b/modules/workbenches/modeler/features/extrude/extrude.operation.ts @@ -5,14 +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"; +import {MObject} from "cad/model/mobject"; interface ExtrudeParams { length: number; doubleSided:boolean, face: MFace; - loops: MLoop[]; + profiles: MObject[]; direction?: UnitVector, boolean: BooleanDefinition } @@ -33,9 +33,9 @@ export const ExtrudeOperation: OperationDescriptor = { let occFaces = []; - if (params.loops?.length > 0) { + if (params.profiles?.length > 0) { - params.loops + params.profiles } @@ -124,9 +124,10 @@ export const ExtrudeOperation: OperationDescriptor = { }, { type: 'selection', - name: 'loops', - capture: [EntityKind.LOOP], - label: 'loops', + name: 'profiles', + capture: [EntityKind.FACE, EntityKind.LOOP], + label: 'profiles', + optional: true, multi: true }, { diff --git a/web/app/cad/craft/datum/create/createDatumOpSchema.js b/web/app/cad/craft/datum/create/createDatumOpSchema.js index a9f67327..0ee9e78c 100644 --- a/web/app/cad/craft/datum/create/createDatumOpSchema.js +++ b/web/app/cad/craft/datum/create/createDatumOpSchema.js @@ -18,6 +18,7 @@ export default { }, rotations: { type: 'array', + optional: true, defaultValue: [], items: { type: 'object', diff --git a/web/app/cad/craft/datum/create/createDatumOperation.js b/web/app/cad/craft/datum/create/createDatumOperation.js index d0d60c2e..0cfb24a8 100644 --- a/web/app/cad/craft/datum/create/createDatumOperation.js +++ b/web/app/cad/craft/datum/create/createDatumOperation.js @@ -18,7 +18,7 @@ function updateCSys(csys, params, findFace) { } } - params.rotations.forEach(r => { + (params.rotations||[]).forEach(r => { let axis = csys[r.axis.toLowerCase()]; applyRotation(csys, csys, r.angle, axis); }); diff --git a/web/app/cad/craft/wizard/components/form/Form.tsx b/web/app/cad/craft/wizard/components/form/Form.tsx index 4f13c21e..884307d0 100644 --- a/web/app/cad/craft/wizard/components/form/Form.tsx +++ b/web/app/cad/craft/wizard/components/form/Form.tsx @@ -68,7 +68,7 @@ export function SubForm(props: {name: ParamsPathSegment, children: any}) { const formParams = useContext(FormParamsContext); const formPath = useContext(FormPathContext); - return + return {props.children} diff --git a/web/app/cad/scene/controls/pickControlPlugin.ts b/web/app/cad/scene/controls/pickControlPlugin.ts index e107dc24..072e3de1 100644 --- a/web/app/cad/scene/controls/pickControlPlugin.ts +++ b/web/app/cad/scene/controls/pickControlPlugin.ts @@ -96,7 +96,7 @@ export function activate(context) { domElement.addEventListener('mousedown', mousedown, false); domElement.addEventListener('mouseup', mouseup, false); domElement.addEventListener('dblclick', mousedblclick, false); - domElement.addEventListener('mousemove', mousemove, false); + document.addEventListener('mousemove', mousemove, false); let mouseState = { startX: 0,