Bahnberechnung

Neue Frage »

Pieter Auf diesen Beitrag antworten »
Bahnberechnung
moin moin,

nun komme ich mit der Bahnberechnung für meine CNC-Fräse nicht weiter.
Im beiliegendem Bild fährt der Fräser(roter Kreis) die Kreisbahn(weiße
Linie) um Center von P0 kommend ab. Wie aber berechne ich nun den
Haltepunkt PH?

Schon mal Danke für brachbare Antworten.

Mit Gruß
Pieter
riwe Auf diesen Beitrag antworten »
RE: Bahnberechnung
wenn du es in etwa so meinst wie im bilderl
 
 
Pieter Auf diesen Beitrag antworten »

moin moin,

@riwe, danke,
das ist ein Sonderfall, die Strecke steht senkrecht auf dem Kreis, also Lotrecht zur Tangente.

Habe schon mal ein wenig "geforscht":

wb = ArcTan(Anstieg P1P2)
P2Xh1 = P2X * DrillRadius( cos(wb) * tan(wb) + sin(wb))
P2Yh1 = P2Y * DrillRadius( sin(wb) * tan(wb) - cos(wb))

Dieser Punkt P2h1 liegt allerdings nicht auf der Kreisbahn, sondern
lotrecht auf P2 bezüglich der Strecke P1P2.
Der Radius ist P2-Center, das verlängert um DrillRadius zeigt auf einen
anderen Punkt P2H2, ist also nicht Deckungsgleich mit P2H1.

Allgemein:
Der Ausdruck (cos(wb) * tan(wb) + sin(wb)) mag kompliziert aussehen, funktioniert dafür auch in allen 4 Quadranten ohne Umstellung.
So eine Form suche ich nun zum Kreis.


Mit Gruß
Pieter
riwe Auf diesen Beitrag antworten »

Zitat:
Original von Pieter
moin moin,

@riwe, danke,
das ist ein Sonderfall, die Strecke steht senkrecht auf dem Kreis, also Lotrecht zur Tangente.

Habe schon mal ein wenig "geforscht":

wb = ArcTan(Anstieg P1P2)
P2Xh1 = P2X * DrillRadius( cos(wb) * tan(wb) + sin(wb))
P2Yh1 = P2Y * DrillRadius( sin(wb) * tan(wb) - cos(wb))

Dieser Punkt P2h1 liegt allerdings nicht auf der Kreisbahn, sondern
lotrecht auf P2 bezüglich der Strecke P1P2.
Der Radius ist P2-Center, das verlängert um DrillRadius zeigt auf einen
anderen Punkt P2H2, ist also nicht Deckungsgleich mit P2H1.

Allgemein:
Der Ausdruck (cos(wb) * tan(wb) + sin(wb)) mag kompliziert aussehen, funktioniert dafür auch in allen 4 Quadranten ohne Umstellung.
So eine Form suche ich nun zum Kreis.

Mit Gruß
Pieter




verwirrt verwirrt

dann wende doch einfach die rotationsmatrix auf den "sonderfall" an



das ergibt ausgeschrieben:





aber vielleicht reden wir auch aneinander vorbei unglücklich

zur drehmatrix
Pieter Auf diesen Beitrag antworten »

moin Erwin,

das muss ich mal durchdenken...
anbei noch eine Zeichnung, diesmal mit rechter und linker Fräsbahn.
Die rechte ist einfacher, fräsen bis zum Schnittpunkt P1, dann einen Kreis mit Radius=DrillRadius um P1 bis zur Lotrechten von P1P2. Das funktioniert auch ganz gut, zumindestens im Bereich 90..270°.
Nur die linke fräsenbahn...

Mit Gruß
Pieter
Pieter Auf diesen Beitrag antworten »

moin Werner,

habe das mal so programmiert, R als Kreis + Drillradius, r als Drillradius.
Leider liegt das Ergebnis weit ausserhalb des gewünschten.

Hast du noch eine Idee?

Mit Gruß von der Ostsee
Pieter
riwe Auf diesen Beitrag antworten »

Zitat:
Original von Pieter
moin Werner,

habe das mal so programmiert, R als Kreis + Drillradius, r als Drillradius.
Leider liegt das Ergebnis weit ausserhalb des gewünschten.

Hast du noch eine Idee?

Mit Gruß von der Ostsee
Pieter


ja programmiere neu unglücklich

da hast du vermutlich einen fehler drinnen,
wenn du in meiner letzten grafik die werte vergleichst, siehst du, dass sie exakt übereinstimmen.
3 möglichkeiten auf die schnelle:
1) du hast den falschen winkel programmiert,
der winkle wird von der positiven x-achse gegen den uhrzeigersinn gemessen

2) grad- /bogenmaß

3) wenn ich deine beiden bilder betrachte, fällt auf, dass die beiden kreiszentren verschieden liegen
Pieter Auf diesen Beitrag antworten »

moin Werner,

neu proggen ist das gerinste Problem.
Habe nun etwas Stress auf Arbeit...ein Netzteil ist beim testen "gestorben"...
und so ein Gerät steht auch in Linz.

Zum Vergleich :
-rechnen tu ich in rad
-der Winkel ist doch der Anstieg der Stecke P1P2 als arctan(dy/dx)
0 -> 3Uhr
Pi/2 -> 12Uhr
Pi -> 9Uhr
3Pi/2 -> 18Uhr
-Center habe ich extra weggeschoben um mein Prblem zu verdeutlichen
-bitte noch mal die definitionen für R und r, bei mir gibt des den Kreisdurchmesser um Center und den Drillradius (Drill ist der rote Kreis).

den Rest heute abend,

Mit Gruß
Pieter
riwe Auf diesen Beitrag antworten »

Zitat:
Original von Pieter
moin Werner,

neu proggen ist das gerinste Problem.
Habe nun etwas Stress auf Arbeit...ein Netzteil ist beim testen "gestorben"...
und so ein Gerät steht auch in Linz.

Zum Vergleich :
-rechnen tu ich in rad
-der Winkel ist doch der Anstieg der Stecke P1P2 als arctan(dy/dx)
0 -> 3Uhr
Pi/2 -> 12Uhr
Pi -> 9Uhr
3Pi/2 -> 18Uhr
-Center habe ich extra weggeschoben um mein Prblem zu verdeutlichen
-bitte noch mal die definitionen für R und r, bei mir gibt des den Kreisdurchmesser um Center und den Drillradius (Drill ist der rote Kreis).

den Rest heute abend,

Mit Gruß
Pieter


der winkel ist nicht der anstieg, aber der arcustangens des anstiegs.
beachtest du dabei auch das vorzeichen verwirrt
rest ist ok

aber ich finde auch keinen fehler
anbei noch ein bilderl wegen der definitionen.
na wird schon werden
Pieter Auf diesen Beitrag antworten »

moin Werner,

ich prog das noch in Delphi,
Delphi-Syntax:
function ArcTan2(const Y, X: Extended): Extended;
Beschreibung
ArcTan2 berechnet den Wert ArcTan(Y/X) und gibt einen Winkel im richtigen Quadranten zurück. Der Wert von X und Y muss zwischen –2^64 und 2^64 liegen. Der Rückgabewert wird im Bogenmaß angegeben und liegt im Bereich zwischen -Pi und Pi.

Machst Du die Zeichnungen mit einem Programm?
Kannst Du bitte mal im letzen Bild die abgehende Gerage um Y=2 nach oben schieben, so das sie nicht durch den Kreismittelpunkt verläuft?
Oder sollte man die Gerade immer zuerst auf den Mittelpunkt verschieben, rechnen und dann die Verschiebung wieder rückgängig machen?
Getreu dem Motto, "Wie fangen Mathematiker einen Löwen..."
Sie fangen zwei und lassen die Hälfte wieder laufen... Lehrer

Mit Gruß
Pieter
riwe Auf diesen Beitrag antworten »

verschiebe mal deinen definitionsbereich auf ,
vielleicht hilft das schon.

ich muß jetzt philippsitten
riwe Auf diesen Beitrag antworten »

neuer tag, neues glück unglücklich

mit der verschiebung fängt man so keine löwen.





mit
Pieter Auf diesen Beitrag antworten »

Hallo Werner,

sieht gut aus...schnon mal vielen Dank.

das d habe ich so umgerechnet:

s := sin( D[3].A);
c := cos( D[3].A);
k1 := c * (Center.Y-D[2].Y) - s * (Center.X-D[2].X);
k2 := SQRT( (SQR(r) - SQR(k1-DR)) );
Stop.X := Center.X + round(k2 * c + (k1-DR) * s);
Stop.Y := Center.Y + round(k2 * s - (k1-DR) * c);

D[3].A hat den ArcTan vom Winkel.

Anbei ein Demo, ist eine Zusammenstellung einiger Elemente, so um zu zeigen was ich eigendlich will.
Pieter Auf diesen Beitrag antworten »

nun gehts weiter.

Die Fräsbahnen rechts und links sind noch nicht optimal, Hauptsache die Kontur wird nicht beschädigt.
Werde da mal noch ein wenig "forschen".

Mit Gruß
Pieter
soma Auf diesen Beitrag antworten »

hallo pieter ich beschäftige mich, gerade mit genau solch einem thema und wollte fragen ob du mir vielleicht unter die arme greifen kannst, da ich leider nicht das mathematische verständnis habe bzw mich doch recht schwer tue...
was bedeutet denn W A Q in den ganzen formeln...
Pieter Auf diesen Beitrag antworten »

moin soma,

w a q
ist bei Werner eine Winkelangabe für den Winkel alpha.

In welchem Zusammenhang beschäftigs Du Dich mit Bahnberechnungen?

Derzeit bin ich bei der Programmierung eines G-Code-Interpreters für meine CNC-Fräse.
Da auch meine Schulzeit >30 Jahre zurückliegt, habe ich mich schon ein paar Wochen mit sinus und Konsorten "rumgeschlagen".

Wie der Ausgang aus dem Kreis berechnet wird, hat Werner aufgezeigt. Bei genauerer Kontrolle, habe ich festgestellt, das meine Berechnungen zum Eingang in den Kreis nicht 100%tig richtig sind.

Mit Gruß
Pieter
riwe Auf diesen Beitrag antworten »

du könntest ja das problem einmal genauer definieren, vielleicht finden wir wieder etwas.
aber ich werde mich hüten, deinen "CnCView" noch einmal zu aktivieren Big Laugh
Pieter Auf diesen Beitrag antworten »

moin Werner,

der CNC-Viewer tut doch "gar nichts", oder was war?

Mit Gruß
Pieter
riwe Auf diesen Beitrag antworten »

naja, das ist es ja.
habe auf start gedrückt: und eine schnecke ist ein sprinter gegen deine "fräse".
und das ganze ließ sich nur über den taskmanager stoppen - pfui unglücklich
Pieter Auf diesen Beitrag antworten »

moin moin,

@Werner

jo, angekommen...habe schon eine STOP-Taste eingebaut.
Mit der Geschwindigkeit, eine Fräse ist in der Tat nicht so schnell. In der Simulation kann man so oft noch sehen, wenn irgendwo falsch gefahren wird.
Oder ich baue noch eine STEP-Taste mit ein, dann wird nach jedem Element angehalten, die Elemente selber werden (wie die Kontur) dann schnell gezeichnet.
Die neue Version liest Textdateien ein, damit kann man dann verschiedene Sachen prüfen. Werde ich heute abend mal einstellen.

Mit Gruß
Pieter
Pieter Auf diesen Beitrag antworten »
Bahnberechnung G-Code
moin moin,

anbei eine neue Version.
In den Daten gibt es einen Befehl "G4?", dieser wird bei Abarbeitung durch den im Panel vorgegeben Links/keine/Rechts ersetzt. Damit kann ohne Nachladen die unterschiedliche Ausführung getestet werden.

Einige der Testdateien zeigen auch Fehler in der Ausführung. Das sind "einfach" nur Berechnungsprobleme.
Erläuterungen zum G-Code gibt die dinHelp.
Zum Programm:
STEP/RUN : Umschaltung Schritt- Laufbetrieb. Im Schrittbetrieb wird File zu Next, damit kann weitergeschaltet werden. Da nicht alle Punktangaben sofort in der Anzeige sichtbar werden, kann es schon mal 3 Klicks auf Next dauern bis sich etwas tut.

Für Werner: Mit STOP kann jederzeit abgebrochen werden.

Bin mal auf ein Echo gespannt.

Frohe Ostertage wünscht
Pieter
soma Auf diesen Beitrag antworten »

ich bin gerade dabei ein spiel zu programmieren...
da ich das ganze nur hobbymäßig mache und so ziemlich null ahnung mehr von mathematik habe, schule ist auch 15 jahre rum, tu ich mich wahrlich schwer...
in dem spiel geht es, zur verdeutlichung, auch um eine Kugel die auf einer 2dBahn
bestehend aus geraden und kurven(kreisbögen)entlangrollen soll...
nun war ich schon soweit dass das bewegen auf der bahn kein problem ist und mit directx richtig gut ausschaut... nur soll sich die kugel ja auf der bahn bewegen
dein programm sieht doch eigentlich schon fast perfekt aus,für deine algorythmen würd ich morden Augenzwinkern


ja nein grundsätzlich würd mich mal interessieren ob du da mit fallunterscheidungen ran gehts also:
einen algo für gerade-->gerade
einen für gerade--> kreis
einen für kreis gerade.....

es gibt da irgendwie soviele probleme das ich es kaum überschauen kann...

was machst du wenn auf eine gerade z.B. eine weitere folgt dessen länge kleiner als der radius der sich bewegenden kugel ist...

ich hab mir nämlich überlegt das ganze recht allgemein zu halten und nicht mit kreisen etc zu arbeiten und die bögen in eine grössere anzahl von linien zu unterteilen... weiß noch nicht ob das so schlau ist...


naja könntet ihr diese formel die ihr da immer in bearbeitung habt so aufschreiben das auch ich sie verstehe?
[attach]7846[/attach]


so nun eine kleines Bild

es gibt hier nun P1,P2,P3
und den Mittelpunkt M1
dann gibt es noch R und r vobei R der radius der kreisbogens ist und r der radius der kleinen kugel...
mit wa q kann ich garnichts anfangen
Pieter Auf diesen Beitrag antworten »

moin moin,

nochmal eine neue Version.

@soma,

Fräse oder Kugel, ist erstmal egal.
direct x kenne ich nur vom Namen her, Graden und Kreise berechne ich mit Bresenham punktweise.

Bei der Problemanalyse muß man viel früher ansetzen und dann kommt man darauf, das die gleichzeitige Betrachtung von 3 Punkten notwendig ist.
1. Punkt: da ist man
2. Punkt: da will man hin
3. Punkt: wo muß man beim 2 Punkt aufhören

z.B D[1] sind bei mir Daten zum 1.Punkt und D[3].A ist der Winkel von Punkt2 zu Punkt3.
Im G-Code wird zu einem Punkt noch die Info Grade oder Kreis mitgegeben. Das ist auch ein wichtiges Kriterium für die Auswahl des Rechenweges.
Die Bahnsteuerung kann alle 3 Achsen gleichzeitig positioniren, bei einer Fräse geht das aber nicht immer. Daher werden bestimmte Schritte zurückgestellt. Z.B. Ist die Radiuskorrektur eingeschaltet, kann für den 1. Punkt erst nach einlesen des 2. Punktes die Ablage bestimmt werden. Der Punkt kann dann mit der Ablage angefahren werden. Das Absenken kann esrt nach dem Anfahren erfolgen. Zum 2. Punkt kann erst nach einlesen des 3.Punktes gefahren werden.
Die Art des 3. Punktes hat Einfluss auf die Berechnung des Endwertes der Strecke P1-P2.
Wie die Ecke zwischen 2 Stecken berechnet wird habe ich aus in einer Vorlesung über Landvermessung gefunden. Insofern das alte Problem:wie finde ich Infos im Internet.

@Werner
Die DIN ist unvollständig, selbst 2 Punkte und die Richtung reichen nicht aus, um eineindeutig den Kreis zu beschreiben. also nichts mit deutscher Gründlichkeit.
Test9i.cnc ist mit Angabe Ablage Kreismittelpunkt und Errechnung Radius
Test9r.cnc ist mit Radius und Errechnung des Kreismittelpunktes
Beide Bilder sind unterschiedlich.

In der jetzigen Version ist ein Fehler in der Scalierung und der Berechnung vom Kreismittelpunkt behoben. Werde mal eine Versionkontrolle einbauen

Mit Gruß
Pieter
old_Pieter Auf diesen Beitrag antworten »

moin moin,

das Berechnungsprolbem habe ich mal zusammengefast:
(Da Latex nicht richtig abgespeichert werden kann, lasse ich es mal weg.)

. x y
P1 5000 11000
P2 10000 10000
P3 17800 8100
P4 12000 5000
C 13321 6675
R 4700
J -3325
I 3321
Kreise 500 -> DR = 500 (DR : DrillRadius)

Auf der Kontur(von P1 nach P4) selber zu fahren ist kein Problem.
----------------------------------------
Fahren mit Ablage

P1 + Ablage links

DR = 500

m1 = arctan( (P1.Y-P2.Y) / (P1.X-P2.X)) = arctan( (11000-10000) / (5000/10000)
m1 = -11,301°

Anmerkung: Um m1 zu berechnen braucht man hier schon P2.

P1L.X = P1.X - DR * sin(m1) = 5000 - 500 * -0,196 = 5000 - (-98)
P1L.X = 5098

P1L.Y = P1.Y + DR * cos(m1) = P1.Y + 500 * 0,981 = 11000 + 490
P1L.Y = 11490

P1 + Ablage rechts

DR = -500

m1 = arctan( (P1.Y-P2.Y) / (P1.X-P2.X)) = arctan( (11000-10000) / (5000/10000)
m1 = -11,301°

Anmerkung: Um m1 zu berechnen braucht man hier schon P2.

P1R.X = P1.X - DR * sin(m1) = 5000 - (-500) * -0,196 = 5000 - 98
P1R.X = 4902

P1R.Y = P1.Y + DR * cos(m1) = P1.Y + (-500) * 0,981 = 11000 + (-490)
P1R.Y = 10510

P1 kann nun vom NullPunkt aus angefahren werden.

----------------------------------------
P2 + Ablage links

noch keine numerische Beschreibung
verbal:
Schnittpunkt der Stecke P1L-P2L und dem Kreisbogen(DR+R)
Die rote Linie ist die Winkelhalbierende zwischen P1L-P2L und dem Kreisbogen.

P2 + Ablage rechts
Zur Vereinfachung wird bei Aussenwinkeln ein Kreisbogen eingefügt.
Der Endpunkt von P1R-P2R (DR wieder mit -500)

P2AR.X = P2.X - DR * sin(m1) = 10000 - (-500) * -0,196 = 10000 - 98
P2AR.X = 9902

P2AR.Y = P2.Y + DR * cos(m1) = 10000 + (-500) * 0,981 = 10000 - 490
P2AR.Y = 9510

Nun kann von P1R nach P2AR gefahren werden.

mc1 = arctan( J / I ) = arctan( -3325 / 3321)
mc1 = -45.034°

P2BR.X = P2.X + DR * sin(mc1) = 10000 + (-500) * -0,7075 = 10000 + 354
P2BR.X = 10354

P2BR.Y = P2.Y + DR * cos(mc1) = 10000 + (-500) * 0,7067 = 10000 - 353
P2BR.Y = 9510

Nun einen Kreisbogen von P2AR um P2 nach P2BR fahren.

----------------------------------------
P3 + Ablage links
Zur Vereinfachung wird bei Aussenwinkeln ein Kreisbogen eingefügt.
DR = 500

mc2 = arctan( (P3.Y - C.Y) / (P3.X - C.X) ) = arctan( (8100 - 6675) / (17800 - 13321))
mc2 = 17,649°

P3AL.X = C.X + (R+DR) * cos(m1) = 13321 + (5300) * 0,953 = 18372 + 5051
P3AL.X = 18372

P3AL.Y = C.Y + (R+DR) * sin(mc2) = 6675 + (5300) * 0,303 = 6675 + 1607
P3AL.Y = 8282

Nun kann der Kreisbogen von P2 nach P3AL gefahren werden.

m3 = arctan( (P3.Y-P4.Y) / (P3.X-P4.X)) = arctan( (8100-5000) / (17800/12000)
m3 = -28,124°

P3BL.X = P3.X + DR * sin(m3) = 17800 + 500 * 0,471 = 17800 + 236
P3BL.X = 18036

P3BL.Y = P3.Y - DR * cos(m3) = 8100 - 500 * 0,882 = 8100 - 441
P3BL.Y = 7659

Nun eine Kreisbogen von P3AL um P3 nach P3BL fahren.

P3 + Ablage rechts
noch keine numerische Beschreibung, Analog P2 Ablage links.

----------------------------------------
P4
Berechnung wie bei P1.
----------------------------------------

Wie berechne ich den Punkt P2 links und P3 rechts?


Mit einem Ostergruß
Pieter
old_Pieter Auf diesen Beitrag antworten »

moin moin,

per Programmschleife habe ich den Punkt P2 links zu
P2L.X = 9845
P2L.Y = 10541
ermittelt.
allerdings noch keine Vorstellung, wie man den numerisch ermittelt.

Mit Gruß
Pieter
riwe Auf diesen Beitrag antworten »

könntest du einmal hermalen, was nun tatsächlich gegeben ist, und was du schon berechnet hast und was alles berechnet werden soll unglücklich
Pieter Auf diesen Beitrag antworten »

moin Werner,

da es ein Interpreter für G-Code werden soll, kann ich nicht sagen, was gegeben und was berechnet werden soll. Beim proggen stosse ich auf ein Problem und suche dann eine Lösung für dieses eine Problem.
Die Berechnung von P2 links ist eine Überlagerung von 2 Verschiebungen und einer Drehung. Der Punkt P2 links liegt auf der Winkelhalbierenden der Stecke P1P2 und dem Berührungspunkt der beiden Kreise.

Mit Gruß
Pieter
Pieter Auf diesen Beitrag antworten »

moin moin,

manchmal sieht man den Wald vor Bäumen nicht...

Werner hat weiter unten ein Bild angehängt, betrachtet man diese spiegelbildlich ist es die Lösung für den Punkt P2 links.

Bleibt nur noch P3 rechts als Problem offen.

Mit Gruß
Pieter
riwe Auf diesen Beitrag antworten »

schau dir einmal das an,
und testen wäre gut, wenn es das ist, was du suchst.
dann male ich auch die würste her unglücklich
Pieter Auf diesen Beitrag antworten »

moin Werner,

scheint auf den ersten Blick das zu sein was ich suche.

Bin gestern abend noch bei P3 auf eine Lösung a la P2 gestossen. Wenn man den Verschiebewert d negativ macht, kann man mit der Formel für P2 auch rechnen. Nur gehen durch Quadrierung/Radizierung Vorzeichen verloren die schwer zu restaurieren sind.

Bin auf arbeit..kaum Zeit, heute abend mehr.

Mit Gruß
Pieter
riwe Auf diesen Beitrag antworten »

ich denke, ich habe es nun verstanden:
gegeben sind die punkte , sowie der radius des kreisbogens und der der fräse
gesucht sind die entsprechenden "wendepunkte" der fräse außen und innen.

dazu der angepaßte plunder
Pieter Auf diesen Beitrag antworten »

moin Werner,

habe mal das eingegeben:
x y
M 14700 10000
r 4700
d 500
P1 5000 10000
P2 10000 10000
P2L 19876 9500
P2R 18870 10500
P3 19400 10000
P3L 13998 15152
P3R 13719 14084
P4 25400 5000

Die Werte für P2L/P2R und P3L/P3R liegen weit danebenunglücklich

Mit Gruß
Pieter
riwe Auf diesen Beitrag antworten »

ich habe zwar nicht deine werte bei P2L und P2R erhalten, die haben gestimmt(?), aber da lauern offenbar noch probleme bei den vorzeichen der wurzeln der quadratischen gleichungen.
besser so unglücklich
(darum sollst du das zeug ja testen, ich melde mich dann nach grübel, grübel,
oder ich gebe dir die formeln und du plagst dich selbst verwirrt )
Pieter Auf diesen Beitrag antworten »

moin Werner,

langsam bin ich auch am verzweifeln....
Welche Excelversion nutzt Du?
Die Ergebnisse habe ich mit Excel 97SP1 und 2003SP2 bekommen.

Bestimmt ist das nur eine Frage der Vorzeichen.
Die Formeln habe ich schon mal aus Excel rausgezogen.

Mit Gruß
Pieter
riwe Auf diesen Beitrag antworten »

guten morgen
ich bastle mir einmal das ganze in VBA, da ist der mist übersichtlicher, besonders die vorzeichen samt WENN und aber-abfragen.
dann melde ich mich.

ich habe - glaube ich - excel 2003.
bei P2L und P2R hatte ich auch vorher ganz andere werte als du, ich denke die richtigen.
bei P3L und P3R die, die du hast, da habe ich nun die vorzeichenabfrage "umgestellt".

rest siehe oben.

passen dir die aktuellen werte?
laut diagramm schon
Pieter Auf diesen Beitrag antworten »

moin werner,

gehe mal davon aus du hast Excel2003, warum komme ich nicht auf die selben Werteunglücklich
Bei der Winkelberechnung, da von P1 nach P2 gearbeitet wird, rechne ich den Winkel auch von P1 nach P2, also -11,31° -> -0,2rad. So zeigt der Winkel auch immer gleich wo es hingeht.
Habe das Excel mal ferngesteuert und verschiedene Werte berechnen lassen, einige sehen "gut" aus, andere (besonders nach einem Quadrantenwechsel) liegen total daneben.

Werde das trotzdem mal in Delphi proggen.

Mit Gruß
Pieter
riwe Auf diesen Beitrag antworten »

das ganze in VBA - "ohne fehlerroutinen" verwirrt -

bein öffnen von excel makros aktivieren,
daten einlesen
button "fräsen" drücken

auf ein wunder hoffen
und testen
bitte gib mir bescheid
Pieter Auf diesen Beitrag antworten »

moin Werner,

hmmm, irgendwie muss ich zu kompliziert denken...
2 Änderungen habe ich noch:
- als Datentyp Single, da der auf dem Zielsystem verwendet wird und es dann nicht an der "Ungenauigkeit" scheitert.
- die blaue Linie muss immer innerhab laufen. Wenn der Wert für P4.X < P3.X ist, ist da etwas umzudrehen. In Fahrtrichtung liegt Blau immer rechts.
Im Anhang habe ich nur die Übertragungszellen geändert.

Werde nun das Ganze mal nach Delphi und Assembler MASM51 übersetzen...

Schon mal Danke und noch einen schönen Tag,
mit Gruß
Pieter
riwe Auf diesen Beitrag antworten »

zu meiner version:

die fräse läuft AUSSEN von P1 über P2 nach P3 und P4 nach rechts über den oberen bogen - rote linie - und dann INNEN - blaue linie zurück.

ich habe keine ahnung, was du umdrehen willst, der datentyp ist mir auch egal.

bei mir funktionierte das zeug immer, bin auf dich neugierig


gelöst habe ich es rein vektoriell ohne winkelfunktionen (außer der grafik, die nur "gaudi" ist)

na viel spaß
Pieter Auf diesen Beitrag antworten »

moin Werner,

auch wenn ich anfange zu "nerven", stell Dir vor, die schwarze Linie ist ein Haus, die rote Linie beschreibt den Weg um das Haus...und Du gehst dann blau durch eine fremde Wohnung Big Laugh

Vektorielle Rechnung, interessanter Ansatz! Die Beschreibung ist ja eigendlich auch schon eine Vektorbeschreibung. Neben der absoluten Wertangabe ist beim G-Code ja auch eine relative Beschreibung möglich.

Womit ich immer wieder "kämpfe":

Mit Gruß
Pieter

_______________________

IBM => Immer Besser Manuell
Neue Frage »
Antworten »



Verwandte Themen