Obliczanie ofsetu dla freza w rogu...

Dyskusje dotyczące działania obsługi programu PikoCNC
Awatar użytkownika

Autor tematu
mitek
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 4
Posty: 744
Rejestracja: 09 cze 2009, 22:06
Lokalizacja: k/Krakowa
Kontakt:

Obliczanie ofsetu dla freza w rogu...

#1

Post napisał: mitek » 25 lip 2012, 15:24

Witam

Mam problem i pustkę w głowie... chodzi by stworzyć skrypt który automatycznie będzie frezował mi trójkąt ale by to zrobić poprawnie muszę mieć odcinek oznaczony na różowo na rysunku. Koła to frez oczywiście stycznie poruszający się po czarnej lini symbolizującej dany kawałek tak naprawdę mamy tylko informacje o średnicy freza.

Ktoś ma jakiś pomysł ? oczywiście będzie to skrypt więc wymagane jest obliczenie matematyczne nie pomiar bo sam kąt może się zmienić i tak dalej...

Obrazek

[ Dodano: 2012-07-26, 07:51 ]
Udało mi się obliczyć z tangensem ale bez użycia funkcji trygonometrycznych nie dam rady.

Widać ze kąty są do obliczane 37=90-(26,5*2)

Obrazek


Coś jest niemożliwe do czasu... gdy przyjdzie ktoś kto nie wie że jest to niemożliwe i to zrobi :-D

Tagi:

Awatar użytkownika

cosimo
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 2
Posty: 631
Rejestracja: 21 maja 2008, 10:02
Lokalizacja: Damasławek

#2

Post napisał: cosimo » 30 lip 2012, 08:45

Jestem... ;-)
Mam problem i pustkę w głowie... chodzi by stworzyć skrypt który automatycznie będzie frezował mi trójkąt ale by to zrobić poprawnie muszę mieć odcinek oznaczony na różowo na rysunku.
To może nie licz tego ;-), a zamiast tego daj łuk o promieniu narzędzia z końca jednego offsetu do początku drugiego.

Tak w ogóle „zainspirowany” dodałem do „wbudowanych” funkcji skryptów funkcje obliczające równoległe do odcinków a także obliczające punk przecięcia dwóch odcinków. Myślę, że to trochę pomorze. Na dole w obrazku przykład funkcji robiącej offset dla figury z prostych odcinków, której wierzchołki umieszczono w tablicy punktów.

Obrazek

Awatar użytkownika

Autor tematu
mitek
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 4
Posty: 744
Rejestracja: 09 cze 2009, 22:06
Lokalizacja: k/Krakowa
Kontakt:

#3

Post napisał: mitek » 30 lip 2012, 12:34

http://www.e-manta.eu/forum/viewtopic.php?t=9330 już rozwiązany problem

może by się te tangensy przydały :)

musisz to dokładniej opisać bo już nie wiem co jest co pascal dla mnie tylko tyle by linie powstawały :)
Coś jest niemożliwe do czasu... gdy przyjdzie ktoś kto nie wie że jest to niemożliwe i to zrobi :-D

Awatar użytkownika

cosimo
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 2
Posty: 631
Rejestracja: 21 maja 2008, 10:02
Lokalizacja: Damasławek

#4

Post napisał: cosimo » 30 lip 2012, 13:36

Z wrażenia omal z krzesła nie spadłem ;-) ale można i tak. Jednak w ogóle nie potrzebnie się nad tym głowiłeś. Skoro potrafiłeś policzyć wektory odsunięte o offset to trzeba był łukiem pojechać z końca jednego na początek drugiego podając tylko promień łuku tak jak jest w linii 52 tego przykładu na obrazku. Tam jest jeszcze dodane Abs(diam) na wypadek „ujemnego” offsetu.

Dodatkowe funkcje obowiązkowo opiszę w manualu ;-).

Awatar użytkownika

grg12
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 2
Posty: 1670
Rejestracja: 03 sty 2007, 14:27
Lokalizacja: Wiedeń

#5

Post napisał: grg12 » 30 lip 2012, 15:22

cosimo pisze:
Z wrażenia omal z krzesła nie spadłem ;-) ale można i tak. Jednak w ogóle nie potrzebnie się nad tym głowiłeś. Skoro potrafiłeś policzyć wektory odsunięte o offset to trzeba był łukiem pojechać z końca jednego na początek drugiego podając tylko promień łuku tak jak jest w linii 52 tego przykładu na obrazku. Tam jest jeszcze dodane Abs(diam) na wypadek „ujemnego” offsetu.

Dodatkowe funkcje obowiązkowo opiszę w manualu ;-).
Nie tylko ujemne offsety - ciekawe rzeczy robią się też jeśli figura ma zakręty "w lewo" a jeszcze zabawniej jest jeśli są w niej wcięcia - np. coś w rodzaju wybrania pod jaskółczy ogon.
W załączniku - kawałek kodu który liczy parametry łuku łączącego w moim programie (s1 i s2 - łączone segmenty, orginalConnectionPoint - miejsce gdzie przed dodaniem offsety segmenty się stykały)

double startTangential=s1->getTangentialAngle(1.0);
double endTangential=s2->getTangentialAngle(0.0);
double startAngle,endAngle;
if(offset<0)
{
startAngle=startTangential+(M_PI/2);
endAngle=endTangential+(M_PI/2);
if(startAngle<endAngle)
startAngle+=(2*M_PI);
}
else
{
startAngle=startTangential-(M_PI/2);
endAngle=endTangential-(M_PI/2);
if(startAngle>endAngle)
endAngle+=(2*M_PI);
}


PathXYSegment *connector = new PathXYSegment_Arc(orginalConnectionPoint,radius,startAngle,endAngle);


Pozdrawiam
Grzesiek

Awatar użytkownika

Autor tematu
mitek
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 4
Posty: 744
Rejestracja: 09 cze 2009, 22:06
Lokalizacja: k/Krakowa
Kontakt:

#6

Post napisał: mitek » 30 lip 2012, 17:13

to jest z piko skrypt?
Coś jest niemożliwe do czasu... gdy przyjdzie ktoś kto nie wie że jest to niemożliwe i to zrobi :-D

Awatar użytkownika

grg12
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 2
Posty: 1670
Rejestracja: 03 sty 2007, 14:27
Lokalizacja: Wiedeń

#7

Post napisał: grg12 » 30 lip 2012, 18:54

mitek pisze:to jest z piko skrypt?
Nie - ale zależności potrzebne do obliczenia łuku łączącego chyba da się z tego odczytać?

Awatar użytkownika

Autor tematu
mitek
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 4
Posty: 744
Rejestracja: 09 cze 2009, 22:06
Lokalizacja: k/Krakowa
Kontakt:

#8

Post napisał: mitek » 30 lip 2012, 21:00

tak ale zacząłem się zastawiać czy aż tyle nie wiem :)
Coś jest niemożliwe do czasu... gdy przyjdzie ktoś kto nie wie że jest to niemożliwe i to zrobi :-D

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „PikoCNC”