From 4e2e497696cc0e7866bab056cd056d509b7d6c6c Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期二, 14 三月 2023 16:55:59 +0800 Subject: [PATCH] 1 --- ExportMap/cs/ConvertUtils.cs | 91 +++++++++++++++++++++++++++++++++++---------- 1 files changed, 70 insertions(+), 21 deletions(-) diff --git a/ExportMap/cs/ConvertUtils.cs b/ExportMap/cs/ConvertUtils.cs index 756115d..ac8787b 100644 --- a/ExportMap/cs/ConvertUtils.cs +++ b/ExportMap/cs/ConvertUtils.cs @@ -1,6 +1,8 @@ -锘縰sing System; +锘縰sing ExportMap.Models; +using System; using System.Collections.Generic; using System.Diagnostics; +using System.IO; using System.Linq; using System.Web; @@ -11,31 +13,78 @@ /// <summary> /// 宸ヤ綔閰嶇疆 /// </summary> - public static string jobConfig = "{ \"format\": \"3dtiles\", \"mode\": 0, \"outputPath\": \"{0}\", \"outputOptions\": null, \"levelOfDetail\": -1, \"levelOfDetailText\": \"Auto\", \"georeferenced\": null }"; + public static string JobConfig = "{ \"format\": \"3dtiles\", \"mode\": 0, \"outputPath\": \"{0}\", \"outputOptions\": null, \"levelOfDetail\": -1, \"levelOfDetailText\": \"Auto\", \"georeferenced\": null }"; + /// <summary> + /// Roamer.exe + /// </summary> + public static string RoamerExe = "\"C:\\Program Files\\Autodesk\\Navisworks Manage 2020\\Roamer.exe\""; + + /// <summary> + /// 妯″瀷杞崲 + /// </summary> + public static int Convert(List<int> ids) + { + int count = 0; + string uploadFolder = Tool.GetSetting("uploadFolder"); + string tilesFolder = Path.Combine(Tool.GetSetting("lfData"), "3d\\3dtiles"); + + List<SysMeta> list = XYZUtils.selectMetas(ids, "type in ('ifc', 'fbx', 'rvt')"); + foreach (SysMeta meta in list) + { + try + { + string modelFile = Path.Combine(uploadFolder, meta.path); + if (!File.Exists(modelFile)) + { + continue; + } + + string configFile = Path.Combine(Tool.BaseDir, ExportUtil.DateStr + ".json"); + string outPath = Path.Combine(tilesFolder, meta.type, meta.id.ToString()); + + if (!Directory.Exists(outPath)) Directory.CreateDirectory(outPath); + WriteText(configFile, string.Format(JobConfig, outPath)); + + ExecNavisworks(modelFile, configFile); + + count++; + } + catch (Exception ex) + { + LogOut.Error(ex.StackTrace); + } + } + + return count; + } + + /// <summary> + /// 杩愯Navisworks + /// </summary> public static string ExecNavisworks(string modelFile, string outPath) { - try - { - string exe = @"C:\Program Files\Autodesk\Navisworks Manage 2020\Roamer.exe"; - string cmd = string.Format("\"{0}\" -licensing AdLM -OpenFile \"{1}\" -ExecuteAddInPlugin SmartEarth \"{2}\" -NoGui -NoCache -Exit", exe, modelFile, outPath); + string args = string.Format("-licensing AdLM -OpenFile \"{0}\" -ExecuteAddInPlugin SmartEarth \"{1}\" -NoGui -NoCache -Exit", modelFile, outPath); - Process p = new Process(); - p.StartInfo.UseShellExecute = false; - p.StartInfo.ErrorDialog = true; - p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; - p.StartInfo.RedirectStandardError = false; - p.StartInfo.FileName = exe; - p.StartInfo.Arguments = cmd; - p.StartInfo.CreateNoWindow = true; - p.Start(); + Process p = new Process(); + p.StartInfo.UseShellExecute = false; + p.StartInfo.ErrorDialog = true; + p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; + p.StartInfo.RedirectStandardError = false; + p.StartInfo.FileName = RoamerExe; + p.StartInfo.Arguments = args; + p.StartInfo.CreateNoWindow = true; + p.Start(); - return string.Empty; - } - catch(Exception ex) - { - return ex.Message; - } + return string.Empty; + } + + /// <summary> + /// 鍐欐枃鏈枃浠� + /// </summary> + private static void WriteText(string file, string str) + { + File.WriteAllText(file, str); } } } -- Gitblit v1.9.3