Forum: Platinen Altium Bauteile kreisförmig anordnen


von Renato R. (Firma: Ramseier Engineering) (ramseier) Benutzerseite


Lesenswert?

Hallihallo

Folgendes Problem:

Ich entwickle eine runde Leiterplatte mit diversen verschiedenen 
Bauteilen, alles SMD (Grösse 0603, Kondensatoren, LEDs, Widerstände und 
Lötpads).

Es wäre toll, wenn die Bauteile alle schön zum Zentrum hin ausgerichtet 
sind.

Ich weiss, dass ich jedes Bauteil einzeln drehen könnte. Das ist mir 
aber zu umständlich und zu wenig genau - kann man irgendwie das Zentrum 
der Platine als Referenzpunkt setzen und die Bauteile automatisch 
ausrichten lassen?

Besten Dank für eure Hilfe.

MfG

Renato

Edit: Ich benutze Altium Designer Version 19.1.6

: Bearbeitet durch User
von Platinen Frickler (Gast)


Lesenswert?

Hier gibt es einen Video dazu:

https://www.altium.com/video-circular-placement-multi-channel-designs

Vielleicht hilft Dir das.

von Renato R. (Firma: Ramseier Engineering) (ramseier) Benutzerseite


Lesenswert?

Platinen Frickler schrieb:

> https://www.altium.com/video-circular-placement-multi-channel-designs

Danke, aber ich möchte nur Bauteile ausrichten. Dein Video bezieht sich 
aber auf mehrkanal-Designs.

von Platinen Frickler (Gast)


Lesenswert?

Renato R. schrieb:
> Platinen Frickler schrieb:
>
>> https://www.altium.com/video-circular-placement-multi-channel-designs
>
> Danke, aber ich möchte nur Bauteile ausrichten. Dein Video bezieht sich
> aber auf mehrkanal-Designs.

Das Thema interessiert mich auch. In dem Link wird eine Möglichkeit 
beschrieben wie das zu machen wäre:

https://www.eevblog.com/forum/altium/evenly-spacing-components-along-an-arccircle/

Ich muss das kaum machen. Früher verwendete ich einfach die MOVE/ROTATE 
Funktion mit einen Zentralpunkt als Anker. Das reichte für mich die ein 
zwei Male wo das notwendig war.

von Platinen Frickler (Gast)


Lesenswert?


von Protactinium (Gast)


Lesenswert?

das Stichwort heißt in diesem Fall: Polar Grid

https://www.youtube.com/watch?v=gllkaTfhMl0

von Renato R. (Firma: Ramseier Engineering) (ramseier) Benutzerseite


Lesenswert?

Besten Dank! Polar Grid war das Stichwort :)

Wünsche euch einen schönen Abend.

Beitrag #5932920 wurde vom Autor gelöscht.
von Taz G. (taz1971)


Angehängte Dateien:

Lesenswert?

Ich berechne mir die Positionen gerne mit Excel. Also egal ob 
nebeneinander in mehreren Reihen, im Bogen oder im Kreis. Man muss nur 
darauf achten, dass beide Programme das gleiche Dezimaltrennzeichen 
benutzen. Also ich muss schon mal in den Excel Einstellungen das 
Trennzeichen auf Punkt setzen.
Das Vorgehen ist: Im PCB List Panel nur "Components" anzeigen lassen und 
nach Name (Designator) sortieren. In Excel Werte X1,Y1 und Rotation 
berechnen, kopieren und im PCB List Panel an der richtigen Stelle 
einfügen.
Ein Excel Beispiel für eine runde Anordnung hab ich mal angehängt.

MfG Taz

von Wühlhase (Gast)


Lesenswert?

Und was ist daran besser als ein Polar Grid zu definieren? Ich sehe nur 
Extraaufwand und eine anschließende Copy+Paste-Orgie.

von Taz G. (taz1971)


Lesenswert?

Hab nicht gesagt das es besser ist.
Beim Polar Grid muss ich jedes Bauteil anfassen und auf Grid legen bei 
vielen Bauteilen ist man schon etwas beschäftigt.
Ich hab Excel und die Mathematik einigermassen im Griff, bedeutet für 
mich dass dieser "Extraaufwand" nicht existent ist. Copy-Paste Orgie = 
(in Excel) Mausauswahl, STRG+C, (Altium einfügen) Mausklick, STRG+V das 
zweimal (für XY Pos und Rotation)(ich hab auf die Uhr geschaut diese 
Orgie dauert 30Sekunden. egal ob für 10 oder 100 Bauteile).

Aber jeder soll seinen eigen Weg einschlagen wollte nur eine weitere 
Möglichkeit/Alternative auftun.

PS: es ist z.B. ganz nett beim PCB Start die Abblockkondensatoren 
sortiert nach Designator nebeneinander anzuordnen. Dadurch entfällt die 
Suche oder das lässtige Jump-Component.

von Wühlhase (Gast)


Lesenswert?

Taz G. schrieb:
> Hab nicht gesagt das es besser ist.

Nun, wenn DU das so machst bin ich mir sicher daß du da schon deine 
Gründe dafür hast.

Wo fügst du die Koordinaten denn dann ein? Ich hab momentan leider 
keinen Zugang zu Altium und mir fällt auf die Rasche nicht ein, wo man 
sich alle Footprints tabellarisch anzeigen lassen kann.

von Gerhard O. (gerhard_)


Lesenswert?

Ich habe in PR99SE Strukturen und Komponenten im Polarkoordinatensystem 
immer einfach mit der MOVE+ROTATE Funktion gemacht. Das ist sehr leicht 
zu bewerkstelligen. Die Komponente wird einfach zuerst bei Null Grad auf 
den gewünschten Radius plaziert und anschliessend nach Selektion mit M+R 
auf den gewünschten Winkel gesetzt. Diese Methode arbeitet grundsätzlich 
im Polar Koordinaten System und liefert gleichwertige Resultate im 
Vergleich zu Altium.

von Taz G. (taz1971)


Angehängte Dateien:

Lesenswert?

Wühlhase schrieb:
> Wo fügst du die Koordinaten denn dann ein? Ich hab momentan leider
> keinen Zugang zu Altium und mir fällt auf die Rasche nicht ein, wo man
> sich alle Footprints tabellarisch anzeigen lassen kann.

Einfügen im PCB List Panel (muss auf logischerweise auf Edit stehen). 
Also im Excel hab ich 2x14 kopiert und füge sie im PCB Panel auf der 
Zelle X1 vom ersten Bauteil ein, ich brauche keinen Bereich zu 
markieren.
Die Spalten X,Y und Rotation liegen nicht nebeneinander deshalb zweimal 
copy-paste.

Ich hab mal ein Screenshot gemacht, viel einfacher zu verstehen.

von Tobias .. (bitfehler)


Lesenswert?

Altium kann seine Koordinaten auch direkt aus Txt / CSV Dateien 
übernehmen.
Da kann man dann schnell und easy ein Script schreiben, dass einem die 
Bauteil nach Wunsch ausrichtet.

von Wühlhase (Gast)


Lesenswert?

@Taz:
Ah...ich sollte mal öfter mit dem PCB-Panel arbeiten, das benutze ich in 
der Tat höchst selten.

Und ja-ab einer gewissen Anzahl an Bauteilen ist es auch schneller, da 
stimme ich dir zu.

von Rächer der Erben (Gast)


Lesenswert?

Vielleicht per Skript ?

Hier was zum kreisförmigen Anordnen von 90 Traces, kann man anpassen
zum Platzieren von Bauteilen:


Datei Traces.vbs:


Sub Create_Traces
    Dim Board
    Set Board = 
PCBServer.GetPCBBoardByPath("C:\Users\Bla\Desktop\Test.PcbDoc")

    Dim i
    Dim Trace(90)
    Dim RefAngle
    RefAngle = 4
    Dim Angle
    Dim Xh1, Xh2, Yh1, Yh2
    Dim Radius1, Radius2
    Radius1 = 20
    Radius2 = 18

    For i = 1 to 90
        Angle = (i - 1) * RefAngle
        Xh1 = Radius1 * cos(Angle * 3.1415/180)
        Yh1 = Radius1 * sin(Angle * 3.1415/180)
        Xh2 = Radius2 * cos(Angle * 3.1415/180)
        Yh2 = Radius2 * sin(Angle * 3.1415/180)

        Trace(i) = PCBServer.PCBObjectFactory(eTrackObject, 
eNoDimension, eCreate_Default)
        Trace(i).X1 = MMsToCoord(Xh1) + Board.XOrigin
        Trace(i).Y1 = MMsToCoord(Yh1) + Board.YOrigin
        Trace(i).X2 = MMsToCoord(Xh2) + Board.XOrigin
        Trace(i).Y2 = MMsToCoord(Yh2) + Board.YOrigin
        Trace(i).Width = MMsToCoord(0.5)
        Trace(i).Layer = Board.eTopLayer
        Board.AddPCBObject(Trace(i))
    Next
End Sub

von my2ct (Gast)


Lesenswert?

Rächer der Erben schrieb:
> Dim Angle
> ...
> Angle = (i - 1) * RefAngle
>         Xh1 = Radius1 * cos(Angle * 3.1415/180)
>         Yh1 = Radius1 * sin(Angle * 3.1415/180)
>         Xh2 = Radius2 * cos(Angle * 3.1415/180)
>         Yh2 = Radius2 * sin(Angle * 3.1415/180)

Beschäftigungstherapie für den Rechner, oder was soll das werden.
1
Dim Angle, sinAngle, cosAngle
2
...
3
Angle = (i - 1) * RefAngle * pi()/180
4
  sinAngle = sin(Angle)
5
  cosAngle = cos(Angle)
6
  
7
  Xh1 = Radius1 * cosAngle 
8
  Yh1 = Radius1 * sinAngle 
9
  Xh2 = Radius2 * cosAngle 
10
  Yh2 = Radius2 * sinAngle 
11
  ...

von Taz G. (taz1971)


Lesenswert?

@ Rächer der Erben
Vor drei Jahren hatte ich schon ein Script geschrieben um selektierte 
Bauteile im Kreis anzuordnen. Habs geschrieben weil ich es kann, aber 
nie benutzt (mit Excel ist einfach schneller und universeller). Wenn 
Interesse besteht poste ich es. Ist aber ziemlich kompliziert und ohne 
Erleuterungen nur schwer zu verstehen.

von Rächer der Erben (Gast)


Lesenswert?

@my2ct

Hast recht, kann man natürlich optimieren,
war jetzt nur mal schnell ins Unreine geschrieben.

Bevor aber der erste Buchstabe des optimierten Skripts
eingetippt wurde, ist das ursprüngliche Skript schon zig
mal fertig durchgelaufen, also was soll's.

Aber OK, Vorbildfunktion und so, stimmt schon...

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.