mikrocontroller.net

Forum: Platinen Altium Bauteile kreisförmig anordnen


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: Renato R. (Firma: Ramseier Engineering) (ramseier) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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
Autor: Platinen Frickler (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Hier gibt es einen Video dazu:

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

Vielleicht hilft Dir das.

Autor: Renato R. (Firma: Ramseier Engineering) (ramseier) Benutzerseite
Datum:

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

Autor: Platinen Frickler (Gast)
Datum:

Bewertung
2 lesenswert
nicht 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.

Autor: Platinen Frickler (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert

Autor: Protactinium (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
das Stichwort heißt in diesem Fall: Polar Grid

Youtube-Video "Altium Designer - polar grid를 이용한 부품 배치"

Autor: Renato R. (Firma: Ramseier Engineering) (ramseier) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Besten Dank! Polar Grid war das Stichwort :)

Wünsche euch einen schönen Abend.

Beitrag #5932920 wurde vom Autor gelöscht.
Autor: Taz G. (taz1971)
Datum:
Angehängte Dateien:

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

Autor: Wühlhase (Gast)
Datum:

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

Autor: Taz G. (taz1971)
Datum:

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

Autor: Wühlhase (Gast)
Datum:

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

Autor: Gerhard O. (gerhard_)
Datum:

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

Autor: Taz G. (taz1971)
Datum:
Angehängte Dateien:

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

Autor: Tobias .. (bitfehler)
Datum:

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

Autor: Wühlhase (Gast)
Datum:

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

Autor: Rächer der Erben (Gast)
Datum:

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

Autor: my2ct (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.
Dim Angle, sinAngle, cosAngle
...
Angle = (i - 1) * RefAngle * pi()/180
  sinAngle = sin(Angle)
  cosAngle = cos(Angle)
  
  Xh1 = Radius1 * cosAngle 
  Yh1 = Radius1 * sinAngle 
  Xh2 = Radius2 * cosAngle 
  Yh2 = Radius2 * sinAngle 
  ...

Autor: Taz G. (taz1971)
Datum:

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

Autor: Rächer der Erben (Gast)
Datum:

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

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.

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