/// <summary> /// Display a file /// </summary> /// <param name="path">Full filename</param> /// <param name="previewType">Type of file</param> public void Display(string path, PreviewType previewType) { if (path == null) { return; } if (!File.Exists(path)) { throw new FileNotFoundException(path); } switch (previewType) { case PreviewType.WindowMacro: WindowMacro = new WindowMacro(); WindowMacro.Open(path, EplanProject); SetVariantCombinations(WindowMacro); break; case PreviewType.SymbolMacro: SymbolMacro = new SymbolMacro(); SymbolMacro.Open(path, EplanProject); SetVariantCombinations(SymbolMacro); break; case PreviewType.PageMacro: PageMacro = new PageMacro(); PageMacro.Open(path, EplanProject); SetVariantCombinations(PageMacro); break; default: throw new ArgumentOutOfRangeException(nameof(previewType), previewType, null); } }
private void SetVariantCombinations(PageMacro pageMacro) { _previewControl.VariantsCombinations = new ObservableCollection <VariantCombination>(); _previewControl.PreviewType = PreviewType.PageMacro; VariantCombination variantCombination = new VariantCombination(PreviewType.PageMacro); variantCombination.PreviewObject = pageMacro; for (int index = 0; index < pageMacro.Pages.Length; index++) { var page = pageMacro.Pages[index]; variantCombination.RepresentationType = WindowMacro.Enums.RepresentationType.Default; Variant variant = new Variant(variantCombination); if (!page.Properties.PAGE_NOMINATIOMN.IsEmpty) { variant.Description = page.Properties.PAGE_NOMINATIOMN.ToMultiLangString() .GetStringToDisplay(MultiLanguage.GuiLanguage); variant.Description = Regex.Replace(variant.Description, @"\r\n?|\n", " "); } variant.Index = index; variantCombination.Variants.Add(variant); } _previewControl.VariantsCombinations.Add(variantCombination); _previewControl.SelectedVariantCombination = _previewControl.VariantsCombinations.FirstOrDefault(); _previewControl.CheckControls(); }
private void Draw() { if (SelectedVariant != null) { switch (PreviewType) { case PreviewType.WindowMacro: WindowMacro windowMacro = (WindowMacro)SelectedVariantCombination.PreviewObject; windowMacro.ChangeCurrentVariant(SelectedVariantCombination.RepresentationType, SelectedVariant.Index); Preview.DrawingService.CreateDisplayList(windowMacro); Preview.DrawEplan(); break; case PreviewType.SymbolMacro: SymbolMacro symbolMacro = (SymbolMacro)SelectedVariantCombination.PreviewObject; symbolMacro.ChangeCurrentVariant(SelectedVariantCombination.RepresentationType, SelectedVariant.Index); Preview.DrawingService.CreateDisplayList(symbolMacro); Preview.DrawEplan(); symbolMacro.Dispose(); break; case PreviewType.PageMacro: PageMacro pageMacro = (PageMacro)SelectedVariantCombination.PreviewObject; Preview.DrawingService.CreateDisplayList(pageMacro.Pages[SelectedVariant.Index]); Preview.DrawEplan(); break; default: throw new ArgumentOutOfRangeException(); } } }
/// <summary> /// Generates a project with the given GenerateablePageMacros /// </summary> /// <param name="projectLinkFilePath">EPLAN project file (*.elk)</param> /// <param name="projectTemplateFilePath">EPLAN template project (*.zw9)</param> /// <param name="generatablePageMacros">List of GeneratablePageMaros</param> public static void Generate(string projectLinkFilePath, string projectTemplateFilePath, List <GeneratablePageMacro> generatablePageMacros) { var project = Create(projectLinkFilePath, projectTemplateFilePath, false); project.RemoveAllPages(); Insert insert = new Insert(); var pageCount = project.Pages.Length; // needed cause of overwrite foreach (var generatablePageMacro in generatablePageMacros) { // Load pages from macro PageMacro pageMacro = new PageMacro(); pageMacro.Open(generatablePageMacro.Filename, project); foreach (var page in pageMacro.Pages) { // Rename pageCount++; PagePropertyList pagePropertyList = page.NameParts; if (generatablePageMacro.LocationIdentifierIdentifier != null) { pagePropertyList[Properties.Page.DESIGNATION_FUNCTIONALASSIGNMENT] = generatablePageMacro.LocationIdentifierIdentifier.FunctionAssignment; pagePropertyList[Properties.Page.DESIGNATION_PLANT] = generatablePageMacro.LocationIdentifierIdentifier.Plant; pagePropertyList[Properties.Page.DESIGNATION_PLACEOFINSTALLATION] = generatablePageMacro.LocationIdentifierIdentifier.PlaceOfInstallation; pagePropertyList[Properties.Page.DESIGNATION_LOCATION] = generatablePageMacro.LocationIdentifierIdentifier.Location; pagePropertyList[Properties.Page.DESIGNATION_USERDEFINED] = generatablePageMacro.LocationIdentifierIdentifier.UserDefinied; } pagePropertyList[Properties.Page.PAGE_COUNTER] = pageCount; page.NameParts = pagePropertyList; new NameService(page).EvaluateAndSetAllNames(); } // Insert pagemacro insert.PageMacro(pageMacro, project, null, PageMacro.Enums.NumerationMode.Number); } }
public static void ExportPageMacro(Project project, string pageMacroFile, string fullFilename, bool isFrameVisible = true) { using (PageMacro pageMacro = new PageMacro()) { // Have to insert pages into project because its not working with pageMacro.Pages.First() pageMacro.Open(pageMacroFile, project); // Set temp structure for (var index = 0; index < pageMacro.Pages.Length; index++) { var pageMacroPage = pageMacro.Pages[index]; pageMacroPage.NameParts[Properties.Page.PAGE_COUNTER] = "SvgExportUtility" + index; } var storableObjects = new Insert().PageMacro(pageMacro, project, null, PageMacro.Enums.NumerationMode.None); var newPages = storableObjects.OfType <Page>().ToList(); for (var index = 0; index < newPages.Count; index++) { var newPage = newPages[index]; var path = Path.GetDirectoryName(fullFilename); var filename = Path.GetFileNameWithoutExtension(fullFilename) + "_" + (index + 1) + ".svg"; // ReSharper disable once AssignNullToNotNullAttribute filename = Path.Combine(path, filename); if (File.Exists(fullFilename)) { File.Delete(fullFilename); } ExportPage(newPage, filename, isFrameVisible); // Remove pages after export newPage.Remove(); } } }
/// <summary> /// Init Preview object for WPF /// </summary> /// <param name="border">Border which should inhert the UserControl</param> /// <param name="projectFile">EPLAN project file to preview (*.elk)</param> public Preview(Border border, string projectFile) { // Clean WindowMacro = null; SymbolMacro = null; PageMacro = null; if (!File.Exists(projectFile)) { throw new FileNotFoundException(projectFile); } // Check if project is open var projectManager = new ProjectManager(); projectManager.LockProjectByDefault = false; //EplanProject = ProjectUtility.OpenProject(projectFile); foreach (var openProject in projectManager.OpenProjects) { if (openProject.ProjectLinkFilePath.Equals(projectFile)) { EplanProject = openProject; break; } } if (EplanProject == null) { EplanProject = projectManager.OpenProject(projectFile, ProjectManager.OpenMode.Exclusive); } DrawingService = new DrawingService(); DrawingService.DrawConnections = true; border.Child = _previewControl; _previewControl.Preview = this; }
/// <summary> /// Displays the given PageMacro /// </summary> /// <param name="pageMacro">EPLAN PageMacro</param> public void Display(PageMacro pageMacro) { PageMacro = pageMacro; SetVariantCombinations(PageMacro); }
/// <summary> /// Generates a project with the given GenerateablePageMacros /// </summary> /// <param name="projectLinkFilePath">EPLAN project file (*.elk)</param> /// <param name="projectTemplateFilePath">EPLAN template project (*.zw9)</param> /// <param name="generatablePageMacros">List of GeneratablePageMaros</param> public static void Generate(string projectLinkFilePath, string projectTemplateFilePath, List<GeneratablePageMacro> generatablePageMacros) { var project = Create(projectLinkFilePath, projectTemplateFilePath, false); project.RemoveAllPages(); Insert insert = new Insert(); var pageCount = project.Pages.Length; // needed cause of overwrite foreach (var generatablePageMacro in generatablePageMacros) { // Load pages from macro PageMacro pageMacro = new PageMacro(); pageMacro.Open(generatablePageMacro.Filename, project); foreach (var page in pageMacro.Pages) { // Rename pageCount++; PagePropertyList pagePropertyList = page.NameParts; if (generatablePageMacro.LocationIdentifierIdentifier != null) { pagePropertyList[Properties.Page.DESIGNATION_FUNCTIONALASSIGNMENT] = generatablePageMacro.LocationIdentifierIdentifier.FunctionAssignment; pagePropertyList[Properties.Page.DESIGNATION_PLANT] = generatablePageMacro.LocationIdentifierIdentifier.Plant; pagePropertyList[Properties.Page.DESIGNATION_PLACEOFINSTALLATION] = generatablePageMacro.LocationIdentifierIdentifier.PlaceOfInstallation; pagePropertyList[Properties.Page.DESIGNATION_LOCATION] = generatablePageMacro.LocationIdentifierIdentifier.Location; pagePropertyList[Properties.Page.DESIGNATION_USERDEFINED] = generatablePageMacro.LocationIdentifierIdentifier.UserDefinied; } pagePropertyList[Properties.Page.PAGE_COUNTER] = pageCount; page.NameParts = pagePropertyList; new NameService(page).EvaluateAndSetAllNames(); } // Insert pagemacro insert.PageMacro(pageMacro, project, null, PageMacro.Enums.NumerationMode.Number); } }