/* * @(#) tst.c 1.2 (2012/04/17 00:41:00) * @(#) source auf /mnt/home/mh/bla * created by mh on hera */ #include #include #include #include #include #define PI (float)3.141592654 // pi... int main(int argc, char **argv) { unsigned int i, debug = 0; float a, b, c, xa, ya, xb, yb, xc, yc; char arr; extern char *optarg; unsigned int nmbr = 28; // anzahl leds char *nnp = "led_c_"; // präfix für netznamen char *wdth = "0.1"; // polygonzug-breite float wi = 12.857143; // 360 grad / 28 leds float irad = 2.0; // innenradius float arad = 27.5; // außenradius float wbr = 10.0; // breite der leiterschenkel in grad // muss kleiner sein als WI - clearance while ((arr = getopt(argc, argv, "p:n:w:i:a:b:d:")) != -1) { switch (arr) { case 'p': nnp = malloc(strlen(optarg) * sizeof(*nnp)); strcpy(nnp, optarg); break; case 'n': nmbr = atoi(optarg); wi = 360.0 / (float)nmbr; break; case 'w': wdth = malloc(strlen(optarg) * sizeof(*wdth)); strcpy(wdth, optarg); break; case 'i': irad = atof(optarg); break; case 'a': arad = atof(optarg); break; case 'b': wbr = atof(optarg); break; case 'd': debug = atoi(optarg); break; case 'h': case '?': default: fprintf(stderr, "Usage:\n" " -p praefix fuer netznamen\n" " -n anzahl leds\n" " -w polygonzug-breite\n" " -i innenradius\n" " -a außenradius\n" " -b breite der leiterschenkel in grad\n" " -d [0/1] debug print\n" ); exit(1); } } printf("\n"); if (!debug) printf("grid mm 1 on; set wire_bend 2;\n"); for (i = 0; i < nmbr; i++) { a = ((float)i * wi - (wbr / 2.0)); xa = arad * sin((a * PI) / 180.0); ya = arad * cos((a * PI) / 180.0); if (debug) printf("a%02d = %3.2f - (%3.3f %3.3f)\n", i, a, xa, ya); b = ((float)i * wi + (wbr / 2.0)); xb = arad * sin((b * PI) / 180.0); yb = arad * cos((b * PI) / 180.0); if (debug) printf("b%02d = %3.2f - (%3.3f %3.3f)\n", i, b, xb, yb); c = (float)i * wi; xc = irad * sin((c * PI) / 180); yc = irad * cos((c * PI) / 180); if (debug) printf("c%02d = %3.2f - (%3.3f %3.3f)\n\n", i, c, xc, yc); if(!debug) printf( "polygon %s%02d %s " "(%.2f %.2f) (%.2f %.2f) (%.2f %.2f) (%.2f %.2f);\n", nnp, i, wdth, xc, yc, xa, ya, xb, yb, xc, yc); } return (0); } /* * setMEstart * MOD +TAB4 * CMD make * setMEend */