using System;
using System.Collections.Generic;
namespace unfolder
{
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 != 2)
{
Console.WriteLine("Usage: " +
$"{System.Reflection.Assembly.GetExecutingAssembly().Location} <input_file> <output_folder>, where:");
Console.WriteLine($" <input_file> is a name of the file to be read");
Console.WriteLine($" <output_folder> is a name of the folder where DXF files with drawing to be written");
return 1;
}
string aSource = args[0];
string aDrawingPath = args[1];
Console.WriteLine($"Failed to read the file {aSource}");
return 1;
}
Console.WriteLine($"Model: {aModel.Name()}\n");
var aPartProcessor = new PartProcessor(aDrawingPath);
return 0;
}
{
public PartProcessor(string theDrawingFolderPath)
{
myDrawingFolderPath = theDrawingFolderPath;
}
public override void Apply(
Part thePart)
{
string aPartName = thePart.
Name().
IsEmpty() ?
"noname" : thePart.
Name().
ToString();
var aBodyVec = thePart.
Bodies();
if (aBodyVec.Count != 0)
{
for (int i = 0; i < aBodyVec.Count; ++i)
{
Body aBody = aBodyVec[i];
while (aShapeIt.HasNext())
{
var aShape = aShapeIt.Next();
{
Console.Write($"Part #{myPartIndex} [\"{aPartName}\"] - solid #{i} has:\n");
ProcessSolid(
Solid.
Cast(aShape), aPartName, i);
}
{
Console.Write($"Part #{myPartIndex} [\"{aPartName}\"] - shell #{i} has:\n");
ProcessShell(
Shell.
Cast(aShape), aPartName, i);
}
}
}
}
++myPartIndex;
}
public void ProcessSolid(
Solid theSolid,
string thePartName,
int theShapeIndex)
{
PrintFlatPatternInfo(aFlatPattern);
}
public void ProcessShell(
Shell theShell,
string thePartName,
int theShapeIndex)
{
PrintFlatPatternInfo(aFlatPattern);
}
string myDrawingFolderPath;
private int myPartIndex = 0;
}
{
{
Console.WriteLine($" Failed to create flat pattern.");
return;
}
Console.WriteLine($" Flat Pattern with:");
Console.WriteLine($" length: {theFlatPattern.Length()} mm");
Console.WriteLine($" width: {theFlatPattern.Width()} mm");
Console.WriteLine($" thickness: {theFlatPattern.Thickness()} mm");
Console.WriteLine($" perimeter: {theFlatPattern.Perimeter()} mm");
}
}
}
UTF16String Name() const
Returns a name.
Definition ModelElement.cxx:55
Defines a visitor that visits each unique element only once.
Definition ModelElementVisitor.hxx:87
Element visitor with empty implementation.
Definition ModelElementVisitor.hxx:64
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 leaf node in the scene graph hiearchy.
Definition Part.hxx:34
Iterates over subshapes in a shape.
Definition ShapeIterator.hxx:32
Defines a connected set of faces.
Definition Shell.hxx:32
Defines a topological solid.
Definition Solid.hxx:32
Defines a Unicode (UTF-16) string wrapping a standard string.
Definition UTF16String.hxx:30
bool IsEmpty() const
Returns true if the string is empty.
Definition UTF16String.cxx:337
Defines classes, types, enums, and functions related to topological entities and scene graph elements...
ShapeType
Defines shape type.
Definition ShapeType.hxx:27
Defines classes, namespaces, enums, types, and global functions related to Manufacturing Toolkit.
Definition LicenseManager_LicenseError.hxx:30