element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      • Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Autodesk EAGLE
  • Products
  • More
Autodesk EAGLE
EAGLE Support (Deutsch) mittels ULP Elemente (Devices) in einen Schaltplan einfügen
  • Blog
  • Forum
  • Documents
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Autodesk EAGLE to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 14 replies
  • Subscribers 180 subscribers
  • Views 1437 views
  • Users 0 members are here
  • eagle
  • frage
  • ulp
Related

mittels ULP Elemente (Devices) in einen Schaltplan einfügen

Former Member
Former Member over 12 years ago

Kurze Frage: ich versuche mich gerade ein wenig an ULPs. Geht das Einfügen von Devices in einen Schaltplan, wenn man es denn mittels ULP machen will, nur über den Weg der Aufbereitung eines Strings, der beim beenden des ULP dann so ausgeführt wird, als ob man die Anweisungen von Hand eingegeben hätte (also ADD device@library 'R101' R90 (0 0) u.s.w.) oder gibt es - sinngemäß - einen Weg der vielleicht so aussehen könnte:

 

UL_PART p = new UL_PART(Library, device, package);

p.value = '47k';

p.attribute['my_attribute'] = 'Präzisionswiderstand mit abs. Toleranz 0.01% und TK=... ppm/K';

...

vielleicht dann noch so etwas wie

Schematic.sheet[i].add(s, x, y, orientation);

 

wie geagt ... sinngemäß ... in ULP schreibt man das alles etwas anders. In der Hilfe habe ich keine Hinweise gefunden, daß so etwas gehen könnte ...

 

Danke und Gruß ... Matthias.

  • Sign in to reply
  • Cancel
  • autodeskguest
    autodeskguest over 12 years ago

    matthias_jordan@yahoo.de wrote:

     

    Kurze Frage: ich versuche mich gerade ein wenig an ULPs. Geht das

    Einfügen von Devices in einen Schaltplan, wenn man es denn mittels ULP

    machen will, nur über den Weg der Aufbereitung eines Strings, der beim

    beenden des ULP dann so ausgeführt wird, als ob man die Anweisungen von

    Hand eingegeben hätte

     

    ULPs können grundsätzlich nur lesend auf die Board-/Schaltplandaten

    zugreifen.

    Änderungen aus ULPs heraus sind, wie du ganz richtig erkannt hast, nur

    über Skripte/exit-Strings möglich.

    --

     

    Lorenz

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 12 years ago

    Am 09.05.2013 13:44, schrieb matthias_jordan@yahoo.de:

    Kurze Frage: ich versuche mich gerade ein wenig an ULPs. Geht das

    Einfügen von Devices in einen Schaltplan, wenn man es denn mittels ULP

    machen will, nur über den Weg der Aufbereitung eines Strings, der beim

    beenden des ULP dann so ausgeführt wird, als ob man die Anweisungen von

    Hand eingegeben hätte (also ADD device@library 'R101' R90 (0 0) u.s.w.)

    oder gibt es - sinngemäß - einen Weg der vielleicht so aussehen könnte:

     

    UL_PART p = new UL_PART(Library, device, package);

    p.value = '47k';

    p.attribute['my_attribute'] = 'Präzisionswiderstand mit abs. Toleranz

    0.01% und TK=... ppm/K';

    ...

    vielleicht dann noch so etwas wie

    Schematic.sheet[i].add(s, x, y, orientation);

     

    wie geagt ... sinngemäß ... in ULP schreibt man das alles etwas anders.

    In der Hilfe habe ich keine Hinweise gefunden, daß so etwas gehen könnte

    ...

     

    Nein, ein ULP kann nur die Daten lesen, wenn man etwas ausführen

    möchte, muß man entweder einen String zurückgeben, in dem der Befehl

    enthalten ist, oder einen String, der ein Script (.scr) startet, in

    dem der/die Befehl/e stehen, die ausgeführt werden sollen.

    Das ist der übliche Weg.

     

    Sehen Sie sich dazu einige ULPs an, wie z.B.:

    exp-lbrs.ulp

    e-attributverwaltung.ulp

    make-symbol-device-package-bsdl.ulp

    renumber-sheet.ulp

     

    HELP SCRIPT

    HELP ...

     

     

    ***

    Um das Original zu lesen, und auch zuverlässig angehängte Dateien

    bereitstellen zu können, benutzen Sie news.cadsoft.de und einen

    funktionierenden News-Reader wie Thunderbird!

    ***

     

    Mit freundlichen Grüßen / Best regards

     

    Alfred Zaffran

    --

    ______________________________________________________________

    Alfred Zaffran              Support

    CadSoft Computer GmbH       Hotline:   08635-698930

    Pleidolfweg 15              FAX:       08635-698940

    84568 Pleiskirchen          eMail: <alf@cadsoft.de>

                                 Web:   <www.cadsoft.de>

    Registergericht: Amtsgericht Traunstein HRB 5573

    Geschäftsführer: Thomas Liratsch

    ______________________________________________________________

    EAGLE V6.4 availabe now!

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 12 years ago in reply to Former Member

    Danke für die Antworten ... das habe ich vermutet, weil ich auch kein Beispiel gefunden hatte, das sich an meinen Vorstellungen orientiert hätte. Wollte nur sicher gehen daß es nur zufällig kein Beispiel gibt, obwohl es aber trotzdem gehen würde.

     

    Trotzdem gibt es jetzt eine Anschlußfrage:

     

    Wenn das gehen würde, was ich mir gewünscht hätte, dann könnte ich, ohne zu wissen, welchen Namen das Bauteil erhalten wird, es mit einem Wert von Anfang an ausstatten. Also:

    UL_PART p = new UL_PART(Library, device, package);

    p.value = '47k';

    Schematic.sheet[i].add(p, x, y, orientation);

     

    Ob das nun R1, R10, R110 oder was auch immer wird, wäre mir egal.Vielleicht hätter der Autor der Library sogar beschlossen Widerstände mit W zu benennen. Ungewöhnlich, aber prinzipiell möglich. Bei Sicherungen mag der Namenspräfix nicht mehr so offensichtlich sein ...

     

    Wenn ich das ganze nun Script/String-basiert mache, dann weiß ich natürlich noch nicht, welchen Namen das Bauteil bekommen wird. Ich brauche aber den Namen, um im Anschluß VALUE <unbekannter Name> 47k zu notieren.

     

    Gibt es einen anderen Weg als den, den ich mir vorstelle, um das gewünschte zu realisieren?

     

    Gruß ... Matthias.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • autodeskguest
    autodeskguest over 12 years ago in reply to Former Member

    matthias_jordan@yahoo.de wrote:

     

    Wenn das gehen würde, was ich mir gewünscht hätte, dann könnte ich, ohne

    zu wissen, welchen Namen das Bauteil erhalten wird, es mit einem Wert

    von Anfang an ausstatten. Also:

    UL_PART p = new UL_PART(Library, device, package);

    p.value = '47k';

    Schematic.sheet[i].add(s, x, y, orientation);

     

    der ADD Befehl mit einen Namen für das einzufügende Bauteil aufgerufen

    werden.

    --

     

    Lorenz

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 12 years ago in reply to Former Member

    Am 16.05.2013 21:04, schrieb matthias_jordan@yahoo.de:

    Danke für die Antworten ... das habe ich vermutet, weil ich auch kein

    Beispiel gefunden hatte, das sich an meinen Vorstellungen orientiert

    hätte. Wollte nur sicher gehen daß es nur zufällig kein Beispiel gibt,

    es aber trotzdem gehen würde.

     

    Trotzdem gibt es jetzt eine Anschlußfrage:

     

    Wenn das gehen würde, was ich mir gewünscht hätte, dann könnte ich, ohne

    zu wissen, welchen Namen das Bauteil erhalten wird, es mit einem Wert

    von Anfang an ausstatten. Also:

    UL_PART p = new UL_PART(Library, device, package);

    p.value = '47k';

    Schematic.sheet[i].add(s, x, y, orientation);

     

    Moment, hier läuft das ULP ja schon durch einen existierenden

    Schaltplan, also ist der Name bekannt, bzw. man ermittelt den

    nächsten freien Namen, indem man eine Schleife durch alle Parts

    mit dem gleichen Prefix laufen lässt. Ist der Zähler der Schleife

    als Nummer hinter dem Prefix vorhanden, geht man zum nächsten,

    spätestens, wenn die Schleife durch alle Bauteile durch ist, hat

    man den letzten seiner Art, und damit den nächsten freien Zähler.

     

     

    Ob das nun R1, R10, R110 oder was auch immer wird, wäre mir

    egal.Vielleicht hätter der Autor der Library sogar beschlossen

    Widerstände mit W zu benenne. Ungewähnlich, aber prinzipiell möglich.

     

    Das kann man über UL_DEIVCE mit .prefix auslesen, aber dann wäre es

    kein Widerstand.

    Man sollte sich schon an die (inter)nationalen Vorgaben halten.

     

     

    Bei Sicherungen mag der Namenspräfix nicht mehr so offensichtlich sein

    ...

    F == Fuse (oder auch wie manche sagen, Feinsicherung)

    In alten Plänen sieht man gelegentlich auch S oder SI == Sicherung.

    Manche Anwender nehmen das mit dem Prefix nicht immer so genau.

     

     

    Wenn ich das ganze nun Script/String-basiert mache, dann weiß ich

    natürlich noch nicht, welchen Namen das Bauteil bekommen wird. Ich

     

    ADD device 'name'

    In einem SCRIPT (kein ULP, und auch nicht mit einem ULP verwechseln)

    kann man den Namen vorgeben. Siehe ***

     

     

    brauche aber den Namen, um im Anschluß VALUE <unbekannter Name> 47k zu

    notieren.

     

    ADD device_name@library_name name gate orientation (koordinate)

     

    Wenn der library_name nicht bekannt ist, kann man ihn auch weg lassen,

    Eagle sucht dann in allen LBRs die in USE sind nach dem Namen.

     

    Beispiel:

     

    ADD r-eu_r0603 'X1' (100 100);

     

    ***

    Hier wird das Bauteil "R-EU_R0603" mit dem Namen "X1" platziert, obwohl

    der Prefix im Device auf "R" für Widerstand/Resistor gesetzt ist.

    Der Name muß nur angegeben werden, wenn man eine anderen Namen,

    als den, der aus dem Prefix und dem nächsten freien Zähler, den Eagle

    ermittelt, vergeben will.

     

    Den Wert kann man dann mit "VALUE X1 'wert';"  zuweisen.

     

     

    Gibt es einen anderen Weg als den, den ich mir vorstelle, um das

    gewünschte zu realisieren?

     

    Mir ist noch nicht ganz klar, was genau der Zweck sein soll?

    Einfach ein Bauteil in einen bestehenden Schaltplan einfügen?

    Dazu muß aber eine Koordinate bekannt sein, sonst kann das Device/Part

    nicht platziert werden!

     

    HELP ADD

    HELP USE

    HELP VALUE

     

     

    ***

    Um das Original zu lesen, und auch zuverlässig angehängte Dateien

    bereitstellen zu können, benutzen Sie news.cadsoft.de und einen

    funktionierenden News-Reader wie Thunderbird!

    ***

     

    Mit freundlichen Grüßen / Best regards

     

    Alfred Zaffran

    --

    ______________________________________________________________

    Alfred Zaffran              Support

    CadSoft Computer GmbH       Hotline:   08635-698930

    Pleidolfweg 15              FAX:       08635-698940

    84568 Pleiskirchen          eMail: <alf@cadsoft.de>

                                 Web:   <www.cadsoft.de>

    Registergericht: Amtsgericht Traunstein HRB 5573

    Geschäftsführer: Thomas Liratsch

    ______________________________________________________________

    EAGLE V6.4 availabe now!

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Johann.Glaser@gmx.at
    Johann.Glaser@gmx.at over 12 years ago in reply to Former Member

    Hallo Herr Zaffran!

     

    Am Dienstag, den 14.05.2013, 17:06 +0200 schrieb A. Zaffran:

    Am 09.05.2013 13:44, schrieb matthias_jordan@yahoo.de:

    Kurze Frage: ich versuche mich gerade ein wenig an ULPs. Geht das

    Einfügen von Devices in einen Schaltplan, wenn man es denn mittels ULP

    machen will, nur über den Weg der Aufbereitung eines Strings, der beim

    beenden des ULP dann so ausgeführt wird, als ob man die Anweisungen von

    Hand eingegeben hätte (also ADD device@library 'R101' R90 (0 0) u.s.w.)

    oder gibt es - sinngemäß - einen Weg der vielleicht so aussehen könnte:

     

    UL_PART p = new UL_PART(Library, device, package);

    p.value = '47k';

    p.attribute['my_attribute'] = 'Präzisionswiderstand mit abs. Toleranz

    0.01% und TK=... ppm/K';

    ...

    vielleicht dann noch so etwas wie

    Schematic.sheet[i].add(s, x, y, orientation);

     

    wie geagt ... sinngemäß ... in ULP schreibt man das alles etwas anders.

    In der Hilfe habe ich keine Hinweise gefunden, daß so etwas gehen könnte

    ...

     

    Nein, ein ULP kann nur die Daten lesen, wenn man etwas ausführen

    möchte, muß man entweder einen String zurückgeben, in dem der Befehl

    enthalten ist, oder einen String, der ein Script (.scr) startet, in

    dem der/die Befehl/e stehen, die ausgeführt werden sollen.

    Das ist der übliche Weg.

     

    Diese unangenehmer Umstand ist mir persönlich schon länger bewusst. Da

    es jetzt wieder zur Sprache kommt, möchte ich hier einklinken:

     

    Wieso muss das weiterhin so sein?

     

    Zahlreiche ULPs würden enorm vereinfacht, und viele neue Ideen würden

    möglich, wenn es (so oder ähnlich wie Herr Jordan das vorschlägt)

    möglich wäre, auch von ULPs aus alle Aktionen durchzuführen, die bisher

    einem Script vorbehalten sind.

     

    Mit freundlichen Grüßen

      Johann Glaser

     

     

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 12 years ago in reply to Johann.Glaser@gmx.at

    Am 17.05.2013 17:23, schrieb Johann Glaser:

    Hallo Herr Zaffran!

     

    Am Dienstag, den 14.05.2013, 17:06 +0200 schrieb A. Zaffran:

    Am 09.05.2013 13:44, schrieb matthias_jordan@yahoo.de:

    Kurze Frage: ich versuche mich gerade ein wenig an ULPs. Geht das

    Einfügen von Devices in einen Schaltplan, wenn man es denn mittels ULP

    machen will, nur über den Weg der Aufbereitung eines Strings, der beim

    beenden des ULP dann so ausgeführt wird, als ob man die Anweisungen von

    Hand eingegeben hätte (also ADD device@library 'R101' R90 (0 0) u.s.w.)

    oder gibt es - sinngemäß - einen Weg der vielleicht so aussehen könnte:

     

    UL_PART p = new UL_PART(Library, device, package);

    p.value = '47k';

    p.attribute['my_attribute'] = 'Präzisionswiderstand mit abs. Toleranz

    0.01% und TK=... ppm/K';

    ...

    vielleicht dann noch so etwas wie

    Schematic.sheet[i].add(s, x, y, orientation);

     

    wie geagt ... sinngemäß ... in ULP schreibt man das alles etwas anders.

    In der Hilfe habe ich keine Hinweise gefunden, daß so etwas gehen könnte

    ...

     

    Nein, ein ULP kann nur die Daten lesen, wenn man etwas ausführen

    möchte, muß man entweder einen String zurückgeben, in dem der Befehl

    enthalten ist, oder einen String, der ein Script (.scr) startet, in

    dem der/die Befehl/e stehen, die ausgeführt werden sollen.

    Das ist der übliche Weg.

     

    Diese unangenehmer Umstand ist mir persönlich schon länger bewusst. Da

    es jetzt wieder zur Sprache kommt, möchte ich hier einklinken:

     

    Wieso muss das weiterhin so sein?

     

    Zahlreiche ULPs würden enorm vereinfacht, und viele neue Ideen würden

    möglich, wenn es (so oder ähnlich wie Herr Jordan das vorschlägt)

    möglich wäre, auch von ULPs aus alle Aktionen durchzuführen, die bisher

    einem Script vorbehalten sind.

     

    Mit freundlichen Grüßen

       Johann Glaser

     

    Hallo Herr Glaser,

     

    unsere Programmierer begründen das mit der Problematik, daß in

    bestimmten Situationen eine Endlosschleife entstehen kann.

     

     

    ***

    Um das Original zu lesen, und auch zuverlässig angehängte Dateien

    bereitstellen zu können, benutzen Sie news.cadsoft.de und einen

    funktionierenden News-Reader wie Thunderbird!

    ***

     

    Mit freundlichen Grüßen / Best regards

     

    Alfred Zaffran

    --

    ______________________________________________________________

    Alfred Zaffran              Support

    CadSoft Computer GmbH       Hotline:   08635-698930

    Pleidolfweg 15              FAX:       08635-698940

    84568 Pleiskirchen          eMail: <alf@cadsoft.de>

                                 Web:   <www.cadsoft.de>

    Registergericht: Amtsgericht Traunstein HRB 5573

    Geschäftsführer: Thomas Liratsch

    ______________________________________________________________

    EAGLE V6.4 availabe now!

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • autodeskguest
    autodeskguest over 12 years ago in reply to Former Member

    Hallo Herr Zaffran!

     

    Am Dienstag, den 21.05.2013, 08:45 +0200 schrieb A. Zaffran:

    Am 17.05.2013 17:23, schrieb Johann Glaser:

    Hallo Herr Zaffran!

     

    Am Dienstag, den 14.05.2013, 17:06 +0200 schrieb A. Zaffran:

    Am 09.05.2013 13:44, schrieb matthias_jordan@yahoo.de:

    Kurze Frage: ich versuche mich gerade ein wenig an ULPs. Geht das

    Einfügen von Devices in einen Schaltplan, wenn man es denn mittels ULP

    machen will, nur über den Weg der Aufbereitung eines Strings, der beim

    beenden des ULP dann so ausgeführt wird, als ob man die Anweisungen von

    Hand eingegeben hätte (also ADD device@library 'R101' R90 (0 0) u.s.w.)

    oder gibt es - sinngemäß - einen Weg der vielleicht so aussehen könnte:

     

    UL_PART p = new UL_PART(Library, device, package);

    p.value = '47k';

    p.attribute['my_attribute'] = 'Präzisionswiderstand mit abs. Toleranz

    0.01% und TK=... ppm/K';

    ...

    vielleicht dann noch so etwas wie

    Schematic.sheet[i].add(s, x, y, orientation);

     

    wie geagt ... sinngemäß ... in ULP schreibt man das alles etwas anders.

    In der Hilfe habe ich keine Hinweise gefunden, daß so etwas gehen könnte

    ...

     

    Nein, ein ULP kann nur die Daten lesen, wenn man etwas ausführen

    möchte, muß man entweder einen String zurückgeben, in dem der Befehl

    enthalten ist, oder einen String, der ein Script (.scr) startet, in

    dem der/die Befehl/e stehen, die ausgeführt werden sollen.

    Das ist der übliche Weg.

     

    Diese unangenehmer Umstand ist mir persönlich schon länger bewusst. Da

    es jetzt wieder zur Sprache kommt, möchte ich hier einklinken:

     

    Wieso muss das weiterhin so sein?

     

    Zahlreiche ULPs würden enorm vereinfacht, und viele neue Ideen würden

    möglich, wenn es (so oder ähnlich wie Herr Jordan das vorschlägt)

    möglich wäre, auch von ULPs aus alle Aktionen durchzuführen, die bisher

    einem Script vorbehalten sind.

     

    Mit freundlichen Grüßen

       Johann Glaser

     

    Hallo Herr Glaser,

     

    unsere Programmierer begründen das mit der Problematik, daß in

    bestimmten Situationen eine Endlosschleife entstehen kann.

     

    Vielen Dank für Ihre Antwort!

     

    Könnte man diese Fälle vorher detektieren und die Ausführung des ULP mit

    einer entsprechenden Fehlermeldung abbrechen? Oder könnte man diese

    Fälle gut dokumentieren und die ULP-Programmierer selbst die

    Verantwortung übernehmen? Oder könnte man Workarounds schaffen, so dass

    die Endlosschleifen nicht auftreten und die ULP-Programmierer dieses

    (natürlich dokumentierte) Workaround-Verhalten in ihren Überlegungen

    berücksichtigen?

     

    Mit freundlichen Grüßen

      Johann Glaser

     

     

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 12 years ago in reply to Former Member

    Auch hier wieder ... vielen Dank für die Antwort.

     

    der entscheidende Teil ist gleich der am Anfang:

    Moment, hier läuft das ULP ja schon durch einen existierenden

    Schaltplan, also ist der Name bekannt, bzw. man ermittelt den

    nächsten freien Namen, indem man eine Schleife durch alle Parts

    mit dem gleichen Prefix laufen lässt. Ist der Zähler der Schleife

    als Nummer hinter dem Prefix vorhanden, geht man zum nächsten,

    spätestens, wenn die Schleife durch alle Bauteile durch ist, hat

    man den letzten seiner Art, und damit den nächsten freien Zähler.

     

    Ich habe es genau so gemacht, weil mir (auch) nix besseres eingefallen ist. Füge also mit ADD ein neues Bauteil ein und vergebe explizit zuvor einen Namen. Die Namensvergabe loopt über alle Bauteile mit dem selben Präfix und sucht die erste "freie Nummer". Präfix + Nummer ist dann der Name. Dann kann ich diesem Bauteil auch später einen Wert verpassen bezugnehmend auf den zuvor vergebenen Namen.

     

    Also ... auch hier höre ich heraus, daß es keine Service-Funktion gibt, der man ohne Programmierung im ULP sagen kann - sinngemäß: "gib mir zum Präfix P die erste freie Nummer" bzw. "gib mir zum Präfix P beginnend ab Nummer N die nächste freie Nummer".

     

    Präfix aus LIB auslesen: guter Tip ... habe ich garnicht dran gedacht ... in meinem Beispiel habe ich das R erst mal "hart" codiert.

     

    dann kommt das ganze aus dem Umfeld ULP und der fälschlichen Benutzung des Begriffes SCRIPT ... Ja ... wir reden nur von ULPs, auch wenn ich vorher vielleicht mal fälschlicherweise das Wort Script benutzt habe.

     

     

    Am Ende wird es nochmal interessant: Ja - natürlich muß ich das Bauteil irgendwo hinplatzieren. Unter Angaben von Koordinaten. Da habe ich gemogelt. Ich setzte den 'Teilschaltplan' in einen Bereich, wo ich (und nur ich) normalerweise keine Schaltpläne zeichne: nämlich in den zweiten, dritten oder vierten Quadranten. Der Plan selber ist bei mir immer im ersten Quadranten. Dann im Anschluß halt markieren und an den Ort verschieben, wo ich den Teil haben will.

     

    Eine Lösung wäre, wenn ich das ULP dazu überreden könnte, beim Benutzer eine Koordinate abfragen zu können. Natürlich als Koordinate mit der Maus. Ich habe mich aber noch nicht damit beschäftigt, ob das überhaupt geht.

     

    ich für meinen Teil betrachte die Fragen als beantwortet ... nochmal vielen Dank ... Gruß ... Matthias, DL8NCI.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 12 years ago in reply to Former Member

    Am 23.05.2013 20:59, schrieb matthias_jordan@yahoo.de:

    Eine Lösung wäre, wenn ich das ULP dazu überreden könnte, beim Benutzer

    eine Koordinate abfragen zu können. Natürlich als Koordinate mit der

    Maus. Ich habe mich aber noch nicht damit beschäftigt, ob das überhaupt

    geht.

     

    Nein, das ist ein Wunsch, den ich schon lange habe, im ULP die

    Mauskoordinate abfragen.

     

    Aber, wenn sie aus dem ULP den Befehl-String direkt zurückgeben,

     

    exit("ADD device@lbr 'prefixnummer' ");

     

    bzw.

     

    sprintf(cmd, "ADD %s@%s '%s%d'", device, lbr, prefix, nummer);

    exit(cmd);

     

    dann hängt das Bauteil am Cursor, und man kann es manuell absetzen.

    Weil ohne fehlende Koordinate (x y) und/oder abschließendem ";" oder

    neuen Befehl, bleibt der momentane Befehl ADD aktiv. image

     

    Das geht nicht aus einem Script heraus, also wenn man in ein SCRIPT

    schreibt, und dann am Ende des ULP das SCRIPT aufruft!

     

    output(scriptname) {

       printf("ADD %s@%s '%s%d'", device, lbr, prefix, nummer);

    }

     

    exit("SCRIPT 'scriptname');

     

    Weil beim Beenden des SCRIPT, wird der Script-Befehl beendet, und somit

    der letzte Befehl innerhalb des Script, und ohne Koordinate wird der

    ADD-Befehl beendet ohne das Bauteil abzusetzen. image

     

    TIP: Achten Sie auch immer darauf, die Namen von Dateien in ' '

    einzuschließen, da uns leider Mister MicroSoft die Leerzeichen

    in Pfad und Dateinamen mit Windows 95 beschert hat, und die

    machen nix wie Ärger. image

     

     

    ***

    Um das Original zu lesen, und auch zuverlässig angehängte Dateien

    bereitstellen zu können, benutzen Sie news.cadsoft.de und einen

    funktionierenden News-Reader wie Thunderbird!

    ***

     

    Mit freundlichen Grüßen / Best regards

     

    Alfred Zaffran

    --

    ______________________________________________________________

    Alfred Zaffran              Support

    CadSoft Computer GmbH       Hotline:   08635-698930

    Pleidolfweg 15              FAX:       08635-698940

    84568 Pleiskirchen          eMail: <alf@cadsoft.de>

                                 Web:   <www.cadsoft.de>

    Registergericht: Amtsgericht Traunstein HRB 5573

    Geschäftsführer: Thomas Liratsch

    ______________________________________________________________

    EAGLE V6.4 availabe now!

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube