UG/NX 二次开发(C#) 程序自动切换制图模式
生活随笔
收集整理的這篇文章主要介紹了
UG/NX 二次开发(C#) 程序自动切换制图模式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?作為C#語言的鐵粉,在做二次開發的時候,發現西門子在C#語言下的支持還是不夠完善。
就拿自動切換制圖模式來說,C++可以直接調用內部函數?UI_APP_change_application,還在網上找到有人推薦使用?::PostMessage切換模塊。
經過一番模式,目前找到2種方法支持c#語言下切換模塊:
1、使用圖紙頁的Open方法,具體使用見代碼
/// <summary>/// 創建第一張圖紙/// </summary>/// <param name="dwgName">圖紙名稱(帶prt文件類型)</param>/// <param name="dwgTemplate">圖紙模板類型</param>/// <param name="sheetName">圖紙sheet名稱</param>public static void CreatDWG(string dwgName, string dwgTemplate, string sheetName, string asmName){Session theSession = Session.GetSession();theUFSession = UFSession.GetUFSession();FileNew fileNew1;fileNew1 = theSession.Parts.FileNew();fileNew1.TemplateFileName = dwgTemplate;fileNew1.Application = FileNewApplication.Drafting;fileNew1.Units = NXOpen.Part.Units.Millimeters;fileNew1.TemplateType = FileNewTemplateType.Item;fileNew1.NewFileName = "C:\\temp\\" + dwgName;fileNew1.MasterFileName = asmName;fileNew1.UseBlankTemplate = false;fileNew1.MakeDisplayedPart = true;NXObject nXObject1;nXObject1 = fileNew1.Commit();fileNew1.Destroy();Part workPart = theSession.Parts.Work;Part displayPart = theSession.Parts.Display;NXOpen.Drawings.DrawingSheet drawingSheet1 = (NXOpen.Drawings.DrawingSheet)workPart.DrawingSheets.FindObject("A3_1");drawingSheet1.Open();theUFSession.Draw.RenameDrawing(drawingSheet1.Tag, sheetName);//CreateView(drawingSheet1.Tag);}2、使用theUI.MenuBarManager.ApplicationSwitchRequest("UG_APP_DRAFTING")
int moduleid;theUFSession.UF.AskApplicationModule(out moduleid);if (moduleid != UFConstants.UF_APP_DRAFTING){theUI.MenuBarManager.ApplicationSwitchRequest("UG_APP_DRAFTING");}個人推薦第二種方法,因為我使用的NX8.0,網上也發現高版本的方法。一起列舉如下:
NX10:
Session theSession = NXopen.Session.GetSession(); theSession.ApplicationSwitchImmediate("UG_APP_DRAFTING");NX11:
Part workPart = theSession.Parts.Work; workpart.Drafting.EnterDraftingApplication();總結
以上是生活随笔為你收集整理的UG/NX 二次开发(C#) 程序自动切换制图模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux endpoint,usb中的
- 下一篇: CATIA二次开发(一):基础介绍