mikrocontroller.net

Forum: Platinen EAGLE Script: if-Anweisung?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Balesi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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:
if (tKeepout == True)
  Display tKeepout;
else
  Display -tKeepout;

: Verschoben durch Moderator
Autor: helge (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Balesi (Gast)
Datum:

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

Autor: Balesi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Balesi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :(
If (Layer "tkeepout" == eingeblendet) /* wie heißt es richtig? */
   exit ("Display -tkeepout");
else
   exit ("Display tkeepout");

Autor: Nikolaus S. (Firma: Golden Delicious Computers) (hns)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.