Skip to content

Commit e6504f6

Browse files
fixed bugs that were caused by extended properties on cube and cylinder
1 parent 02941d9 commit e6504f6

3 files changed

Lines changed: 14 additions & 3 deletions

File tree

packages/dev/occt/lib/services/base/solids.service.ts

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ export class SolidsService {
3232

3333
createBox(inputs: Inputs.OCCT.BoxDto): TopoDS_Solid {
3434
let center = [...inputs.center];
35+
if (inputs.originOnCenter === undefined) {
36+
inputs.originOnCenter = true;
37+
}
3538
if (!inputs.originOnCenter) {
3639
center = [center[0], center[1] + inputs.height / 2, center[2]];
3740
}
@@ -40,6 +43,9 @@ export class SolidsService {
4043

4144
createCube(inputs: Inputs.OCCT.CubeDto): TopoDS_Solid {
4245
let center = [...inputs.center];
46+
if (inputs.originOnCenter === undefined) {
47+
inputs.originOnCenter = true;
48+
}
4349
if (!inputs.originOnCenter) {
4450
center = [center[0], center[1] + inputs.size / 2, center[2]];
4551
}
@@ -56,7 +62,12 @@ export class SolidsService {
5662
createCylinder(inputs: Inputs.OCCT.CylinderDto): TopoDS_Solid {
5763
const dir = inputs.direction ? inputs.direction : [0., 1., 0.];
5864
let result;
59-
const angle = this.vectorHelperService.degToRad(inputs.angle);
65+
let angle;
66+
if (inputs.angle === undefined) {
67+
angle = Math.PI * 2;
68+
} else {
69+
angle = this.vectorHelperService.degToRad(inputs.angle);
70+
}
6071
const cyl = this.entitiesService.bRepPrimAPIMakeCylinder(
6172
inputs.center,
6273
dir as Base.Vector3,

packages/dev/occt/lib/services/shapes/edge.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -371,7 +371,7 @@ describe("OCCT edge unit tests", () => {
371371
});
372372

373373
it("should get edge lengths", async () => {
374-
const cylinder = occHelper.entitiesService.bRepPrimAPIMakeCylinder([0, 0, 0], [0, 1, 0], 1, 2, 360);
374+
const cylinder = occHelper.entitiesService.bRepPrimAPIMakeCylinder([0, 0, 0], [0, 1, 0], 1, 2, Math.PI * 2);
375375
const edges = edge.getEdges({ shape: cylinder });
376376
const lengths = edge.getEdgesLengths({ shapes: edges });
377377
expect(lengths.length).toBe(3);

packages/dev/occt/lib/services/shapes/solid.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ describe("OCCT solid unit tests", () => {
6464
});
6565

6666
it("should create a cylinder solid", async () => {
67-
const cylinder = solid.createCylinder({ radius: 2, height: 2, center: [0, 0, 0], direction: [0, 0, 1] });
67+
const cylinder = solid.createCylinder({ radius: 2, height: 2, center: [0, 0, 0], direction: [0, 0, 1], angle: 360 });
6868
expect(solid.getSolidVolume({ shape: cylinder })).toBeCloseTo(25.13274122871834);
6969
cylinder.delete();
7070
});

0 commit comments

Comments
 (0)