Forum: Platinen EAGLE ULP - Befehlssequenzen ausgeben


von mike (Gast)


Lesenswert?

Ich möchte gerne per EAGLE ULP mehrere Polygone zeichnen in Abhängigkeit 
von User-Eingaben.

Wie kann ich mehrere Befehle als ganzes ausgeben?

Bisher kann ich eine Befehlszeile ausgeben:
exit (befehl);

Ich benötige aber:
exit(befehl1 befehl2 befehl3,...);

Ich habe schon probiert die Befehle in einem String zu schreiben:
string befehl;
schleife{
sprintf(befehl);
}
exit(befehl);

Hier überschreibt er natürlich alles und nimmt nur den letzten befehl.

Auch das hier hatte keinen erfolg:
string befehl[];
schleife (zähler i){
sprintf(befehl[i]);
}
exit(befehl[]);
hier kann ich aber nur einen bestimmten befehl ausgeben (z.B 1, 2, 3...) 
aber nicht alle (z.B. 1-9) weil die Angabe exit(befehl[]); zum Fehler 
führt.

Hat jemand einen Tip?

Wie kann ich einen string "fortlaufend" erweitern?

: Verschoben durch Admin
von Bird (Gast)


Lesenswert?

Warum schreibst Du nicht ein ULP Programm und führst dieses dann aus?

Warum willst Du sowas unbedingt in der Kommandozeile machen?

Gruss

von assi (Gast)


Lesenswert?

Du kannst in der ULP ein Script erstellen und das dann ausführen.

von mike (Gast)


Lesenswert?

Bird schrieb:
> Warum schreibst Du nicht ein ULP Programm und führst dieses dann aus?

Das mache ich ja, aber ich schaffe es nicht mehr als eine Zeile 
auszugeben.

von Michael H. (michael_h45)


Lesenswert?

hast du ftp://ftp.cadsoft.de/eagle/userfiles/doc/ulp_de.pdf gelesen?

von mike (Gast)


Lesenswert?

Michael H. schrieb:
> hast du ftp://ftp.cadsoft.de/eagle/userfiles/doc/ulp_de.pdf
> gelesen?

Danke für den Hinweis, ich habe mich in der Hilfe versucht zu recht zu 
finden, aber ich schaue mir dieses pdf einmal an.

von mike (Gast)


Lesenswert?

Ich habe es hinbekommen:
1
sprintf(Cmd,   "grid mm;\n"
2
                 "layer %d;\n",
3
                  Layer);
4
5
void funktion(int i, real x1, real y1, real r1, real x2, real y2, real x3, real y3, real r2, real x4, real y4){
6
    string text;
7
    sprintf(text,   "polygon %f (%f %f) -%f (%f %f) +0 (%f %f) +%f (%f %f) @+0 (%f %f);\n",
8
                polygonwidth, x1, y1, r1, x2, y2, x3, y3, r2, x4, y4, x1, y1);
9
    Cmd += text; //<-- Hier ist die Lösung!!
10
}
11
12
exit(Cmd);

Danke Michael H. für den Link.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.