add geom GUI to HiNC-2025-win-desktop.

This commit is contained in:
2025-05-09 09:25:14 +08:00
parent 784184d6ce
commit 953711bf01
8 changed files with 352 additions and 66 deletions
+35 -35
View File
@@ -15,17 +15,16 @@ using Hi.NcMech.Workpieces;
using Hi.NcMech.Xyzabc;
using Hi.NcOpt;
using Hi.Physics;
using Hi.MongoUtils;
using Hi.Licenses;
using Hi.MachiningProcs;
using System.IO;
using Hi.HiNcKits;
namespace Sample.Machining
{
/// <summary>
/// Demonstrates how to create and configure a <see cref="MachiningProject"/> programmatically.
/// This sample shows how to set up <see cref="MillingCutter"/>, <see cref="CylindroidHolder"/>,
/// <see cref="StickMachiningTool"/>, <see cref="Fixture"/>, <see cref="Workpiece"/>,
/// <see cref="MillingTool"/>, <see cref="Fixture"/>, <see cref="Workpiece"/>,
/// and save the project configuration to a file.
/// </summary>
/// <remarks>
@@ -34,8 +33,26 @@ namespace Sample.Machining
/// </remarks>
public static class DemoBuildMachiningProject
{
internal static CylindroidHolder CreateCylindroidHolder()
{
#region ConfigureHolder
CylindroidHolder cylindroidHolder = new CylindroidHolder()
{
Note = "BT40",
Cylindroid = new Cylindroid()
{
PairZrs = new List<PairZr>([ new PairZr(0,12),new PairZr(20,12),
new PairZr(20,16),new PairZr(30,16)]),
LongitudeNum = 30
}
};
#endregion
return cylindroidHolder;
}
#region CreateMillingCutter1
private static MillingCutter CreateMillingCutter1()
internal static MillingCutter CreateMillingCutter1()
{
MillingCutter millingCutter = new MillingCutter()
{
@@ -91,7 +108,7 @@ namespace Sample.Machining
#endregion
#region CreateMillingCutter2
private static MillingCutter CreateMillingCutter2()
internal static MillingCutter CreateMillingCutter2()
{
MillingCutter millingCutter = new MillingCutter()
{
@@ -137,55 +154,35 @@ namespace Sample.Machining
[STAThread]
static void Main()
{
Console.WriteLine($"License Login.");
License.LogInAll();
Console.WriteLine($"Start Database.");
MongoServer.Default = MongoServer.Run(new MongoRunnerOptions()
{
MongoPort = 28100
});
SingleUserApp.AppBegin();
var projectPath = "C:/HiNC-Projects/NewProject/Main.hincproj";
var projectDirectory = Path.GetDirectoryName(projectPath);
Console.WriteLine($"Directory of the New Project: {projectDirectory}");
MachiningProject machiningProject = new MachiningProject(projectDirectory);
#region ConfigureHolder
CylindroidHolder cylindroidHolder = new CylindroidHolder()
{
Note = "BT40",
Cylindroid = new Cylindroid()
{
PairZrs = new List<PairZr>([ new PairZr(0,12),new PairZr(20,12),
new PairZr(20,16),new PairZr(30,16)]),
LongitudeNum = 30
}
};
#endregion
#region ConfigureMachiningToolHouse
machiningProject.MachiningToolHouse = new MachiningToolHouse()
{
[1] = new StickMachiningTool()
[1] = new MillingTool()
{
Note = "T1",
PreservedDistanceBetweenFluteAndSpindleNose_mm = 8,
Holder = cylindroidHolder,
Holder = CreateCylindroidHolder(),
Cutter = CreateMillingCutter1()
},
[2] = new StickMachiningTool()
[2] = new MillingTool()
{
Note = "T2",
PreservedDistanceBetweenFluteAndSpindleNose_mm = 8,
Holder = cylindroidHolder,
Holder = CreateCylindroidHolder(),
Cutter = CreateMillingCutter2()
},
[3] = new StickMachiningTool()
[3] = new MillingTool()
{
Note = "T3",
PreservedDistanceBetweenFluteAndSpindleNose_mm = 8,
Holder = cylindroidHolder,
Holder = CreateCylindroidHolder(),
Cutter = CreateMillingCutter1()
},
};
@@ -195,7 +192,7 @@ namespace Sample.Machining
machiningProject.MachiningEquipment.Fixture = new Fixture()
{
Geom = new Box3d(new Vec3d(-40, -40, 0), new Vec3d(40, 40, 10)),
TableToWorkpieceTransformer = new StaticTranslation(new Vec3d(0, 0, 10)),
GeomToWorkpieceTransformer = new StaticTranslation(new Vec3d(0, 0, 10)),
};
#endregion
@@ -214,12 +211,15 @@ namespace Sample.Machining
#endregion
#region ConfigureMachineChain
machiningProject.MachiningEquipment.SolidMachiningChain
machiningProject.MachiningEquipment.MachiningChain
= XFactory.Default.GenByFile<CodeXyzabcMachineTool>(
"Resource/MachineTool", "PMC-B1/PMC-B1.mt", GenMode.Default);
"Resource", "MachineTool/PMC-B1/PMC-B1.mt", GenMode.Default);
#endregion
machiningProject.MakeXmlSourceFile(projectPath);
machiningProject.Dispose();
SingleUserApp.AppEnd();
}
#endregion
}