public class drawings {
static {
try {
System.loadLibrary("CadExMTK");
} catch (UnsatisfiedLinkError e) {
System.err.println("Native code library failed to load.\n" + e);
System.exit(1);
}
}
static void ExploreSheet(Sheet theSheet) {
Sheet.ViewIterator aViewIt = new Sheet.ViewIterator(theSheet);
int aViewCounter = 0;
while (aViewIt.HasNext()) {
View aView = aViewIt.Next();
System.out.println("---- View <" + aViewCounter + ">");
DrawingElementVisitor aVisitor = new DrawingElementVisitor();
aView.Accept(aVisitor);
aViewCounter++;
}
}
static void ExploreDrawing(Drawing theDrawing) {
Drawing.SheetIterator aSheetIt = new Drawing.SheetIterator(theDrawing);
int aSheetCounter = 0;
while (aSheetIt.HasNext()) {
Sheet aSheet = aSheetIt.Next();
System.out.println("-- Sheet <" + aSheetCounter + ">");
ExploreSheet(aSheet);
aSheetCounter++;
}
}
public static void main(String[] args) {
String aKey = MTKLicenseKey.Value();
if (!LicenseManager.Activate(aKey)) {
System.out.println("Failed to activate Manufacturing Toolkit license.");
System.exit(1);
}
if (args.length != 1) {
System.out.println("Usage: " + " <input_file>, where:");
System.out.println(" <input_file> is a name of the file to be read");
System.exit(1);
}
String aSource = args[0];
ModelReaderParameters aReaderParameters = new ModelReaderParameters();
aReaderParameters.SetReadDrawing(true);
ModelReader aReader = new ModelReader();
aReader.SetParameters(aReaderParameters);
Model aModel = new Model();
if (!aReader.Read(new UTF16String(aSource), aModel)) {
System.out.println("Failed to read the file " + aSource);
System.exit(1);
}
Drawing aDrawing = aModel.Drawing();
if (aDrawing.IsNull()) {
System.out.println("The model doesn't contain a drawing");
System.exit(1);
}
System.out.println("Drawing \"" + aModel.Name() + "\":");
ExploreDrawing(aDrawing);
}
}
class DrawingElementVisitor extends ElementVoidVisitor {
@Override
public void Apply(CurveSet theElement) {
System.out.println("------- CurveSet <" + myCurveSetCounter + ">");
System.out.println("--------- number of curves: " + theElement.NumberOfCurves());
myCurveSetCounter++;
}
@Override
public void Apply(Hatch theElement) {
System.out.println("------- Hatch <" + myHatchCounter + ">");
System.out.println("--------- number of contours: " + theElement.NumberOfContours());
int aNumberOfCurves = 0;
for (int i = 0; i < theElement.NumberOfContours(); ++i) {
aNumberOfCurves += theElement.Contour(i).NumberOfCurves();
}
System.out.println("--------- number of curves: " + aNumberOfCurves);
System.out.println("--------- pattern: " + PatternToString (theElement.Pattern()));
System.out.println("--------- angle: " + theElement.Angle());
System.out.println("--------- scale: " + theElement.Scale());
myHatchCounter++;
}
@Override
public void Apply(Text theElement) {
System.out.println("------- Text <" + myTextCounter + ">");
System.out.println("--------- text: \"" + theElement.GetText() + "\"");
System.out.println("--------- origin: " + PointToString(theElement.TextOrigin()));
System.out.println("--------- rotation: " + theElement.TextProperties().Rotation());
System.out.println("--------- font size: " + theElement.FontSize());
myTextCounter++;
}
private String PointToString(Point2d thePoint) {
return "(" + thePoint.X() + "; " + thePoint.Y() + ")";
}
private String PatternToString(Hatch.PatternType thePattern) {
if (thePattern == Hatch.PatternType.Solid) return "Solid";
if (thePattern == Hatch.PatternType.ANSI_31) return "ANSI 31";
if (thePattern == Hatch.PatternType.ANSI_32) return "ANSI 32";
if (thePattern == Hatch.PatternType.ANSI_33) return "ANSI 33";
if (thePattern == Hatch.PatternType.ANSI_34) return "ANSI 34";
if (thePattern == Hatch.PatternType.ANSI_35) return "ANSI 35";
if (thePattern == Hatch.PatternType.ANSI_36) return "ANSI 36";
if (thePattern == Hatch.PatternType.ANSI_37) return "ANSI 37";
if (thePattern == Hatch.PatternType.ANSI_38) return "ANSI 38";
if (thePattern == Hatch.PatternType.ISO_02) return "ISO 02";
if (thePattern == Hatch.PatternType.ISO_03) return "ISO 03";
if (thePattern == Hatch.PatternType.ISO_04) return "ISO 04";
if (thePattern == Hatch.PatternType.ISO_05) return "ISO 05";
if (thePattern == Hatch.PatternType.ISO_06) return "ISO 06";
if (thePattern == Hatch.PatternType.ISO_07) return "ISO 07";
if (thePattern == Hatch.PatternType.ISO_08) return "ISO 08";
if (thePattern == Hatch.PatternType.ISO_09) return "ISO 09";
if (thePattern == Hatch.PatternType.ISO_10) return "ISO 10";
if (thePattern == Hatch.PatternType.ISO_11) return "ISO 11";
if (thePattern == Hatch.PatternType.ISO_12) return "ISO 12";
if (thePattern == Hatch.PatternType.ISO_13) return "ISO 13";
if (thePattern == Hatch.PatternType.ISO_14) return "ISO 14";
if (thePattern == Hatch.PatternType.ISO_15) return "ISO 15";
return "Other";
}
private int myCurveSetCounter = 0;
private int myHatchCounter = 0;
private int myTextCounter = 0;
}
Contains classes, types and enums related to drawings.
Definition AngularDimension.cs:12
Contains classes, types, enums, and functions related to geometric entities.
Definition Axis1d.cs:12
Defines classes, types, enums, and functions related to topological entities and scene graph elements...
Definition AngleUnit.cs:12
Contains classes, namespaces, enums, types, and global functions related to Manufacturing Toolkit.
Definition BaseObject.cs:12