Programik ciekawy, ale co z obrotami brył, oraz bryłami "kanciastymi" (sześcian, itp)?
Sławek
Znaleziono 6 wyników
- 05 sie 2005, 16:04
- Forum: Software
- Temat: programik testowy
- Odpowiedzi: 13
- Odsłony: 11299
- 03 sie 2005, 07:09
- Forum: Software
- Temat: programik testowy
- Odpowiedzi: 13
- Odsłony: 11299
W Delphi 4. Dzięki temu napisałem go w jedno popołudnie. W Visualu C++ program byłby szybszy i krótszy ale pisałbym go dłużej a zależało mi tylko na szybkim przetestowaniu mojej CNC.
Teraz na szybko piszę jeszcze programik do frezowania 3D wraz z edytorem obiektów. Będzie uwzględniał np. wymiary i kształty frezów, dodawał kroki aby likwidować luzy maszyny, itp.
Miałem tylko problem jak sterować maszyną żeby wyfrezować dowolny obiekt 3D.
Pierwsza metoda była taka, że ustalam krok X i Y dla frezu i wędrując po takiej siatce schodzę w każdym punkcie na wysokość Z.
Druga metoda to taka, że "przemiatam" frezem obiekt po liniach poziomych (lub pionowych) zmieniając wysokość Z frezu (coś jak wiązka elektronów w kineskopie).
Miałem jeszcze problem jak ustalić wysokość Z w każdym punkcie X/Y mając projekt modelu poskładany z różnych brył.
Zastosuję coś w rodzaju raytracingu ale w rzucie równoległym. W każdym punkcie X/Y będę rzucał promień i wybierał największą wartość Z przecięcie z każdym z obiektów.
Na początek obiekty będą zdefiniowane z trójkątów. Dzięki temu znalezienie wartości Z będzie bardzo proste gdyż sprowadzi się do znalezienie punktu przecięcia z płaszczyzną na której leży trójkąt. Minusem jest to że aby mieć ładne "okrągłe" obiekty (kwadryki) trzeba je rozbijać na full małych trójkątów.
Jeśli program się sprawdzi to najwyżej dopiszę "pełny" raytracing dla kwadryków i będzie wtedy wszystko "gładkie".
Przerobię jeszcze ten programik do frezowania 2D. Dodam możliwość importu pliku z protela programu dla wiertarki żeby wiercić PCB, możliwość kasowania luzów maszyny i jej niedokładności - ustalenie w 4 skrajnych punktach CNC rzeczywistych pozycji XYZ. Dzięki temu program będzie brał poprawki na "skrzywienia" maszyny. W mojej CNC miałem różnicę w wysokości frezu na całej długości o 0,13mm.
No i jeszcze przerobię program na pracę w "mm" z dokładnością do 0,001mm. Programowi poda się rozdzielczość w każdej osi a resztę sam poprzelicza.
Sławek
Teraz na szybko piszę jeszcze programik do frezowania 3D wraz z edytorem obiektów. Będzie uwzględniał np. wymiary i kształty frezów, dodawał kroki aby likwidować luzy maszyny, itp.
Miałem tylko problem jak sterować maszyną żeby wyfrezować dowolny obiekt 3D.
Pierwsza metoda była taka, że ustalam krok X i Y dla frezu i wędrując po takiej siatce schodzę w każdym punkcie na wysokość Z.
Druga metoda to taka, że "przemiatam" frezem obiekt po liniach poziomych (lub pionowych) zmieniając wysokość Z frezu (coś jak wiązka elektronów w kineskopie).
Miałem jeszcze problem jak ustalić wysokość Z w każdym punkcie X/Y mając projekt modelu poskładany z różnych brył.
Zastosuję coś w rodzaju raytracingu ale w rzucie równoległym. W każdym punkcie X/Y będę rzucał promień i wybierał największą wartość Z przecięcie z każdym z obiektów.
Na początek obiekty będą zdefiniowane z trójkątów. Dzięki temu znalezienie wartości Z będzie bardzo proste gdyż sprowadzi się do znalezienie punktu przecięcia z płaszczyzną na której leży trójkąt. Minusem jest to że aby mieć ładne "okrągłe" obiekty (kwadryki) trzeba je rozbijać na full małych trójkątów.
Jeśli program się sprawdzi to najwyżej dopiszę "pełny" raytracing dla kwadryków i będzie wtedy wszystko "gładkie".
Przerobię jeszcze ten programik do frezowania 2D. Dodam możliwość importu pliku z protela programu dla wiertarki żeby wiercić PCB, możliwość kasowania luzów maszyny i jej niedokładności - ustalenie w 4 skrajnych punktach CNC rzeczywistych pozycji XYZ. Dzięki temu program będzie brał poprawki na "skrzywienia" maszyny. W mojej CNC miałem różnicę w wysokości frezu na całej długości o 0,13mm.
No i jeszcze przerobię program na pracę w "mm" z dokładnością do 0,001mm. Programowi poda się rozdzielczość w każdej osi a resztę sam poprzelicza.
Sławek
- 02 sie 2005, 14:04
- Forum: Software
- Temat: programik testowy
- Odpowiedzi: 13
- Odsłony: 11299
- 02 sie 2005, 11:49
- Forum: Software
- Temat: programik testowy
- Odpowiedzi: 13
- Odsłony: 11299
Ja bazuję na zwykłej pętli programowej. W Windowsach chyba jedynym wzorcem czasu jest zegar systemowy (TickCount). Ma on jednak rozdzielczość około 1ms, tak więc zbyt małą aby odmierzać przerwy dla sygnału CLK. Pozostała mi zwykła pętla programowa "for...". Oczywiście nie jest do zbyt dokładne odmierzanie czasu - zależy od zajętości procka. Sprawę może poprawić wykonywanie tej pętli na wątku o najwyższym priorytecie o czas trwania 1 kroku zmierzyć korzystając z TickCount.
Sławek
Sławek
- 02 sie 2005, 08:40
- Forum: Software
- Temat: programik testowy
- Odpowiedzi: 13
- Odsłony: 11299
- 01 sie 2005, 21:49
- Forum: Software
- Temat: programik testowy
- Odpowiedzi: 13
- Odsłony: 11299
programik testowy
Napisałem dzisiaj na szybko prosty programik testowy do mojej CNC (może się komuś przyda):
http://www.korinsj.com.pl/ppics/ucnc.zip
Tu jest fotka ekranu i krótki opis:
Sławek
http://www.korinsj.com.pl/ppics/ucnc.zip
Tu jest fotka ekranu i krótki opis:

Sławek