AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Ablauf für Fräsmaschine programmieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ablauf für Fräsmaschine programmieren

Ein Thema von 100nF · begonnen am 26. Sep 2008 · letzter Beitrag vom 21. Nov 2008
Antwort Antwort
Seite 1 von 7  1 23     Letzte »    
100nF

Registriert seit: 7. Nov 2004
639 Beiträge
 
#1

Ablauf für Fräsmaschine programmieren

  Alt 26. Sep 2008, 17:36
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

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
Angehängte Grafiken
Dateityp: bmp layout_496.bmp (1,06 MB, 147x aufgerufen)
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Ablauf für Fräsmaschine programmieren

  Alt 26. Sep 2008, 18:24
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.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.289 Beiträge
 
Delphi 12 Athens
 
#3

Re: Ablauf für Fräsmaschine programmieren

  Alt 26. Sep 2008, 18:50
Hallo...

Meine Gedanken zum Thema.

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 )
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 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.

  Mit Zitat antworten Zitat
100nF

Registriert seit: 7. Nov 2004
639 Beiträge
 
#4

Re: Ablauf für Fräsmaschine programmieren

  Alt 26. Sep 2008, 19:24
@haentschman
du hast den nagel auf dem kopf getroffen

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

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...^^
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#5

Re: Ablauf für Fräsmaschine programmieren

  Alt 26. Sep 2008, 19:27
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????
  Mit Zitat antworten Zitat
100nF

Registriert seit: 7. Nov 2004
639 Beiträge
 
#6

Re: Ablauf für Fräsmaschine programmieren

  Alt 26. Sep 2008, 19:34
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
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
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#7

Re: Ablauf für Fräsmaschine programmieren

  Alt 26. Sep 2008, 19:39
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 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 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 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]
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.289 Beiträge
 
Delphi 12 Athens
 
#8

Re: Ablauf für Fräsmaschine programmieren

  Alt 26. Sep 2008, 19:45
Zitat:
die Abarbeitung nach Zeilen ist das Einfachste.
dann sind zwar die horizontalen Kanten gerade, aber die vertikalen Kanten haben Zacken oder ? (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 , 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)
  Mit Zitat antworten Zitat
100nF

Registriert seit: 7. Nov 2004
639 Beiträge
 
#9

Re: Ablauf für Fräsmaschine programmieren

  Alt 26. Sep 2008, 19:48
Zitat von messie:
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 von messie:
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 von messie:
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

übrigens danke schonmal für eure Antworten, dachte nicht dass das so schnell geht!
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#10

Re: Ablauf für Fräsmaschine programmieren

  Alt 26. Sep 2008, 19:50
Weil es das rote Fenster jetzt nicht mehr gibt: Anwort als Edit im Post darüber.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 7  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:54 Uhr.
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