- dokładność numeryczna to taka z jaka jest w stanie lioczyć oprogramowanie
- dokładność obliczeniowa to zadeklarowane w ustawieniach maksymalny uchyb między ścieżką idealną a ścieżką wyliczoną
- dokładność wykonania to błąd spowodowany ziarnistością ruchów maszyny (teoretyczny mikrokrok)
Dokładność numeryczna jest (POWINNA BYĆ) >> od pozostałych dokładności, więc błąd nią powodowany można pominąć a wyniki obliczeń uznać za ciągłe.
Dokładność obliczeniowa jest (powinna być) =< od dokładności wykonania, ponieważ inna opcja nie ma sensu - oczywiste.
Dokładność wykonania z natury stanowi siatkę złożoną z prostopadłościanów o bokach równych mikrokrokom w konkretnych osiach.
Dokładność obliczeniowa powinna opierać się na tej siatce. Ale w przypadku gdy dokładność obliczeniowa jest < lub << od dokładności wykonania (np 10um i 1um), dokładność obliczeniowa nie powinna stanowić niezależnej siatki, lecz nadal bazować na siatce dokładności wykonania.
Przykład: dokładność obliczeniowa 0.05, dokładność wykonania 0.001, poruszamy się po skosie od punktu 0;0 do 0.502;0.547. Jaki ruch wykona maszyna?
Przy sztywnym traktowaniu dokładności pojedzie zębami o boku 0.05 do punktu 0.5;0.0.55. Przy dynamicznym traktowaniu dokładności pojedzie zębami 0.001 do 0.502;0.547. Dlaczego tak? Dlatego że długość idealnego wektora jest większa niż dokładność obliczeniowa i nie ma potrzeby rozbijania go na mniejsze. Precyzyjne wyliczenie punktu końcowego zaś nic nie kosztuje - i tak fizycznie sterownik musi wykonywać posuwy z dokładnością wykonania, bez względu na ustawienie dokładności obliczeniowej.
Nie wiem jak działa piko. Przypuszczam że same wektory realizowane są z precyzją dokładności wykonania ale punkty początkowe i końcowe wektorów są jednak nabite na siatkę dokładności obliczeniowej o boku 0.05
Inny aspekt dynamicznego traktowania dokładności, niezwykle istotny - poruszanie się po krzywych.
Przy sztywnym traktowaniu dokładności Piko pojedzie po krzywej schodkami o boku 0.05.
Przy dynamicznym traktowaniu dokładności Piko pojedzie po krzywej wektorami zbudowanymi ze schodków o boku 0.001 w ten sposób, że punkt końcowy wektora zostanie tak dobrany aby na całej długości wektora odstępstwo pomiędzy krzywą zadaną a najbliższym punktem odcinka stanowiącego wektor, błąd nie przekroczył 0.05
Mówiąc obrazowo, wycięty okrąg powinien składać się z odcinków jak przy konwersji okręgu na HPGL a nie ze schodków o boku 0.05 układających się wokół okręgu.
Oczywiście wymaga to większego nakładu obliczeń ale za to wydatnie skraca plik Gkod, oszczędza maszynę i daje lepszy efekt końcowy obróbki. Same zalety z punktu widzenia operatora i maszyny.
W przypadku brył jestem niemal pewien, że piko stosuje najprostszą sztywną strategię. Gorszą niż w przypadku figur płaskich.
W takim przypadku oczywiście nic nie powinno być wycięte wcale. Ale jeśli np mamy G2 o średnicy 0.05 a zadeklarowana dokładność obliczeniowa wynosi 0.025, to powinien zostać wycięty łuk o średnicy 0.05 i o ząbkach wynikających z mikrokroku a nie kwadrat albo coś takiego. W ogóle nie powinno być parametru "segment". Po okręgu sterownik powinien jechać sprzętowo a nie dostawać tysiące mikrowektorów z peceta. Bo to prowadzi do zapychania się portu. Ale to akurat jest inne, głębsze zagadnienie, przecież nie będziemy narzucali producentowi konstrukcji oprogramowania i podziału kompetencji między peceta i sterownik.RobWan pisze:Jak pojawia się G2 o średnicy 0,01 mm to jak ma powstać miekki łuk, skoro w ustawieniach mamy minimalny segment np. 0,02 mm.Robert
Dlatego w tym przypadku i w takiej a nie innej koncepcji piko, wynikiem operacji powinien być wielokąt tak skonstruowany aby zapewnić optymalne odwzorowanie okręgu, na kształt HPGL. Ilość segmentów powinna wyniknąć z zadeklarowanej dokładności obróbki globalnej a niekoniecznie z "minimalnego segmentu". To jest sztuczny i zbędny parametr. Nie ma potrzeby aby traktować obróbkę okręgu inaczej niż innych krzywych, z macoszym potraktowaniem tych drugich.