Forum: Platinen EAGLE Script: if-Anweisung?


von Balesi (Gast)


Lesenswert?

Hallo zusammen,

gibt es bei der Programmierung eines EAGLE Scripts so etwas wie eine 
if-Anweisung?

Ich habe mir im EAGLE-Script ein paar Befehle erzeugt, mit denen ich mir 
Layer ein- und ausblenden kann. Bei Klick auf "Top" werden z.B. Layer 
Top, tNames, tPlace, tDocu, tOrigins, tKeepout etc. angezeigt.-

Jetzt möchte ich gerne einen Befehlö erzeugen um Layer zu "toggeln". 
Also bei Kliuck auf "Sperrfläche" sollen tKeepout und tRestrict 
eingeblendet werden, wenn sie aus sind bzw. ausgeblendet werden, wenn 
sie ein sind.

Gibt es da etwas vergleichbares wie 'if'?

Also so in etwa:
1
if (tKeepout == True)
2
  Display tKeepout;
3
else
4
  Display -tKeepout;

: Verschoben durch Moderator
von helge (Gast)


Lesenswert?

Balesi schrieb:
> Gibt es da etwas vergleichbares wie 'if'?

Es gibt nicht nur "vergleichbares". Es gibt sogar das "if".

https://www.google.de/search?client=opera&q=eagle+ulp+tutorial&sourceid=opera&ie=UTF-8&oe=UTF-8

von Balesi (Gast)


Lesenswert?

Ja, es gibt das if, aber nur bei ULP, nicht in einem Script.

von Balesi (Gast)


Lesenswert?

Balesi schrieb:
> Jetzt möchte ich gerne einen Befehl erzeugen um Layer zu "toggeln".
> Also bei Klick auf "Sperrfläche" sollen tKeepout und tRestrict
> eingeblendet werden, wenn sie aus sind bzw. ausgeblendet werden, wenn
> sie ein sind.

Ist dieses Vorgehen im Script (*.scr) überhaupt möglich?

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

Ist in einem Script nicht möglich. Aber du kannst ein ulp schreiben und 
dort dann dein Script entsprechend erzeugen und an die exit Funktion 
übergeben.

Matthias

von Balesi (Gast)


Lesenswert?

Μαtthias W. schrieb:
> und an die exit Funktion
> übergeben

Vielen Dank Matthias,

das ist eine gute Idee. Das Übergeben per Exit funktioniert schon mal. 
Aber ich habe Probleme die richtige if-Anweisung zu ermitteln :(
1
If (Layer "tkeepout" == eingeblendet) /* wie heißt es richtig? */
2
   exit ("Display -tkeepout");
3
else
4
   exit ("Display tkeepout");

von Nikolaus S. (Firma: Golden Delicious Computers) (hns)


Lesenswert?

So einfach ist das leider nicht.

Man muß eine Schleife über alle Layer laufen lassen, die gewünschte 
Layer-Nummer heraussuchen und dann den visible-Status nehmen.

Ungestestet grob so:

board(B) {
  B.layers(L) {
    if(L.number == LAYER_TKEEPOUT)
       status = L.visible
    }
  }
if(status)
  ...

(siehe auch Beispiel unter Hilfe > UL_LAYER)

Man kann sowas auch in eine Funktion packen, dann wird der Code 
übersichtlicher und es sollte möglich sein

if(isVisible(LAYER_TKEEPOUT))

zu verwenden.

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.