예제 #1
0
        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);
        }
예제 #2
0
        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);
        }