G02 ...
Ahoj vsetci.
Som novy na tomto fore a mam na vas otazku.
Pisem vlastny program na ovladanie CNC (jednoduche cnc 3osy)
a mam problem s G codom.
Prikaz G02 definuje kruznice alebo kruhovy vysek .
Ak je zapis v G02 X Y I J tak je jednoduche spravit kruznicovu interpolaciu lebo pozname polohu stredu kruznice.
Ale ako sa to pocita ked je prikaz v tvare G02 X Y R ????
ako urcim polohu stredu ak poznam len polomer a pocitocny bod a poncovy bod????
vie mi niekto poradit s tymto problemom???
dakujem dzairo
Som novy na tomto fore a mam na vas otazku.
Pisem vlastny program na ovladanie CNC (jednoduche cnc 3osy)
a mam problem s G codom.
Prikaz G02 definuje kruznice alebo kruhovy vysek .
Ak je zapis v G02 X Y I J tak je jednoduche spravit kruznicovu interpolaciu lebo pozname polohu stredu kruznice.
Ale ako sa to pocita ked je prikaz v tvare G02 X Y R ????
ako urcim polohu stredu ak poznam len polomer a pocitocny bod a poncovy bod????
vie mi niekto poradit s tymto problemom???
dakujem dzairo
-
- Sponzor fora
- Příspěvky: 8173
- Registrován: 16. 7. 2006, 12:33
- Bydliště: Praha Bohnice + Roudnice nad Labem
- Kontaktovat uživatele:
Necht P=[Px,Py] je pocatecni bod, K=[Kx,Ky] koncovy bod, R polomer a S=[Sx,Sy] hledany stred. S lezi na pruseciku kruznice k se stredem K a polomerem R a kruznice p se stredem P a polomerem R. Uloha muze mit dve reseni. Pruseciky najdeme bud resenim soustavy dvou rovnic kruznice nebo volanim nize uvedene funkce
geo_2kruznice(Px,Py,R,Kx,Ky,R,S1x,S1y,S2x,S2y,neex)
(misto S je pouzito S1 a S2 pro obe reseni, neex je promenna typu boolean)
{----------------------------------------------------------------------------}
procedure geo_2kruznice (
xs1,ys1 : float; { stred prvni kruznice }
r1 : float; { polomer prvni kruznice }
xs2,ys2 : float; { stred druhe kruznice }
r2 : float; { polomer druhe kruznice }
var x1,y1 : float; { 1. prusecik }
var x2,y2 : float; { 2. prusecik }
var neex : boolean); { True = prusecik neexistuje }
{ False = existuje }
{ Najde oba pruseciky dvou kruzic. }
{----------------------------------------------------------------------------}
begin {geo_2kruznice}
neex:=false;
{ kontrola existence }
if not le(geo_delka(xs1,ys1,xs2,ys2),r1+r2) then begin
neex:=true;
exit;
end {if};
(*
FullSimplify [ Solve [ { (x-xs1)^2+(y-ys1)^2==r1^2,(x-xs2)^2+(y-ys2)^2==r2^2},{x,y}] ]
*)
x1:=((1/(2*((xs1-xs2))*((sqr((xs1-xs2))+sqr((ys1-ys2))))))*(((-sqr(r1))*sqr((xs1-xs2))+sqr(r2)*sqr((xs1-xs2))+((xs1-xs2))*((xs1+xs2))*((sqr((xs1-xs2))+sqr((ys1-ys2))))+ys1*sqrtz(neex,(-sqr((xs1-xs2)))*(((-sqr((r1-r2)))+sqr((xs1-xs2))+sqr((ys1-ys2))))*(((-sqr((r1+r2)))+sqr((xs1-xs2))+sqr((ys1-ys2)))))-sqrtz(neex,(-sqr((xs1-xs2)))*(((-sqr((r1-r2)))+sqr((xs1-xs2))+sqr((ys1-ys2))))*(((-sqr((r1+r2)))+sqr((xs1-xs2))+sqr((ys1-ys2)))))*ys2)));
y1:=((-sqrtz(neex,(-sqr((xs1-xs2)))*(((-sqr((r1-r2)))+sqr((xs1-xs2))+sqr((ys1-ys2))))*(((-sqr((r1+r2)))+sqr((xs1-xs2))+sqr((ys1-ys2))))))+sqr(r2)*((ys1-ys2))+sqr(r1)*(((-ys1)+ys2))+((sqr((xs1-xs2))+sqr((ys1-ys2))))*((ys1+ys2)))/(2*((sqr((xs1-xs2))+sqr((ys1-ys2)))));
x2:=((1/(2*((xs1-xs2))*((sqr((xs1-xs2))+sqr((ys1-ys2))))))*(((-sqr(r1))*sqr((xs1-xs2))+sqr(r2)*sqr((xs1-xs2))+((xs1-xs2))*((xs1+xs2))*((sqr((xs1-xs2))+sqr((ys1-ys2))))-ys1*sqrtz(neex,(-sqr((xs1-xs2)))*(((-sqr((r1-r2)))+sqr((xs1-xs2))+sqr((ys1-ys2))))*(((-sqr((r1+r2)))+sqr((xs1-xs2))+sqr((ys1-ys2)))))+sqrtz(neex,(-sqr((xs1-xs2)))*(((-sqr((r1-r2)))+sqr((xs1-xs2))+sqr((ys1-ys2))))*(((-sqr((r1+r2)))+sqr((xs1-xs2))+sqr((ys1-ys2)))))*ys2)));
y2:=(sqrtz(neex,(-sqr((xs1-xs2)))*(((-sqr((r1-r2)))+sqr((xs1-xs2))+sqr((ys1-ys2))))*(((-sqr((r1+r2)))+sqr((xs1-xs2))+sqr((ys1-ys2)))))+sqr(r2)*((ys1-ys2))+sqr(r1)*(((-ys1)+ys2))+((sqr((xs1-xs2))+sqr((ys1-ys2))))*((ys1+ys2)))/(2*((sqr((xs1-xs2))+sqr((ys1-ys2)))));
end {geo_2kruznice};
{----------------------------------------------------------------------------}
function sqrtz (var neex : boolean;
n : float)
: float;
{ Odmocnina s testem a korekci nezapornosti. }
{ NEEX je na zacatku aby se dal snadno automaticky dopsat mezi parametry. }
{----------------------------------------------------------------------------}
begin {sqrtz}
neex:=false;
{ z nepatrneho zaporneho cisla se udela cista nula }
if (n>-epsilon) and (n<0) then n:=0;
{ neexistuje ? }
if n<0 then begin
n:=0;
neex:=true;
end;
result:=system.Sqrt(n);
end {sqrtz};
{----------------------------------------------------------------------------}
function geo_delka (x1,y1,x2,y2 : float) : float;
{ Delka usecky. }
{----------------------------------------------------------------------------}
begin {geo_delka}
geo_delka := sqrt(sqr(x1-x2)+sqr(y1-y2));
end {geo_delka};
geo_2kruznice(Px,Py,R,Kx,Ky,R,S1x,S1y,S2x,S2y,neex)
(misto S je pouzito S1 a S2 pro obe reseni, neex je promenna typu boolean)
{----------------------------------------------------------------------------}
procedure geo_2kruznice (
xs1,ys1 : float; { stred prvni kruznice }
r1 : float; { polomer prvni kruznice }
xs2,ys2 : float; { stred druhe kruznice }
r2 : float; { polomer druhe kruznice }
var x1,y1 : float; { 1. prusecik }
var x2,y2 : float; { 2. prusecik }
var neex : boolean); { True = prusecik neexistuje }
{ False = existuje }
{ Najde oba pruseciky dvou kruzic. }
{----------------------------------------------------------------------------}
begin {geo_2kruznice}
neex:=false;
{ kontrola existence }
if not le(geo_delka(xs1,ys1,xs2,ys2),r1+r2) then begin
neex:=true;
exit;
end {if};
(*
FullSimplify [ Solve [ { (x-xs1)^2+(y-ys1)^2==r1^2,(x-xs2)^2+(y-ys2)^2==r2^2},{x,y}] ]
*)
x1:=((1/(2*((xs1-xs2))*((sqr((xs1-xs2))+sqr((ys1-ys2))))))*(((-sqr(r1))*sqr((xs1-xs2))+sqr(r2)*sqr((xs1-xs2))+((xs1-xs2))*((xs1+xs2))*((sqr((xs1-xs2))+sqr((ys1-ys2))))+ys1*sqrtz(neex,(-sqr((xs1-xs2)))*(((-sqr((r1-r2)))+sqr((xs1-xs2))+sqr((ys1-ys2))))*(((-sqr((r1+r2)))+sqr((xs1-xs2))+sqr((ys1-ys2)))))-sqrtz(neex,(-sqr((xs1-xs2)))*(((-sqr((r1-r2)))+sqr((xs1-xs2))+sqr((ys1-ys2))))*(((-sqr((r1+r2)))+sqr((xs1-xs2))+sqr((ys1-ys2)))))*ys2)));
y1:=((-sqrtz(neex,(-sqr((xs1-xs2)))*(((-sqr((r1-r2)))+sqr((xs1-xs2))+sqr((ys1-ys2))))*(((-sqr((r1+r2)))+sqr((xs1-xs2))+sqr((ys1-ys2))))))+sqr(r2)*((ys1-ys2))+sqr(r1)*(((-ys1)+ys2))+((sqr((xs1-xs2))+sqr((ys1-ys2))))*((ys1+ys2)))/(2*((sqr((xs1-xs2))+sqr((ys1-ys2)))));
x2:=((1/(2*((xs1-xs2))*((sqr((xs1-xs2))+sqr((ys1-ys2))))))*(((-sqr(r1))*sqr((xs1-xs2))+sqr(r2)*sqr((xs1-xs2))+((xs1-xs2))*((xs1+xs2))*((sqr((xs1-xs2))+sqr((ys1-ys2))))-ys1*sqrtz(neex,(-sqr((xs1-xs2)))*(((-sqr((r1-r2)))+sqr((xs1-xs2))+sqr((ys1-ys2))))*(((-sqr((r1+r2)))+sqr((xs1-xs2))+sqr((ys1-ys2)))))+sqrtz(neex,(-sqr((xs1-xs2)))*(((-sqr((r1-r2)))+sqr((xs1-xs2))+sqr((ys1-ys2))))*(((-sqr((r1+r2)))+sqr((xs1-xs2))+sqr((ys1-ys2)))))*ys2)));
y2:=(sqrtz(neex,(-sqr((xs1-xs2)))*(((-sqr((r1-r2)))+sqr((xs1-xs2))+sqr((ys1-ys2))))*(((-sqr((r1+r2)))+sqr((xs1-xs2))+sqr((ys1-ys2)))))+sqr(r2)*((ys1-ys2))+sqr(r1)*(((-ys1)+ys2))+((sqr((xs1-xs2))+sqr((ys1-ys2))))*((ys1+ys2)))/(2*((sqr((xs1-xs2))+sqr((ys1-ys2)))));
end {geo_2kruznice};
{----------------------------------------------------------------------------}
function sqrtz (var neex : boolean;
n : float)
: float;
{ Odmocnina s testem a korekci nezapornosti. }
{ NEEX je na zacatku aby se dal snadno automaticky dopsat mezi parametry. }
{----------------------------------------------------------------------------}
begin {sqrtz}
neex:=false;
{ z nepatrneho zaporneho cisla se udela cista nula }
if (n>-epsilon) and (n<0) then n:=0;
{ neexistuje ? }
if n<0 then begin
n:=0;
neex:=true;
end;
result:=system.Sqrt(n);
end {sqrtz};
{----------------------------------------------------------------------------}
function geo_delka (x1,y1,x2,y2 : float) : float;
{ Delka usecky. }
{----------------------------------------------------------------------------}
begin {geo_delka}
geo_delka := sqrt(sqr(x1-x2)+sqr(y1-y2));
end {geo_delka};
Aleš Procháska
Som prekvapeny. cele riesenie problemu. Ked budem mat trtochu casu tak to rozoberiem.
Rovno otazka ci nemas funkciu G02 kodu. Teda cele riesenie nielen najdenia bodu ale aj interpolaciu kruznice alebo useku kruznice.
Na nete je vela veci ( http://reprap.org/bin/view/Main/WebHome ) to je komplet projekt ale nema akceleraciu a deceleraciu rychlosti a nieje to realtime .
ako reaguje masina ak zisti ze udaje su neplatne teda plomer alebo zadanie polomeru (I,J) je neplatne???
Naco sa pouziva parameter K asi koly stupaniu ako na zavit???
Je G02 kod pre os x,y aj pre z alebo len pre x,y.
zdravim
Rovno otazka ci nemas funkciu G02 kodu. Teda cele riesenie nielen najdenia bodu ale aj interpolaciu kruznice alebo useku kruznice.
Na nete je vela veci ( http://reprap.org/bin/view/Main/WebHome ) to je komplet projekt ale nema akceleraciu a deceleraciu rychlosti a nieje to realtime .
ako reaguje masina ak zisti ze udaje su neplatne teda plomer alebo zadanie polomeru (I,J) je neplatne???
Naco sa pouziva parameter K asi koly stupaniu ako na zavit???
Je G02 kod pre os x,y aj pre z alebo len pre x,y.
zdravim
pozeram niekolko veci a niesu mi jasne.
kde je funkcia le???
if not le(geo_delka(xs1,ys1,xs2,ys2),r1+r2)
dalej :
{ z nepatrneho zaporneho cisla se udela cista nula }
if (n>-epsilon) and (n<0) then n:=0;
co je epsilon????
geo_delka - urcuje dlzku usecky medzi bodmy start a kniec
sqrtz je test coho???? nezapornosti?? .
co sa stane ak do premennych zadam zaporne hodnoty???
zdravim
kde je funkcia le???
if not le(geo_delka(xs1,ys1,xs2,ys2),r1+r2)
dalej :
{ z nepatrneho zaporneho cisla se udela cista nula }
if (n>-epsilon) and (n<0) then n:=0;
co je epsilon????
geo_delka - urcuje dlzku usecky medzi bodmy start a kniec
sqrtz je test coho???? nezapornosti?? .
co sa stane ak do premennych zadam zaporne hodnoty???
zdravim
-
- Sponzor fora
- Příspěvky: 8173
- Registrován: 16. 7. 2006, 12:33
- Bydliště: Praha Bohnice + Roudnice nad Labem
- Kontaktovat uživatele:
Parametr K se používá pro středy kružnic v rovinách XZ resp. YZ (po G18 resp. G19). Stoupání šroubovice se zadává parametrem Z (resp. Y při G18 nebo X při G19).dzairo píše:Som prekvapeny. cele riesenie problemu. Ked budem mat trtochu casu tak to rozoberiem.
Rovno otazka ci nemas funkciu G02 kodu. Teda cele riesenie nielen najdenia bodu ale aj interpolaciu kruznice alebo useku kruznice.
Na nete je vela veci ( http://reprap.org/bin/view/Main/WebHome ) to je komplet projekt ale nema akceleraciu a deceleraciu rychlosti a nieje to realtime .
ako reaguje masina ak zisti ze udaje su neplatne teda plomer alebo zadanie polomeru (I,J) je neplatne???
Naco sa pouziva parameter K asi koly stupaniu ako na zavit???
Je G02 kod pre os x,y aj pre z alebo len pre x,y.
zdravim
Interpolaci nemám, to jsem vytáh z mého programovacího jazyka jehož výstupem je ale normální G-kód.
Kruhová interpolace se dělávala pomocí kvadratických čítačů a bylo to docela složité, co jsou teď procesory na bůhvíkolika MHz tak bych teď spíš vsadil na hrubou sílu, jako řídicí parametr vzal úhel a počítal klasicky r sin(fi), r cos (fi) a mezi kroky fi interpoloval lineárně (nebo si udělat tabulku sinů, do megové flashky se jich vejde... ). A zároveň se tím elegantně vyřeší rampy. Nebo jestli chceš klasiku tak vzít jednu osu jako řídicí (vždy 1/4 kruhu se musí prohodit) a počítal druhou souřadnici přes Pythagorovu větu, ale rampy budeš muset dopočítávat jinak.
Aleš Procháska
-
- Sponzor fora
- Příspěvky: 8173
- Registrován: 16. 7. 2006, 12:33
- Bydliště: Praha Bohnice + Roudnice nad Labem
- Kontaktovat uživatele:
LE je menší nebo rovno (to jméno funkce je ještě zlozvyk z Fortranu ).
Epsilon je nějaké malé číslo, o několik řádů menší než nejmenší souřadnice která má smysl, já používal 1e-6.
geo_delka se počítá mezi začátkem a koncem úsečky (zde tětivou kruhového oblouku) a když je větší než 2R tak úloha nemá řešení a hlásí se chyba (zastavím stroj).
sqrtz je normální odmocnina se zabudovaným kódem chyby který se nastaví když nelze vypočítat (tj. záporný poloměr).
Když zadáš záporný poloměr tak to skončí s chybou (to si musíš ošetřit ručně), záporné souřadnice by to snad mělo zvládnout, matematicky to není na závadu.
Epsilon je nějaké malé číslo, o několik řádů menší než nejmenší souřadnice která má smysl, já používal 1e-6.
geo_delka se počítá mezi začátkem a koncem úsečky (zde tětivou kruhového oblouku) a když je větší než 2R tak úloha nemá řešení a hlásí se chyba (zastavím stroj).
sqrtz je normální odmocnina se zabudovaným kódem chyby který se nastaví když nelze vypočítat (tj. záporný poloměr).
Když zadáš záporný poloměr tak to skončí s chybou (to si musíš ošetřit ručně), záporné souřadnice by to snad mělo zvládnout, matematicky to není na závadu.
Aleš Procháska
Dakujem.
Co sa tyka zaporneho polomeru tak ten nebude definovany to je somarina, bude len kladna hodnota ale poloha bodu start a bodu stop moze bit v roznych kvadrantoch a teda aj zaporna hodnota.
Co sa tyka tej funkcie LE tak rozumiem. Jednoducho maximalna dlzka tetivy je rovna 2*r alebo mensia. inac je to somarina.
co sa tyka interpolacie tak pouzivam LPC2148 na 72Mhz a chcem pouzit Bersnelov algoritmus kruznicovej intrepolacie (tak nejako sa vola) a jeto jednoduche len treba vediet kde zacat a kde skoncit. x^2+y^2=r^2 ak je lava strana vedsia ako prava tak bod je von z kruznice a ak je mensi tak je vo vnutri kruznice. mam to otestovane a skusim aj nejake insie mozno hotove funkcie. nemam v plane pouzivat sin a cos funkcie ajked procesor bude rychli(relativne aj 100MHz je malo na take veci jedine ak sa pouzije aproximacia) pozeram tvoju fukciu a je tam -sqrt to je aky zapis???
z akeho jazika jeto vitiahnute????
pri konvertovani do C to mozno bude trosku problem ale skusim to .
tie kody G17 a G18 sa naco presne pouzivaju ??? ako sa definuje ak chcem kruznicu ktora je naklonena ????
vdaka
Co sa tyka zaporneho polomeru tak ten nebude definovany to je somarina, bude len kladna hodnota ale poloha bodu start a bodu stop moze bit v roznych kvadrantoch a teda aj zaporna hodnota.
Co sa tyka tej funkcie LE tak rozumiem. Jednoducho maximalna dlzka tetivy je rovna 2*r alebo mensia. inac je to somarina.
co sa tyka interpolacie tak pouzivam LPC2148 na 72Mhz a chcem pouzit Bersnelov algoritmus kruznicovej intrepolacie (tak nejako sa vola) a jeto jednoduche len treba vediet kde zacat a kde skoncit. x^2+y^2=r^2 ak je lava strana vedsia ako prava tak bod je von z kruznice a ak je mensi tak je vo vnutri kruznice. mam to otestovane a skusim aj nejake insie mozno hotove funkcie. nemam v plane pouzivat sin a cos funkcie ajked procesor bude rychli(relativne aj 100MHz je malo na take veci jedine ak sa pouzije aproximacia) pozeram tvoju fukciu a je tam -sqrt to je aky zapis???
z akeho jazika jeto vitiahnute????
pri konvertovani do C to mozno bude trosku problem ale skusim to .
tie kody G17 a G18 sa naco presne pouzivaju ??? ako sa definuje ak chcem kruznicu ktora je naklonena ????
vdaka
-
- Sponzor fora
- Příspěvky: 8173
- Registrován: 16. 7. 2006, 12:33
- Bydliště: Praha Bohnice + Roudnice nad Labem
- Kontaktovat uživatele:
Algoritmus se jmenuje Bresenhamův
Ten jazyk je Pascal, takže sqr je druhá mocnina a sqrt druhá odmocnina. Můžeš to přepsat prakticky tak jak to je, jen místo = dáš ==, místo := dáš = a musíš upravit volání těch funkcí (var x : boolean) je totéž jako (char *x).
G17 znamená rovinu kružnice svisle v osách XZ a G18 v osách YZ. Ale když už to děláš tak bys měl udělat i kružnici v obecné poloze, nejen v těch třech základních rovinách A šroubovice by měla umět víc chodů, ne jen jeden jak se stalo v poslední době zlozvykem (na to by se to fi jako parametr hodilo).
Ten jazyk je Pascal, takže sqr je druhá mocnina a sqrt druhá odmocnina. Můžeš to přepsat prakticky tak jak to je, jen místo = dáš ==, místo := dáš = a musíš upravit volání těch funkcí (var x : boolean) je totéž jako (char *x).
G17 znamená rovinu kružnice svisle v osách XZ a G18 v osách YZ. Ale když už to děláš tak bys měl udělat i kružnici v obecné poloze, nejen v těch třech základních rovinách A šroubovice by měla umět víc chodů, ne jen jeden jak se stalo v poslední době zlozvykem (na to by se to fi jako parametr hodilo).
Aleš Procháska
v pascale som programoval niekedy teraz v Delphi.
vo vzorci su napisane veci ako :
(((-sqr(r1))*sqr((xs1-xs2))
a pred sqr je - znamienko co jeto za zapis????
v pascale som programoval velmly davno neviem , nepametam si taky zapis.
vo vzorci je tiez pouzita podmienka neex ako vysledok ci vobec moze existovat kruznica. ale predsa da sa to zapisat jednoduchsie.
trosku mi ten vzorec roby problemy v zapise.
Pises:
>>G17 znamená rovinu kružnice svisle v osách XZ a G18 v osách YZ.
neviem ci to chapem ale je to to ze kruznica sa nakresli nie x,y ale x,z alebo ako????
>> Ale když už to děláš tak bys měl udělat i kružnici v obecné poloze, >>nejen v těch třech základních rovinách
to je ako??? (ja nemam vysoku skolu a preto sa vsetko ucim sam)
>> A šroubovice by měla umět víc chodů, ne jen jeden jak se stalo v >>poslední době zlozvykem (na to by se to fi jako parametr hodilo).
tym myslis ze zavit sa bude rezat tak ako chceme nie podla standardnych tabuliek ???
zdravim
PS: privitam kazdu pomoc , teraz mi to robi ciari v 3D , interpolacia.
vela prikazov je jednoduchych ale niektore su komplikovane.
vo vzorci su napisane veci ako :
(((-sqr(r1))*sqr((xs1-xs2))
a pred sqr je - znamienko co jeto za zapis????
v pascale som programoval velmly davno neviem , nepametam si taky zapis.
vo vzorci je tiez pouzita podmienka neex ako vysledok ci vobec moze existovat kruznica. ale predsa da sa to zapisat jednoduchsie.
trosku mi ten vzorec roby problemy v zapise.
Pises:
>>G17 znamená rovinu kružnice svisle v osách XZ a G18 v osách YZ.
neviem ci to chapem ale je to to ze kruznica sa nakresli nie x,y ale x,z alebo ako????
>> Ale když už to děláš tak bys měl udělat i kružnici v obecné poloze, >>nejen v těch třech základních rovinách
to je ako??? (ja nemam vysoku skolu a preto sa vsetko ucim sam)
>> A šroubovice by měla umět víc chodů, ne jen jeden jak se stalo v >>poslední době zlozvykem (na to by se to fi jako parametr hodilo).
tym myslis ze zavit sa bude rezat tak ako chceme nie podla standardnych tabuliek ???
zdravim
PS: privitam kazdu pomoc , teraz mi to robi ciari v 3D , interpolacia.
vela prikazov je jednoduchych ale niektore su komplikovane.
vo funkcii sqrtz parameter need nema ziadny vyznam a teda tam vobec nemusi byt (aspon si myslim). zakazdym ako sa spusti funkcia sa nastavi neex na false, a teda v zavere neviem urcit ci je cela funkcia (geo_2kruznice ) true alebo false. premenna by sa mala nastvit ako false (vo funkcii geo_2kruznice ) a vo funkcii sqrtz len testovat a definovat true. ak niekde je true tak potom uz sa motna funkcia nic nenastavuje(false).
sqrtz je funkcia ktora urobi druhu odmocninu z cisla a ma testovat ci je kladne alebo zaporne. ak je zaporne tak vrati hodnotu 0 a nastavi need na true(neplatne cislo) a tak cela vysledna funkcia (geo_2kruznice ) je true a to znamena ze nema riesenie (polomer alebo body nedavaju zmysel)
a neda sa sqrtz funkcia riesit jednoduchsie????
sqrtz je funkcia ktora urobi druhu odmocninu z cisla a ma testovat ci je kladne alebo zaporne. ak je zaporne tak vrati hodnotu 0 a nastavi need na true(neplatne cislo) a tak cela vysledna funkcia (geo_2kruznice ) je true a to znamena ze nema riesenie (polomer alebo body nedavaju zmysel)
a neda sa sqrtz funkcia riesit jednoduchsie????
-
- Sponzor fora
- Příspěvky: 8173
- Registrován: 16. 7. 2006, 12:33
- Bydliště: Praha Bohnice + Roudnice nad Labem
- Kontaktovat uživatele:
Jenom záporná hodnota té odmocniny. Takhle mi to vrátil jakýsi matematický solver a už jsem se v tom víc neryl, i když by se ta znaménka dala nějak přeházet aby to vypadalo lépedzairo píše:(((-sqr(r1))*sqr((xs1-xs2))
a pred sqr je - znamienko co jeto za zapis????
Kdybych ty vzorečky dělal ručně tak bych to tak udělal taky, ale já je vygeneroval (jako řešení soustavy rovnic) a jenom cut & paste přetáh do programu. To neex je tam dané takhle abych už nic neponičil. Ale myslím, že v céčku tam dáš jen &neex a bude to fungovat stejně. Osobně by se mi už v tom vrtat nechtělo když jsem to jednou rozchodil takhledzairo píše:vo vzorci je tiez pouzita podmienka neex ako vysledok ci vobec moze existovat kruznica. ale predsa da sa to zapisat jednoduchsie.
trosku mi ten vzorec roby problemy v zapise.
Ano, přesně tak.dzairo píše:>>G17 znamená rovinu kružnice svisle v osách XZ a G18 v osách YZ.
neviem ci to chapem ale je to to ze kruznica sa nakresli nie x,y ale x,z alebo ako????
Přiznám se, že nevímdzairo píše:>> Ale když už to děláš tak bys měl udělat i kružnici v obecné poloze, >>nejen v těch třech základních rovinách
to je ako??? (ja nemam vysoku skolu a preto sa vsetko ucim sam)
Normálně ta interpolace po šroubovici udělá max. 1 závit a pak se musí těsně za ním programovat druhý atd. Občas se vidí varianta toho zápisu kde je ještě orientovaný úhel o kolik se to má vykroužit a Z neznamená celkový pozuv v Z ale stoupání na jeden závit.dzairo píše:>> A šroubovice by měla umět víc chodů, ne jen jeden jak se stalo v >>poslední době zlozvykem (na to by se to fi jako parametr hodilo).
tym myslis ze zavit sa bude rezat tak ako chceme nie podla standardnych tabuliek ???
Aleš Procháska