mirror of
https://github.com/xibyte/jsketcher
synced 2025-12-06 08:25:19 +01:00
Added stable ids for primitive shapes
This commit is contained in:
parent
1a8fc0e49e
commit
534751b360
5 changed files with 97 additions and 16 deletions
|
|
@ -119,7 +119,7 @@ export const PrimitiveBoxOperation: OperationDescriptor<PrimitiveBoxParams> = {
|
|||
],
|
||||
[],
|
||||
[]
|
||||
))
|
||||
));
|
||||
|
||||
return occ.utils.applyBooleanModifier([box], params.boolean);
|
||||
},
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
},
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue