internal IEnumerator LoadObject(string urlToFile, GCodeHandler source, MeshLoader loader)
    {
        if (!source.loading)
        {
            source.loading = true;
            source.disableUI();


            int    startindex = urlToFile.LastIndexOf("/") + 1;
            string savePath   = loader.dataPath + FolderToRawGCodes + urlToFile.Substring(startindex);
            source.createBlankObject(savePath);

            if (!loader.CheckForExsitingObject(urlToFile))
            {
                if (!File.Exists(savePath))
                {
                    // download gcode file from octoprint server
                    UnityWebRequest www = UnityWebRequest.Get(urlToFile);
                    yield return(www.SendWebRequest());

                    if (www.isNetworkError || www.isHttpError)
                    {
                        Debug.Log(www.error);
                    }
                    else
                    {
                        if (!Directory.Exists(loader.dataPath + "/RawGCodes/"))
                        {
                            Directory.CreateDirectory(loader.dataPath + "/RawGCodes/");
                        }
                        System.IO.File.WriteAllText(savePath, www.downloadHandler.text);
                    }
                }

                string[] Lines = File.ReadAllLines(savePath);
                Task.Run(() => loader.gcodeMeshGenerator.CreateObjectFromGCode(Lines, loader, source));
            }
            else
            {
                if (loader.loadingFromDisk == false)
                {
                    loader.path            = urlToFile;
                    loader.loadingFromDisk = true;
                }
            }
        }
    }
Example #2
0
    internal IEnumerator LoadObject(string urlToFile, GCodeHandler source, MeshLoader loader, String path = "")
    {
        if (path != "")
        {
            FolderToExportTo = path;
        }
        if (!source.loading)
        {
            source.loading = true;
            int    startindex = urlToFile.LastIndexOf("/") + 1;
            string savePath   = loader.dataPath + FolderToRawGCodes + urlToFile.Substring(startindex);

            if (!loader.CheckForExsitingObject(urlToFile))
            {
                if (!File.Exists(savePath))
                {
                    if (!Directory.Exists(loader.dataPath + "/RawGCodes/"))
                    {
                        Directory.CreateDirectory(loader.dataPath + "/RawGCodes/");
                    }
                    using (var client = new WebClient())
                    {
                        client.DownloadFile(urlToFile, savePath);
                    }
                }

                string[] Lines = File.ReadAllLines(savePath);
                loader.gcodeMeshGenerator.CreateObjectFromGCode(Lines, loader, source);
            }
            else
            {
                if (loader.loadingFromDisk == false)
                {
                    loader.path            = urlToFile;
                    loader.loadingFromDisk = true;
                }
            }
        }
        return(null);
    }