using shape_processor;
using System;
namespace analyzer
{
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 || args.Length > 2)
{
Console.WriteLine("Usage: " +
$"{System.Reflection.Assembly.GetExecutingAssembly().Location} <input_file> <input_resolution>, where:");
Console.WriteLine($" <input_file> is a name of the file to be read");
Console.WriteLine($" <input_resolution> is an optional argument that determine accuracy of wall thickness calculation." +
$" The larger the value, the higher the accuracy of the calculations," +
$" but greatly increase computation time and memory usage. Should be at least 100.");
return 1;
}
string aSource = args[0];
uint aResolution = 1000;
if (args.Length == 2)
{
aResolution = uint.Parse(args[1]);
}
if (aResolution < 100)
{
Console.WriteLine($"WARNING: Input resolution \"{aResolution}\" < 100. Will be used default resolution.\n");
aResolution = 1000;
}
Console.WriteLine($"Failed to read the file {aSource}");
return 1;
}
Console.WriteLine($"Model: {aModel.Name()}\n");
var aPartProcessor = new PartProcessor();
aPartProcessor.Resolution = aResolution;
return 0;
}
class PartProcessor : SolidProcessor
{
public PartProcessor()
{
}
public override void ProcessSolid(
Solid theSolid)
{
var aWTData = myAnalyzer.Perform(theSolid, Resolution);
PrintWTData(aWTData);
}
{
{
Console.WriteLine($" Min thickness = {theData.MinThickness()} mm");
Console.WriteLine($" Max thickness = {theData.MaxThickness()} mm");
}
else
{
Console.WriteLine(" Failed to analyze the wall thickness of this entity.");
}
}
public uint Resolution { get; set; } = 1000;
}
}
}
Defines a visitor that visits each unique element only once.
Definition ModelElementVisitor.hxx:87
Provides MTK data model.
Definition Model.hxx:40
void Accept(ModelElementVisitor &theVisitor) const
Accepts a visitor.
Definition Model.cxx:270
Reads STEP and native format.
Definition ModelReader.hxx:29
Defines a topological solid.
Definition Solid.hxx:32
Defines a Unicode (UTF-16) string wrapping a standard string.
Definition UTF16String.hxx:30
The wall thickness analyzing tool.
Definition WallThickness_Analyzer.hxx:40
Contains information about minimum and maximum wall thicknesses.
Definition WallThickness_Data.hxx:41
bool IsEmpty() const
Returns true if WallThickness_Data is empty.
Definition WallThickness_Data.cxx:207
Defines classes, types, enums, and functions related to topological entities and scene graph elements...
Defines classes, namespaces, enums, types, and global functions related to Manufacturing Toolkit.
Definition LicenseManager_LicenseError.hxx:30