public bool TwinModeNewTwin(string cutSFolder, string sSource, string sTarget, string sWPID) { try { string sNameOfData; if (sWPID == "") { sWPID = "Muster.cutsproj"; sNameOfData = "VirtualTwin"; } else { sNameOfData = sWPID; sWPID = sWPID + ".cutsproj"; } CutSKernel.Controller.CutSController cutSController = CutSKernel.Controller.CutSController.GetController(); cutSController.ScanKernelTypes(); cutSController.ClearMachineModel(); CutSKernel.Controller.ExporterController.Instance.ActiveExporter.Clear(); CutSKernel.PlugIn.CutSPluginHost pluginHost = new CutSKernel.PlugIn.CutSPluginHost(); cutSController.PluginHost.FindPlugins(cutSFolder); //string sProjectFile = sSource; // ".\\Muster.cutsproj"; string sProjectFile = System.IO.Path.Combine(sSource, "TwinBase"); sProjectFile = System.IO.Path.Combine(sProjectFile, "Muster.cutsproj"); CutSKernel.Serialization.ProjectSerializer projectSerializer = new CutSKernel.Serialization.ProjectSerializer(pluginHost, sProjectFile); var savedPlugins = projectSerializer.GetSavedPlugins(); //newModel.GetCopy().; foreach (var PlugInName in savedPlugins) { var pluginInfo = cutSController.PluginHost.GetPluginInfoForTypeName(PlugInName); if (pluginInfo == null) { string exep = "Plug in not found"; return(false); } else { if (!pluginInfo.Plugin.IsLoaded) { cutSController.PluginHost.LoadPlugin(pluginInfo); } projectSerializer.DeserializePlugin(PlugInName); } } List <string> list = projectSerializer.GetSavedPlugins(); string sDataPath = System.IO.Path.Combine(sSource, sNameOfData); System.IO.Directory.CreateDirectory(sDataPath); string sProjectFilePath = System.IO.Path.Combine(sSource, sWPID); cutSController.SaveProject(sProjectFilePath, true); } catch (Exception e) { Console.WriteLine("Exception:" + e.Message); return(false); } return(true); }
public bool TwinModeGetFromTwin(string cutSFolder, string sSource, string sValueNode, string sTarget, string sValueFile, string sGetMetaData, string sWPID) { try { string sNameOfData; if (sWPID == "") { sWPID = "Muster.cutsproj"; sNameOfData = "VirtualTwin"; } else { sNameOfData = sWPID; sWPID = sWPID + ".cutsproj"; } CutSKernel.Controller.CutSController cutSController = CutSKernel.Controller.CutSController.GetController(); cutSController.ScanKernelTypes(); cutSController.ClearMachineModel(); CutSKernel.Controller.ExporterController.Instance.ActiveExporter.Clear(); CutSKernel.PlugIn.CutSPluginHost pluginHost = new CutSKernel.PlugIn.CutSPluginHost(); pluginHost.FindPlugins(cutSFolder); //string sProjectFile = sSource; // ".\\Muster.cutsproj"; string sProjectFile = System.IO.Path.Combine(sSource, sNameOfData); sProjectFile = System.IO.Path.Combine(sProjectFile, sWPID); CutSKernel.Serialization.ProjectSerializer projectSerializer = new CutSKernel.Serialization.ProjectSerializer(pluginHost, sProjectFile); var savedPlugins = projectSerializer.GetSavedPlugins(); //newModel.GetCopy().; foreach (var PlugInName in savedPlugins) { var pluginInfo = pluginHost.GetPluginInfoForTypeName(PlugInName); if (pluginInfo == null) { string exep = "Plug in not found"; return(false); } else { if (!pluginInfo.Plugin.IsLoaded) { pluginHost.LoadPlugin(pluginInfo); } projectSerializer.DeserializePlugin(PlugInName); } } List <string> list = projectSerializer.GetSavedPlugins(); CutSKernel.Kinematic.AKinBaseObject newModel = projectSerializer.DeserializeModel(); CutSKernel.Kinematic.AKinBaseObject nextModel; cutSController.AddChildsToModel(newModel, true); // Schleife string[] asNodes = sValueNode.Split('\\'); int i = 0; // Kontrollschleife ob Nodes Vorhanden sind, wenn nicht erstellen foreach (var Node in asNodes) { i++; if (i <= asNodes.Length) { newModel = newModel.GetChildByName(Node); if (newModel == null) { Console.WriteLine("Node not found"); return(false); } } } VirtualTwin.FileNode VtFile = (VirtualTwin.FileNode)newModel.GetChildByName(sValueFile); if (VtFile == null) { Console.WriteLine("File-Node not found"); return(false); } string sDestinationFileName = VtFile.DestinationFileName; if (sGetMetaData == "true") { Dictionary <String, String> dicOfMetaData = VtFile.MetaData; String sJson = ""; sJson = JsonConvert.SerializeObject(dicOfMetaData); try { using (StreamWriter sr = new StreamWriter(System.IO.Path.Combine(sTarget, "MetaData.json"))) { sr.Write(sJson); } } catch (IOException e) { Console.WriteLine("Exception:" + e.Message); return(false); } } string sourceFile = System.IO.Path.Combine(sSource, sNameOfData); sourceFile = System.IO.Path.Combine(sourceFile, "VirtualTwin"); sourceFile = System.IO.Path.Combine(sourceFile, sDestinationFileName); string destFile = System.IO.Path.Combine(sTarget, sValueFile); System.IO.Directory.CreateDirectory(sTarget); System.IO.File.Copy(sourceFile, destFile, true); pluginHost.UnloadPlugins(); } catch (Exception e) { Console.WriteLine("Exception:" + e.Message); return(false); } return(true); }