using System;
using System.Collections.Generic;
namespace poly_projector
{
class Program
{
static int Main(string[] args)
{
string aKey = MTKLicenseKey.Value();
if (!LicenseManager.Activate(aKey))
{
Console.WriteLine("Failed to activate Manufacturing Toolkit license.");
return 1;
}
if (args.Length != 1)
{
Console.WriteLine("Usage: " +
$"{System.Reflection.Assembly.GetExecutingAssembly().Location} <input_file>, where:");
Console.WriteLine($" <input_file> is a name of the file to be read");
Console.WriteLine($"");
return 1;
}
string aSource = args[0];
var aModel = new Model();
var aReader = new ModelReader();
if (!aReader.Read(new UTF16String(aSource), aModel))
{
Console.WriteLine($"Failed to read the file {aSource}");
return 1;
}
Console.WriteLine($"Model: {aModel.Name()}\n");
var aProjector = new SceneGraphPolyProjector(Direction.YDir());
aModel.Accept(aProjector);
return 0;
}
class SceneGraphPolyProjector : ModelElementVoidVisitor
{
public SceneGraphPolyProjector(Direction theDirection)
{
myDirection = theDirection;
}
public override void Apply(Part thePart)
{
Projector_PolyData aData = myProjector.Perform(thePart, myDirection);
Console.WriteLine($"Part projection [{thePart.Name()}] has:");
Console.WriteLine($" area = {aData.ProjectionArea()} mm\n");
}
private Direction myDirection;
private Projector_PolyProjector myProjector = new Projector_PolyProjector();
}
}
}
Contains classes, types, enums, and functions related to geometric entities.
Defines classes, types, enums, and functions related to topological entities and scene graph elements...
Contains classes, namespaces, enums, types, and global functions related to Manufacturing Toolkit.