Springen naar inhoud

Lijn: starpunt, lengte en rc bekend. bereken eindpunt


  • Log in om te kunnen reageren

#1

zeto

    zeto


  • 0 - 25 berichten
  • 6 berichten
  • Gebruiker

Geplaatst op 22 november 2010 - 09:48

Hallo,

Voor hobby-doeleinden ben ik een visual basic 6 progje aan het schrijven.

Het is onder andere de bedoeling dat een lijn van een bepaalde lengte wordt opgedeeld in kleinere stukken van gelijke lengte. (Het is voor een cnc-freesmachine.)

Nu had ik al bedacht dat van het (eerste) kleinere lijnstuk het beginpunt, de gewenste lengte en de richtingscoŽfficiŽnt bekend zijn.
Daarmee moet het eindpunt toch uit te rekenen zijn....

Ik ga er vanuit dat pythagoras in ieder geval om de hoek komt kijken.
Verder zal de hellingshoek bekend zijn via invtan(rc).

Maar mijn wiskunde-kennis zit inmiddels zodanig verborgen onder een laag stof dat ik er niet 1,2,3 uitkom.
Wie helpt me in deze brei te roeren tot er een pasklaar formuletje uitkomt dat ik kan gebruiken in VB6?

Hetzelfde moet straks ook gebeuren met cirkels en cirkelsegmenten, maar dat komt later wel..

Reuze bedankt alvast!

Dick

P.S. Het moet natuurlijk "startpunt" zijn in de titel. Ik heb het geprobeerd aan te passen maar dat lukt me niet.

Veranderd door zeto, 22 november 2010 - 09:54


Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

zeto

    zeto


  • 0 - 25 berichten
  • 6 berichten
  • Gebruiker

Geplaatst op 22 november 2010 - 11:50

zal je altijd zien...

uren gezocht, niets gevonden
vraagje gepost, wel wat gevonden...!

ik bedacht me dat een cirkel wel eens uitkomst kon bieden.

volgens mij moet het zo kunnen:

hh = Atn(rc) * (180 / pi)

Xb = Xa + Cos(hh) * lijnlengte
Yb = Ya - Sin(hh) * lijnlengte

toch?

Veranderd door zeto, 22 november 2010 - 11:50


#3

Westy

    Westy


  • >250 berichten
  • 578 berichten
  • Ervaren gebruiker

Geplaatst op 22 november 2010 - 13:34

hh = Atn(rc) * (180 / pi)

klopt.
opmerking: die 180/pi moet erbij als je de hoek ingeeft in graden, maar je rekentoestel waarmee je de Atan berekent werkt in radialen.
Je kan het gewoon even checken, een hoek van 45 graden heeft een tangens (rico) = 1


Xb = Xa + Cos(hh) * lijnlengte
Yb = Ya - Sin(hh) * lijnlengte

klopt bijna, ik heb alleen een vraagje bij dat - teken in Yb, ik zou daar een + zetten:
Hangt een beetje af van hoe je de hoek ingeeft: Volgens afspraak is een hoek georienteerd in tegewijzerzin positief, in wijzerzin negatief. De sinus van een positieve hoek tussen 0 en 180 graden is positief. Die van een negatieve hoek negatief. Dus hier ook best even checken met een tekening.
---WAF!---

#4

zeto

    zeto


  • 0 - 25 berichten
  • 6 berichten
  • Gebruiker

Geplaatst op 27 november 2010 - 11:04

Hallo,

Bedankt voor de reactie.

Precies de punten waarop je wees moesten gewijzigd worden.

Yb = Ya - Sin(hh) * lijnlengte moet inderdaad Yb = Ya + Sin(hh) * lijnlengte zijn...

en hh = Atn(rc) * (180 / pi) is ook niet helemaal goed.

het moet gewoon hh = Atn(rc) zijn, sin en cos verlangen invoer in radialen.

Maar nu werkt het! Bedankt nogmaals...


Nu wil ik graag nog hetzelfde doen met cirkelbogen. Ook die moeten in kleinere stukjes "gehakt" worden..

De gegevens die ik van de cirkelboog heb zijn startpunt, eindpunt, straal en draairichting.

Nu had ik het volgende bedacht:

Begin- en eindpunt vormen een koorde van een cirkel.

Een loodlijn op het midden van de koorde zal de straal kruisen op het middelpunt van de cirkel.

De afstand middelpunt koorde -> middelpunt cirkel zal dan te berekenen zijn met pythagoras.

Daarmee kan dan het middelpunt uitgerekend worden, waarna ook de middelpuntshoek uit te rekenen valt.

Als deze gegevens bekend zijn, is volgens mij de cirkelboog verder eenvoudig op te delen.


Ben ik op de goede weg? Kan het veel eenvoudiger?

Alle suggesties zijn welkom!



Dick

#5

Fernand

    Fernand


  • >250 berichten
  • 368 berichten
  • Ervaren gebruiker

Geplaatst op 28 november 2010 - 11:34

Een paar vraagjes ter verduidelijking.

De straal is gegeven. Is dat dan de lengte van de straal ?

Moeten die kleinere stukjes van de cirkelbogen even lang zijn?
Het eindig getal π verenigt het eindige met het transcendente.
De eindige cirkel bereikt het oneindige in zijn isotrope punten.

#6

zeto

    zeto


  • 0 - 25 berichten
  • 6 berichten
  • Gebruiker

Geplaatst op 28 november 2010 - 13:24

Hallo Fernand,

Ja, de lengte van de straal is bekend.

De cirkelbogen moeten idd opgedeeld worden in kleinere stukjes van gelijke lengte.
Om dat voor elkaar te krijgen dacht ik de booghoek te delen door het aantal gewenste stukjes.

Dan komt het er dus op neer dat ik een bekend beginpunt heb, een booghoek, een straal.
Ik ben er geloof ik inmiddels in geslaagd het middelpunt van de cirkelboog uit te rekenen.

De gegevens haal ik uit G-Code, een code voor machine-besturing.

Hieronder een voorbeeld van de code voor een volledige cirkel met middelpunt (0,0) en straal 25..
Wat opvalt is dat er voor ieder kwadrant een stukje code is..(cirkelboog).
Het gaat om het stuk N114 t/m N120.

%
O0000
(PROGRAM NAME - CIRKEL )
(DATE=DD-MM-YY - 28-11-10 TIME=HH:MM - 13:08 )
N100 G21
N102 G0 G17 G40 G49 G80 G90
( 1. FLAT ENDMILL TOOL - 210 DIA. OFF. - 210 LEN. - 210 DIA. - 1. )
N104 T210
N106 G0 G90 G54 X25. Y0. S6000 M3
N108 G43 H210 Z25.
N110 Z5.
N112 G1 Z-1. F200.

N114 G2 X0. Y-25. R25. F1000.
N116 X-25. Y0. R25.
N118 X0. Y25. R25.
N120 X25. Y0. R25.

N122 G0 Z25.
N124 M5
N126 G53 Z0.
N128 G53 Z0.
N130 G53 X0. Y0.
N132 M30
%

G1 is een lineaire beweging.
G2 wil zeggen draairichting met de klok mee, G3 is tegen de klok in.
F geeft de snelheid aan, doet er dus niet toe...
G53, M5, etc zijn ook niet belangrijk.

Deze code beschrijft een volledige cirkel, maar het zou ook een "stukje" cirkel (arc) kunnen zijn.
De afzonderlijke cirkelbogen zijn te lang en moeten opgedeeld worden...

Ik ben geloof ik redelijk op weg, maar ik kan toch nog wel wat hulp gebruiken.

Bedankt voor het meedenken!

Dick





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures