Von Platinenlayout/Herstellung habe ich nicht besonders viel Ahnung und bräuchte mal für meine Software-Entwicklung die Information, wie Platinen-Bohrdaten, z.B. im Excelon Format, sortiert sind. Einfach der Reihe nach oder bereits Weg-Optimiert für das CNC-Bohren? Ich frage deshalb, weil ich, falls die Koordinaten nicht bereits wegoptimiert ausgegeben weden, einen entsprechenden Algorithmus, wie etwa "Travelling Sales Man" oder Ähnliches, vorsehen müsste.
Albert M. schrieb: > ......... vorsehen müsste. Müsstest du wirklich ? Du wärst sozusagen gezwungen ? Ohne es genauer zu wissen behaupte ich dass die Bohrdaten "wie gewachsen" daherkommen, und ein gute Bohrmaschine macht daraus sicher etwas Optimiertes .....
ich würde sagen, die Optimierung fängt beim Durchmesser an. Weil Werkzeugwechsel dauert Zeit. Sonst einfach mal Testdatei erstellen und selber gucken, braucht es früher oder Später zum Testen. MfG ich
Albert M. schrieb: > einen entsprechenden Algorithmus, wie > etwa "Travelling Sales Man" oder Ähnliches, vorsehen müsste. Wieso? Das macht jedes CAM-System von sich aus, oder hast du eine eigene Bohrmaschine? Wenn du die Daten an einen Hersteller schickst, interessiert die Sortierung überhaupt nicht. Die Optimierung ist übrigens trivial, wenn man nicht den Ehrgeiz hat, den nachweisbar kürzesten Weg zu finden, was in der Praxis völlig uninteressant ist. Man braucht nur einen "guten" Weg. Travelling Salesman ist was für Theoretiker. Georg
Georg schrieb: > Travelling > Salesman ist was für Theoretiker. Seh ich anders, insbesondere weil ich den Algorithmus fertig da liegen habe. Braucht für 2000 Wegpunkte weniger als 100ms (Delphi/Pascal). Georg schrieb: > Wieso? Das macht jedes CAM-System von sich aus, oder hast du eine eigene > Bohrmaschine? Das soll nicht über CAM laufen, sonder die Daten sollen, wie bereits gesagt über z.B. Excelon File direkt in meine Software einlesbar sein und dann in G-Code übersetzt werden. Guckst Du hier: Beitrag "Projekt: SerialComCNC Serielles Frontend für CNC GRBL mit ATMega"
:
Bearbeitet durch User
Albert M. schrieb: > Georg schrieb: >> Travelling >> Salesman ist was für Theoretiker. > > Seh ich anders, insbesondere weil ich den Algorithmus fertig da liegen > habe. Braucht für 2000 Wegpunkte weniger als 100ms (Delphi/Pascal). Mein Eindruck war immer, dass es nicht DEN Algorithmus gibt, für das Problem. Wie auch immer, wenn der schon fertig ist und so gut funktioniert, nimm ihn doch einfach. Schlimmer machen kann er es ja wohl kaum.
Albert M. schrieb: > Excelon File direkt in meine Software einlesbar sein > und dann in G-Code übersetzt werden. Das hat aber nichts mit Wegoptimierung zu tun. Da würde ich eine eigene Funktion schreiben die nach verschiedenen Funktionen neue Koordinatenlisten anlegt. Die Strecken zwischen den Koordinaten kann man ja relativ leicht berechnen und als Auswahlbasis nehmen. Einziger Knackpunkt wird ein clever optimaler Algorithmus sein, der keine Wünsche offen lässt. Halt wie ein Autorouter, wovon es aber noch keinen Optimalen gibt. Allenfalls einige gute Kompromisse.
Albert M. schrieb: > insbesondere weil ich den Algorithmus fertig da liegen > habe. Braucht für 2000 Wegpunkte weniger als 100ms (Delphi/Pascal) Und der liefert beweisbar den kürzest möglichen Weg? Georg
Georg schrieb: > Und der liefert beweisbar den kürzest möglichen Weg? Nein! Habe ich auch nie behauptet. Aber er liefert einen der möglichen sehr optimalen Wege. Siehe mal unter Wikipedia: http://de.wikipedia.org/wiki/Problem_des_Handlungsreisenden "Viele heutige Standardmethoden der ganzzahligen linearen Optimierung, wie Schnittebenenverfahren, Branch-and-Cut und verschiedene heuristische Ansätze, wurde am Beispiel des TSP entwickelt und getestet." und: "Die bekannten Lösungsverfahren unterteilen sich in zwei Gruppen, die miteinander kombiniert werden können. Exakte Lösungsverfahren finden – beliebig lange Laufzeit vorausgesetzt – grundsätzlich eine beweisbare Optimallösung. Heuristische Verfahren finden oft in kurzer Zeit gute Lösungen, die aber im allgemeinen Fall beliebig schlecht sein können. Für das metrische TSP gibt es polynomiale Heuristiken, deren Lösungen grundsätzlich höchstens um den Faktor 1,5 bzw. 2 länger sind als eine kürzeste Rundreise." Aber das ist eigentlich nicht das Thema meiner Eingangsfrage.
:
Bearbeitet durch User
Bei meinem Layout-Tool werden die Koordinaten nur nach den Bohrergrößen sortiert. Innerhalb einer Bohrergröße ist das offensichtlich nicht optimiert. Wenn du einen funktionierenden Code zur Optimierung hast wäre das für die Performance eine schöne Sache. Im Anhang die Bohrdaten für ein konkretes Projekt.
Einhart Pape schrieb: > Wenn du einen funktionierenden Code zur Optimierung hast wäre > das für die Performance eine schöne Sache. Dafür habe ich schon zu DOS-Zeiten Utilities geschrieben. Die einfachsten Methoden sind oft die besten: nimm das erste Loch (welches das ist macht keinen merklichen Unterschied) und von da aus immer das nächstgelegene. Das wars schon. Wenn du den alten und den neuen Weg ausgibst wirst du feststellen: 1 x laufen lassen verkürzt den Weg um 50..90%, je nachdem wie ungünstig die Anfangssortierung war, das ist praktisch reiner Zufall. Nochmal laufen lassen bringt typischerweise nochmal 10%, ein dritter Durchlauf lohnt sich schon nicht mehr. Noch viel weniger lohnt sich der Einsatz eines Supercomputers nur um nochmal geschätzt 5% rauszuholen. Die Frage ob es sich wirklich um den kürzesten Weg handelt ist nur von theoretischem Interesse, auch wenn Albert da heftig widerspricht. Warum verstehe ich nicht, da er es ja auch nicht anders macht, aber wahrscheinlich hält er seinen (geheimen) Algorithmus für den besten den es gibt. Das behaupte ich von meinem Ansatz nicht, und ich habe auch keine Lust deswegen einen Shitstorm anzufangen. Aber du kannst es ja mal mit meinem Vorschlag probieren, du siehst ja gleich was dabei herauskommt. Georg
Albert M. schrieb: > Von Platinenlayout/Herstellung habe ich nicht besonders viel Ahnung und > bräuchte mal für meine Software-Entwicklung die Information, wie > Platinen-Bohrdaten, z.B. im Excelon Format, sortiert sind. Einfach der > Reihe nach oder bereits Weg-Optimiert für das CNC-Bohren? Grundsätzlich nach Bohrerdurchmesser. Was ich so gesehen habe ist, dass die Daten nach ansteigenden Koordinaten sortiert sind. Wie Wegoptimiert hängt wohl auch immer von der Maschine ab. Manche haben den Bohrerwechselpunkt Vorne, manche Seitlich, manche Hinten.
Um wieviel Bohrungen / Teil geht es denn eigbentlich ? Nur Interessehalber.
Die Layoutsoftware, egal welche, gibt das Exellon File lediglich nach Bohrdurchmesser aus. Die Wegoptimierung wird mittels Cam_Programm, welches Exellon Dateien verarbeiten kann durchgeführt (zb. Lazycam, coppercam...). Für das recht beliebte Eagle Layout existieren verschiedene Ulp's welche die Bohrdaten als (relativ) wegoptimierte CAD_Dateien ausgeben, so das sich weitere Programme erübrigen. Zu beachten ist aber in jedem Fall das ein geeigneter Postprozessor vorhanden ist welcher die Schnittstelle zur Maschine bildet, denn nicht jede Maschine hat alle G bzw. M Codes interpretiert.
:
Bearbeitet durch User
Maik S. schrieb: > Um wieviel Bohrungen / Teil geht es denn eigbentlich ? Nimm dir eine x beliebige Leiterplatte und zähl die Löcher;-)
:
Bearbeitet durch User
Albert M. schrieb: > Georg schrieb: >> Travelling >> Salesman ist was für Theoretiker. > > Seh ich anders, insbesondere weil ich den Algorithmus fertig da liegen > habe. Braucht für 2000 Wegpunkte weniger als 100ms (Delphi/Pascal). Dann versteh ich aber die die Motivation der Fragestellung nicht. Wenn du den Teil fertig hast, dann ruf ihn halt auf. Notfalls machst du in die Konfigurationsoptionen einen entsprechenden Schalter rein und gut ists. 100 oder 200ms interessieren niemanden, wenn die Maschine dahinter dann 20 Minuten bohrt.
:
Bearbeitet durch User
Einhart Pape schrieb: > Bei meinem Layout-Tool werden die Koordinaten nur nach den Bohrergrößen > sortiert. Innerhalb einer Bohrergröße ist das offensichtlich nicht > optimiert. Werner H. schrieb: > Für das recht beliebte Eagle Layout existieren > verschiedene Ulp's welche die Bohrdaten als (relativ) wegoptimierte > CAD_Dateien ausgeben, so das sich weitere Programme erübrigen. Genau nur das wollte ich wissen. Anscheinend handhabt das also jedes Platinen-Layout Programm anders. Damit ist meine Frage beantwortet. Danke. Diskussionen über Wegoptimierung wollte ich hier keine führen, die implementiere ich so wie ich mir das vorstelle.
:
Bearbeitet durch User
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.