/// <summary>
    /// Export a robot from Inventor
    /// </summary>
    public void LoadFromInventor()
    {
        if (SkeletonBase != null && !WarnUnsaved())
        {
            return;
        }

        try
        {
            var exporterThread = new Thread(() =>
            {
                exporter = new ExporterForm(ExporterSettings);

                exporter.ShowDialog();
            });

            exporterThread.SetApartmentState(ApartmentState.STA);
            exporterThread.Start();

            exporterThread.Join();

            GC.Collect();
        }
        catch (System.Runtime.InteropServices.InvalidComObjectException)
        {
        }
        catch (Exception e)
        {
            MessageBox.Show(e.Message);
            return;
        }

        ReloadPanels();
    }
Esempio n. 2
0
 public void Close()
 {
     if (form == null)
     {
         return;
     }
     form.Dispose();
     form = null;
 }
Esempio n. 3
0
 public static bool disposeForm()
 {
     if (form != null)
     {
         form.Dispose();
         form = null;
     }
     return(true);
 }
Esempio n. 4
0
        /// <summary>
        /// Entry point of the plug in
        /// Write "toBabylon" in the Maya console to start it
        /// </summary>
        /// <param name="argl"></param>
        public override void doIt(MArgList argl)
        {
            MGlobal.displayInfo("Start Maya Plugin\n");
            ExporterForm BabylonExport = new ExporterForm();

            BabylonExport.Show();
            BabylonExport.BringToFront();
            BabylonExport.WindowState = FormWindowState.Normal;
            // DoExport();
        }
Esempio n. 5
0
    public ExporterForm(PluginSettingsForm.PluginSettingsValues settings)
    {
        InitializeComponent();

        Components = new List <ComponentOccurrence>();

        oldConsole = Console.Out;

        newConsole = new TextboxWriter(logText);
        Console.SetOut(newConsole);

        label1.Text       = "";
        labelOverall.Text = "";

        buttonSaveLog.Enabled = false;
        buttonSaveLog.Visible = false;

        ExporterSettings = settings;

        FormClosed += delegate(object sender, FormClosedEventArgs e)
        {
            Console.SetOut(oldConsole);
            if (exporterProgressThread != null && exporterProgressThread.IsAlive)
            {
                exporterProgressThread.Abort();
            }
            if (exporterThread != null && exporterThread.IsAlive)
            {
                exporterThread.Abort();
            }
            Cleanup();
        };

        buttonStart.Click += delegate(object sender, EventArgs e)
        {
            if (!finished)
            {
                StartExporter();

                buttonStart.Enabled = false;
            }
            else
            {
                Close();
            }
        };

        System.Windows.Forms.Application.Idle += delegate(object sender, EventArgs e)
        {
            newConsole.printQueue();
        };

        Instance = this;
    }
Esempio n. 6
0
    /// <summary>
    /// Export a robot from Inventor
    /// </summary>
    public bool ExportMeshes(bool warnUnsaved = false)
    {
        if (SkeletonBase != null && warnUnsaved && !WarnUnsaved())
        {
            return(false);
        }

        try
        {
            var exporterThread = new Thread(() =>
            {
#if LITEMODE
                liteExporter = new LiteExporterForm();
                liteExporter.ShowDialog();
#else
                exporter = new ExporterForm(PluginSettings);
                exporter.ShowDialog();
#endif
            });

            exporterThread.SetApartmentState(ApartmentState.STA);
            exporterThread.Start();

            exporterThread.Join();

            GC.Collect();
        }
        catch (InvalidComObjectException)
        {
        }
        catch (TaskCanceledException)
        {
            return(true);
        }
        catch (Exception e)
        {
            MessageBox.Show(e.Message);
            return(false);
        }

        List <RigidNode_Base> nodes = SkeletonBase.ListAllNodes();

        for (int i = 0; i < Meshes.Count; i++)
        {
            ((OGL_RigidNode)nodes[i]).loadMeshes(Meshes[i]);
        }
        RobotSaveAs(NameRobotForm.NameMode.Initial);

        ReloadPanels();
        return(true);
    }
Esempio n. 7
0
 /// <summary>
 /// Entry point of the plug in
 /// Write "toBabylon" in the Maya console to start it
 /// </summary>
 /// <param name="argl"></param>
 public override void doIt(MArgList argl)
 {
     if (form == null)
     {
         form = new ExporterForm();
     }
     form.Show();
     form.BringToFront();
     form.WindowState   = FormWindowState.Normal;
     form.closingByUser = () => { return(disposeForm()); };
     // TODO - save states - FORM: checkboxes and inputs. MEL: reselected meshes / nodes?
     form.closingByShutDown = () => { return(disposeForm()); };
     // form.closingByCrash = () => { return disposeForm(); };
 }
    public ExporterForm(ExporterSettingsForm.ExporterSettingsValues settings)
    {
        InitializeComponent();

        Components = new List<ComponentOccurrence>();

        oldConsole = Console.Out;

        newConsole = new TextboxWriter(logText);
        Console.SetOut(newConsole);

        logText.ForeColor = System.Drawing.Color.FromArgb((int)SynthesisGUI.ExporterSettings.generalTextColor);
        logText.BackColor = System.Drawing.Color.FromArgb((int)SynthesisGUI.ExporterSettings.generalBackgroundColor);

        label1.Text = "";
        labelOverall.Text = "";

        buttonSaveLog.Enabled = false;
        buttonSaveLog.Visible = false;

        ExporterSettings = settings;

        FormClosed += delegate(object sender, FormClosedEventArgs e)
        {
            Console.SetOut(oldConsole);
            if (exporterProgressThread != null && exporterProgressThread.IsAlive) exporterProgressThread.Abort();
            if (exporterThread != null && exporterThread.IsAlive) exporterThread.Abort();
            Cleanup();
        };

        buttonStart.Click += delegate(object sender, EventArgs e)
        {
            if (!finished)
            {
                StartExporter();

                buttonStart.Enabled = false;
            }
            else Close();
        };

        System.Windows.Forms.Application.Idle += delegate(object sender, EventArgs e)
        {
            newConsole.printQueue();
        };

        Instance = this;
    }
Esempio n. 9
0
 /// <summary>
 /// Entry point of the plug in
 /// Write "toBabylon" in the Maya console to start it
 /// </summary>
 /// <param name="argl"></param>
 public override void doIt(MArgList argl)
 {
     if (form == null)
     {
         form = new ExporterForm();
     }
     form.Show();
     form.BringToFront();
     form.WindowState = FormWindowState.Normal;
     form.FormClosed += (object sender, FormClosedEventArgs e) =>
     {
         if (form == null)
         {
             return;
         }
         form.Dispose();
         form = null;
     };
 }