private void HandlePackCommand(FileInfo project, DirectoryInfo dir, bool overwrite) { var modelBuilder = new Model3MFBuilder(); var projectFile = ProjectFile.Load(project.FullName); modelBuilder.Set3D2PFile(project.FullName); if (!string.IsNullOrEmpty(projectFile.Readme)) { modelBuilder.SetReadme(Path.GetFullPath(projectFile.Readme, project.DirectoryName)); } if (!string.IsNullOrEmpty(projectFile.Thumbnail)) { modelBuilder.SetThumbnail(Path.GetFullPath(projectFile.Thumbnail, project.DirectoryName)); } foreach (var stl in projectFile.StlInfoList) { modelBuilder.AddStl(Path.GetFullPath(stl.RelativePath, project.DirectoryName)); } var targetFilepath = Path.Combine(dir.FullName, $"{projectFile.Name}.3mf"); Console.WriteLine($"Creating '{targetFilepath}' ..."); modelBuilder.Write3MF(targetFilepath, overwrite); }
public void ShouldSetAttachmentSuccessfully() { // Arrange var builder = new Model3MFBuilder(); // Act builder.Set3D2PFile("TestData/3D2P.json"); builder.Write3MF("TestData/Test.3mf", true); // Assert var model = new Model3MF("TestData/Test.3mf"); Assert.IsTrue(model.GetAttachment("/Metadata/3D2P.json") != null); }
public void ShouldSetReadmeSuccessfully() { // Arrange var builder = new Model3MFBuilder(); // Act builder.SetReadme("TestData/README.md"); builder.Write3MF("TestData/Test.3mf", true); // Assert var model = new Model3MF("TestData/Test.3mf"); Assert.IsFalse(string.IsNullOrEmpty(model.Readme)); }
public void ShouldAddStlsSuccessfully() { // Arrange var builder = new Model3MFBuilder(); // Act builder.AddStl("TestData/Test1.stl"); builder.AddStl("TestData/Test2.stl"); builder.Write3MF("TestData/Test.3mf", true); // Assert var model = new Model3MF("TestData/Test.3mf"); Assert.AreEqual(2, model.Meshes.Count); }
public void ShouldExtractModelSuccesfully() { // Arrange var builder = new Model3MFBuilder(); builder.AddStl("TestData/Test1.stl"); builder.AddStl("TestData/Test2.stl"); builder.Set3D2PFile("TestData/3D2P.json"); builder.SetReadme("TestData/README.md"); builder.Write3MF("TestData/Test.3mf", true); var model = new Model3MF("TestData/Test.3mf"); // Act model.ExtractPrintProject("TestData/extracted"); // Assert Assert.IsTrue(File.Exists("TestData/extracted/stl/Test1.stl"), "Test1.stl not found!"); Assert.IsTrue(File.Exists("TestData/extracted/stl/Test2.stl"), "Test2.stl not found!"); Assert.IsTrue(File.Exists("TestData/extracted/3D2P.json"), "3D2P.json not found!"); Assert.IsTrue(File.Exists("TestData/extracted/README.md"), "README.md not found!"); Assert.IsTrue(File.ReadAllBytes("TestData/extracted/stl/Test1.stl").Length > 100); }