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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.