Delphi-PRAXiS
Seite 1 von 7  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Ablauf für Fräsmaschine programmieren (https://www.delphipraxis.net/121392-ablauf-fuer-fraesmaschine-programmieren.html)

100nF 26. Sep 2008 17:36


Ablauf für Fräsmaschine programmieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo zusammen,

Ich arbeite seit einiger Zeit an einer Platinenfräsmaschine, also ich will selbst eine kleine Fräsmaschine bauen, mit der man Platinen fräsen kann. Erstens geht es mir darum, dass ich dann in Zukunft meine Platinen ohne grossen Aufwand und vor allem ohne "Sauerei" (wie beim Ätzen) herstellen kann. Und der Lerneffekt ist auch eine positive Nebenwirkung :)
Die Elektronik für eine Achse ist schon vorhanden und funktioniert. Mechanisch hab ich bisschen angefangen, jedoch noch lange nicht fertig^^

Der gesamte Ablauf soll von meinem Delphi-Programm gesteuert werden. An die Hardware kann ich per RS232 die Position angeben, welche angefahren werden muss und mit welcher Geschwindigkeit. Dazu habe ich bereits Prozeduren geschrieben:

Delphi-Quellcode:
if WaitForReady then // eine Schlaufe, welche so lange läuft bis die Fräsmaschine bereit ist
  PositionSenden(x, y, z, speed); // x, y, z sind Integer-Werte für die 3 Achsen, speed ist auch eine Ingeger und gibt die Geschwindigkeit an
Das funktioniert soweit ganz gut.
Nun soll das aber ziemlich vollautomatisch ablaufen, will ja nicht jede Position von Hand eingeben :D

Also das Layout habe ich als Bitmap, ein Beispiel wie das Aussehen könnte findet Ihr im Anhang.
Achtung: Jedes Pixel stellt einen Schritt für die Achsen X und Y dar! d.h. es findet keine Umrechnung statt von Pixel zu Schritte.
Die Achse Z kann vollkommen vernachlässigt werden, die wird dann kein grosses Problem mehr. Ebenso die Geschwindigkeit.

Alles was schwarz ist muss nun weggefräst werden. Die Breite des Fräsers werde ich in Pixel angeben, diese kann natürlich variieren! Der Fräser soll nun sozusagen das ganze Bitmap abfahren und an keiner Stelle 2x drüber fahren. Ausserdem soll der Vorgang möglichst effizient gestaltet werden, damit viel Zeit eingespart werden kann. Man muss auch beachten dass die Übertragung der Position relativ viel Zeit beansprucht und somit nur so häufig wie nötig gebraucht werden soll, was bedeutet dass immer möglichst lange Strecken gefahren werden müssen.

Die einzige Idee die ich bis jetzt hatte, war dass man ev. die Schwarzen Flächen in einzelne Vierecke aufteilt und die dann nacheinander gefräst werden. Allerdings weiss ich nicht wie ich das genau machen kann...

Hättet Ihr vielleicht irgendwelche Vorschläge?
Vielleicht hat shcon jemand Erfahrung mit sowas?

Wäre für jede Hilfe sehr dankbar!

MFG
urbanbruhin

Namenloser 26. Sep 2008 18:24

Re: Ablauf für Fräsmaschine programmieren
 
Ich kenn mich jetzt mit Platinendesign nicht wirklich aus, aber wenn du sagst, dass ein Pixel einem "Positionsschritt" des Fräsers entspricht, wieso arbeitest du dann nicht einfach das ganze Bitmap Zeilenweise (oder in Serpentinen) ab? Wenn der aktuelle Pixelwert von weiß auf schwarz wechselt, bewegst du die Fräse nach unten, und umgekehrt.

Bitte entschuldige mich, wenn ich deine Frage falsch verstanden habe.

haentschman 26. Sep 2008 18:50

Re: Ablauf für Fräsmaschine programmieren
 
Hallo...

Meine Gedanken zum Thema. :wink:

1. die Fräsergröße kann nur maximal so groß sein wie die kleinste Lücke oder der kleinste Radius in Ecken.
2. die Bahnen, welche der Fräser zieht, müssen überlappen. z.B. bei einer Fräserbreite von 3 "Pixel" einen Versatz von 2 Pixeln damit nichts stehen bleibt (denn ich bezweifle, daß du die Positionen auf ein 1000stel genau hinkriegst :wink: )
3.
Zitat:

die Schwarzen Flächen in einzelne Vierecke aufteilt
Zitat:

bewegst du die Fräse nach unten, und umgekehrt.
...aber der Fräser ist rund :gruebel: Beim nur "Hoch und Runter würden Ecken stehen bleiben...
...um eine saubere Kante zu haben muß der Fräser an der Kante entlanglaufen.

4. Als Lösungsansatz fällt mir nur ein:
- Regionen für die schwarze Farbe (so ähnlich wie eine Maske in der Bildbearbeitung)
- die Region am Rand abfahren
- dann den Rest...
-> nächste Region usw.

:hi:

100nF 26. Sep 2008 19:24

Re: Ablauf für Fräsmaschine programmieren
 
@haentschman
du hast den nagel auf dem kopf getroffen :mrgreen:

also eigentlich stimmt alles was du schreibst.
die fräserbreite ist natürlich immer kleiner als die kleinste lücke, doch ich werde ev. ja auch verschiedene fräser benutzen, z.B. um bei "gröberen" Platinen wo die kleinsten lücken grösser sind Zeit sparen zu können. ich würde dann halt mal mit verschiedenen fräsern linien fräsen und die breite danach ausmessen. dann in pixel bzw. Schritte umrechnen und im programm eingeben.
das mit dem überlappen stimmt auch, wobei ich die überlappungsbreite auch angeben möchte in pixel. da werde ich dann natürlich durch versuchen möglichst gute werte ermitteln um auch wieder zeit sparen zu können.

ich bin mir nicht ganz sicher ob ich dein lösungsvorschlag richtig verstanden habe. das mit dem "in regionen aufteilen" klingt schonmal nicht schlecht, aber ich glaube das ist das selbe wie ich meinte mit "in einzelne vierecke aufteilen" ?!
oder hast du das anders gemeint?

das problem wäre dann aber, WIE teile ich die schwarzen flächen in einzelne regionen auf?
ach ja, ich hab übrigens gerade gemerkt dass bei dem beispielbild alles schwarze nur aus einer fläche besteht, also alles zusammenhängt. ich denke mal man könnte theoretisch damit rechnen dass es auch bei grösseren platinen so ist, aber bin mir da noch nicht ganz sicher :D

EDIT:
noch zu NamenLozer:
soweit war ich auch schon, doch diese vatiante hat viele nachteile:
- der fräser fährt unnötig über flächen die gar nicht gefräst werden müssen
- da die konturen nicht rundherum in einer linie abgefahren werden wird es wohl keine schönen abgrenzungen zwischen gefrästen und nicht gefrästen flächen geben. es wird einfach nicht schön aussehen...
- hat bestimmt noch weitere nachteile...^^

messie 26. Sep 2008 19:27

Re: Ablauf für Fräsmaschine programmieren
 
Zitat:

Zitat von NamenLozer
Ich kenn mich jetzt mit Platinendesign nicht wirklich aus, aber wenn du sagst, dass ein Pixel einem "Positionsschritt" des Fräsers entspricht, wieso arbeitest du dann nicht einfach das ganze Bitmap Zeilenweise (oder in Serpentinen) ab? Wenn der aktuelle Pixelwert von weiß auf schwarz wechselt, bewegst du die Fräse nach unten, und umgekehrt.

Ein guter Vorschlag. Nur nimmst Du immer n zeilen gleichzeitig, n ist die Breite Deines Fräsers(jeweilige Werte über die Zeilen mitteln). Wenn Weiss kommt, nimmst Du den Fräser hoch, arbeitest also alle Zeilen der Reihe nach ab.
Das ist am einfachsten. Es gibt auch Vektormodelle, nach denen das geht. Eine Einteilung in Quadrate würde ich nicht empfehlen, wenn überhaupt, dann in Dreiecke. Aber die Abarbeitung nach Zeilen ist das Einfachste. Hier geht es ja nicht um Geschwindigkeit oder maximale Präzision...

Grüße, Messie

Edit: warum gibt es das rote Fenster nicht mehr????

100nF 26. Sep 2008 19:34

Re: Ablauf für Fräsmaschine programmieren
 
Zitat:

Hier geht es ja nicht um Geschwindigkeit oder maximale Präzision...
naja...ok geschwindigkeit ist nicht alles, doch ich denke die ersparnis von einem richtig guten "ablauf" gegenüber der zeilen-methode wäre riesig. die schrittmotoren sind nunmal nicht die schnellsten :D
und präzision...sobald ich mit SMD-Bauteilen beginne kommt das thema schon einiges näher, die dinger sind echt schon sehr sehr klein. ich weiss zwar nicht ob ich das so genau hinbekomme, doch dieses ziel strebe ich eigentlich schon an.

übrigens werde ich die mechanik etwa so konstruieren dass ein schritt etwa 0,01 bis 0,02mm entspricht. klar, in der praxis heisst das dann nicht dass ich auf diesen wert genau fräsen kann.

ausserdem hab ich mir shcon überlegt, falls das teil dann mal richtig gut funktioniert, bisschen profit daraus zu schlagen. d.h. ich könnte für andere leute einen günstigen platinenservice bereitstellen, ich mein sonst zahlt man ja ein vermögen um mal eben einen prototypen ätzen zu lassen. dann käme auch die zeit wieder in den vordergrund, wie lange der fräser für eine platine braucht...

ach ja, @ messie
warum in dreiecke aufteilen?! versteh ich jetzt nicht ganz :D

messie 26. Sep 2008 19:39

Re: Ablauf für Fräsmaschine programmieren
 
Zitat:

Zitat von urbanbruhin
soweit war ich auch schon, doch diese variante hat viele nachteile:
- der fräser fährt unnötig über Flächen die gar nicht gefräst werden müssen

Ja, aber das ist das Einfachste. Für alles andere steigt der Aufwand riesig.
Zitat:

Zitat von urbanbruhin
- da die Konturen nicht rundherum in einer linie abgefahren werden wird es wohl keine schönen Abgrenzungen zwischen gefrästen und nicht gefrästen Flächen geben. Es wird einfach nicht schön aussehen...

Eine Platine muss nicht unbedingt schön aussehen. Schön, wenn sie funktioniert. Für das schöne Aussehen arbeitet man mit Vektorgrafik. Der Stift, der das Bild malt, kann auch den Fräser steuern. Das ist aber - wie schon gesagt - weitaus aufwändiger.
Zitat:

Zitat von urbanbruhin
- hat bestimmt noch weitere Nachteile...

Besonders den, dass es effizient ist :). Natürlich kannst Du das perfektionieren, wenn Du den Aufwand investieren kannst und willst.

Grüße, Messie

Edit: komisch, warum gibt es denn das rote Fenster nicht mehr? ist das abgeschafft?
Zitat:

Zitat von urbanbruhin
ach ja, @ messie
warum in dreiecke aufteilen?! versteh ich jetzt nicht ganz

Dreiecke sind die kleinste geometrische stabile Einheit. Auf diese Weise kann man mit den wenigsten Rechenschritten die Außenpunkte einer Fläche bestimmen (Triangulation, hat Gauss damals zur Vermessung eingesetzt). Wenn Du es also besonders genial programmieren willst, wirst Du mit Triangulation weniger Rechenschritte benötigen. Übrigens beruhen alle Positionierungsanlagen auf der Triangulation, angefangen von GPS bis zu Laser-Bahnenschweißanlagen in der Industrie.[/quote]

haentschman 26. Sep 2008 19:45

Re: Ablauf für Fräsmaschine programmieren
 
Zitat:

die Abarbeitung nach Zeilen ist das Einfachste.
dann sind zwar die horizontalen Kanten gerade, aber die vertikalen Kanten haben Zacken oder ? :gruebel: (wg. Rundung)

das mit den Regionen meinte ich wie folgt:
- in Bildbearbeitung z.B. kannst du eine Maske um eine bestimmte Farbe erzeugen (Magic Mask oder so...)
- die Maske / der jeweilige Maskenpunkt entspricht dann Deiner Kante der entsprechenden Farbe.
...wie man das mit Delphi hinkriegt :gruebel: , es wird aber gehen.
- die Maske wäre dann Pixelgenau.
- du müßtest dann in alle 3 möglichen Richtungen den Abstand zur Kante berechnen und den Fräser entsprechend positionieren. (links, rechts, geradeaus)
- wenn Deine Maske / Kante geschlossen ist, kommst du logischerweise wieder am Ausgangspunkt an und gehst in die nächste "Region" wenn vorhanden.

...das wird ein schönes Stück Arbeit. 8)

100nF 26. Sep 2008 19:48

Re: Ablauf für Fräsmaschine programmieren
 
Zitat:

Zitat von messie
Zitat:

Zitat von urbanbruhin
soweit war ich auch schon, doch diese variante hat viele nachteile:
- der fräser fährt unnötig über Flächen die gar nicht gefräst werden müssen

Ja, aber das ist das Einfachste. Für alles andere steigt der Aufwand riesig.

unser kursleiter im kurs "SPS programmieren" hat immer gesagt: warum eine funktion weniger im programm einbauen? warum das programm möglichst kurz halten? die weiteren funktionen kosten ja nichts, es ist gratis!
ok, es kostet zeit, doch da das mein hobby ist ist das eher unwichtig.

Zitat:

Zitat von messie
Zitat:

Zitat von urbanbruhin
- da die Konturen nicht rundherum in einer linie abgefahren werden wird es wohl keine schönen Abgrenzungen zwischen gefrästen und nicht gefrästen Flächen geben. Es wird einfach nicht schön aussehen...

Eine Platine muss nicht unbedingt schön aussehen. Schön, wenn sie funktioniert. Für das schöne Aussehen arbeitet man mit Vektorgrafik. Der Stift, der das Bild malt, kann auch den Fräser steuern. Das ist aber - wie schon gesagt - weitaus aufwändiger.

jo klar, aber wie ich schon erwähnte wären SMD-Platinen das ziel, und da kann ich jede Präzision gebrauchen...(unschönheit wäre in diesem Fall ja auch Ungenauigkeit)

Zitat:

Zitat von messie
Zitat:

Zitat von urbanbruhin
- hat bestimmt noch weitere Nachteile...

Besonders den, dass es effizient ist :). Natürlich kannst Du das perfektionieren, wenn Du den Aufwand investieren kannst und willst.

effizient beim programmieren, ja! aber nicht beim fräsen später dann xD

diese Idee hatte ich eben auch schon, doch sie gefällt mir einfach nicht.
Bekanntlich bringen mehrere Köpfe ja mehr Ideen, also hab ich gedacht ich frag hier im Forum mal nach, könnte gut sein dass jemand eine sehr gute Idee hat!

EDIT: wiedermal kein roter Kasten...:)
@haentschman
OK ich begreifs zwar noch nicht ganz (bin grafikmässig nicht sehr begabt^^) doch ich werde mal schauen ob ich mir das irgendwie selbst erklären kann...mal bisschen grübeln :gruebel:

übrigens danke schonmal für eure Antworten, dachte nicht dass das so schnell geht! :shock:

messie 26. Sep 2008 19:50

Re: Ablauf für Fräsmaschine programmieren
 
Weil es das rote Fenster jetzt nicht mehr gibt: Anwort als Edit im Post darüber.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:24 Uhr.
Seite 1 von 7  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz