EAGLE Script: if-Anweisung?

Gast #5404298
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;
Gast #5407228
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?
Gast #5407438
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");
(Firma: Golden Delicious Computers) #5411096
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren