刚开通博客园,随手写一篇简单的获取prt文件名以及全路径的方法。
1 using System;
2 using System.IO;
3 using NXOpen;
4 using NXOpen.UF;
5
6 public class Program
7 {
8 // class members
9 private static Session theSession;
10 private static UI theUI;
11 private static UFSession theUfSession;
12 public static Program theProgram;
13 public static bool isDisposeCalled;
14
15 //------------------------------------------------------------------------------
16 // Constructor
17 //------------------------------------------------------------------------------
18 public Program()
19 {
20 try
21 {
22 theSession = Session.GetSession();
23 theUI = UI.GetUI();
24 theUfSession = UFSession.GetUFSession();
25 isDisposeCalled = false;
26 }
27 catch (NXOpen.NXException ex)
28 {
29 // ---- Enter your exception handling code here -----
30 // UI.GetUI().NXMessageBox.Show("Message", NXMessageBox.DialogType.Error, ex.Message);
31 }
32 }
33
34 //------------------------------------------------------------------------------
35 // Explicit Activation
36 // This entry point is used to activate the application explicitly
37 //------------------------------------------------------------------------------
38 public static int Main(string[] args)
39 {
40 int retValue = 0;
41 try
42 {
43 theProgram = new Program();
44
45 //获取部件文件的全路径
46 string fullPath = theSession.Parts.Work.FullPath;
47
48 //获取部件名 方法1 通过Parts.Work或Part.Display的Name属性来获取
49 string path1 = theSession.Parts.Work.Name;
50
51 //获取部件名 方法2 通过C#Path类提供的函数来获取( 需using System.IO )
52 string path2 = Path.GetFileNameWithoutExtension(fullPath); ;
53
54 //获取部件名 方法3 通过截取fullPath来获取
55 string path3 = "";
56 int index = fullPath.LastIndexOf('\\') + 1; //找到fullpath中最末尾反斜杠的下标,下标从0开始,故+1
57 if (fullPath.Substring(fullPath.Length - 4).ToUpper() == ".PRT")
58 {
59 path3 = fullPath.Substring(index, fullPath.Length - index - 4);
60 }
61
62 theUfSession.Ui.IsListingWindowOpen(out bool res);
63 if (!res)
64 {
65 theUfSession.Ui.OpenListingWindow();
66 }
67 theUfSession.Ui.WriteListingWindow("当前部件文件的路径是:" + fullPath + "\r\n");
68 theUfSession.Ui.WriteListingWindow("方法1获取到的结果:" + path1 + "\r\n");
69 theUfSession.Ui.WriteListingWindow("方法2获取到的结果:" + path2 + "\r\n");
70 theUfSession.Ui.WriteListingWindow("方法3获取到的结果:" + path3 + "\r\n");
71
72 //TODO: Add your application code here
73
74 theProgram.Dispose();
75 }
76 catch (NXOpen.NXException ex)
77 {
78 // ---- Enter your exception handling code here -----
79
80 }
81 return retValue;
82 }
83
84 //------------------------------------------------------------------------------
85 // Following method disposes all the class members
86 //------------------------------------------------------------------------------
87 public void Dispose()
88 {
89 try
90 {
91 if (isDisposeCalled == false)
92 {
93 //TODO: Add your application code here
94 }
95 isDisposeCalled = true;
96 }
97 catch (NXOpen.NXException ex)
98 {
99 // ---- Enter your exception handling code here -----
100
101 }
102 }
103
104 public static int GetUnloadOption(string arg)
105 {
106 //Unloads the image explicitly, via an unload dialog
107 //return System.Convert.ToInt32(Session.LibraryUnloadOption.Explicitly);
108
109 //Unloads the image immediately after execution within NX
110 return System.Convert.ToInt32(Session.LibraryUnloadOption.Immediately);
111
112 //Unloads the image when the NX session terminates
113 // return System.Convert.ToInt32(Session.LibraryUnloadOption.AtTermination);
114 }
115
116 }