public void OnModelManager_ParseModelError()
    {
        Debug.LogError("OnModelManager_ParseModelError" + "\n");
        StageManager.SetStage_Idle();

        AlertMananger.GetInstance().ShowAlertMsg("Unable to open the file.");
    }
예제 #2
0
    void onClick_connect()
    {
        if (PortConnectManager.GetInstance().IsConnected())
        {
            AlertMananger.GetInstance().ShowConfirmDialog("Disconnect", "Are you sure you want to disconnect? The printing will fail if you disconnect when printing.", this);
            return;
        }

        if (PortConnectManager.GetInstance().IsConnecting())
        {
            AlertMananger.GetInstance().ShowToast("Connecting, wait a minute.");
            return;
        }

        if (PortConnectManager.GetAllPortNames().Count == 0)
        {
            Debug.LogWarning("No port found" + "\n");
            AlertMananger.GetInstance().ShowToast("Please connect the printer to your computer using the provided USB cable.");
            return;
        }

        if (dropdown_port.value >= PortConnectManager.GetAllPortNames().Count)
        {
            AlertMananger.GetInstance().ShowToast("Selelct a port first.");
            return;
        }

        //try to connect
        _loadingMsgId = AlertMananger.GetLoadingMsgId();
        AlertMananger.GetInstance().ShowAlertLoading("Connecting...", _loadingMsgId);

        string portName = PortConnectManager.GetAllPortNames()[dropdown_port.value];

        PortConnectManager.GetInstance().Connect(portName);
    }
    private void onClick_export()
    {
        if (StageManager.GetStageList().Contains(StageManager.Stage_Enum.Gcode_Render) &&
            GcodeRenderManager.GetInstance().GetInfo().isRendered&&
            StageManager.GetCurStage() != StageManager.Stage_Enum.Gcode_Send)
        {
            if (GcodeRenderManager.GetInstance().IsInBounds())
            {
                string path        = ModelManager.GetInstance().GetInfo().modelPath;
                string defaultName = System.IO.Path.GetFileNameWithoutExtension(path);
                string exportPath  = FileDialogManager.GetInstance().ShowFileSaveDialog_Gcode(defaultName);

                if (string.IsNullOrEmpty(exportPath) || exportPath.Trim().Length == 0)
                {
                    Debug.LogWarning("Gcode export is empty");
                }
                else
                {
                    string originPath = GcodeCreateManager.GetInstance().curGcodeBean.gcodePath;
                    startSubThreadToExportGcode(originPath, exportPath);
                }
            }
            else
            {
                AlertMananger.GetInstance().ShowAlertMsg("Unable to print. The model goes beyond the work area.");
            }
        }
    }
예제 #4
0
    public void OnSendStoped()
    {
        Debug.Log("OnSendStoped" + "\n");
        AlertMananger.GetInstance().ShowAlertMsg("Printing stoped. Please do NOT touch the heated bed and nozzle.");

        //hack
        if (ConfigManager.GetInstance().GetSelectedMyBean().bean.name == "customize")
        {
            ConfigManager.GetInstance().GetSelectedMyBean().writable = true;
        }
    }
    /*************** preview ***************/
    void onClick_preview()
    {
        if (ModelManager.GetInstance().GetModel() == null)
        {
            AlertMananger.GetInstance().ShowToast("Please open a file to preview.");
            return;
        }

        if (!ModelManager.GetInstance().GetInfo().printable)
        {
            AlertMananger.GetInstance().ShowToast("Please move, scale or rotate the model so that it's within the build volume.");
            return;
        }

        if (!ConfigManager.GetInstance().GetSelectedMyBean().IsValuesAvailable())
        {
            AlertMananger.GetInstance().ShowToast("Invalid configuration. Please check.");
            GameObject.Find("panel_configDisplay").GetComponent <ControlConfigDisplay>().ShowConfigDisplayPanelAnima();
            return;
        }

        Vector3 size = ModelManager.GetInstance().GetModel().GetCurDataSize();

        if (size.x < 2 && size.y < 2 && size.z < 2)
        {
            AlertMananger.GetInstance().ShowToast("Model is too tiny to print.");
            return;
        }

        //model is too thin to print
        //todo change content of alert msg
        if (ModelManager.GetInstance().GetRenderOperateBean().size.z < ConfigManager.GetInstance().GetSelectedMyBean().bean.overrides.layer_height.default_value)
        {
            AlertMananger.GetInstance().ShowAlertMsg("The thickness of model is less than 1 layer. Modify model or decrease the value of ‘Layer Height’.");
            return;
        }

        string stlFilepath        = ModelManager.GetInstance().SaveModelAsStlFile();
        string configJsonFilePath = Application.streamingAssetsPath + "/CrossPlatform/CuraEngine/Config/" + "output.def.json";

        ConfigManager.GetInstance().GetSelectedMyBean().ArchiveForPrint(configJsonFilePath);

        if (StageManager.GetStageList().Contains(StageManager.Stage_Enum.Gcode_Render))
        {
            if (!GcodeCreateManager.GetInstance().NeedSlice(stlFilepath, configJsonFilePath))
            {
                AlertMananger.GetInstance().ShowToast("You are already in Preview.");
                return;
            }
        }

        GcodeRenderManager.GetInstance().Destroy();
        GcodeCreateManager.GetInstance().StartSubThread_CreateGcode(stlFilepath, configJsonFilePath);
    }
예제 #6
0
    /*************** GcodeSenderManager.Listener call back ***************/
    public void OnSendStarted()
    {
        Debug.Log("OnSendStarted" + "\n");
        AlertMananger.GetInstance().ShowToast("Before printing starts, it will take a few minutes to heat the heated bed and extruder.");

        //hack
        if (ConfigManager.GetInstance().GetSelectedMyBean().bean.name == "customize")
        {
            ConfigManager.GetInstance().GetSelectedMyBean().writable = false;
        }
    }
    private void doExportGcode(object obj)
    {
        List <string> list       = (List <string>)obj;
        string        originPath = list[0];
        string        exportPath = list[1];

        _loadingMsgId = AlertMananger.GetLoadingMsgId();
        AlertMananger.GetInstance().ShowAlertLoading("Exporting...", _loadingMsgId);
        //todo: may exception occured
        Debug.Log("Gcode export: " + originPath + "--->" + exportPath + "\n");
        File.Copy(originPath, exportPath, true);

        AlertMananger.GetInstance().DismissAlertLoading(_loadingMsgId);
        AlertMananger.GetInstance().ShowToast("Successfully export gcode.");
    }
    //on main thread
    public void OnModelManager_RenderModelSucceed()
    {
        Debug.Log("OnModelManager_RenderModelSucceed" + "\n");

        if (ModelManager.GetInstance().GetModel() == null)
        {
            //todo: parse exception, then alert user
            Debug.LogError("Model3d is null");
            return;
        }

        //3.set material of shellCube children
        ModelManager.GetInstance().SetPrintable(true);

        //4.add model to scence
        //rotate print space to front
        Transform transform = GameObject.Find("Print_cube").transform;

        transform.localEulerAngles = Vector3.zero;
        ModelManager.GetInstance().GetModel().renderedModel.shellCube.transform.parent = transform;
        ModelManager.GetInstance().SetModelInitialLocalPosition();

        //5.update shellCubeOriginLocalScale
        //Attention: must do it, use to scale stl model. must do it after parentCube be added into go_printCube
        ModelManager.GetInstance().GetModel().renderedModel.shellCubeOriginLocalScale = ModelManager.GetInstance().GetModel().renderedModel.shellCube.transform.localScale;

        if (ModelManager.GetInstance().GetModel() != null)
        {
            //slider
            slider_scale.value    = ModelManager.GetInstance().GetRenderOperateBean().scale;
            slider_scale.minValue = ModelManager.GetInstance().GetScaleRange().x;
            slider_scale.maxValue = ModelManager.GetInstance().GetScaleRange().y;
        }

        Vector3 size = ModelManager.GetInstance().GetCurDataSize();
        float   min  = 10.0f;

        if (Mathf.Max(size.x, size.y, size.z) < min)
        {
            AlertMananger.GetInstance().ShowAlertMsg("Model is too tiny to see, scale first");
        }
    }
 public void OnGcodeParseFailed()
 {
     Debug.Log("OnGcodeParseFailed" + "\n");
     AlertMananger.GetInstance().ShowAlertMsg("Unable to generate G-code for this model.");
 }
예제 #10
0
 public void OnPortOpenFailed(string portName, string reason)
 {
     AlertMananger.GetInstance().ShowAlertMsg("Failed to connect. The port may be used by another software.");
     AlertMananger.GetInstance().DismissAlertLoading(_loadingMsgId);
 }
예제 #11
0
 public void OnPortError(string portName, string errorMsg)
 {
     AlertMananger.GetInstance().ShowAlertMsg("Error occurs." + "\n" + errorMsg);
 }
예제 #12
0
 public void OnPortPullOut(string portName)
 {
     AlertMananger.GetInstance().ShowToast("Cable disconnected.");
 }
예제 #13
0
 public void OnPortConnectTimeOut(string portName)
 {
     AlertMananger.GetInstance().DismissAlertLoading(_loadingMsgId);
     AlertMananger.GetInstance().ShowAlertMsg("Connection timeout, try again.");
 }
예제 #14
0
 public void OnPortDisconnect(string portName)
 {
     AlertMananger.GetInstance().DismissAlertLoading(_loadingMsgId);
     AlertMananger.GetInstance().ShowToast("Disconnected from " + "\"" + portName + "\"");
 }
 public void OnModelManager_ParseModelSucceed()
 {
     Debug.Log("OnModelManager_ParseModelSucceed" + "\n");
     AlertMananger.GetInstance().ShowToast("Loading file succeed.");
 }
 /*************** ModelManager call back ***************/
 public void OnModelManager_ParseModelStarted()
 {
     Debug.Log("OnModelManager_ParseModelStarted" + "\n");
     StageManager.SetStage_Load_Model();
     AlertMananger.GetInstance().ShowToast("Start loading.");
 }
예제 #17
0
 void onClick_stop()
 {
     AlertMananger.GetInstance().ShowConfirmDialog("Printing", "Are you sure you want to stop? The printing cannot resume if you stop now.", this);
 }