示例#1
0
    public LiteExporterForm()
    {
        InitializeComponent();
        LoadingAnimation.Image = JointResolver.Properties.Resources.LoadAnimationNewLogo;
        Instance = this;
        LoadingAnimation.WaitOnLoad               = true;
        ExporterWorker.WorkerReportsProgress      = true;
        ExporterWorker.WorkerSupportsCancellation = true;
        ExporterWorker.DoWork             += ExporterWorker_DoWork;
        ExporterWorker.RunWorkerCompleted += ExporterWorker_RunWorkerCompleted;

        Shown += delegate(object sender, EventArgs e)
        {
            if (InventorManager.Instance == null)
            {
                MessageBox.Show("Couldn't detect a running instance of Inventor.");
                return;
            }

            InventorManager.Instance.UserInterfaceManager.UserInteractionDisabled = true;

            Exporting = true;
            OnStartExport();
            ExporterWorker.RunWorkerAsync();
        };

        FormClosing += delegate(object sender, FormClosingEventArgs e)
        {
            InventorManager.Instance.UserInterfaceManager.UserInteractionDisabled = false;
        };
    }
示例#2
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);
    }