mirror of
https://github.com/xibyte/jsketcher
synced 2025-12-24 01:15:25 +01:00
fix primitives off of datum
This commit is contained in:
parent
54d577cfcc
commit
25e1000856
8 changed files with 92 additions and 34 deletions
|
|
@ -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<PrimitiveBoxParams> = {
|
||||
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<PrimitiveBoxParams> = {
|
|||
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);
|
||||
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<PrimitiveConeParams> = {
|
||||
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<PrimitiveConeParams> =
|
|||
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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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<PrimitiveCylinderParams> = {
|
||||
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<PrimitiveCylinderPa
|
|||
let occ = ctx.occService;
|
||||
const oci = occ.commandInterface;
|
||||
|
||||
//pcylinder cy 5 10
|
||||
oci.pcylinder("cy", params.diameter / 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.pcylinder("cy", "csys", params.diameter / 2, params.height);
|
||||
|
||||
return occ.utils.applyBooleanModifier(["cy"], params.boolean);
|
||||
|
||||
|
|
|
|||
|
|
@ -3,17 +3,19 @@ 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 PrimitiveSphereParams {
|
||||
radius: number,
|
||||
locations: {},
|
||||
locations: MDatum,
|
||||
boolean: BooleanDefinition,
|
||||
}
|
||||
|
||||
export const PrimitiveSphereOperation: OperationDescriptor<PrimitiveSphereParams> = {
|
||||
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<PrimitiveSphereParams
|
|||
let occ = ctx.occService;
|
||||
const oci = occ.commandInterface;
|
||||
|
||||
//pSphere cy 5 10
|
||||
oci.psphere("Sphere", params.radius);
|
||||
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.psphere("Sphere", "csys", params.radius);
|
||||
|
||||
return occ.utils.applyBooleanModifier(["Sphere"], params.boolean);
|
||||
|
||||
|
|
|
|||
|
|
@ -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 PrimitiveTorusParams {
|
||||
radius: number,
|
||||
tubeRadius: number,
|
||||
locations: {},
|
||||
locations: MDatum,
|
||||
boolean: BooleanDefinition,
|
||||
}
|
||||
|
||||
export const PrimitiveTorusOperation: OperationDescriptor<PrimitiveTorusParams> = {
|
||||
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<PrimitiveTorusParams>
|
|||
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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Reference in a new issue