Пример #1
0
        public void FrameNamingTest()
        {
            var provider = new AmlDocument();
            var frame    = new FrameProperty(provider);

            Assert.Equal("Frame", frame.Name);
        }
 public void LoadTest()
 {
     var document  = CAEXDocument.LoadFromFile(@"D:\test.aml");
     var provider  = new AmlDocument(document);
     var ie        = document.CAEXFile.InstanceHierarchy.First().InternalElement.First();
     var factory   = new KinematicFactory();
     var kinematic = factory.Create <Kinematic>(ie, provider);
 }
        public void Test1()
        {
            const string asm1Name  = "Slider";
            const string asm2Name  = "Bed Assembly";
            const string part1Name = "Base";
            const string part2Name = "Bed";
            const string part3Name = "Flange";

            var doc     = new AmlDocument();
            var project = new ProjectViewModel(doc);

            doc.CaexDocument.CAEXFile.InstanceHierarchy.Insert(project.CaexObject as InstanceHierarchyType);

            var asm1 = new AssemblyViewModel(doc)
            {
                Name = asm1Name
            };
            var asm2 = new AssemblyViewModel(doc)
            {
                Name = asm2Name
            };
            var part1 = new PartViewModel(doc)
            {
                Name = part1Name
            };
            var part2 = new PartViewModel(doc)
            {
                Name = part2Name
            };
            var part3 = new PartViewModel(doc)
            {
                Name = part3Name
            };

            project.Parts.Add(asm1);

            asm1.Parts.Add(asm2);
            asm1.Parts.Add(part1);

            asm2.Parts.Add(part2);
            asm2.Parts.Add(part3);

            var stream = doc.CaexDocument.SaveToStream(true);

            var caex = CAEXDocument.LoadFromStream(stream);
            var doc2 = new AmlDocument(caex);
            var ih   = doc2.CaexDocument.CAEXFile.InstanceHierarchy.First;
            var vm   = new ProjectViewModel(ih, doc2);
        }
        public void SerDesTest()
        {
            var provider = new AmlDocument();

            var expected = new KinematicJointValue(provider)
            {
                Name         = "foobar",
                Value        = 1d,
                DefaultValue = 3d,
                Minimum      = -10d,
                Maximum      = 20d
            };

            var value = new KinematicJointValue((AttributeType)expected.CaexObject, provider);

            Assert.Equal(expected.Name, value.Name);
            Assert.Equal(expected.Value, value.Value);
            Assert.Equal(expected.Minimum, value.Minimum);
            Assert.Equal(expected.Maximum, value.Maximum);


            var ie = provider.CaexDocument.Create <InternalElementType>();
            var ih = provider.CaexDocument.Create <InstanceHierarchyType>();

            ie.Attribute.Insert((AttributeType)expected.CaexObject);
            ih.InternalElement.Insert(ie);
            provider.CaexDocument.CAEXFile.InstanceHierarchy.Insert(ih);

            var fullPath = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName());

            provider.CaexDocument.SaveToFile(fullPath, true);

            var d = CAEXDocument.LoadFromFile(fullPath);
            var p = new AmlDocument(d);

            File.Delete(fullPath);

            value = new KinematicJointValue(d.CAEXFile.InstanceHierarchy.First().InternalElement.First().Attribute.First(), provider);

            Assert.Equal(expected.Name, value.Name);
            Assert.Equal(expected.Value, value.Value);
            Assert.Equal(expected.Minimum, value.Minimum);
            Assert.Equal(expected.Maximum, value.Maximum);
        }
        public void SetDhParameterMatrixTest()
        {
            var document = new AmlDocument();

            const double expectedTheta = 0;
            const double expectedD     = 0;
            const double expectedA     = 290;
            const double expectedAlpha = -90;

            var frame = new FrameProperty(document);

            frame.SetDhParameters(expectedTheta, expectedD, expectedA, expectedAlpha);

            frame.ComputeDhParameter(out var theta, out var d, out var a, out var alpha);

            Assert.Equal(expectedTheta, theta, 6);
            Assert.Equal(expectedD, d, 6);
            Assert.Equal(expectedA, a, 6);
            Assert.Equal(expectedAlpha, alpha, 6);
        }
Пример #6
0
        public void SerDesTest()
        {
            // create view model
            var provider = new AmlDocument();
            var link     = new KinematicLink(provider);

            var flange = new Flange(provider);

            flange.Type = FlangeType.Base;
            flange.Frame.SetDhParameters(0, 10, 0, 90);

            link.Flanges.Add(flange);

            // get model
            var model = link.CaexObject as InternalElementType;

            // create new view model based on model
            var link2 = new KinematicLink(model, provider);

            // compare
            Assert.Equal(link.Flanges.Count, link2.Flanges.Count);
        }
        public void FactoryTest()
        {
            var provider = new AmlDocument();

            var expected = new KinematicJointValue(provider)
            {
                Name         = "foobar",
                Value        = 1d,
                DefaultValue = 3d,
                Minimum      = -10d,
                Maximum      = 20d
            };

            var ie = provider.CaexDocument.Create <InternalElementType>();

            ie.Attribute.Insert((AttributeType)expected.CaexObject);
            Assert.Equal(1, ie.Attribute.Count);

            var viewModel = new InternalElementViewModel(ie, provider);
            var values    = new ViewModelCollection <KinematicJointValue>(ie.Attribute, viewModel);

            Assert.Single(values);
            Assert.Equal(typeof(KinematicJointValue), values.First().GetType());
        }