Added stable ids for primitive shapes

This commit is contained in:
Mike Molinari 2022-06-14 00:55:02 +00:00 committed by Val Erastov
parent 1a8fc0e49e
commit 534751b360
5 changed files with 97 additions and 16 deletions

View file

@ -119,7 +119,7 @@ export const PrimitiveBoxOperation: OperationDescriptor<PrimitiveBoxParams> = {
],
[],
[]
))
));
return occ.utils.applyBooleanModifier([box], params.boolean);
},

View file

@ -3,8 +3,9 @@ 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 { MDatum } from "cad/model/mdatum";
import CSys from "math/csys";
import { ExpectedOrderProductionAnalyzer } from "cad/craft/production/productionAnalyzer";
interface PrimitiveConeParams {
@ -82,7 +83,33 @@ export const PrimitiveConeOperation: OperationDescriptor<PrimitiveConeParams> =
oci.pcone("cone", "csys", params.diameterA / 2, params.diameterB / 2, params.height);
return occ.utils.applyBooleanModifier(["cone"], params.boolean);
const cone = occ.io.getShell("cone", new ExpectedOrderProductionAnalyzer(
[
{
id: 'F:SIDE',
productionInfo: {
role: 'sweep'
}
},
{
id: 'F:LID',
productionInfo: {
role: 'lid'
}
},
{
id: 'F:BASE',
productionInfo: {
role: 'base'
}
},
],
[],
[]
));
return occ.utils.applyBooleanModifier([cone], params.boolean);
},
}

View file

@ -5,6 +5,7 @@ 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";
import { ExpectedOrderProductionAnalyzer } from "cad/craft/production/productionAnalyzer";
interface PrimitiveCylinderParams {
@ -73,9 +74,35 @@ export const PrimitiveCylinderOperation: OperationDescriptor<PrimitiveCylinderPa
csys.y.y,
csys.y.z);
oci.pcylinder("cy", "csys", params.diameter / 2, params.height);
oci.pcylinder("cylinder", "csys", params.diameter / 2, params.height);
return occ.utils.applyBooleanModifier(["cy"], params.boolean);
const cylinder = occ.io.getShell("cylinder", new ExpectedOrderProductionAnalyzer(
[
{
id: 'F:SIDE',
productionInfo: {
role: 'sweep'
}
},
{
id: 'F:LID',
productionInfo: {
role: 'lid'
}
},
{
id: 'F:BASE',
productionInfo: {
role: 'base'
}
},
],
[],
[]
));
return occ.utils.applyBooleanModifier([cylinder], params.boolean);
},
}

View file

@ -5,7 +5,7 @@ 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";
import { ExpectedOrderProductionAnalyzer } from "cad/craft/production/productionAnalyzer";
interface PrimitiveSphereParams {
radius: number,
@ -67,9 +67,22 @@ export const PrimitiveSphereOperation: OperationDescriptor<PrimitiveSphereParams
csys.y.y,
csys.y.z);
oci.psphere("Sphere", "csys", params.radius);
oci.psphere("sphere", "csys", params.radius);
return occ.utils.applyBooleanModifier(["Sphere"], params.boolean);
const sphere = occ.io.getShell("sphere", new ExpectedOrderProductionAnalyzer(
[
{
id: 'F:SPHERE',
productionInfo: {
role: 'sweep'
}
},
],
[],
[]
));
return occ.utils.applyBooleanModifier([sphere], params.boolean);
},
}

View file

@ -1,10 +1,11 @@
import {ApplicationContext} from 'context';
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 { ApplicationContext } from 'context';
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";
import { ExpectedOrderProductionAnalyzer } from "cad/craft/production/productionAnalyzer";
interface PrimitiveTorusParams {
@ -19,7 +20,7 @@ export const PrimitiveTorusOperation: OperationDescriptor<PrimitiveTorusParams>
label: 'Torus',
icon: 'img/cad/torus',
info: 'Primitive Torus',
paramsInfo: ({radius, tubeRadius}) => `(${r(radius)} , ${r(tubeRadius)} )`,
paramsInfo: ({ radius, tubeRadius }) => `(${r(radius)} , ${r(tubeRadius)} )`,
form: [
{
type: 'number',
@ -75,7 +76,20 @@ export const PrimitiveTorusOperation: OperationDescriptor<PrimitiveTorusParams>
oci.ptorus("torus", "csys", params.radius, params.tubeRadius);
return occ.utils.applyBooleanModifier(["torus"], params.boolean);
const torus = occ.io.getShell("torus", new ExpectedOrderProductionAnalyzer(
[
{
id: 'F:TORUS',
productionInfo: {
role: 'sweep'
}
},
],
[],
[]
));
return occ.utils.applyBooleanModifier([torus], params.boolean);
},
}