话不多说,直接上带代码,代码可在操作记录中直接运行。
using System;
using NXOpen;
using System.Windows.Forms;
using System.IO;
class Module1
{
public static void Main()
{
Session theSession = Session.GetSession();
Part workPart = theSession.Parts.Work;
ListingWindow lw = theSession.ListingWindow;
string myDocs = "";
myDocs = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
string outputFile = System.Convert.ToString(System.IO.Path.Combine(myDocs, "test.log"));
//get information about current work part 得到关于工作部件的信息
string fileName = System.Convert.ToString(Path.GetFileName(workPart.FullPath));
string fileNameNoExt = System.Convert.ToString(Path.GetFileNameWithoutExtension(workPart.FullPath));
string parentFolder = System.Convert.ToString(Path.GetDirectoryName(workPart.FullPath));
string root = System.Convert.ToString(Path.GetPathRoot(workPart.FullPath));
//does file already exist? if so, delete it 判断文件是否存在
if (File.Exists(outputFile))
{
try
{
File.Delete(outputFile);
}
catch (Exception ex)
{
MessageBox.Show("Error deleting file:");
}
}
//use listing window to write to file and window 使用列表窗口写入文件和窗口
lw.SelectDevice(ListingWindow.DeviceType.FileAndWindow, outputFile);
lw.Open();
//write information to listing window 将信息写入列表窗口
lw.WriteLine("full path: " + workPart.FullPath);
lw.WriteLine(new string('-', System.Convert.ToInt32(("full path: " + workPart.FullPath).Length)));
lw.WriteLine("file name: " + fileName);
lw.WriteLine("file name w/o extension: " + fileNameNoExt);
lw.WriteLine("parent folder: " + parentFolder);
lw.WriteLine("root folder: " + root);
lw.WriteLine("");
lw.Close();
//flush file buffer by changing listing window device 通过更改列表窗口设备刷新文件缓冲区
lw.SelectDevice(ListingWindow.DeviceType.Window, "");
}
}
运行结果: