using shape_processor;
using System;
namespace analyzer
{
class Program
{
static int Main(string[] args)
{
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 aKey = MTKLicenseKey.Value();
if (!LicenseHelper.SetupRuntimeKey())
{
return 1;
}
try
{
}
{
Console.WriteLine(
"Failed to activate Manufacturing Toolkit license: " + theException.
what());
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(aResolution);
return 0;
}
class PartProcessor : SolidProcessor
{
public PartProcessor(uint theResolution)
{
aVoxelizationParameters.SetResolution(theResolution);
aParameters.SetVoxelizationParameters(aVoxelizationParameters);
aParameters.SetMethod(WallThickness_Method.Voxelization);
}
public override void ProcessSolid(
Solid theSolid)
{
var aWTData = myAnalyzer.Perform(theSolid);
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.");
}
}
}
}
}
Defines a visitor that visits each unique element only once.
Definition ModelElementVisitor.hxx:90
Provides MTK data model.
Definition Model.hxx:39
void Accept(ModelElementVisitor &theVisitor) const
Accepts a visitor.
Definition Model.cxx:275
Reads supported formats, see Import section.
Definition ModelReader.hxx:32
Defines a topological solid.
Definition ModelData/Solid.hxx:30
Defines a Unicode (UTF-16) string wrapping a standard string.
Definition UTF16String.hxx:29
The wall thickness analyzing tool.
Definition WallThickness_Analyzer.hxx:40
The wall thickness analyzer parameters.
Definition WallThickness_AnalyzerParameters.hxx:52
Contains information about minimum and maximum wall thicknesses.
Definition WallThickness_Data.hxx:40
bool IsEmpty() const
Returns true if WallThickness_Data is empty.
Definition WallThickness_Data.cxx:235
The parameters for a voxelization wall thickness algorithm.
Definition WallThickness_AnalyzerParameters.hxx:28
Defines an exception thrown by a license manager when a valid license could not be acquired.
Definition LicenseError.hxx:37
const char * what() const noexcept override
Returns an error string.
Definition LicenseError.cxx:50
Provides MTK licensing activation and deactivation API.
Definition LicenseManager.hxx:33
static bool Deactivate()
Closes the active licensing session.
Definition LicenseManager.cxx:640
static bool Activate(const std::string &theDeveloperKey)
Activates MTK licensing using the development license key.
Definition LicenseManager.cxx:191
Defines classes, types, enums, and functions related to topological entities and scene graph elements...
The mtk namespace is intended to become the primary namespace for MTK and replace direct use of the c...
Definition LicenseError.hxx:27
Contains classes, namespaces, enums, types, and global functions related to Manufacturing Toolkit.
Definition LicenseError.hxx:27