Hallo, ich mache meine Schaltpläne und Layouts schon immer in KiCAD, und auch wenn es an der einen oder anderen Ecke noch hapert wird es stetig besser und ich arbeite sehr gerne damit. Aber was mir (und wohl vielen anderen) auf den Senkel geht sind der Autoplacer & -router. Früher war der Autorouter ja total schrecklich, inzwischen ist er mit "FreeRouting" relativ gut. Den Autoplacer kann man allerdings immer noch wegwerfen.. Und was ich garnicht verstehe ist, warum der Autorouter nicht Bauteile dreht/verschiebt. Das ist ja einer der größten Vorteile die man beim Routen im Handbetrieb hat - und meines Erachtens ein großer Faktor für die schlechte Autorouter-Ergebnisse. (Ich hab das aber noch nirgends bei irgend einem CAD gesehen/gefunden, gibts denn sowas überhaupt garnicht?) Ich würde den Prozess bis zur kompletten Platine so vorstellen: - Schaltplan zeichnen - Im Schaltplan die Bauteile Gruppieren, die später nah beieinander liegen sollen - Spezielle Attribute vergeben, z.B. möglichst kurze Leitungen (Abblock-C) oder welche Leitungen gleich lang sein sollen - Die Üblichen Paramter wie Leiterbahnbreite von bestimmten Netzen, Duko-Größe etc. - Bauformen zuordnen. Wobei einem Bauteil auch mehrere mögliche Bauformen zugewiesen werden können - Platinenumriss zeichnen - Bauformen importieren - Bauteilen wie Stecker, Bohrlöcher oder Sperrflächen eine Position zuweisen und sperren - Autoplacer: Die Bauteile werden automatisch nach ihrer Gruppierung angeordnet. Zusätzlich kann sich am Schaltplan orientiert werden, wo der Schaltplan-Zeichner ja schon Bauteile die zusammengehören nebeneinander gezeichnet hat. Die Baugruppen kann man auch noch als ganzes selbst herumschieben, um eine grobe Platzierung vorzugeben. Zum Schluss werden die Bauteile noch gleichmäßig verteilt, wobei Bauteile mit vielen Pins mehr Platz bekommen - Autorouter: Wie die üblichen Autorouter, nur dass Bauteile noch zusätzlich verschoben, gedreht, auf die andere Platinenseite gelegt und Bauformen getauscht werden können (Engstellen, Bauteile als Brücken oder Duko). Auch sollte der Stufenweise arbeiten, also zuerst die möglichst kurzen Leitungen, dann die Stromversorgung, dann den Rest (ausgehend von Bauteilen mit vielen Pins) Gibt es sowas noch garnicht? Wenn nicht, warum? Zu kompliziert zu programmieren?
Vermutlich, da steckt ja ne Menge Erfahrung drin wenn man das per Hand macht. Zumindest können einige Router Gattertausch. Sieht aus als hättest du Gattertausch und Pintausch in deiner Liste vergessen. Gibt ja auch noch mehr, z.B. Routen über unbenutzte Pins um dann links und rechts zu den anderen Pins Platz zu haben für ne weitere Leiterbahn zwischen den Pins. usw. Tricks. Also wenn, dann wohl als Ansatz mit zufälliger Geometrie und die beste Lösung gewinnt. Diptrace hat einen Auto-Placer. Weiß aber nicht so recht, nach welchen Regeln der arbeitet. Sowas mache ich per Hand.
Simon S. schrieb: > Ich würde den Prozess bis zur kompletten Platine so vorstellen: Ja dann mach mal... Aber im Ernst, so etwas hätte ich auch ganz gerne und meine Gedanken gehen in die gleiche Richtung. In wie weit es das bei den teuren EDA-Lösungen gibt weiss ich nicht -- viele sind ja der Meinung das kann alles nicht funktionieren und man solle eben alles per Brain 2.0 machen. (Vor einigen Jahrzehnten wollte man ja auch alles noch in Assembler machen...) Nun ja, zu einigen Punkten habe ich Ideen, zu anderen eher nicht. Mein Rubberband Router funktioniert ja schon mal nicht ganz schlecht -- all das andere müsste man auch mal angehen, wenn Zeit und Motivation vorhanden sind -- und sonst nichts dazwischen kommt.
Abdul K. schrieb: > Tricks. Ja, das ist mir nicht eingefallen. So viel Erfahrung hab ich mit Autoroutern auch nicht ;-) > Also wenn, dann wohl als Ansatz mit zufälliger Geometrie und die beste > Lösung gewinnt. Du meinst beim platzieren? Ich glaube das könnte bei vielen Bauteilen sehr problematisch werden... (Ich habe mal ein Programm geschrieben, dass sich evolutionär weiterentwickelt (also mehrere Programme ändern sich zufällig und die besseren dürfen sich reproduzieren). Ziel: Ein Brainfück-Programm (ü=Spamerkennung) soll entstehen, das eine bestimmte Zahl ausgibt. -> sehr langsam, und von der Komplexität noch weit drunter) Hardy F. schrieb: > Topo-R von Eremex Sieht (auf Youtube) gut aus, aber ich kann nichts Weltbewegendes erkennen..(?) Wobei ich nur den Autorouter gesehen habe (gut, kurvige Leiterbahnen sind schon toll), von dem Autoplacer habe ich kein Video gefunden. Stefan S. schrieb: > Ja dann mach mal... Wenn ich die Kenntnisse und Zeit dazu hätte, würde ich sofort ein Github-Repo aufmachen und loslegen ;-) > Aber im Ernst, so etwas hätte ich auch ganz gerne und meine Gedanken > gehen in die gleiche Richtung. Ja, denke auch schon länger drüber nach. Trigger für das Posting war dann der Thread: Beitrag "FreeRouting @ GPLv3" Um ehrlich zu sein bezweifle ich auch, dass es so "einfach" ist quasi einen Autopilot für die Erstellung von Platinen zu machen, aber das ein oder andere nützliche Tool sollte sich ja eigentlich gut realisieren lassen. Z.B. denke ich da a die Zerstreuungsfunktion in den CAD-Systemen. KiCAD: Man importiert die Netzliste -> alles auf einem Haufen. Dann wählt man "Spread out all footprints" -> Haufen verteilt, aber nur nach Bauteilenummern sortiert. Hier könnte man so gut es geht den Schaltplan nachbilden, damit die Bauteile schon mal grob sortiert sind was dem User die Sache sehr erleichtern würde.. Oder man lässt das Programm selbst anordnen: 1. Bauteil mit den meisten benutzten Anschlüssen suchen (z.B. IC1) 2. Für alle anderen Bauteile ausrechnen: (Anzahl der Verbindungen mit IC1)/(andere Verbindungen) 3. Bauteile anhand der Werte aus 2. absteigend sortieren, wobei Bauteile ohne Verbindung zu IC1 weggelassen werden 4. Bauteile aus 3. um das IC1 anordnen (Richtung: in die der Pin von IC1 zeigt an dem das Bauteil angeschlossen wird; Abstand: (Anzahl der benutzten Anschlüsse)-(Anzahl der Verbindungen mit IC1)+(fester Wert)) 5. Kollisionsprüfung + evlt. Verteilung auf größere Fläche 6. Von den schon angeordneten Bauteilen wird wieder das nächste mit den meisten Anschlüssen gesucht und es geht vom Prinzip her wieder bei 1. los Wenn man jetzt noch haben möchte: - Gruppierungen: Das anordnen wird für jede Gruppe einzeln gemacht - Besonders kurze Leitungen: Beim Sortieren bekommen diese Bauteile einen Bonusauffschlag und kommen früher mit anordnen dran. Zudem wird der "(fester Wert)" beim platzieren kleiner gemacht Ich schätze, dass sich das auch mit der Python-scripting-Schnittstelle in KiCAD machen lassen sollte. Aber leider hab ich dazu noch keine gute Doku gefunden.. Sonst könnte man ja mal etwas probieren
Also ich persönlich empfinde das Layouten von Platinen als sehr schöne Arbeit. Man beschäftigt sich mit der Materie, kann seine Gedanken da mit reinbauen und kreativ tätig werden. Ich persönlich habe daher lieber ein schönes Layout als einen schönen Schaltplan, denn das Layout entscheidet, ob die Platine später gut, mittelmäßig, schlecht oder kaputt ist. Ein Schaltplan ist für mich nur ein Mittel, um die Gedanken fürs Layout zu sortieren.
Ich persönlich bin auch eher ein Anhänger des händischen platzieren und routens. Aber ich würde hier einfach mal http://en.wikipedia.org/wiki/Force-directed_graph_drawing in den Raum werfen. Im Grunde is ein Schaltplan ja auch nur ein Graph (evtl. mit ein paar Meta-Informationen). Und das sinnvolle darstellen von Graphen in 2D ist schon seit längeren ein Thema in der Informatik.
Philip Peter schrieb: > Aber ich würde hier einfach mal Ja, das könnte schon hilfreich sein -- ich werde mal versuchem mir den Link zu merken. Laufzeit O(n^3) -- na ja, war wohl irgendwie zu erwarten.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.