Options:
"
"+ distance/radius
"
"Angle start [Angle step] [End angle]
"
"[Layer]
"
"[Wire & width]
"
"[Xcoordinate] [Ycoordinate] **
"
"[Polygon]
"
"[Pad || Smd || Via]
"
"[Width Length] SMD_dx SMD_dy
"
"[-Name] signal/pad/smd
"
"[Diameter] for Pad/Via, if used
"
"[Drill] for Pad/Via/Hole, if used
"
"[°] define angle (in degrees) for step
"
"[/] define number of steps within start and end angle
"
"[Group] rotate and paste
"
"[rotate match]
"
"[MOVE] elements on place by order
start with name (only in Board)
"
"[Circle] emulate/draw a cricle with wire or polygon
"
"[full ellipse 0]
"
"[Ellipse factor] height = radius * f
"
"[1/4 ellipse] 90 degree, 1st quadrant
"
"
"
"** If MARK is set in PAC/BRD/SCH editor, coordinates are relativ.
"
"Parameters can be used in any order; not case sensitive."
"
"
"
Optionen:
"
"+ Distance/Radius
"
"Startwinkel [Winkelschritt oder Anzahl (# .)] [Endwinkel]
"
"[Layer]
"
"[Wre width] setzt die Breite (width) und den Befehl WIRE.
"
"Für Polygon muß W vor O angegeben werden.
"
"[X-Koordinate] [Y-Koordinate] **
"
"[Polygon]
"
"[Pad || Smd || Via]
"
"[Width Length] SMD_dx SMD_dy
"
"[-Name] Signal/Pad/Smd
"
"[Diameter] für Pad/Via, wenn benutzt
"
"[Drill] für Pad/Via/Hole, wenn benutzt
"
"[°] Winkelschritt in Grad
"
"[/] berechnet den Winkel (End - Start / Anzahl
"
"[Group] Pasted die Gruppe rotiert.
"
"Die Gruppe kann vor dem Start des ULP definiert werden,
"
"oder das ULP selektiert alle sichtbaren Objekte als Gruppe.
"
"[Rotate match] dreht die Bauteile/Pad/Smd im selben Winkel
in dem sie angeordnet werden
"
"[MOVE] plaziert Elemente aufsteigend beginnend mit dem
angegebenen Namen (nur im Board nutzbar )
"
"[Circle] zeichnet einen Kreis oder Ellipse als Wire oder Polygon
je nach Option (W/O)
"
"[full ellipse 0] zeichnet eine volle Ellipse
"
"[Ellipse faktor] der Wert mit dem die Länge multipliziert wird
(Raduis * f) ergibt die Länge in y
"
"[1/4 ellipse] zeichnet nur den ersten Qudranten
einer Ellipse oder Kreises
"
"
"
"** Ist MARK im benutzten PAC/BRD/SCH Editor gesezt,
werden die Koordinaten relativ zur Marke benutzt.
"
"Die Parameter können in beliebiger Reihenfolge angegeben
und groß oder klein geschrieben werden."
"
"
"
" + "
";
string Draw_Info = " ";
string Name_used;
string require = " required ";
string Not_Used = " not used ";
string Can_Used = " can be used ";
if (library) Name_used = Not_Used;
else Name_used = Can_Used;
string Para = "";
string SigName = "";
string width = "";
string layer = "";
string Angle_step_used = Not_Used;
string Angle_end_used = Not_Used;
real x1, y1, x2;
real StartAngle = 0.0; // start the rotated draw on degree
real AngleStep = 0.0; // angle step in degree to next element or steps at 90° for Ellipse
real EangleOffset = 0.0; // the rotation off the element self + offset
real EndAngle = 360.0; // end the rotated draw on degree
enum { None, Degreestep, Calcstep };
int AngleStepTyp = None; // flag to calculate the anglestep from count (anglestep)
int RotateMatch = 0; // rotate element with same angle with rotate
int UseMarkedGroup = 0;
enum { NONE, CIRCLE, FULL_ELLIPSE, ELLIPSE_4 };
int Placeform = NONE;
real EllipsFactor = 1.0; // ratio x to y radius
real M_EllipsFactor = 1.0; // copy for menue
//int polygon = 0; // draw ellipse as polygon
//int smd = 0; // place a smd on endpoint
real SMD_dx = 0; // SMD length
real SMD_dy = 0; // SMD width
string PadVia = ""; // draw Pad or Via as used in editor
string PAD_diameter = ""; // pad diameter
string Shapes[];
int ShapeSelect = PAD_SHAPE_OFFSET+1;
string Drill_Hole = ""; // drill diameter
int grid = 1;
string GridUnit[] = { "MIC", "MM", "MIL", "INCH" };
int gridunit;
real minx, maxx, miny, maxy;
string Length_Distance_Radius = "&+ radius ";
int PressOk = 0;
string s;
string h;
string Help_Err = " ";
string Name1st, NameExt; // use as variable Label in Menu
// ### functions ###
void Set_MinMax_Unit(int Grid) { // 2012-04-12
switch(Grid) {
case GRID_UNIT_MIC : { // Micron
minx = -1990000;
maxx = 1990000;
miny = -1990000;
maxy = 1990000;
break;
}
case GRID_UNIT_MM : { // Millimeter
minx = -1990;
maxx = 1990;
miny = -1990;
maxy = 1990;
break;
}
case GRID_UNIT_MIL : { // Mil
minx = -78340;
maxx = 78340;
miny = -78340;
maxy = 78340;
break;
}
case GRID_UNIT_INCH : { // Inch
minx = -78.34;
maxx = 78.34;
miny = -78.34;
maxy = 78.34;
break;
}
}
return;
}
real u2u(int val) {
switch (gridunit) {
case GRID_UNIT_MIC : return u2mic(val);
case GRID_UNIT_MM : return u2mm(val);
case GRID_UNIT_MIL : return u2mil(val);
case GRID_UNIT_INCH : return u2inch(val);
}
}
void info(void) {
dlgDialog("cmd-draw HELP") {
dlgHBoxLayout {
dlgLabel(usage);
dlgVBoxLayout {
if (language() == "de") dlgLabel("Beispiele:");
else dlgLabel("Examples:");
dlgLabel(Help);
dlgStretch(1);
dlgHBoxLayout {
dlgStretch(1);
dlgPushButton("+Ok") dlgAccept();
dlgStretch(1);
}
}
}
};
return;
}
// *** analysis User Error ***
int error(void) {
int err = 0;
if (DrawType == DrawGROUP) {
if (!AngleStep || !AngleStep || !EndAngle) { Help_Err = "Angle start or Angle step or Angle end = 0"; return -1; }
if (!AngleStepTyp) {
if (AngleStepTyp && AngleStep == 0) {
Help_Err = "Missing parameter: Angle step";
return -1;
}
Help_Err = "Select Angle step type :\n° degree step\ncalc. steps.";
return -1;
}
return 0;
}
if (strtod(width) >= x2) { Help_Err = "Width > Radius"; err = -1; }
if (!x2) { Help_Err = "Radius = 0"; err = -1; }
if (DrawType == DrawSMD) {
if (layer == "1" || layer == "16") ;
else { err = -1; Help_Err = "Layer for SMD ?"; }
}
if (DrawType == DrawMOVE) {
if (!SigName) { Help_Err = "1.st Element name ?"; err = -1; }
}
if (AngleStepTyp && AngleStep == 0) {
err = -1; Help_Err = "Missing parameter: Angle step";
}
return err;
}
// *** set info for Menu *** Pictures and Texts ***
void set_Draw_Info(void) {
Label_Move = " ";
if (DrawType == DrawWIRE) {
switch (AngleStepTyp) {
case None :
Angle_step_used = Not_Used;
Angle_end_used = Not_Used;
switch (Placeform) {
case NONE : cmd_Draw_Info = "
";
break;
case CIRCLE : cmd_Draw_Info = "
";
break;
case FULL_ELLIPSE : cmd_Draw_Info = "
";
break;
case ELLIPSE_4 : cmd_Draw_Info = "
";
break;
}
break;
case Degreestep :
Angle_step_used = require;
Angle_end_used = require;
switch (Placeform) {
case NONE : cmd_Draw_Info = "
";
break;
case CIRCLE : cmd_Draw_Info = "
";
break;
case FULL_ELLIPSE : cmd_Draw_Info = "
";
break;
case ELLIPSE_4 : cmd_Draw_Info = "
";
break;
}
break;
case Calcstep :
Angle_step_used = require;
Angle_end_used = require;
switch (Placeform) {
case NONE : cmd_Draw_Info = "
";
break;
case CIRCLE : cmd_Draw_Info = "
";
break;
case FULL_ELLIPSE : cmd_Draw_Info = "
";
break;
case ELLIPSE_4 : cmd_Draw_Info = "
";
break;
}
break;
}
}
else if(DrawType == DrawPOLYGON) {
Angle_step_used = require;
Angle_end_used = require;
switch (AngleStepTyp) {
case None : switch (Placeform) {
case NONE : cmd_Draw_Info = "
";
break;
case CIRCLE : cmd_Draw_Info = "
";
break;
case FULL_ELLIPSE : cmd_Draw_Info = "
";
break;
case ELLIPSE_4 : cmd_Draw_Info = "
";
break;
}
break;
case Degreestep : switch (Placeform) {
case NONE : cmd_Draw_Info = "
";
break;
case CIRCLE : cmd_Draw_Info = "
";
break;
case FULL_ELLIPSE : cmd_Draw_Info = "
";
break;
case ELLIPSE_4 : cmd_Draw_Info = "
";
break;
}
break;
case Calcstep : switch (Placeform) {
case NONE : cmd_Draw_Info = "
";
break;
case CIRCLE : cmd_Draw_Info = "
";
break;
case FULL_ELLIPSE : cmd_Draw_Info = "
";
break;
case ELLIPSE_4 : cmd_Draw_Info = "
";
break;
}
break;
}
}
else if(DrawType == DrawMOVE) {
if (library || schematic) {
dlgMessageBox("! MOVE\nYou can use this function ponly in a Board.", "OK");
}
else {
Label_Move = Help_Move;
switch (AngleStepTyp) {
case None :
Angle_step_used = Not_Used;
Angle_end_used = Not_Used;
switch (Placeform) {
case NONE : if (!RotateMatch) cmd_Draw_Info = "
";
else cmd_Draw_Info = "
";
break;
case CIRCLE : if (!RotateMatch) cmd_Draw_Info = "
";
else cmd_Draw_Info = "
";
break;
case FULL_ELLIPSE : if (!RotateMatch) cmd_Draw_Info = "
";
else cmd_Draw_Info = "
";
break;
case ELLIPSE_4 : if (!RotateMatch) cmd_Draw_Info = "
";
else cmd_Draw_Info = "
";
break;
}
break;
case Degreestep :
Angle_step_used = require;
Angle_end_used = require;
switch (Placeform) {
case NONE : if (!RotateMatch) cmd_Draw_Info = "
";
else cmd_Draw_Info = "
";
break;
case CIRCLE : if (!RotateMatch) cmd_Draw_Info = "
";
else cmd_Draw_Info = "
";
break;
case FULL_ELLIPSE : if (!RotateMatch) cmd_Draw_Info = "
";
else cmd_Draw_Info = "
";
break;
case ELLIPSE_4 : if (!RotateMatch) cmd_Draw_Info = "
";
else cmd_Draw_Info = "
";
break;
}
break;
case Calcstep :
Angle_step_used = require;
Angle_end_used = require;
switch (Placeform) {
case NONE : if (!RotateMatch) cmd_Draw_Info = "
";
else cmd_Draw_Info = "
";
break;
case CIRCLE : if (!RotateMatch) cmd_Draw_Info = "
";
else cmd_Draw_Info = "
";
break;
case FULL_ELLIPSE : if (!RotateMatch) cmd_Draw_Info = "
";
else cmd_Draw_Info = "
";
break;
case ELLIPSE_4 : if (!RotateMatch) cmd_Draw_Info = "
";
else cmd_Draw_Info = "
";
break;
}
break;
}
}
}
else if(DrawType == DrawGROUP) {
Angle_step_used = require;
Angle_end_used = require;
cmd_Draw_Info = "
";
}
else if(DrawType == DrawPAD) {
Label_Move = Help_Move;
switch (AngleStepTyp) {
case None :
Angle_step_used = Not_Used;
Angle_end_used = Not_Used;
switch (Placeform) {
case NONE : cmd_Draw_Info = "
";
break;
case CIRCLE : cmd_Draw_Info = "
";
break;
case FULL_ELLIPSE : cmd_Draw_Info = "
";
break;
case ELLIPSE_4 : cmd_Draw_Info = "
";
break;
}
break;
case Degreestep :
Angle_step_used = require;
Angle_end_used = require;
switch (Placeform) {
case NONE : cmd_Draw_Info = "
";
break;
case CIRCLE : cmd_Draw_Info = "
";
break;
case FULL_ELLIPSE : cmd_Draw_Info = "
";
break;
case ELLIPSE_4 : cmd_Draw_Info = "
";
break;
}
break;
case Calcstep :
Angle_step_used = require;
Angle_end_used = require;
switch (Placeform) {
case NONE : cmd_Draw_Info = "
";
break;
case CIRCLE : cmd_Draw_Info = "
";
break;
case FULL_ELLIPSE : cmd_Draw_Info = "
";
break;
case ELLIPSE_4 : cmd_Draw_Info = "
";
break;
}
break;
}
}
else if(DrawType == DrawSMD) {
Label_Move = Help_Move;
switch (AngleStepTyp) {
case None :
Angle_step_used = Not_Used;
Angle_end_used = Not_Used;
switch (Placeform) {
case NONE : if (!RotateMatch) cmd_Draw_Info = "
";
else cmd_Draw_Info = "
";
break;
case CIRCLE : if (!RotateMatch) cmd_Draw_Info = "
";
else cmd_Draw_Info = "
";
break;
case FULL_ELLIPSE : if (!RotateMatch) cmd_Draw_Info = "
";
else cmd_Draw_Info = "
";
break;
case ELLIPSE_4 : if (!RotateMatch) cmd_Draw_Info = "
";
else cmd_Draw_Info = "
";
break;
}
break;
case Degreestep :
Angle_step_used = require;
Angle_end_used = require;
switch (Placeform) {
case NONE : if (!RotateMatch) cmd_Draw_Info = "
";
else cmd_Draw_Info = "
";
break;
case CIRCLE : if (!RotateMatch) cmd_Draw_Info = "
";
else cmd_Draw_Info = "
";
break;
case FULL_ELLIPSE : if (!RotateMatch) cmd_Draw_Info = "
";
else cmd_Draw_Info = "
";
break;
case ELLIPSE_4 : if (!RotateMatch) cmd_Draw_Info = "
";
else cmd_Draw_Info = "
";
break;
}
break;
case Calcstep :
Angle_step_used = require;
Angle_end_used = require;
switch (Placeform) {
case NONE : if (!RotateMatch) cmd_Draw_Info = "
";
else cmd_Draw_Info = "
";
break;
case CIRCLE : if (!RotateMatch) cmd_Draw_Info = "
";
else cmd_Draw_Info = "
";
break;
case FULL_ELLIPSE : if (!RotateMatch) cmd_Draw_Info = "
";
else cmd_Draw_Info = "
";
break;
case ELLIPSE_4 : if (!RotateMatch) cmd_Draw_Info = "
";
else cmd_Draw_Info = "
";
break;
}
}
}
else if(DrawType == DrawHOLE) {
switch (AngleStepTyp) {
case None :
Angle_step_used = Not_Used;
Angle_end_used = Not_Used;
switch (Placeform) {
case NONE : cmd_Draw_Info = "
";
break;
case CIRCLE : cmd_Draw_Info = "
";
break;
case FULL_ELLIPSE : cmd_Draw_Info = "
";
break;
case ELLIPSE_4 : cmd_Draw_Info = "
";
break;
}
break;
case Degreestep :
Angle_step_used = require;
Angle_end_used = require;
switch (Placeform) {
case NONE : cmd_Draw_Info = "
";
break;
case CIRCLE : cmd_Draw_Info = "
";
break;
case FULL_ELLIPSE : cmd_Draw_Info = "
";
break;
case ELLIPSE_4 : cmd_Draw_Info = "
";
break;
}
break;
case Calcstep :
Angle_step_used = require;
Angle_end_used = require;
switch (Placeform) {
case NONE : cmd_Draw_Info = "
";
break;
case CIRCLE : cmd_Draw_Info = "
";
break;
case FULL_ELLIPSE : cmd_Draw_Info = "
";
break;
case ELLIPSE_4 : cmd_Draw_Info = "
";
break;
}
break;
}
}
if (DrawType == DrawGROUP) {
Angle_step_used = require;
Angle_end_used = require;
cmd_Draw_Info = "
";
RotateMatch = 1;
}
else if (DrawType != DrawMOVE && PadVia == "VIA") {
RotateMatch = 0;
}
return;
}
// ****** main menu ******
int menue(void) {
int RESULT;
if (Placeform == NONE) {
if (DrawType == DrawGROUP) Length_Distance_Radius = " not used "; // 2012-04-12
else Length_Distance_Radius = "&+ radius ";
}
Name1st = " ";
NameExt = " ";
if (board && DrawType == DrawMOVE) {
Name1st = " &- 1st. Element ";
NameExt = " name";
}
if (board && DrawType == DrawWIRE) {
Name1st = " &- Signal ";
NameExt = " name";
}
if (board && DrawType == DrawPOLYGON) {
Name1st = " &- Signal ";
NameExt = " name";
}
if (library && DrawType == DrawPOLYGON) {
Name1st = " ";
NameExt = " ";
}
if (package && DrawType == DrawPAD) {
Name1st = " &- 1st. Pad ";
NameExt = " name";
}
if (board && DrawType == DrawPAD) {
Name1st = " &- Signal ";
NameExt = " name";
}
if (package && DrawType == DrawSMD) {
Name1st = " &- 1st. Smd ";
NameExt = " name";
}
if (package && DrawType == DrawMOVE || package && DrawType == DrawWIRE) {
Name1st = " ";
NameExt = " ";
}
if ( schematic) {
Name1st = " &- Net name ";
NameExt = " ";
}
RESULT = dlgDialog("Command Draw") {
dlgVBoxLayout {
dlgHBoxLayout {
dlgSpacing (8);
dlgLabel (Draw_Info, 1);
}
dlgHBoxLayout {
dlgGroup("Option") {
set_Draw_Info();
dlgGridLayout {
dlgCell( 1, 1) dlgHBoxLayout dlgSpacing(10);
dlgCell( 1, 4) dlgHBoxLayout dlgSpacing(10);
if (DrawType == DrawWIRE || DrawType == DrawPOLYGON) {
dlgCell( 5, 2) dlgLabel( "&Width ");
dlgCell( 5, 3) dlgStringEdit( width);
}
if (DrawType == DrawWIRE || DrawType == DrawPOLYGON || DrawType == DrawSMD || DrawType == DrawMOVE) {
dlgCell( 5, 5) dlgLabel(" &Layer");
dlgCell( 5, 6) dlgStringEdit(layer);
}
dlgCell( 5, 8) dlgLabel(Name1st, 1);
if ( Name1st != " ") {
dlgCell( 5, 9) dlgStringEdit(SigName); // Signal-, Element-, Net-Name
}
dlgCell( 5, 10) dlgLabel(NameExt ,1);
dlgCell( 7, 2) dlgLabel( "&X center coord. ");
dlgCell( 7, 3) dlgRealEdit( x1, minx, maxx);
dlgCell( 7, 5) dlgLabel( "&Y center coord. ");
dlgCell( 7, 6) dlgRealEdit( y1, miny, maxy);
dlgCell( 7, 8) dlgHBoxLayout { dlgLabel( Length_Distance_Radius, 1); dlgStretch(1); }
dlgCell( 7, 9) dlgHBoxLayout { dlgRealEdit( x2, 0, maxx); dlgStretch(1); }
dlgCell( 8, 2) dlgLabel("Angle st&art ° ");
dlgCell( 8, 3) dlgRealEdit( StartAngle, 0.0, 720.0); // 2010-10-15
dlgCell( 8, 5) dlgLabel("A&ngle step ");
dlgCell( 8, 6) dlgRealEdit( AngleStep, -360.0, 360.0);
dlgCell( 8, 7) dlgSpacing(12);
dlgCell( 8, 8) dlgLabel(" Angle &end ° ");
dlgCell( 8, 9) dlgRealEdit( EndAngle, 0.0, 720.0);
dlgCell( 8,10) dlgSpacing(50);
dlgCell( 9, 0) dlgVBoxLayout dlgSpacing(12);
dlgCell( 9, 3) if(DrawType == DrawGROUP) { // 2011-10-21
dlgCheckBox("Use selected group", UseMarkedGroup);
}
dlgCell( 9, 6) dlgLabel(Angle_step_used, 1);
dlgCell( 9, 9) dlgLabel(Angle_end_used, 1);
dlgCell( 5, 0) dlgRadioButton("Wire &1 ", DrawType) {
Draw_Info = " ";
if (library) Name_used = Not_Used;
else Name_used = " ";
//Length_Distance_Radius = "&+ radius ";
dlgReject();
dlgAccept();
}
dlgCell( 6, 0) dlgRadioButton("P&olygon ", DrawType) {
Draw_Info = " ";
if (library) Name_used = Not_Used;
else Name_used = " ";
//Length_Distance_Radius = "&+ radius ";
dlgAccept();
}
dlgCell( 6, 9) dlgLabel(Name_used, 1);
dlgCell( 7, 0) dlgRadioButton("&Move ", DrawType) { // 2006.07.06 alf@cadsoft.de
Draw_Info = "MOVE Elements by Name";
Name_used = require;
//Length_Distance_Radius = "&+ radius ";
dlgAccept();
}
dlgCell( 8, 0) dlgRadioButton("&Group *", DrawType) {
Draw_Info = "GROUP CUT all elements displayed and PASTE (rotated).";
Name_used = " ";
Length_Distance_Radius = "&+ distance ";
RotateMatch = 1;
dlgAccept();
}
if (board || package) {
dlgCell( 12, 0) dlgRadioButton("&Hole ", DrawType) {
Draw_Info = " ";
Name_used = " ";
Length_Distance_Radius = "%+ distance ";
dlgAccept();
}
if (DrawType == DrawPAD || DrawType == DrawHOLE) {
if (DrawType == DrawHOLE) {
dlgCell( 12, 2) dlgLabel( " Hole d&rill ");
}
if (DrawType == DrawPAD) {
if (package) {
dlgCell( 12, 2) dlgLabel( " Pad d&rill ");
}
if (board) {
dlgCell( 12, 2) dlgLabel( " Via d&rill ");
}
}
dlgCell( 12, 3) dlgStringEdit( Drill_Hole);
}
}
if (package) {
PadVia = "PAD";
Shapes[PAD_SHAPE_SQUARE] = "Square";
Shapes[PAD_SHAPE_ROUND] = "Round";
Shapes[PAD_SHAPE_OCTAGON] = "Octagon";
Shapes[PAD_SHAPE_LONG] = "Long";
Shapes[PAD_SHAPE_OFFSET] = "Offset";
Shapes[PAD_SHAPE_OFFSET+1] = " "; // last must be empty
dlgCell( 13, 0) dlgRadioButton("&Pad ", DrawType) {
Draw_Info = " ";
Name_used = " can be used";
Length_Distance_Radius = "&+ distance ";
dlgAccept();
}
if (DrawType == DrawPAD) {
dlgCell( 13, 2) dlgLabel( " PAD &Diameter ");
dlgCell( 13, 3) dlgStringEdit( PAD_diameter);
dlgCell( 13, 5) dlgLabel( " Schape ");
dlgCell( 13, 6) dlgComboBox(Shapes, ShapeSelect);
}
dlgCell( 14, 0) dlgRadioButton("&Smd ", DrawType) {
Draw_Info = " ";
Name_used = " ";
Length_Distance_Radius = "&+ distance ";
dlgAccept();
}
if (DrawType == DrawSMD) {
dlgCell( 14, 2) dlgLabel( " &Wide dx ");
dlgCell( 14, 3) dlgRealEdit( SMD_dx);
dlgCell( 14, 5) dlgLabel( " Heigh&t dy ");
dlgCell( 14, 6) dlgRealEdit( SMD_dy);
}
}
if (board) {
PadVia = "VIA";
Shapes[PAD_SHAPE_SQUARE] = "Square";
Shapes[PAD_SHAPE_ROUND] = "Round";
Shapes[PAD_SHAPE_OCTAGON] = "Octagon";
Shapes[PAD_SHAPE_OCTAGON+1] = " ";
ShapeSelect = PAD_SHAPE_OCTAGON+1;
dlgCell( 13, 0) dlgRadioButton("&Via ", DrawType) { // ** Via in Board / Pad in Package **
Draw_Info = " ";
Name_used = " can be used";
Length_Distance_Radius = "&+ distance ";
RotateMatch = 0;
dlgAccept();
}
if (DrawType == DrawPAD) {
dlgCell( 13, 2) dlgLabel( " VIA &Diameter ");
dlgCell( 13, 3) dlgStringEdit( PAD_diameter);
dlgCell( 13, 5) dlgLabel( " Schape ");
dlgCell( 13, 6) dlgComboBox(Shapes, ShapeSelect);
}
}
}
}
dlgStretch(1);
}
dlgSpacing(8);
dlgHBoxLayout {
dlgLabel(cmd_Draw_Info, 1); // picture for info
dlgGroup("Angle step type") {
dlgRadioButton("Not used ", AngleStepTyp) set_Draw_Info();
dlgRadioButton("&° degree step ", AngleStepTyp) set_Draw_Info();
dlgRadioButton("&/ calc. steps ", AngleStepTyp) set_Draw_Info();
dlgLabel(" ");
if (DrawType == DrawMOVE || DrawType == DrawSMD ) {
dlgCheckBox("Rotate &item to match ", RotateMatch) {
set_Draw_Info();
}
dlgHBoxLayout {
dlgLabel( " I&tem ");
dlgRealEdit(EangleOffset, 0.0, 359.9);
dlgLabel( " rotate offset");
}
}
}
dlgGroup("Form") {
dlgHBoxLayout {
//set_Draw_Info();
dlgRadioButton("Not &Used", Placeform) {
set_Draw_Info();
if (EllipsFactor != 1.0) {
M_EllipsFactor = EllipsFactor;
EllipsFactor = 1;
}
}
dlgRadioButton("&Circle", Placeform) {
set_Draw_Info();
if (EllipsFactor != 1.0) {
M_EllipsFactor = EllipsFactor;
EllipsFactor = 1;
}
}
dlgRadioButton("Full ellipse &0", Placeform) {
set_Draw_Info();
if (EllipsFactor != 1.0) {
M_EllipsFactor = EllipsFactor;
}
else EllipsFactor = M_EllipsFactor;
}
dlgRadioButton("1/&4 ellipse", Placeform) {
set_Draw_Info();
if (EllipsFactor != 1.0) {
M_EllipsFactor = EllipsFactor;
}
else EllipsFactor = M_EllipsFactor;
}
dlgStretch(1);
}
dlgSpacing(8);
dlgHBoxLayout {
dlgLabel( " Ellipse &factor y = x*f ");
dlgRealEdit( EllipsFactor, +0.01, +100.0);
}
}
dlgStretch(1);
}
}
dlgHBoxLayout {
dlgLabel("Grid " + GridUnit[grid] + "");
dlgSpacing(12);
dlgLabel(Mark_Info);
dlgStretch(1);
}
dlgLabel(Label_Move, 1);
dlgHBoxLayout {
dlgLabel("