
Programy z korekcją średnicy narzędzia
-
- Lider FORUM (min. 2000)
- Posty w temacie: 6
- Posty: 2173
- Rejestracja: 29 lip 2005, 15:07
- Lokalizacja: Warszawa
- Kontakt:
Nareszcie jakiś fajny temat na forum
Offsety i clippingi to moja obsesja - ponieważ nie do końca umiem sobie z nimi poradzić. A co powiecie na krzywe? (np. sklejane lub Beziera). Czy któryś z Was "gryzł" już temat ich offsetu?

Maszyny i oprogramowanie CNC: eduCAD, STEP2CNC, LynxCUT, Styro3D, Tapper, cncCAD, Image2CAM, Turn3D, TERMCUT, LynxNEST (Nesting)
Tagi:
-
Autor tematu - ELITA FORUM (min. 1000)
- Posty w temacie: 10
- Posty: 1126
- Rejestracja: 11 sty 2005, 13:03
- Lokalizacja: Grodków
- Kontakt:
grg12 pisze:Cały czas pracuję nad swoim programikiem a końca nie widać![]()
a ja dopiero zaczynam drugie podejście (na pierwszym poległem) ale już wiem że nie będzie łatwo... mam opanowane przesunięcia wierzchołków, wykrywanie kolizji zachodzących na siebie obiektów ale porozdzielać i połączyć to w jakąś sensowną całość to jest pomysłów wiele ale jak się do nich zabieram to brakuje czasu na myślenie (chyba moja głowa/jej zawartość zbyt powoli myśli)... a siedzenie dziś godzinkę jutro pół to niema sensu....Piotr Rakowski pisze:Offsety i clippingi to moja obsesja - ponieważ nie do końca umiem sobie z nimi poradzić.
-
- ELITA FORUM (min. 1000)
- Posty w temacie: 5
- Posty: 1743
- Rejestracja: 03 sty 2007, 14:27
- Lokalizacja: Wiedeń
Zaimplementowałem "na chama" - podczas wczytywania rozkładam na proste odcinki i wszystkie następne operacje wykonuje na nich. Wyszedłem z założenia że skoro G-code nie wspiera splineów (a przynajmniej nic o tym nie wiem) więc w końcu i tak bym musiał podzielić na kawałki. Implementacja samych splineów okazała się zdumiewająco prosta - wystarczyły informacje z wikipediiPiotr Rakowski pisze:Nareszcie jakiś fajny temat na forumOffsety i clippingi to moja obsesja - ponieważ nie do końca umiem sobie z nimi poradzić. A co powiecie na krzywe? (np. sklejane lub Beziera). Czy któryś z Was "gryzł" już temat ich offsetu?

W tej chwili próbuję zaimplementować dodawanie "łuków wejściowych" (nie wiem jak się to poprawnie nazywa - kawałek łuku po którym narzędzie "wjeżdża" na krzywą) - niestety z braku czasu robota idzie baaaardzo wolno. W dalszej perspektywie - automatyczne rozpoznawanie "wysp" - takich jak wewnętrzna pętla w literce "e" - żeby program podczas "wypełniania" automatycznie je omijał
-
- Lider FORUM (min. 2000)
- Posty w temacie: 6
- Posty: 2173
- Rejestracja: 29 lip 2005, 15:07
- Lokalizacja: Warszawa
- Kontakt:
Ja robię tak samo. Zamieniam Beziera na wielobok (kwantyzacja) i dopiero robię offset. Jednakże po takim offsecie trudno jest już cokolwiek zrobić - pamiętajcie, że ja robię to na poziomie eduCADa (cncCADa), a więc każda ścieżka podlegać może jeszcze dalszym modyfikacjom. Z pewnością są metody na offset Beziera - vide Corel, czy Ilustrator. Są to tzw. metody heurystyczne (co by to nie znaczyło
). Tyle, że moja wiedza matematyczna tu się kończy...

Maszyny i oprogramowanie CNC: eduCAD, STEP2CNC, LynxCUT, Styro3D, Tapper, cncCAD, Image2CAM, Turn3D, TERMCUT, LynxNEST (Nesting)
-
- Specjalista poziom 3 (min. 600)
- Posty w temacie: 4
- Posty: 637
- Rejestracja: 21 maja 2008, 10:02
- Lokalizacja: Damasławek
O „wredności” czcionek pisałem trochę w innym kontekście. Chodziło mi krzyżowanie się kolejnych wektorów (patrz obrazek). Zjawisko to nagminnie występuje w literkach, które importuje jako HPGL – pewnie ze względu na ograniczoną rozdzielczość tego formatu – w DXF-ie to chyba zjawisko marginalne - i zastanawiam się czy też masz ten problem.Jak napisał cosimo - najwredniejsze są literki. Niektórych w prosty sposób nie da się "zapełnić" bo zawierają wewnętrzne elementy których nie można zamazać (np "e" poniżej) - trzeba analizować kolizje z już istniejącymi krzywymi.

-
- Moderator
-
Lider FORUM (min. 2000)
- Posty w temacie: 2
- Posty: 4463
- Rejestracja: 13 wrz 2008, 22:40
- Lokalizacja: PL,OP
Spróbuj zamiast "wektorów" przenosić punkty węzłowe linii przesuniętej na podstawie dwóch "wektorów"-odcinków i dopiero potem łączyć w odcinki.

Lewe wierzchołki prostokątów - stąd bierz współrzędne do wyliczenia przesunięcia.
Środek prawego boku prostokąta - tutaj wstaw punkt.

Lewe wierzchołki prostokątów - stąd bierz współrzędne do wyliczenia przesunięcia.
Środek prawego boku prostokąta - tutaj wstaw punkt.
zachowanie spokoju oznacza zdolności do działania
ᐃ 🜂 ⃤ ꕔ △ 𐊅 ∆ ▵ ߡ
ᐃ 🜂 ⃤ ꕔ △ 𐊅 ∆ ▵ ߡ
-
- ELITA FORUM (min. 1000)
- Posty w temacie: 5
- Posty: 1743
- Rejestracja: 03 sty 2007, 14:27
- Lokalizacja: Wiedeń
Ja przenoszę całe wektory i łuki, sprawdzam jaki jest kąt pomiędzy następującymi po sobie elementami i jeśli jest otwarty dodaje łuk łączący (środek łuku zawsze wypada w punkcie łączący oryginalne wektory, promień jest równy offsetowi - pozostaje wyliczyć kąty). To załatwia problem elementów które podczas przesuwania ulegają "rozsunięciu" - pozostają segmenty które się krzyżują - te "załatwiam" w następnej fazie - podczas wielkiego cięcia "każdy z każdym" i usuwania śmiecia. Przy pierwszych próbach przecinałem tylko następujące po sobie elementy - ale szybko się okazało że to na nic - jeśli offset jest większy niż długość segmentu punkt "przecięcia" może wypaść poza "następnym" segmentem - czasem wypada w drugim z kolei, czasem w setnym. Szczególnie upierdliwe są pod tym względem spline (bo jeśli ustawić wysoką dokładność odwzorowania podczas kwantyzacji powstają tysiące króciutkich odcinków) i litery. Kolejny problem - figury z "przewężeniem" np. dwa duże okręgi połączone cienką "rurą" - przy offsecie większym niż połowa grubości rury rozpadają się kilka mniejszych figur. W załączniku mój zbiór figur testowych
Głowna wada tego rozwiązania to wymagana moc obliczeniowa - "wielkie cięcie" i późniejsze wyszukiwanie połączonych łańcuchów zajmuje sporo czasu.


Głowna wada tego rozwiązania to wymagana moc obliczeniowa - "wielkie cięcie" i późniejsze wyszukiwanie połączonych łańcuchów zajmuje sporo czasu.

-
Autor tematu - ELITA FORUM (min. 1000)
- Posty w temacie: 10
- Posty: 1126
- Rejestracja: 11 sty 2005, 13:03
- Lokalizacja: Grodków
- Kontakt:
niestety nikt nie mówił, że życie programisty jest prostegrg12 pisze:Przy pierwszych próbach przecinałem tylko następujące po sobie elementy - ale szybko się okazało że to na nic - jeśli offset jest większy niż długość segmentu punkt "przecięcia" może wypaść poza "następnym" segmentem - czasem wypada w drugim z kolei, czasem w setnym.


[ Dodano: 2011-03-12, 13:26 ]
a wszystko razem....
grg12 pisze:zajmuje sporo czasu.