コード例 #1
0
        public void TestGetTransformBetweenVectorsAroundPointAllDirs()
        {
            var comp = new DoubleEqualityComparerWithTolerance();

            var mathServ = new SwVectorMathService(Sw.SldWorks.IGetMathUtility());

            var transform = mathServ.GetTransformBetweenVectorsAroundPoint(
                new Vector(-0.86064621310564815, -0.45399049973946992, -0.230609457770521),
                new Vector(0, 1, 0), new Point(0, 0, 0));

            //TestDisplayOnBody(transform, "Data\\t2.sldprt", "Body-Move/Copy2");

            foreach (var d in transform.Rotation.ToArray())
            {
                Debug.Print(d.ToString());
            }

            Assert.IsTrue(transform.Translation.ToArray().SequenceEqual(new double[] { 0, 0, 0 }, comp));

            Assert.IsTrue(transform.Rotation.ToArray().SequenceEqual(new double[]
            {
                -0.356591604687574, -0.860646213105648, -0.363497624934811,
                0.860646213105648, -0.45399049973947, 0.230609457770521,
                -0.363497624934811, -0.230609457770521, 0.902601104948104
            }
                                                                     , comp));

            Assert.AreEqual(1, transform.Scale);
        }
コード例 #2
0
        public void TestGetTransformBetweenVectorsAroundPointYZ90Deg()
        {
            var comp = new DoubleEqualityComparerWithTolerance();

            var mathServ = new SwVectorMathService(Sw.SldWorks.IGetMathUtility());

            var transform = mathServ.GetTransformBetweenVectorsAroundPoint(new Vector(0, 0, 1),
                                                                           new Vector(0, 1, 0), new Point(0, 0, 0));

            //TestDisplayOnBody(transform, "Data\\t5.sldprt", "Boss-Extrude2");

            Assert.IsTrue(transform.Translation.ToArray().SequenceEqual(new double[] { 0, 0, 0 }, comp));
            Assert.IsTrue(transform.Rotation.ToArray().SequenceEqual(new double[] { 1, 0, 0, 0, 0, -1, 0, 1, 0 }, comp));
            Assert.AreEqual(1, transform.Scale);
        }