I was quiet - but not lazy !

Programming plugins is really a pita due to poor documentation.
Needed approx. 40h-50h. Most effort is figuring out the cambam stuff,
and debugging is only possible using the output window.
And a lot of try, error and asking EddyCurrent.
Mission complete, I made some successful tests with a fat smile in my face.

The AutoMagic plugin fits so perfectly in my workflow, that no further clicks in CamBam are
necessary between loading dxf and gerating the G-Code.
Beside the time reduction this prevents me from making silly mistakes like mixing inside and outside,
forget the corner overcut or holding tabs...
Feel free to use, keep in mind, it is very beta, I set the version number 0.98.

Syntax checking is also very poor, if you make a mistake, the plugin will simply stop or crash.
Watch the output window to see results or some warnings !
The test.dxf file shows a few possibilities and the syntax for dxf layernames, which is always :
LineNumber Command Name [Options]Example for a layername generating a Profile Inside with a depth of 5, Leadin-Angle 12.2 and 7 holding Tabs :
23 I MyHoles T5.0 LIA12.2 H7List of possible Commands, Options for NewParts and Options for MOPs :
public string[] NewPart_Options = {
"L", "B", // [string] library
"C", // [string] cam-style
"X", // [double] Position X
"Y", // [double] Position Y
"M", "SZ", // [double] StockSize Z
};
public string[] Commands = {
"NP", "NT", // new Part
"DEFINE", "DEF", // Define
"GC", // MOP GCode
"I", // MOP Profile Inside
"O", "A", // MOP Profile outside
"P", "T", // MOP Pocket
"D", "B", // MOP Drill
"E", "G", // MOP Engrave
};
public string[] MOP_Options = {
"ADD", // [int] Add primitives of an given Layer number (given in layer´s NAME!)
// HINT : multiple ADD are allowed and are collected !
"LIA", // [double] Lead in angle
"LIO", // [double] Lead out angle
"HPL", // Holding Tabs based upon points found in layer
"DM", // Drill Mode CC=Canned cycle CW=clockwise CCW=counter clockwise
"DI", "Z", // [double] Depth increment
"MD", "G", // Milling direction CO or G = conventional CL or L = climb M=Mixed
"CP", "SH", // [double] clearance plane
"RC", "A", // [double] Roughing clearance
"CW", "B", // [double] cut width
"SS", "W", // [double] Stock Surface
"SO", "S", // [double] step over
"OV", "I", // [0 or 1] Corner overcut 0=Off 1=On
"CO", "R", // Cut ordering : LF or O = Level First DF or T = Depth First
"HH", // [double] Holding Tab Height
"HL", // [double] Holding Tab Length
"H", // [int] number of Holding Tabs
"O", // [int] Optimisation 0=no 1=Standard(legacy) 2=Experimental(new)
"T", // [double] Target Depth
"N", // [double] spindle speed rpm
"V", // [double] Cut feedrate
};
EDIT : MDEF removed, options copied at defining first part NP to MachiningOptions, too.