jsketcher/test/coreTests/testCases/craftExtrudeBasicShapes.js
2022-06-25 15:19:49 -07:00

207 lines
6 KiB
JavaScript

import {assertFaceOrigination, assertFaceRole} from '../utils/asserts';
import {createPlaneAndOpenSketcher} from '../utils/scripts';
export const TEST_MODE = 'modellerUI';
export async function testExtrudeFromSketch(env, ui) {
let [sketcherUI, sketchedFace] = await createPlaneAndOpenSketcher(ui);
let seg1 = sketcherUI.addSegment(-100, -100, 100, -100);
let seg2 = sketcherUI.addSegment(100, -100, 100, 100);
let seg3 = sketcherUI.addSegment(100, 100, -100, 100);
let seg4 = sketcherUI.addSegment(-100, 100, -100, -100);
ui.commitSketch();
ui.selectFaces([0, 0, -10], [0, 0, 10]);
ui.openWizard('EXTRUDE');
ui.wizardContext.updateParam('length', 200);
await ui.wizardOK();
let [leftFace] = ui.rayCastFaces([-110, 0, 100], [-90, 0, 100]);
let [rightFace] = ui.rayCastFaces([110, 0, 100], [90, 0, 100]);
let [topFace] = ui.rayCastFaces([0, 110, 100], [0, 90, 100]);
let [bottomFace] = ui.rayCastFaces([0, -110, 100], [0, -90, 100]);
let [frontFace] = ui.rayCastFaces([0, 0, 210], [0, 0, 190]);
let [backFace] = ui.rayCastFaces([0, 0, -10], [0, 0, 10]);
assertFaceRole(leftFace, "sweep");
assertFaceRole(rightFace, "sweep");
assertFaceRole(topFace, "sweep");
assertFaceRole(bottomFace, "sweep");
assertFaceRole(frontFace, "lid");
assertFaceRole(backFace, "base");
let sketchId = sketchedFace.defaultSketchId;
assertFaceOrigination(bottomFace, sketchId, seg1.id);
assertFaceOrigination(rightFace, sketchId, seg2.id);
assertFaceOrigination(topFace, sketchId, seg3.id);
assertFaceOrigination(leftFace, sketchId, seg4.id);
}
export async function testExtrudeArc(env, ui) {
let [sketcherUI, sketchedFace] = await createPlaneAndOpenSketcher(ui);
let arc = sketcherUI.addArc(0, 0, 100, 0, -100, 0);
let segment = sketcherUI.addSegment(100, 0, -100, 0);
// let gauge = ui.prismSurfaceGauge([-100, -100, 0], [100, -100, 0], [50, 50, 0], [-50, 50, 0] );
//
// ui.__DEBUG__.AddParametricSurface(gauge.surface);
ui.commitSketch();
ui.selectFaces([0, 0, -10], [0, 0, 10]);
ui.openWizard('EXTRUDE');
ui.wizardContext.updateParam('length', 200);
await ui.wizardOK();
let [curvedFace] = ui.rayCastFaces([0, 110, 100], [0, 90, 100]);
let [flatFace] = ui.rayCastFaces([0, -10, 100], [0, 10, 100]);
let [topFace] = ui.rayCastFaces([0, 50, 210], [0, 50, 190]);
let [bottomFace] = ui.rayCastFaces([0, 50, -10], [0, 50, 10]);
assertFaceRole(curvedFace, "sweep");
assertFaceRole(flatFace, "sweep");
assertFaceRole(topFace, "lid");
assertFaceRole(bottomFace, "base");
let sketchId = sketchedFace.defaultSketchId;
assertFaceOrigination(curvedFace, sketchId, arc.id);
assertFaceOrigination(flatFace, sketchId, segment.id);
}
export async function testExtrudeCircle(env, ui) {
let [sketcherUI, sketchedFace] = await createPlaneAndOpenSketcher(ui);
let circle = sketcherUI.addCircle(100, 100, 100);
ui.commitSketch();
ui.selectFaces([0, 0, -10], [0, 0, 10]);
ui.openWizard('EXTRUDE');
ui.wizardContext.updateParam('length', 200);
await ui.wizardOK();
let [curvedFace] = ui.rayCastFaces([100, -10, 100], [100, 10, 100]);
let [topFace] = ui.rayCastFaces([100, 100, 210], [100, 100, 190]);
let [bottomFace] = ui.rayCastFaces([100, 100, -10], [100, 100, 10]);
assertFaceRole(curvedFace, "sweep");
assertFaceRole(topFace, "lid");
assertFaceRole(bottomFace, "base");
let sketchId = sketchedFace.defaultSketchId;
assertFaceOrigination(curvedFace, sketchId, circle.id);
}
export async function testExtrudeEllipse(env, ui) {
let [sketcherUI, sketchedFace] = await createPlaneAndOpenSketcher(ui);
let ellipse = sketcherUI.addEllipse(-100, 100, 100, 100, 0, 150);
ui.commitSketch();
ui.selectFaces([0, 0, -10], [0, 0, 10]);
ui.openWizard('EXTRUDE');
ui.wizardContext.updateParam('length', 200);
await ui.wizardOK();
let [curvedFace] = ui.rayCastFaces([0, 151, 100], [0, 149, 100]);
let [topFace] = ui.rayCastFaces([0, 100, 201],[0, 100, 199]);
let [bottomFace] = ui.rayCastFaces([0, 100, -1],[0, 100, 1]);
assertFaceRole(curvedFace, "sweep");
assertFaceRole(topFace, "lid");
assertFaceRole(bottomFace, "base");
let sketchId = sketchedFace.defaultSketchId;
assertFaceOrigination(curvedFace, sketchId, ellipse.id);
}
export async function testExtrudeEllipticalArc(env, ui) {
let [sketcherUI, sketchedFace] = await createPlaneAndOpenSketcher(ui);
let eArc = sketcherUI.addEllipticalArc(-100, 100, 100, 100, 0, 150);
sketcherUI.move(100, 100, -50, 170);
sketcherUI.addSegment(eArc.a.x, eArc.a.y, eArc.b.x, eArc.b.y);
ui.commitSketch();
ui.selectFaces([0, 0, -10], [0, 0, 10]);
ui.openWizard('EXTRUDE');
ui.wizardContext.updateParam('length', 200);
await ui.wizardOK();
let [curvedFace] = ui.rayCastFaces([-110, 100, 100], [-90, 100, 100]);
let [topFace] = ui.rayCastFaces([0, 100, 201],[0, 100, 199]);
let [bottomFace] = ui.rayCastFaces([0, 100, -1],[0, 100, 1]);
assertFaceRole(curvedFace, "sweep");
assertFaceRole(topFace, "lid");
assertFaceRole(bottomFace, "base");
let sketchId = sketchedFace.defaultSketchId;
assertFaceOrigination(curvedFace, sketchId, eArc.id);
}
export async function testExtrudeBezier(env, ui) {
let [sketcherUI, sketchedFace] = await createPlaneAndOpenSketcher(ui);
let bezier = sketcherUI.addBezier(-100, 100, 100, 100, 0, 150);
sketcherUI.move(bezier.cp2.x, bezier.cp2.y, bezier.cp2.x, bezier.cp1.y);
sketcherUI.addSegment(bezier.a.x, bezier.a.y, 0, 0);
sketcherUI.addSegment(bezier.b.x, bezier.b.y, 0, 0);
ui.commitSketch();
ui.selectFaces([0, 0, -10], [0, 0, 10]);
ui.openWizard('EXTRUDE');
ui.wizardContext.updateParam('length', 200);
await ui.wizardOK();
let [curvedFace] = ui.rayCastFaces([0, 178, 50], [0, 170, 50]);
let [topFace] = ui.rayCastFaces([0, 100, 201],[0, 100, 199]);
let [bottomFace] = ui.rayCastFaces([0, 100, -1],[0, 100, 1]);
assertFaceRole(curvedFace, "sweep");
assertFaceRole(topFace, "lid");
assertFaceRole(bottomFace, "base");
let sketchId = sketchedFace.defaultSketchId;
assertFaceOrigination(curvedFace, sketchId, bezier.id);
}