Forum: Platinen Pick & place Datei: Rotation von Bauteilen auf der Unterseite


von Lukas K. (carrotindustries)


Angehängte Dateien:

Lesenswert?

Hallo Zusammen,

seit kurzem kann Horzion EDA (siehe 
Beitrag "Horizon EDA [War: Neues, halbfertiges Elektronik-CAD-Programm]") auch Pick & place 
export. Allerdings konnte ich nicht abschließend klären, was für 
Pick&Place-Dateien die übliche 0°-Orientierung für Bauteile ist, die auf 
der Unterseite platziert sind. Werden die Bauteile dabei an der X- oder 
Y-Achse gespiegelt um die 0°-Orientierung zu erhalten? KiCad jedenfalls 
scheint an der X-Achse zu spiegeln.

Lukas

von Chris (Gast)


Lesenswert?

Das macht nur kikad so.  Alle Anderen machen das nicht.

von Böser Onkel (Gast)


Lesenswert?

Bestückt ein Placer von unten oder wird nur das Board gedreht?

von Helmut S. (helmuts)


Lesenswert?

Hallo Lukas,
ich habe mal bei einem Bestücker nachgeschaut.
https://www.7pcb.com/blog/procedure-creating-centroid-file.php

Location
...
Rotation
Rotation is the direction of rotation of a PCB component's placement 
orientation referenced from a top point of view. The rotation is a 0 to 
360 degree value from the origin. Both the top and reserve side 
components use a top point of view as their reference point


Das passt zu den Angaben der vorherigen Antworten.

von Helmut S. (helmuts)


Lesenswert?

Hallo Lukas,
leider liest sich das hier gerade umgekehrt zu dem vorherigen Link.
https://www.eeworldonline.com/what-is-a-centroid-file/

Rotation

Rotation goes counterclockwise for all parts on top and clockwise for 
parts on the bottom. In both cases, this is from the perspective of 
looking at the top of the board. For bottom side parts, it is looking 
through the board, still from the perspective of looking at the top of 
the board.

von Lukas K. (carrotindustries)


Lesenswert?

Helmut S. schrieb:
> Rotation goes counterclockwise for all parts on top and clockwise for
> parts on the bottom. In both cases, this is from the perspective of
> looking at the top of the board. For bottom side parts, it is looking
> through the board, still from the perspective of looking at the top of
> the board.

Okay, so weit so gut, damit wäre aber nur geklärt, dass sich bei 
positivem Drehwinkel von oben betrachtet Bauteile auf beidem Seiten 
gegen Uhrzeigersinn drehen.

Wie ich daraus schließen soll ob nun Q2 oder Q3 aus meinem 
Ursprungsbeitrag richtig rum ist, mag mir nicht unmittelbar einleuchten.

von Helmut S. (helmuts)


Lesenswert?

Hallo Lukas,
ich habe mal die EAGLE 9.5.2 Demoversion installiert und das Ganze mal 
ausprobiert.

Im Projekt demo2 habe ich eine BAV199 hinzugefügt und dann im Layout 
platziert.
Danach habe mit dem CAM-Prozessor einen Pick and Place Datei erzeugt.
1,2,3 zeigt in beiden Fällen die Orientierung auf dem Board, wenn man 
von der Oberseite draufschaut.

1
  3
2

D2  46.99  15.24  270.00  BAV199  SOT23

Wenn man im Layout die Eigenschaften anschaut, dann steht auch dort 
270°.


Mit "mirror" nach unten platziert.

  1
3
  2

D2  46.99  15.24  270.00  BAV199  SOT23

EAGLE speigelt also um die y-Achse nach unten. (Pin-3 der BAV199 zeigt 
weiterhin nach rechts, wenn man von unten draufschauen würde.)
Wenn man im Layout die Eigenschaften anschaut, dann steht auch dort 270° 
und zusätzlich ist "mirror" angehakt.


Erkenntnis:
EAGLE schaut von der jeweilgen Bestückungsseite auf das Board um den 
Winkel zu bestimmen. Das Bauteil wird bei "mirror" von oben gesehen um 
die Y-Achse gespiegelt.

: Bearbeitet durch User
von Helmut S. (helmuts)


Lesenswert?

Hallo Lukas,

Target 3001! V20 macht es wie EAGLE. Siehe vorherige Antwort von mir.

Ich schaue mir das jetzt mal bei horizon an.

von Helmut S. (helmuts)


Lesenswert?

Helmut S. schrieb:
> Hallo Lukas,
>
> Target 3001! V20 macht es wie EAGLE. Siehe vorherige Antwort von mir.
>
> Ich schaue mir das jetzt mal bei horizon an.

Hallo Lukas,
Target 3001! macht den Winkel bei den Bauteilen auf der Unterseite doch 
nicht genau gleich wie EAGLE.

Unterseite
----------
EAGLE klappt das Board um die Y-Achse und schaut dann auf die Bauteile.
TARGET klappt das Board um die X-Achse und schaut dann auf die Bauteile.
KiCad klappt gar nicht um sondern schaut immer von der Topside auf das 
Board.

Mir scheint die Methode von KiCad ist doch recht sinnvoll.


Kann das mal jemand in Altium und anderen Programmen anschauen?

von Chris (Gast)


Lesenswert?

Hallo Helmut,
ich will keinesfalls deine Arbeit schmälern, aber mirror bedeutet 
gespiegelt auf X Achse.
Da du das Bauteil um -90grad gedreht hast ist dir vorgekommen dass es 
über Y gespiegelt wird wobei es in Wahrheit X ist und nur durch die 
zusätzliche Rotation zu y geworden ist.

MFG
Chris

von Lukas K. (carrotindustries)


Lesenswert?

Helmut S. schrieb:
> EAGLE schaut von der jeweilgen Bestückungsseite auf das Board um den
> Winkel zu bestimmen. Das Bauteil wird bei "mirror" von oben gesehen um
> die Y-Achse gespiegelt.

Dann macht eagle das entweder komisch oder falsch. Alle weiteren 
Recherchen deuteten ja darauf hin, das der Winkel immer von oben durch's 
Board hindurch betrachtet wird.

Dabei, ob ein Bauteil nun durch Spiegeln an der X- oder Y- Achse auf die 
Unterseite wandert scheint es ja nicht wirklich Einigkeit zu geben.

Dann werde ich den Export wohl so umbauen, dass der Winkel wie 
angezeigt, also mit Spiegeln an der Y-Achse exportiert wird.

von Helmut S. (helmuts)


Lesenswert?

Lukas K. schrieb:

> Dann werde ich den Export wohl so umbauen, dass der Winkel wie
> angezeigt, also mit Spiegeln an der Y-Achse exportiert wird.

Hallo Lukas,

Teste doch mal alle vier Fälle in EAGLE und vergleiche.
Ich glaube mich zu erinnern, dass zusätzlich die 0-Position beim SOT-23 
in EAGLE anders ist. Mir scheint, dass es weitere Dinge gibt die man gar 
nicht jedem richtig machen kann.

Hier noch etwas über die Orientierung (0°) auf top side.
https://ohm.bu.edu/~pbohn/__Engineering_Reference/pcb_layout/pcbmatrix/Component%20Zero%20Orientations%20for%20CAD%20Libraries.pdf


Hier noch eine Diskussion dazu.
https://www.element14.com/community/thread/62529/l/footprint-origin-for-pick-and-place?displayFullThread=true

: Bearbeitet durch User
von Lukas K. (carrotindustries)


Lesenswert?

Helmut S. schrieb:
> Teste doch mal alle vier Fälle in EAGLE und vergleiche.

Ich hab' dazu nochmal mein Eagle 6.6 aus der Mottenkiste geholt und 
versucht dessen Verhalten nachzuvollziehen.

Die 0-Ausrichtung von dem SOT-23 entspricht nicht den IPC-Empfehlungen 
(Pin 1 ist oben links). Für das weitere vorgehen allerdings ist das 
nicht weiter von Belang.

Auf der Oberseite ist alles normal, Rotation ist ist gegen 
Uhrzeigersinn. Wenn ich ein Bauteil spiegel, dann wird dies an der 
Y-Achse gespiegelt und der Drehsinn ist nun gegen der Uhrzeigersinn. 
Meines Erachtens nach ist dies so nicht korrekt.

Bestückerbuden werden wahrscheinlich schon alles mögliche und unmögliche 
gesehen haben und hoffentlich gegen den Bestückungsplan vergleichen wenn 
es da Unstimmigkeiten geben sollte...

von P. S. (namnyef)


Lesenswert?

Pick&Place-Files in den Prozess einzuphasen ist beim Bestücker eh ein 
hochgradig manueller Prozess, weil es eben keinen Standard gibt, oder 
wie im Falle der 0°-Orientierung mehrere Standards.

Also im Zweifel immer mit dem Bestücker besprechen, wenn man den Prozess 
optimieren will.

: Bearbeitet durch User
von Jens M. (schuchkleisser)


Lesenswert?

Lukas K. schrieb:
> Auf der Oberseite ist alles normal, Rotation ist ist gegen
> Uhrzeigersinn. Wenn ich ein Bauteil spiegel, dann wird dies an der
> Y-Achse gespiegelt und der Drehsinn ist nun gegen der Uhrzeigersinn.
> Meines Erachtens nach ist dies so nicht korrekt.

Die Ansicht auf der Glotze ist "durch das Board".
Die Drehung und auch die Winkel sind aber in der Ansicht in der es 
physikalisch "in der Hand" geht.
Daher sind oben und unten die Teile identisch gedreht: Ein Teil das oben 
"Pin 1 links = 0°" ist, ist unten auch "Pin 1 links = 0°", nur auf der 
Glotze eben durch eine Glasplatine gesehen, daher seitenvertauscht und 
anderer Drehsinn.
Die Daten sind von beiden Seiten so, als ob die Platine nur eine Seite 
"Top" hätte, das ist in meinen Augen vollkommen sinnvoll. Stell dir vor, 
du müsstest beim Import drauf achten, welche Seite du importierst, weil 
sich Drehsinn und Null/90° unterscheiden.

Lukas K. schrieb:
> Bestückerbuden werden wahrscheinlich schon alles mögliche und unmögliche
> gesehen haben und hoffentlich gegen den Bestückungsplan vergleichen wenn
> es da Unstimmigkeiten geben sollte...

Der von beiden Seiten ausgedruckte (oder als PDF vorhandene) 
Bestückungsplan zählt, denn sogar zwischen verschiedenen 
Bestückungsmaschinensoftwareständen gibt's da Probleme.
Alles schon gesehen: 0 oben, 0 rechts, 0 links, linksrum oder rechtsrum 
gedreht, jeder macht da was eigenes, sowhl CAD als auch CAM.

von Helmut S. (helmuts)


Lesenswert?

Jens M. schrieb
> Die Daten sind von beiden Seiten so, als ob die Platine nur eine Seite
"Top" hätte, das ist in meinen Augen vollkommen sinnvoll. Stell dir vor,
du müsstest beim Import drauf achten, welche Seite du importierst, weil
sich Drehsinn und Null/90° unterscheiden.

Vom Prinzip her gefällt mir diese Denkweise.

Ich habe leider keinen Kontakt mehr zu einem Bestücker. Vielleicht 
könnte ja mal jemand der einen guten Kontakt zu einem Bestücker hat den 
mal fragen was er erwartet bzw. wie er mit den offenbar 
unterschiedlichen Bestückungsfiles der CAD-Tools umgeht.

von Taz G. (taz1971)


Lesenswert?

Meiner Meinung nach ist es vollkommen egal in welche Richtung gedreht 
oder gespiegelt wird - Hauptsache immer gleich.
Ich kann nur für Altium sprechen aber in den Pick and Place Daten steht 
in der ersten Zeile "Altium Designer" damit sollte jeder Bestücker 
wissen wie die Daten zu interpretieren sind. Ich denke das gilt auch für 
jedes andere CAD Programm. Richtig blöd wenn man da die Finger 
reinsteckt und die Daten ändert. Dann sieht der Bestücker "Altium" 
drückt auf sein Altium Knöpfchen und alles geht in die Hose.

: Bearbeitet durch User
von J.W. (Gast)


Lesenswert?

Chris schrieb:
> Das macht nur kikad so.  Alle Anderen machen das nicht.

Unser Tool (Pulsonix) macht das auch so.

Bestückungsansichten haben ja in der Regel eine "von unten" Ansicht. Von 
daher würde ich sagen ist es vielleicht intuitiver, wenn ein ein 
Bottom-Bauteil in der "von unten" Ansicht gleich orientiert ist, wie ein 
Top-Bauteil mit dem selben Rotationswinkel in der "von oben" Ansicht.

Am Ende ist es wahrscheinlich komplett egal, weil der Bestücker eh alle 
möglichen Varianten vor die Nase bekommt und es daher immer ein 
hochgradig manueller Prozess ist. Man sollte dem Bestücker aber 
zumindest den gefallen tun alles einheitlich zu machen :)

Wichtiger sind halt hochwertige Bestückungsansichten, auf denen die 
Soll-Orientierungen sonnenklar ersichtlich sind.

von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

Hallo Helmut.

Helmut S. schrieb:

> EAGLE klappt das Board um die Y-Achse und schaut dann auf die Bauteile.
> TARGET klappt das Board um die X-Achse und schaut dann auf die Bauteile.
> KiCad klappt gar nicht um sondern schaut immer von der Topside auf das
> Board.
>
> Mir scheint die Methode von KiCad ist doch recht sinnvoll.

KiCad nennt das auch nicht "mirror" oder "spiegeln" sondern "flip" oder 
"wenden".

Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de

von Jens M. (schuchkleisser)


Lesenswert?

Helmut S. schrieb:
> Ich habe leider keinen Kontakt mehr zu einem Bestücker. Vielleicht
> könnte ja mal jemand der einen guten Kontakt zu einem Bestücker hat den
> mal fragen was er erwartet bzw. wie er mit den offenbar
> unterschiedlichen Bestückungsfiles der CAD-Tools umgeht.

Hier, anwesend, wach.
Genau was ich gesagt habe: die Daten sind ganz toll, aber ein Ausdruck 
mit Diodenrichtungen ist was zählt, denn jedes CAD macht was eigenes.
Da packt man dann "Dieses Bauteil drehen" (was reell alle identischen 
Teile dreht, also z.B. alle BC847, nicht nur T1) oder "Diese Bauform 
drehen" (in diesem Fall dann alle SOT23) an und zack drehen sich alle 
gepolten Teile um den Offset, denn das CAD gegenüber unserer Maschine 
hat.

Wir sehen wie gesagt 0° oben rechtsdrehend (also 90° dann rechts), 0° 
rechts rechtsdrehend, 0° link rechtsdrehend und ein Kunde hat 0° oben 
linksdrehend.
Zudem macht jeder Designer die Teile frei Schnauze, Pins oben und unten 
oder rechts/links, Pin 1 links oben, links unten, think you what out.
Als EMS muss man fressen was man bekommt, daher wird das nach Import 
nach Papier oder sogar Muster angepasst.

J.W. schrieb:
> Wichtiger sind halt hochwertige Bestückungsansichten, auf denen die
> Soll-Orientierungen sonnenklar ersichtlich sind.

So much this.
Und speziell Leute die Altium benutzen, fallen bei uns negativ auf.
Ist wohl zu kompliziert: Kicad, Eagle und sogar Target klappt meist 
problemlos, wenn der Designer es auf die Reihe bekommt Gerber und XY zu 
erzeugen.
Altium dagegen hat andauernd fehlende Polaritäten, 4 Ecken anstelle 
eines Rechtecks (und ohne Pin1 Marke), frei fliegende Pin1-Marken die 
nicht am Bauteil hängen (und dann bei Rev2 irgendwo auf dem Board 
rumliegen).
Und die Leute sind früher Eaglekunden gewesen... Die sollten also wissen 
wie es geht.

von Helmut S. (helmuts)


Lesenswert?

Jens M. schrieb:
> Helmut S. schrieb:
>> Ich habe leider keinen Kontakt mehr zu einem Bestücker. Vielleicht
>> könnte ja mal jemand der einen guten Kontakt zu einem Bestücker hat den
>> mal fragen was er erwartet bzw. wie er mit den offenbar
>> unterschiedlichen Bestückungsfiles der CAD-Tools umgeht.
>
> Hier, anwesend, wach.
> Genau was ich gesagt habe: die Daten sind ganz toll, aber ein Ausdruck
> mit Diodenrichtungen ist was zählt, denn jedes CAD macht was eigenes.
> Da packt man dann "Dieses Bauteil drehen" (was reell alle identischen
> Teile dreht, also z.B. alle BC847, nicht nur T1) oder "Diese Bauform
> drehen" (in diesem Fall dann alle SOT23) an und zack drehen sich alle
> gepolten Teile um den Offset, denn das CAD gegenüber unserer Maschine
> hat.
>

Hallo Jens,
vielen Dank für die ernüchternde Erklärung. Es scheint ja wirklich so 
schlimm zu sein wie einige hier schon angedeutet oder behauptet haben. 
Da wundert es mich jetzt nicht mehr, dass man da auf keinen gemeinsamen 
Nenner kommt, wenn man die outputs der CAD-tools vergleicht.

Was würdest du Lukas, dem Entwickler des horizon PCB-Layout-Programms, 
raten wie er es amchen soll?
Soll er sich an ein bestimmtets CAD-Programm halten und dazuschreiben 
gemacht wie beim Programm xyz?

https://github.com/horizon-eda/horizon

von Jens M. (schuchkleisser)


Lesenswert?

Meines erachtens macht es keiner 100% richtig, jeder hat irgendeinen 
Bock, und wenn es inkonsistent erstellte ICs sind.

Von daher ist es wichtig, das er es nicht ändert. Wenn er sich 
entschieden hat, das 0 unten und 90 dann links ist, dann muss er dabei 
bleiben, so krempelig das auch ist.
Ansonsten wird's noch schlimmer, weil man dann "Daten vor Version 
2.0.50.1" und "Daten ab 2.0.50.2" unterscheiden muss.

Helmut S. schrieb:
> Da wundert es mich jetzt nicht mehr, dass man da auf keinen gemeinsamen
> Nenner kommt, wenn man die outputs der CAD-tools vergleicht.

Weil es keine Norm gibt soweit ich weiß, nur Empfehlungen.
Und selbst da gibt es Ermessensspielraum, und auch einfach 
Softwarequirks: ASM hat in der Maschinensoftware die eigenartige 
Eigenschaft, das sich beim Einlesen von Bottom-Daten manche Teile 
umdrehen, wenn man die Bestückliste zum Board macht.
Wenn man in die Bestückliste schaut, sind die Teile falschrum, auf dem 
Board dann richtig. Da muss man beim Erstellen der Daten saumäßig 
aufpassen.

von Chris (Gast)


Lesenswert?

Auf jedem falls Protel format, denn damit kann man automatisch die 
richtige Rotation rausbekommen.

"Designator","Pattern","Mid X","Mid Y","Ref X","Ref Y","Pad X","Pad 
Y","Layer","Rotation"
""
"VR2","POT3MM","143.661mil","1312.008mil","185mil","1375mil","185mil","1 
375mil","T","180.000"

Altrium hat Pattern in Footprint abgeändert und ein Comment feld dazu 
gehängt.

Mid ist average aus allen Pins, Ref ist der Nullpunkt des Designers und 
pin ist die Position von Pin1.

Da nun die Position von pin1 bekannt ist, kann man nun automatisch die 
Drehung des Bauteil korrigieren lassen unabhängig von dem verwendeten 
pin1 Bauteilstandard.
Bei Bauteilen mit zwei Pins hinfällig, aber wenn mehr als zwei Pins da 
sind stimmt es.
Ansonsten muss man jedes Bauteil einzeln verifiziert werden.

von Jens M. (schuchkleisser)


Lesenswert?

Chris schrieb:
> Bei Bauteilen mit zwei Pins hinfällig, aber wenn mehr als zwei Pins da
> sind stimmt es.

Auch da sollte das klappen, denn Mid und Ref sind dann gleich, Pin aber 
auf Pin 1.
Wobei bei Dioden & Elkos ja dann noch die Frage bleibt ob man Polung 
oder Bauteilmarkierung benutzt.
Wir haben auch Kunden, die konsequent "Minus" markieren. Geht bei Elkos 
und Dioden gut, bei Tantalen jedoch qualmts.
Andere markieren "Plus", gern auch mit nem "+". Ist das jetzt ein 
Passer???
Und wieder andere machen "Bauteilmarkierung". Dumm nur wenn es optional 
Elko & Tantal gibt... Welcher Strich zählt?

Und: ASM/Siplace kann weder Mid noch Pin auswerten. Da verwirren die 
Daten nur zusätzlich.

Noch ein Punkt: Was ist mit Bauteilen, die nicht bestückt werden sollen?
- Nicht in den XY-Daten listen? Maschinenbediender wundert sich, das das 
Board anders aussieht als auf dem Maschinensystem...
- Normal im XY listen, in der Stüli weglassen? Stimmt die Stüli oder ist 
das eine alte/neue Revision?
- Im XY mit Dummywert stehen lassen, in der Stüli listen als NB?

Bestückdaten sind selbst inhouse entwickelt kaum ohne manuelle Arbeit zu 
verwursten, fremder Kram ist immer Papier, telefonieren und viel 
Fummelei.

von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

Hallo Jens.

Jens M. schrieb:

> - Im XY mit Dummywert stehen lassen, in der Stüli listen als NB?

Dummywert auch auf NB setzten? Falls Dein System das zulässt.


Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de

von Jens M. (schuchkleisser)


Lesenswert?

Sinnvoll wäre "Bestückungsplan & XY auf 'Option, siehe Stüli'" zu 
setzen, ja.
Geht einigen Designern aber nicht ein...

von Lukas K. (carrotindustries)


Lesenswert?

Ok, danke für eure Antworten, da kam ja echt noch was bei rum :)

Im EEVBlog-Forum hat das mal jemand für Altium durchexerziert: 
https://www.eevblog.com/forum/eda/pickplace-files-component-rotation-on-the-bottom-side/msg2936734/#msg2936734

Altium macht es auch so wie KiCad.

Lukas K. schrieb:
> Dann werde ich den Export wohl so umbauen, dass der Winkel wie
> angezeigt, also mit Spiegeln an der Y-Achse exportiert wird.

Ok, dann eben nicht, wenn es schon zwei andere Programme so machen. Dann 
passt zwar der im Board-Editor angezeigte Winkel bei Bauteilen auf der 
Unterseite nicht zum Winkel in der Pick&place-Datei, ist aber meines 
Erachtens nach verschmerzbar.

Das schöne daran, ein Layout-Tool zu schreiben ist, dass man so auch 
Dinge hinterfragt und dazu Lernt, die man sonst nie so im Detail 
angesehen 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.