You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.1 KiB
Plaintext
80 lines
2.1 KiB
Plaintext
#usage "<b>Export Net-Classes</b>\n"
|
|
"<p>"
|
|
"<author>Author: support@cadsoft.de</author>"
|
|
|
|
// THIS PROGRAM IS PROVIDED AS IS AND WITHOUT WARRANTY OF ANY KIND, EXPRESSED OR IMPLIED
|
|
|
|
#require 5.0200;
|
|
|
|
string Version = "1.1"; // 2008-10-24 export Matrix - alf@cadsoft.de
|
|
|
|
string grid[] = { "MIC", "MM", "MIL", "INCH" };
|
|
int Gridval = 1; // 0=mic 1=mm 2=mil 3=inch ***
|
|
// choose the value for the units you're working with
|
|
|
|
string cmd, s;
|
|
string projectm;
|
|
|
|
real u2u(int val) {
|
|
switch(Gridval) {
|
|
case 0 : return u2mic(val);
|
|
case 1 : return u2mm(val);
|
|
case 2 : return u2mil(val);
|
|
case 3 : return u2inch(val);
|
|
}
|
|
}
|
|
|
|
void savescr(string projectname) {
|
|
string file = dlgFileSave("save CLASS script", filesetext(projectname, "-class.scr"), "*.scr");
|
|
if (file) {
|
|
output(file, "wt" ) printf("%s", cmd);
|
|
exit(0);
|
|
}
|
|
else return;
|
|
}
|
|
|
|
void menue(string projectname) {
|
|
int Result = dlgDialog("Export Net CLASSes") {
|
|
dlgHBoxLayout dlgSpacing(600);
|
|
dlgHBoxLayout {
|
|
dlgVBoxLayout dlgSpacing(400);
|
|
dlgTextEdit(cmd);
|
|
}
|
|
dlgHBoxLayout {
|
|
dlgPushButton("+&Cancel") dlgAccept();
|
|
dlgPushButton("&Save script") savescr(projectname);
|
|
dlgStretch(1);
|
|
}
|
|
};
|
|
if (Result == 0) exit (0);
|
|
return;
|
|
}
|
|
|
|
void class(UL_CLASS C) {
|
|
int classn = C.number;
|
|
for (int n = 0; n <= C.number; n++) {
|
|
if (C.name) {
|
|
sprintf(s, "CLASS %d '%s' %.4f %d:%.4f %.4f;\n", C.number, C.name, u2u(C.width), n, u2u(C.clearance[n]), u2u(C.drill) );
|
|
cmd += s;
|
|
}
|
|
}
|
|
}
|
|
|
|
// main
|
|
if (board) board(B) {
|
|
projectm = B.name;
|
|
sprintf(cmd, "# export from %s\n# at %s with %s Version %s\nGRID %s\n;", B.name, t2string(time()), EAGLE_SIGNATURE, Version, grid[Gridval]);
|
|
B.classes(C) class(C);
|
|
}
|
|
|
|
else if (schematic) schematic(S) {
|
|
projectm = S.name;
|
|
sprintf(cmd, "# export from %s\n# at %s with %s Version %s\nGRID %s;\n", S.name, t2string(time()), EAGLE_SIGNATURE, Version, grid[Gridval]);
|
|
S.classes(C) class(C);
|
|
}
|
|
|
|
else if (library) dlgMessageBox("start this ULP in Board or Schematic", "OK");
|
|
|
|
cmd += "GRID LAST;\nCLASS";
|
|
menue(projectm);
|