diff --git a/modules/workbenches/modeler/features/primitiveBox/index.ts b/modules/workbenches/modeler/features/primitiveBox/index.ts index 500fb134..7d70f0f7 100644 --- a/modules/workbenches/modeler/features/primitiveBox/index.ts +++ b/modules/workbenches/modeler/features/primitiveBox/index.ts @@ -3,19 +3,21 @@ import {roundValueForPresentation as r} from 'cad/craft/operationHelper'; import {EntityKind} from "cad/model/entities"; import {BooleanDefinition} from "cad/craft/schema/common/BooleanDefinition"; import {OperationDescriptor} from "cad/craft/operationPlugin"; +import CSys from "math/csys"; +import {MDatum} from "cad/model/mdatum"; interface PrimitiveBoxParams { x: Number, y: Number, z: Number, - locations: {}, + locations: MDatum, boolean: BooleanDefinition, } export const PrimitiveBoxOperation: OperationDescriptor = { - id: 'PRIMITIVE_BOX', - label: 'Primitive Box', + id: 'BOX', + label: 'Box', icon: 'img/cad/cube', info: 'Primitive Box', paramsInfo: ({x, y, z}) => `(${r(x)} , ${r(y)} , ${r(z)})`, @@ -66,10 +68,16 @@ export const PrimitiveBoxOperation: OperationDescriptor = { let occ = ctx.occService; const oci = occ.commandInterface; + const csys = params.locations?.csys || CSys.ORIGIN; - oci.box("b", params.x, params.y, params.z); + oci.box("box", + "-min", csys.origin.x, csys.origin.y, csys.origin.z, + "-size", params.x, params.y, params.z, + "-dir", csys.z.x, csys.z.y, csys.z.z, + "-xdir", csys.x.x, csys.x.y, csys.x.z + ); - return occ.utils.applyBooleanModifier(["b"], params.boolean); + return occ.utils.applyBooleanModifier(["box"], params.boolean); }, } diff --git a/modules/workbenches/modeler/features/primitiveCone/index.ts b/modules/workbenches/modeler/features/primitiveCone/index.ts index e50bbc4d..158a0e97 100644 --- a/modules/workbenches/modeler/features/primitiveCone/index.ts +++ b/modules/workbenches/modeler/features/primitiveCone/index.ts @@ -3,21 +3,23 @@ import { roundValueForPresentation as r } from 'cad/craft/operationHelper'; import { EntityKind } from "cad/model/entities"; import { BooleanDefinition } from "cad/craft/schema/common/BooleanDefinition"; import { OperationDescriptor } from "cad/craft/operationPlugin"; +import {MDatum} from "cad/model/mdatum"; +import CSys from "math/csys"; interface PrimitiveConeParams { diameterA: number, diameterB: number, height: number, - locations: {}, + locations: MDatum, boolean: BooleanDefinition, } export const PrimitiveConeOperation: OperationDescriptor = { - id: 'PRIMITIVE_CONE', - label: 'Primitive Cone', + id: 'CONE', + label: 'Cone', icon: 'img/cad/cone', - info: 'Primitive Cone', + info: 'Cone', paramsInfo: ({ height, diameterA, diameterB }) => `(${r(height)} , ${r(diameterA)} , ${r(diameterB)} )`, form: [ { @@ -66,8 +68,19 @@ export const PrimitiveConeOperation: OperationDescriptor = let occ = ctx.occService; const oci = occ.commandInterface; - //pCone cy 5 10 - oci.pcone("cone", params.diameterA / 2, params.diameterB / 2, params.height); + const csys = params.locations?.csys || CSys.ORIGIN; + oci.plane("csys", + csys.origin.x, + csys.origin.y, + csys.origin.z, + csys.x.x, + csys.x.y, + csys.x.z, + csys.y.x, + csys.y.y, + csys.y.z); + + oci.pcone("cone", "csys", params.diameterA / 2, params.diameterB / 2, params.height); return occ.utils.applyBooleanModifier(["cone"], params.boolean); diff --git a/modules/workbenches/modeler/features/primitiveCylinder/index.ts b/modules/workbenches/modeler/features/primitiveCylinder/index.ts index 276126a0..6af0c135 100644 --- a/modules/workbenches/modeler/features/primitiveCylinder/index.ts +++ b/modules/workbenches/modeler/features/primitiveCylinder/index.ts @@ -3,18 +3,20 @@ import {roundValueForPresentation as r} from 'cad/craft/operationHelper'; import {EntityKind} from "cad/model/entities"; import {BooleanDefinition} from "cad/craft/schema/common/BooleanDefinition"; import {OperationDescriptor} from "cad/craft/operationPlugin"; +import {MDatum} from "cad/model/mdatum"; +import CSys from "math/csys"; interface PrimitiveCylinderParams { diameter: number, height: number, - locations: {}, + locations: MDatum, boolean: BooleanDefinition, } export const PrimitiveCylinderOperation: OperationDescriptor = { - id: 'PRIMITIVE_CYLINDER', - label: 'Primitive cylinder', + id: 'CYLINDER', + label: 'Cylinder', icon: 'img/cad/cylinder', info: 'Primitive Cylinder', paramsInfo: ({height, diameter}) => `(${r(height)} , ${r(diameter)} )`, @@ -59,8 +61,19 @@ export const PrimitiveCylinderOperation: OperationDescriptor = { - id: 'PRIMITIVE_SPHERE', - label: 'Primitive Sphere', + id: 'SPHERE', + label: 'Sphere', icon: 'img/cad/sphere', info: 'Primitive Sphere', paramsInfo: ({radius,}) => `(${r(radius)} )`, @@ -53,8 +55,19 @@ export const PrimitiveSphereOperation: OperationDescriptor = { - id: 'PRIMITIVE_TORUS', - label: 'Primitive Torus', + id: 'TORUS', + label: 'Torus', icon: 'img/cad/torus', info: 'Primitive Torus', paramsInfo: ({radius, tubeRadius}) => `(${r(radius)} , ${r(tubeRadius)} )`, @@ -59,8 +61,19 @@ export const PrimitiveTorusOperation: OperationDescriptor let occ = ctx.occService; const oci = occ.commandInterface; - //pTorus cy 5 10 - oci.ptorus("torus", params.radius, params.tubeRadius); + const csys = params.locations?.csys || CSys.ORIGIN; + oci.plane("csys", + csys.origin.x, + csys.origin.y, + csys.origin.z, + csys.x.x, + csys.x.y, + csys.x.z, + csys.y.x, + csys.y.y, + csys.y.z); + + oci.ptorus("torus", "csys", params.radius, params.tubeRadius); return occ.utils.applyBooleanModifier(["torus"], params.boolean); diff --git a/modules/workbenches/modeler/index.ts b/modules/workbenches/modeler/index.ts index 1ae920e9..8b53aaf5 100644 --- a/modules/workbenches/modeler/index.ts +++ b/modules/workbenches/modeler/index.ts @@ -46,9 +46,8 @@ export const ModelerWorkspace: WorkbenchConfig = { "EXTRUDE", "REVOLVE", "LOFT", "SWEEP", "-", "BOOLEAN", "-", "SHELL_TOOL", "FILLET_TOOL", "OFFSET_TOOL", "MIRROR_BODY", "-", - "PRIMITIVE_CYLINDER", "PRIMITIVE_BOX", "PRIMITIVE_CONE", "PRIMITIVE_SPHERE", "PRIMITIVE_TORUS", "-", + "CYLINDER", "BOX", "CONE", "SPHERE", "TORUS", "-", "HOLE_TOOL", "-", - "OCC_BOTTLE", '-', "SM_TAB","SM_FLANGE" ] } diff --git a/web/app/cad/workbench/uiConfigPlugin.js b/web/app/cad/workbench/uiConfigPlugin.js index 3132a244..38a8b898 100644 --- a/web/app/cad/workbench/uiConfigPlugin.js +++ b/web/app/cad/workbench/uiConfigPlugin.js @@ -3,7 +3,6 @@ import OperationActions from '../actions/operationActions'; import HistoryActions from '../actions/historyActions'; import UsabilityActions from '../actions/usabilityActions'; import menuConfig from './menuConfig'; -import ObjectExplorer from '../craft/ui/ObjectExplorer'; import React from 'react'; import OperationHistory from '../craft/ui/OperationHistory'; import Expressions from '../expressions/Expressions'; diff --git a/web/app/cad/workbench/workbenchesLoaderPlugin.ts b/web/app/cad/workbench/workbenchesLoaderPlugin.ts index 31ba7092..37bfac9a 100644 --- a/web/app/cad/workbench/workbenchesLoaderPlugin.ts +++ b/web/app/cad/workbench/workbenchesLoaderPlugin.ts @@ -45,7 +45,7 @@ function registerCoreOperations(ctx: WorkbenchesLoaderInputContext) { ctx.operationService.registerOperations([ planeOperation, - boxOperation, + // boxOperation, // extrudeOperation, cutOperation, revolveOperation, @@ -54,10 +54,10 @@ function registerCoreOperations(ctx: WorkbenchesLoaderInputContext) { moveDatumOperation, rotateDatumOperation, datumOperation, - sphereOperation, - cylinderOperation, - torusOperation, - coneOperation, + // sphereOperation, + // cylinderOperation, + // torusOperation, + // coneOperation, spatialCurveOperation, loftOperation, intersectionOperation,