using Hi.Geom;
using Hi.Mech.Topo;
using Hi.NcMech.Xyzabc;
using Hi.Numerical.Xyzabc;
namespace Sample.MachineTool
{
///
/// Demo Build Machine Tool without gemetries setting.
///
///
/// ## Source Code
///
/// [!code-csharp[SampleCode](~/../Hi.Sample/MachineTool/DemoBuildMachineToolWithoutGeometrys.cs)]
///
public static class DemoBuildMachineToolWithoutGeometrys
{
///
/// Generates an empty machine tool with basic configuration.
///
/// A configured but empty machine tool without solids.
public static CodeXyzabcMachineTool GenEmptyMachineTool()
{
CodeXyzabcChain chain = new CodeXyzabcChain("[O][C][w];[O][X][Y][Z][B][S][t]");
if (chain.ToolBuckleTransformer is StaticTranslation st)
st.Trans = new Vec3d(-200, 200, 400);
CodeXyzabcMachineTool xyzabcMachineTool = new CodeXyzabcMachineTool(chain);
return xyzabcMachineTool;
}
///
/// Generates and saves an empty machine tool URI to a file.
///
/// The base directory to save the machine tool file.
/// The machine tool URI object that was created and saved.
public static CodeXyzabcMachineToolUri GenEmptyMachineToolUri(string baseDirectory)
{
CodeXyzabcMachineToolUri machineToolUri = new CodeXyzabcMachineToolUri(@"Samples/EmpytMachineTool.mt",
GenEmptyMachineTool());
machineToolUri.SaveToUri(baseDirectory);
return machineToolUri;
}
}
}