public static void DoGCodeExport(string sFilename) { if (sFilename != null && sFilename.Length > 0) { if (string.IsNullOrEmpty(Path.GetExtension(sFilename))) { sFilename = sFilename + ".gcode"; } StandardGCodeWriter writer = new StandardGCodeWriter(); using (StreamWriter w = new StreamWriter(sFilename)) { writer.WriteFile(CC.Toolpather.CurrentGCode, w); } CotangentAnalytics.ExportGCode(); if (CC.PrinterDB.ActivePreset.Settings is gs.info.ISailfishSettings) { gs.info.ISailfishSettings sailfish = CC.PrinterDB.ActivePreset.Settings as gs.info.ISailfishSettings; Task.Run(() => { string GPX_PATH = Path.Combine(FPlatform.GameExecutablePath(), "utilities/gpx.exe"); string args = sailfish.GPXModelFlag + " -p " + sFilename; DebugUtil.Log("Running " + GPX_PATH + " " + args); System.Diagnostics.Process.Start(GPX_PATH, args); }); } } }
public static void BeginTool(string identifier) { AcceptAndExitCurrentTool(); CC.ActiveContext.ToolManager.SetActiveToolType(identifier, ToolSide.Right); CC.ActiveContext.ToolManager.ActivateTool(ToolSide.Right); CotangentAnalytics.StartTool(identifier); }
public static void DoMeshExport(string sFilename) { if (sFilename != null && sFilename.Length > 0) { if (string.IsNullOrEmpty(Path.GetExtension(sFilename))) { sFilename = sFilename + ".obj"; } List <DMeshSO> exportSOs = new List <DMeshSO>(); foreach (var so in CC.ActiveScene.Selected) { if (so is PrintMeshSO && CC.ActiveScene.IsVisible(so)) { exportSOs.Add(so as PrintMeshSO); } } if (exportSOs.Count == 0) { exportSOs.AddRange(CC.Objects.PrintMeshes.Where(CC.ActiveScene.IsVisible).Cast <DMeshSO>()); } MeshExporter exporter = new MeshExporter(exportSOs, sFilename); exporter.OnCompletedF = (result) => { if (result.code == IOCode.Ok) { DebugUtil.Log("Export OK"); ThreadMailbox.PostToMainThread(() => { CotangentAnalytics.ExportMesh(sFilename); }); } else { DebugUtil.Log("Export ERROR: " + result.message); } }; FPlatform.CoroutineExec.StartAnonymousCoroutine(exporter.RunMainThreadProcessing()); } }