/// <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(); }
public void Close() { if (form == null) { return; } form.Dispose(); form = null; }
public static bool disposeForm() { if (form != null) { form.Dispose(); form = null; } return(true); }
/// <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(); }
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; }
/// <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); }
/// <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; }
/// <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; }; }