Beispiel #1
0
        public void GeometryParallelismTest()
        {
            var document = TestUtils.DefaultsSetup();
            var solver   = new Solver(document);

            document.Transact();
            var sketchCreator = new SketchCreator(document, false);
            var sketchNode    = sketchCreator.BuildSketchNode();

            document.Commit("Added sketch");
            document.Transact();
            // Test parallelism
            var parallelMatch = new ParallelLineMatch(solver, 5.0 / 180 * Math.PI);

            var initialPosition = new Point3D(3, 1, 0);
            var currentPosition = new Point3D(4.05, 1.95, 0);
            var line            = TestUtils.Line(document, sketchNode, new Point3D(1, 1, 0), new Point3D(3, 3, 0));
            var result          = new SolverGeometricObject(line.Node);

            NodeHelper.BuildSolverInfo(result, result.Parent, 0.0872,
                                       true);
            solver.Refresh();
            var solution = parallelMatch.GeometryParallel(currentPosition, initialPosition);

            Assert.IsTrue(solution.Point.X - 4 < Precision.Confusion, "Invalid X axis parallelism");
            Assert.IsTrue(solution.Point.Y - 2 < Precision.Confusion, "Invalid Y axis parallelism");
            Assert.IsTrue(solution.Point.Z < Precision.Confusion, "Invalid Z axis parallelism");
        }
Beispiel #2
0
        public void AxisParalelism()
        {
            TestUtils.DefaultsSetup();

            var ruleMath = new ParallelLineMatch(null, 0.05);
            // Parallel with Y axis
            var initialPosition = new Point3D(100, 100, 0);
            var currentPosition = new Point3D(100.2, 200, 0);

            var solution = ruleMath.AxisParallel(currentPosition, initialPosition);

            Assert.IsTrue(solution.Point.X - 100 < Precision.Confusion, "Invalid X axis parallelism");
            Assert.IsTrue(solution.Point.Y - 200 < Precision.Confusion, "Invalid Y axis parallelism");
            Assert.IsTrue(solution.Point.Z < Precision.Confusion, "Invalid Z axis parallelism");

            // Parallel with X axis
            currentPosition = new Point3D(200, 100.2, 0);

            solution = ruleMath.AxisParallel(currentPosition, initialPosition);
            Assert.IsTrue(solution.Point.X - 200 < Precision.Confusion, "Invalid X axis parallelism");
            Assert.IsTrue(solution.Point.Y - 100 < Precision.Confusion, "Invalid Y axis parallelism");
            Assert.IsTrue(solution.Point.Z < Precision.Confusion, "Invalid Z axis parallelism");

            // Parallel with Z axis
            initialPosition = new Point3D(100, 0, 100);
            currentPosition = new Point3D(100.2, 0, 200);

            solution = ruleMath.AxisParallel(currentPosition, initialPosition);
            Assert.IsTrue(solution.Point.X - 100 < Precision.Confusion, "Invalid X axis parallelism");
            Assert.IsTrue(solution.Point.Y < Precision.Confusion, "Invalid Y axis parallelism");
            Assert.IsTrue(solution.Point.Z - 200 < Precision.Confusion, "Invalid Z axis parallelism");
        }