最近在公司项目中,碰到了需要在web端展示JT格式文件的3D图形,找了好多资料,最后实现了。
主要是将*.jt文件转换成*.html文件,然后将html文件用iframe嵌入到网页中展示。
效果为:
那么如何将*.jt文件转换成*.html文件呢?
那就需要先安装西门子的一个免费的软件:JT2GO 提取码:c7kh。
装完之后,JT2GO软件本身有将JT文件转成html的功能。这个需要手动进行操作,如:
在我们自己的系统中,如果需要转换的jt文件比较多,那么如果全部都手动生成,会特别麻烦,所以我们可以利用代码来自动执行转换程序。
主要是利用JT2GO安装目录下的 JTToHTML.exe 这个执行程序来转换。
JT2GO默认安装在 C:\Program Files\Siemens 目录下;JTToHTML.exe 执行程序在 C:\Program Files\Siemens\JT2Go\Program 目录下,我们通过代码来调用这个程序,执行文件的转换,转换代码如下:
private void button3_Click(object sender, EventArgs e) { try { string fileName = "JTToHTML.exe";//转换程序名称 string workdirectory = @"C:\Program Files\Siemens\JT2Go\Program\";//转换程序所在的文件目录 string args = @"html D:\TCMFile\JTFile\butterflyvalve.jt D:\TCMFile\JTFile\butterflyvalve.html";//调用转换程序需要的三个参数:第一个:html 固定,不要改;第二个:jt文件在磁盘的路径;第三个:转换成的html文件的保存路径 bool flag = StartProcess(fileName,workdirectory,args,ProcessWindowStyle.Normal);//调用转换程序 if (flag) MessageBox.Show("执行成功"); else { MessageBox.Show("执行失败!"); } } catch (Exception ex) { MessageBox.Show(ex.Message); } } /// <summary> /// 启动其他的应用程序 /// </summary> /// <param name="file">应用程序名称</param> /// <param name="workdirectory">应用程序工作目录</param> /// <param name="args">命令行参数</param> /// <param name="style">窗口风格</param> public static bool StartProcess(string file, string workdirectory, string args, ProcessWindowStyle style) { try { Process myprocess = new Process(); ProcessStartInfo startInfo = new ProcessStartInfo(workdirectory + file, args); startInfo.WindowStyle = style; startInfo.WorkingDirectory = workdirectory; myprocess.StartInfo = startInfo; myprocess.StartInfo.UseShellExecute = false; myprocess.Start(); return true; } catch (Exception e0) { MessageBox.Show("启动应用程序时出错!原因:" + e0.Message); } return false; }
如此就可以通过代码自动转换JT文件了。