Na razie nic nie zaproponuję bo nie zastanawiałem się nad tym głębiej. Po prostu zwróciłem uwagę na problem.qqaz pisze:Kolega Leoo zaproponuje strategię korekcji.
Na pierwszy rzut oka będą dwa przypadki wymagające korekcji. Pierwszy to cięcie pod kątem, niekoniecznie ostrym, które wymaga podniesienia ostrza. Ostrze można podnieść dopiero, kiedy cięcie minie punkt przecięcia przykładowych prostych dokładnie o offset. Rozpoczynając cięcie wzdłuż drugiej prostej (przy kącie) podobnie należy uwzględnić offset, jeśli cięcie ma być w punkt. Teoretycznie drugie cięcie można rozpocząć bez korekcji, tyle że nie wiadomo która część (zewnętrzna czy wewnętrzna) jest ważna.
Drugi przypadek to cięcie promieni.
Po dłuższej chwili zastanowienia dochodzę do wniosku, że specjalna korekcja dla krzywych nie jest konieczna. Jeśli postprocesor generuje tylko G1, to krzywe zamienione są na odcinki i sprawa załatwiona. Jedynie uwagę należy zwrócić na proces zmiany azymutu szabelki, która musi odbywać się jednocześnie z korekcją położenia w osiach X i Y. Cały problem w tym, że owa zmiana (zakładam, że nóż pozostaje w materiale) nie odbywa się po linii prostej tylko po okręgu o średnicy dwa razy większej niż offset. Praktycznie do uzyskania idealnej linii cięcia korekcja X, Y powinna wykonać wykonać ruch po w/w wycinku okręgu, którego długość wynika z różnicy między kątem zakończenia jednego cięcia i rozpoczęcia drugiego. Optymalizacja obrotu noża jest konieczna.
Symulacje robiłem na kolanie, jeśli gdzieś jest błąd, to proszę mnie poprawić.