Forum: Platinen [Eagle] Einfachere Handbestückung "gui.lua"


von Tut N. (zursache)


Angehängte Dateien:

Lesenswert?

Wie macht ihr die Bestückung per Hand?

Immer wieder sitze ich vor einer neuen Platine und denke mir, das die 
manuelle Bestückung doch um einiges flotter von Hand gehen kann, wenn 
man ein wenig Hilfe vom Computer bekommt:
* Aufzeigen aller gleicher Bauteile
* Polarität anzeigen
* TOP/BOTTOM spiegeln
* 360`rotieren

Nun habe ich ein Tool gefunden, welches all dies zu können scheint 
(siehe Screenshot):
https://github.com/znuh/pcbtools

Leider ist es schlecht dokumentiert (fuer welche eagle-version? welche 
Abhängigkeiten?) und ich bekomme es weder mit lua5.2 ("socket" not 
found) noch mit lua5.1 ("./bdraw.lua:278: bad argument #2 to 'max'") zum 
laufen.

Nutzt jemand dieses Tool?
Oder wie macht ihr die Bestückung per Hand von zweiseitigen, dicht mit 
SMD bestückten Platinen von bis zu Europlatinengröße?

von Walter T. (nicolas)


Lesenswert?

Mit der Leiterplatte auch den richtigen Bestückungsplan zeichnen.

von Hans (Gast)


Lesenswert?

Hab mir in Qt schnell was gezimmert. Interpretiert den BOM und zeichnet 
dann auf den PNG export vom Board wo welche Bauteile sind... also alle 
100n, alle Beads,...

73

von Falk B. (falk)


Lesenswert?

@Tut Nix (zursache)

>* Aufzeigen aller gleicher Bauteile

Dafür gibt es das ULP showvalues.ulp

>* Polarität anzeigen

Sieht man auf dem Bestückungsdruck

>* TOP/BOTTOM spiegeln

Kann Eagle leider nicht direkt, muss man gespiegelt in ein PDF drucken. 
Oder nach einem Ausführen von showvalues einen Screenshot machen 
(DRUCK-Taste) und dann in einem beliebigen Grafikprogramm spiegeln 
(CTRL-C, CTRL-V). Ist aber nur ein Workaround.

>* 360`rotieren

Etwas zweckfrei ;-)

von Paul B. (paul_baumann)


Lesenswert?

>>* 360`rotieren
Falk B. schrieb:
> Etwas zweckfrei ;-)

Nein, denn man kann so feststellen, ob die Bauelemente aus den Bohrungen 
fallen oder nicht.
MfG Paul

von hunz (Gast)


Lesenswert?

Tut N. schrieb:
> Nun habe ich ein Tool gefunden, welches all dies zu können scheint
> (siehe Screenshot):
> https://github.com/znuh/pcbtools
>
> Leider ist es schlecht dokumentiert (fuer welche eagle-version? welche
> Abhängigkeiten?) und ich bekomme es weder mit lua5.2 ("socket" not
> found) noch mit lua5.1 ("./bdraw.lua:278: bad argument #2 to 'max'") zum
> laufen.

Ich kann dir etwas dabei helfen das zum laufen zu kriegen, das ding ist 
von mir.
Ja, Doku ist sehr rar. Den Zeitaufwand hab ich mir bisher gespart weil 
du wohl bisher der erste Nutzer abgesehen von mir bist ;) (ich vermute 
die meisten Leute benutzen halt Windows...)

Zur Eagle-Version: Es sollte mit allen eagle-Versionen funktionieren die 
das XML-Datenformat nutzen. Ich glaube das ich >= Version 6.x
Getestet hab ichs mit 7.2/7.3 Dateien. Ältere eagle-Dateien lassen sich 
umwandeln indem man die einmal mit Eagle >= 6.x öffnet und wieder 
abspeichert.

/bdraw.lua:278: bad argument #2 to 'max': Der code-block ermittelt 
anhand der wires im Dimension-Layer die Board-Größe. Dass hier die 
x1-Koordinate eines wires scheinbar nicht definiert ist ist komisch. 
Wenn du willst können wir das debuggen. Am einfachsten wäre es wenn du 
mir das board-file zukommen lässt, am zweiteinfachsten ist es, vor Zeile 
278 in bdraw.lua ein print(entity) einzufügen und mir die Ausgabe zu 
pasten.

An Abhängigkeiten wird benötigt:
- LuaXML http://viremo.eludi.net/LuaXML/
- LGI https://github.com/pavouk/lgi
(- luasocket https://github.com/diegonehab/luasocket)

luasocket hab ich gerade eben im git mal entfernt. Dazu einfach die 
'require "utils"'-Zeile (Nr. 5) in bdraw.lua auskommentieren: --require 
"utils"
(utils ist nur mein universeller Lua-Werkzeugkoffer beim entwickeln. Der 
benötigt select von luasocket für <1sec. sleeps. Wird aber in bdraw 
eigtl. nicht benötigt, daher hab ichs nun auskommentiert.)

von Tut N. (zursache)


Angehängte Dateien:

Lesenswert?

> An Abhängigkeiten wird benötigt:
> - LuaXML http://viremo.eludi.net/LuaXML/

Wenn man in "../lua/src" keine Lua 5.1 sourcen zufaellig hat, muss das 
Makefile etwas anders aussehen (siehe Anhang)...

von Tut N. (zursache)


Angehängte Dateien:

Lesenswert?

hunz schrieb:
> /bdraw.lua:278: bad argument #2 to 'max': Der code-block ermittelt
> anhand der wires im Dimension-Layer die Board-Größe. Dass hier die
> x1-Koordinate eines wires scheinbar nicht definiert ist ist komisch.
> Wenn du willst können wir das debuggen. Am einfachsten wäre es wenn du
> mir das board-file zukommen lässt, am zweiteinfachsten ist es, vor Zeile
> 278 in bdraw.lua ein print(entity) einzufügen und mir die Ausgabe zu
> pasten.

$ lua5.2 gui.lua Board.brd
1.27    string
lua5.2: ./bdraw.lua:279: bad argument #2 to 'max' (number expected, got 
string)


bdraw.lua:
   277       print(entity.x1, type(entity.x1))
   278       if entity[0] == "wire" and entity.layer == "20" then
   279             x_max = math.max(x_max, entity.x1, entity.x2)



Dieser Fehler tritt bei allen meinen eagle-files auf. Egal ob von 6.x 
oder 7.x.
Welche Lua-Version nutzt du? Hat sich in Lua was mit dem string/number 
handling geändert?



> An Abhängigkeiten wird benötigt:
> - LuaXML http://viremo.eludi.net/LuaXML/

Ich hab 1.8.0 und 1.7.4 vergebens probiert. Entsprechend mit Lua5.2 und 
Lua5.1.



> luasocket hab ich gerade eben im git mal entfernt.

Danke fuer die Hilfe!

von hunz (Gast)


Angehängte Dateien:

Lesenswert?

Tut N. schrieb:
>> An Abhängigkeiten wird benötigt:
>> - LuaXML http://viremo.eludi.net/LuaXML/
>
> Wenn man in "../lua/src" keine Lua 5.1 sourcen zufaellig hat, muss das
> Makefile etwas anders aussehen (siehe Anhang)...

ja, da kann ich mich auch noch dunkel erinnern. Ist schon ne Weile her 
seit ich das installiert hab 8)

Tut N. schrieb:
> $ lua5.2 gui.lua Board.brd
> 1.27    string
> lua5.2: ./bdraw.lua:279: bad argument #2 to 'max' (number expected, got
> string)
>
> bdraw.lua:
>    277       print(entity.x1, type(entity.x1))
>    278       if entity[0] == "wire" and entity.layer == "20" then
>    279             x_max = math.max(x_max, entity.x1, entity.x2)
>
> Dieser Fehler tritt bei allen meinen eagle-files auf. Egal ob von 6.x
> oder 7.x.
> Welche Lua-Version nutzt du? Hat sich in Lua was mit dem string/number
> handling geändert?

Ok, da wird wohl nicht automatisch nach number gewandelt. Kann man 
entweder mit tonumber() machen, +0 (also 0 draufaddieren) sollte auch 
nach number wandeln. Aber da gibts dann evtl. noch andere Stellen im 
code wo man dann auch Hand anlegen muss.

Ich hab hier Lua 5.2.3 - ist das "normale" lua5.2 von Ubuntu 15.04.
Damit klappt das Beispielboard auch mit lua gui.lua Board.brd 
(screenshot im Anhang)

Wenns bei dir funktioniert trotzdem noch ein kleiner Disclaimer: 100%ig 
korrekt ist die Darstellung nicht immer, z.B. Mäander-Leiterbahnen 
werden nicht abgerundet dargestellt und bei manchen Bauteilen sind 
Rechtecke nicht ganz korrekt rotiert. Ich empfehle daher immer dem 
ganzen nicht ganz zu vertrauen sondern nochmal drüberzugucken. (bei 
gepolten Bauteilen wie Tantals z.B.)

von Torsten R. (tom365)


Lesenswert?

Hallo Leute,

ist zwar schon etwas angestaut der Thread hier..

Hab mir in Eagle ein passendes Script geschrieben welchen mir eine 
Bilderserie für jeden Bauteiltyp erstellt. Die entsprechenden Positionen 
werden dabei farbig hervorgehoben.
Die Bilderserie kann man dann einfach mit dem Windowsbildbetrachter 
durchblättern beim Bestücken.

von Teo D. (teoderix)


Lesenswert?

Schön für dich, nur was nutzt uns das? ;)

von 123 (Gast)


Lesenswert?

Teo D. schrieb:
> Schön für dich, nur was nutzt uns das? ;)

Dir vielleicht nichts, dafür aber dem Ersteller, dem To und sogar 
anderen!

von Teo D. (teoderix)


Lesenswert?

123 schrieb:
> Dir vielleicht nichts, dafür aber dem Ersteller, dem To und sogar
> anderen!

Er hätte das Script hier ruhig anhängen können!
Ich gehe/ging eh davon aus, das er es nur vergessen hätte.

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.