C#中实现web端展示JT文件

时间:2024-01-27 19:43:06

最近在公司项目中,碰到了需要在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文件了。