private void OnEnvironmentChange(Inventor.Environment environment, EnvironmentStateEnum environmentState, EventTimingEnum beforeOrAfter, NameValueMap context, out HandlingCodeEnum handlingCode) { try { var isEnabled = environmentState == EnvironmentStateEnum.kActivateEnvironmentState || environmentState == EnvironmentStateEnum.kResumeEnvironmentState; switch (environment.InternalName) { case "DLxDrawingEnvironment": _createTopAndLeftViewButton.IsEnabled = isEnabled; _createPartViewsFromAssemblyButton.IsEnabled = isEnabled; _exportPdfButton.IsEnabled = isEnabled; break; case "AMxAssemblyEnvironment": _generateSheetMetalDrawingsButton.IsEnabled = isEnabled; _generateMdfDrawingsButton.IsEnabled = isEnabled; _generateSubAssemblyDrawingsButton.IsEnabled = isEnabled; break; } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } handlingCode = HandlingCodeEnum.kEventNotHandled; }
/// <summary> /// Checks to make sure that you are in an assembly document and then readies for environment changing /// </summary> /// <param name="Environment"></param> /// <param name="EnvironmentState"></param> /// <param name="BeforeOrAfter"></param> /// <param name="Context"></param> /// <param name="HandlingCode"></param> private void UIEvents_OnEnvironmentChange(Inventor.Environment Environment, EnvironmentStateEnum EnvironmentState, EventTimingEnum BeforeOrAfter, NameValueMap Context, out HandlingCodeEnum HandlingCode) { if (Environment.Equals(ExporterEnv) && BeforeOrAfter == EventTimingEnum.kBefore) { if (EnvironmentState == EnvironmentStateEnum.kActivateEnvironmentState) { // User may not open documents other than assemblies if (!(Context.Item["Document"] is AssemblyDocument assembly)) { MessageBox.Show("Only assemblies can be used with the robot exporter.", "Invalid Document", MessageBoxButtons.OK); exporterBlocked = true; // Quit the exporter if (Context.Item["Document"] is DrawingDocument drawing) { ForceQuitExporter(drawing); } else if (Context.Item["Document"] is PartDocument part) { ForceQuitExporter(part); } else if (Context.Item["Document"] is PresentationDocument presentation) { ForceQuitExporter(presentation); } } // User may not open multiple documents in the exporter else if (EnvironmentEnabled) { MessageBox.Show("The exporter may only be used in one assembly at a time. " + "Please finish using the exporter in \"" + AsmDocument.DisplayName + "\" to continue.", "Too Many Assemblies", MessageBoxButtons.OK); exporterBlocked = true; ForceQuitExporter(assembly); } else { OpeningExporter(); } } else if (EnvironmentState == EnvironmentStateEnum.kTerminateEnvironmentState && EnvironmentEnabled) { if (exporterBlocked) { exporterBlocked = false; } else { ClosingExporter(); } } }
private void UserInterfaceEvents_OnEnvironmentChange(Inventor.Environment environment, EnvironmentStateEnum environmentState, EventTimingEnum beforeOrAfter, NameValueMap context, out HandlingCodeEnum handlingCode) { try { String envInternalName; envInternalName = environment.InternalName; if (envInternalName == "PMxPartEnvironment") { //enable the button when the part environment is activated or resumed if (environmentState == EnvironmentStateEnum.kActivateEnvironmentState || environmentState == EnvironmentStateEnum.kResumeEnvironmentState) { m_blockFormCmd.ButtonDefinition.Enabled = true; } //disable the button when the part environment is terminated or suspended if (environmentState == EnvironmentStateEnum.kTerminateEnvironmentState || environmentState == EnvironmentStateEnum.kSuspendEnvironmentState) { m_blockFormCmd.ButtonDefinition.Enabled = false; } } } catch (Exception e) { System.Windows.Forms.MessageBox.Show(e.ToString()); } handlingCode = HandlingCodeEnum.kEventNotHandled; }
private void OnEnvironmentChange(Inventor.Environment Environment, EnvironmentStateEnum EnvironmentState, EventTimingEnum BeforeOrAfter, NameValueMap Context, out HandlingCodeEnum HandlingCode) { if (BeforeOrAfter == EventTimingEnum.kAfter) { if (Environment.InternalName == Resources.IDC_ENV_INTERNAL_NAME) { if (EnvironmentState == EnvironmentStateEnum.kTerminateEnvironmentState) { if (null != FinishClickEvent) { FinishClickEvent(); } } } } else { if (Environment.InternalName == Resources.IDC_ENV_INTERNAL_NAME) { if (EnvironmentState == EnvironmentStateEnum.kActivateEnvironmentState) { mEmptyPartDoc = true; PartDocument partDoc = null; if (mInventorApp.ActiveDocumentType != DocumentTypeEnum.kPartDocumentObject) { mEmptyPartDoc = false; } else if (mInventorApp.ActiveDocumentType == DocumentTypeEnum.kPartDocumentObject) { partDoc = mInventorApp.ActiveDocument as PartDocument; if (partDoc.ComponentDefinition.SurfaceBodies.Count != 0 /*&& IsFinishFired== true*/) { mEmptyPartDoc = false; } } if (mEmptyPartDoc == false /* && IsFinishFired==false*/) { MessageBox.Show(Resources.IDC_NOT_A_NEW_PART_DOC, "Rubik's Cube", MessageBoxButtons.OK, MessageBoxIcon.Warning); HandlingCode = HandlingCodeEnum.kEventNotHandled; mPlay.Enabled = false; mScramble.Enabled = false; mSolve.Enabled = false; mNext.Enabled = false; } else if (mEmptyPartDoc == true) { if (null != ActivateClickEvent) { ActivateClickEvent(); } mPlay.Enabled = true; mScramble.Enabled = true; mSolve.Enabled = true; mNext.Enabled = true; } else { HandlingCode = HandlingCodeEnum.kEventNotHandled; return; } } } } HandlingCode = HandlingCodeEnum.kEventNotHandled; }