From 8d56a9984b543e697dd164ab66eb2056d20c06e4 Mon Sep 17 00:00:00 2001 From: iamboss Date: Mon, 22 Dec 2025 23:35:43 +0800 Subject: [PATCH] add ChartRange to ClStrip. --- Disp/DemoUtil.cs | 2 +- Hi.Sample.Wpf.csproj | 4 +- Machining/DemoMillingByCutterLocation.cs | 46 +++++++++---------- ...ingMachiningProcessAndStripPosSelection.cs | 16 ++++--- 4 files changed, 35 insertions(+), 33 deletions(-) diff --git a/Disp/DemoUtil.cs b/Disp/DemoUtil.cs index 101ba61..bbe229e 100644 --- a/Disp/DemoUtil.cs +++ b/Disp/DemoUtil.cs @@ -2,7 +2,7 @@ using Hi.HiNcKits; using Hi.Licenses; using Hi.MongoUtils; -using Hi.Wpf.Disp; +using Hi.WpfPlus.Disp; using System.Windows; namespace Sample.Disp diff --git a/Hi.Sample.Wpf.csproj b/Hi.Sample.Wpf.csproj index 34bd123..6f07d71 100644 --- a/Hi.Sample.Wpf.csproj +++ b/Hi.Sample.Wpf.csproj @@ -25,11 +25,11 @@ - + - + diff --git a/Machining/DemoMillingByCutterLocation.cs b/Machining/DemoMillingByCutterLocation.cs index d3cf8e5..8c37fab 100644 --- a/Machining/DemoMillingByCutterLocation.cs +++ b/Machining/DemoMillingByCutterLocation.cs @@ -5,7 +5,7 @@ using Hi.Geom.Resolution; using Hi.HiNcKits; using Hi.MachiningProcs; using Hi.Numerical.Acts; -using Hi.Wpf.Disp; +using Hi.WpfPlus.Disp; using HiMachining.Milling; using System; using System.IO; @@ -42,21 +42,21 @@ namespace Sample.Machining //var projectPath = "C:/HiNC-Projects/DemoStandardPath/Main.hincproj"; var projectPath = "C:/HiNC-Projects/demo-test-1/Main.hincproj"; Console.WriteLine($"Load Project: {projectPath}"); - localProjectService.LoadProject(projectPath).ShowIfCatched(null); + localProjectService.LoadProject(projectPath); var project = localProjectService.MachiningProject; #endregion - var projectDisplayee = new MachiningProjectDisplayee(()=> localProjectService.MachiningProject); + var projectDisplayee = new MachiningProjectDisplayee(localProjectService); var device = new ClMillingDevice(); - project.MachiningEquipment.MachiningChain = device; - project.ClStrip.IsShowDot = true; + localProjectService.MachiningEquipment.MachiningChain = device; + localProjectService.ClStrip.IsShowDot = true; double resolution_mm = 0.5; var projectDir = Path.GetDirectoryName(projectPath); - project.Workpiece.InitGeom = new StlFile(stlFile_CylinderR20, projectDir); - project.Workpiece.IdealGeom = new StlFile(stlFile_CylinderR19, projectDir); - project.Workpiece.InitResolution = resolution_mm; + localProjectService.Workpiece.InitGeom = new StlFile(stlFile_CylinderR20, projectDir); + localProjectService.Workpiece.IdealGeom = new StlFile(stlFile_CylinderR19, projectDir); + localProjectService.Workpiece.InitResolution = resolution_mm; - RuntimeApi runtimeApi = project.RuntimeApi; + RuntimeApi runtimeApi = localProjectService.RuntimeApi; runtimeApi.SetNcResolutionFixed(9999, 15); runtimeApi.EnableCollisionDetection = false; runtimeApi.EnablePhysics = false; @@ -65,13 +65,13 @@ namespace Sample.Machining //RunConsole(project, projectDisplayee, resolution_mm); RunWindow(localProjectService, projectDisplayee, resolution_mm); } - static void RunConsole(IProjectService projectService, + static void RunConsole(LocalProjectService projectService, MachiningProjectDisplayee projectDisplayee, double resolution_mm) { RunSession(projectService, resolution_mm); DispEngine dispEngine = new DispEngine(projectDisplayee); dispEngine.SetViewToIsometricView(); - dispEngine.SketchView = projectService.MachiningProject.ClStrip.GetFittingView(dispEngine.SketchView); + dispEngine.SketchView = projectService.ClStrip.GetFittingView(dispEngine.SketchView); dispEngine.SketchView = dispEngine.SketchView.Scale(0.5); dispEngine.Snapshot($"Cache/result.bmp", 1000, 1000); @@ -79,7 +79,7 @@ namespace Sample.Machining LocalApp.AppEnd(); Console.WriteLine($"App exit."); } - static void RunWindow(IProjectService projectService, + static void RunWindow(LocalProjectService projectService, MachiningProjectDisplayee projectDisplayee, double resolution_mm) { var task = Task.Run(() => @@ -106,16 +106,16 @@ namespace Sample.Machining }); #endregion } - static void RunSession(IProjectService projectService, double resolution_mm) + static void RunSession(LocalProjectService localProjectService, double resolution_mm) { - var project=projectService.MachiningProject; - RuntimeApi runtimeApi = project.RuntimeApi; + var project=localProjectService.MachiningProject; + RuntimeApi runtimeApi = localProjectService.RuntimeApi; - project.BeginSession(); + localProjectService.BeginSession(); double radius = 20; double z = -1; - project.Act(new ActToolingTeleport(1));//equip tool - project.Act(new ActClTeleport(new DVec3d(radius, 0, z, 0, 0, 1)));//goto initial position + localProjectService.Act(new ActToolingTeleport(1));//equip tool + localProjectService.Act(new ActClTeleport(new DVec3d(radius, 0, z, 0, 0, 1)));//goto initial position //run an arbitrary contour. int divNum = 36; for (int i = 0; i <= divNum; i++) @@ -125,16 +125,16 @@ namespace Sample.Machining radius * Math.Sin(i * Math.PI * 2 / divNum), z, 0, 0, 1); Console.WriteLine($"{cl.Point.CsvText},{cl.Normal.CsvText},"); - project.Act(new ActClStep(cl)); + localProjectService.Act(new ActClStep(cl)); } double diffLimit_mm = resolution_mm * 2; runtimeApi.Diff(resolution_mm * 2); - Console.WriteLine($"IsDifferenceAceptable: {IsDifferenceAceptable(project, diffLimit_mm)}"); - project.EndSession(); + Console.WriteLine($"IsDifferenceAceptable: {IsDifferenceAceptable(localProjectService, diffLimit_mm)}"); + localProjectService.EndSession(); } - static bool IsDifferenceAceptable(MachiningProject project, double diffLimit) + static bool IsDifferenceAceptable(LocalProjectService localProjectService, double diffLimit) { - foreach (var attachment in project.Workpiece.DiffAttachmentBag) + foreach (var attachment in localProjectService.Workpiece.DiffAttachmentBag) { if (double.IsNaN(attachment.Diff) || Math.Abs(attachment.Diff) > diffLimit) { diff --git a/Machining/DemoRenderingMachiningProcessAndStripPosSelection.cs b/Machining/DemoRenderingMachiningProcessAndStripPosSelection.cs index cee4ce4..087446c 100644 --- a/Machining/DemoRenderingMachiningProcessAndStripPosSelection.cs +++ b/Machining/DemoRenderingMachiningProcessAndStripPosSelection.cs @@ -1,4 +1,4 @@ -using Hi.Wpf.Disp; +using Hi.WpfPlus.Disp; using System; using Hi.MachiningProcs; using Hi.Common.FileLines; @@ -23,22 +23,24 @@ namespace Sample.Machining static void Main(string[] args) { LocalApp.AppBegin(); + LocalProjectService localProjectService = new LocalProjectService(); - #region Load Machining Project - var projectPath = "C:/HiNC-Projects/DemoStandardPath/Main.hincproj"; + #region Load Machining Project + var projectPath = "C:/HiNC-Projects/DemoStandardPath/Main.hincproj"; Console.WriteLine($"Load Project: {projectPath}"); - MachiningProject machiningProject = MachiningProject.LoadFile(projectPath); + localProjectService.LoadProject(projectPath); + MachiningProject machiningProject = localProjectService.MachiningProject; - machiningProject.RuntimeApi.MachiningStepSelected += (MachiningStep step) => + localProjectService.RuntimeApi.MachiningStepSelected += (MachiningStep step) => { var sourceCommand = step.SourceCommand; Console.WriteLine($"Step Selected: MRR = {step.Mrr_mm3ds} At \"{sourceCommand?.FilePath}\" (Line {sourceCommand?.GetLineNo()}) \"{sourceCommand?.Line}\""); }; - machiningProject.PacePlayer.Start(); + localProjectService.PacePlayer.Start(); #endregion #region Configure Rendering Options - var projectDisplayee = new MachiningProjectDisplayee(()=>machiningProject); + var projectDisplayee = new MachiningProjectDisplayee(localProjectService); projectDisplayee.RenderingFlagBitArray[(int)RenderingFlag.Mech] = true; projectDisplayee.RenderingFlagBitArray[(int)RenderingFlag.Fixture] = true; projectDisplayee.RenderingFlagBitArray[(int)RenderingFlag.WorkpieceGeom] = true;