LinuxCNC - tokarka
-
Autor tematu - Lider FORUM (min. 2000)
- Posty w temacie: 96
- Posty: 16284
- Rejestracja: 18 wrz 2010, 06:17
- Lokalizacja: Kozienice
- Kontakt:
Pewnie że można. Wszystko można
. Tyle że robiąć non stop na trzech tokarkach, nie pamiętam takiej potrzeby
A jak ię trafi to się da rade. W toczeniu zew jest to od zawsze. Trudno , leżąc nad Bałtykiem wykupować ubezpieczenie od tzunami.
[ Dodano: 2012-12-04, 07:57 ]
Kula przystosowana do latania

Gwint też optaszkowany.



[ Dodano: 2012-12-04, 07:57 ]
Kula przystosowana do latania


Kod: Zaznacz cały
( -*- encoding: utf-8-unix -*- )
( ------------------------------ )
( K U L A )
( ------------------------------ )
( Kamar )
( Time-stamp: <2012-03-14 11:05> )
( ------------------------------ )
(info: Kula )
o<kula> sub
#<sr_pocz> = #1 (=40 Średnica materiału)
#<sr_stozka> = #2 (=0 Średnica początku kuli)
#<sr_koncowa> = #3 (=40 Średnica końca kuli)
#<z_pocz> = #4 (=0 Z początkowe)
#<dl_stozka> = #5 (=20 Promień kuli)
#<rodzaj> = #6 (=0 <> wklęsła)
#<dobieranie> = #7 (=2 Dobieranie)
#<posuw> = #8 (=60 Posuw)
#<woda> = #9 (=1 <> chłodzenie)
g61
m3 s1
o1 if [#<woda> eq 1]
M8
o1 endif
o300 if [#<sr_pocz> gt #<sr_koncowa>]
#<akt_koniec> = [#<z_pocz> - #<dl_stozka>]
o305 while [#<sr_pocz> gt #<sr_koncowa>]
#<sr_pocz> =[#<sr_pocz> -#<dobieranie>]
g0 x[#<sr_pocz> + 1]
g0 z[#<z_pocz> +1]
g1 z[#<akt_koniec>] f#<posuw>
x[#<sr_pocz> + #<dobieranie>]
g0 z[#<z_pocz> + 1]
o305 endwhile
o300 endif
o100 if [#<sr_stozka> lt #<sr_koncowa>]
#<akt_start> = #<sr_pocz>
o5 while [#<akt_start> gt #<sr_stozka>]
#<akt_start> = [#<akt_start> - #<dobieranie>]
o10 if [#<akt_start> lt #<sr_stozka>]
#<akt_start> = #<sr_stozka>
o10 endif
g0 z[#<z_pocz> +1]
g0 x[#<akt_start>]
o101 if [#<rodzaj> eq 0]
g1 z#<z_pocz> f#<posuw>
g3 x[#<sr_koncowa>] z[#<z_pocz> - [[[#<sr_koncowa> - #<akt_start>] * #<dl_stozka>] / [#<sr_koncowa> - #<sr_stozka>]]] r[[#<dl_stozka>]] f#<posuw>
o101 else
g1 z#<z_pocz> f#<posuw>
g2 x[#<sr_koncowa>] z[#<z_pocz> - [[[#<sr_koncowa> - #<akt_start>] * #<dl_stozka>] / [#<sr_koncowa> - #<sr_stozka>]]] r[[#<dl_stozka>]] f#<posuw>
o101 endif
o5 endwhile
o100 endif
o<kula> endsub

Kod: Zaznacz cały
( ------------------------------ )
( G W I N T )
( ------------------------------ )
( Kamar )
( Time-stamp: <2012-12-07 09:40> )
( ------------------------------ )
(info: Gwint )
o<gwint> sub
#<x_pocz> = #1 (=30 średnica początkowa X)
#<z_pocz> = #2 (=0 początek gwintu Z)
#<skok> = #3 (=2 skok gwintu [P])
#<dlugosc> = #4 (=-50 długość gwintu [Z])
#<rodzaj> = #5 (=0 <> wewnętrzny )
#<gl_pocz> = #6 (=0.1 Dobieranie [J])
#<gl_koncowa> = #7 (=1.2 Głębokość gwintu [K])
#<woda> = #8 (=1 <> chłodzenie)
#<dosuw> = #9 (=0 <> dobieranie boczne )
g18 g61 g7
(#<wjazd>=[#<gl_koncowa> *2])
#<wjazd> = #<gl_koncowa>
m3 s300
o100 if [#<woda> eq 1]
m8
o100 endif
o110 if [#<dosuw> eq 1]
#<dosuw>=30
o110 endif
o101 if [#<rodzaj> eq 1]
#<pierwszy> = 0.1
g0 x[#<x_pocz> - 1]
g0 z#<z_pocz>
g0 x#<x_pocz>
o101 endif
o102 if [#<rodzaj> eq 0]
#<pierwszy> = -0.1
g0 z#<z_pocz>
g0 x#<x_pocz>
o102 endif
G76 P#<skok> Z#<dlugosc> I#<pierwszy> J#<gl_pocz> K#<wjazd> r1 Q#<dosuw>
g18
o<gwint> endsub
Ostatnio zmieniony 07 gru 2012, 11:42 przez kamar, łącznie zmieniany 1 raz.
-
- Specjalista poziom 1 (min. 100)
- Posty w temacie: 6
- Posty: 160
- Rejestracja: 12 kwie 2008, 07:53
- Lokalizacja: Kozienice
- Kontakt:
Zmiany robimy w pliku: usr/lib/tcltk/linuxcnc/ngcgui.tcl
Najpierw zmiana opcjonalna - wyłączenie numerków przed ptaszkami i przyciągnięcie ptaszków do lewej:
Szukamy (w okolicy linii 1574):
i wstawiamy w to w ifa - czyli zastępujemy tym:
A teraz zmiana obowiązkowa - czyli podmiana pola tekstowego na ptaszka:
Wyszukujemy tego kawałka w okolicy linii 1588:
i też dodajemy ifa - ale z generowaniem ptaszka - czyli zamieniamy na cos takiego:
I już. Prosto czysto i przyjemnie. Jak wyrzeźbię comboboxy to podeślę patcha do chłopaków od LinuxCNC albo do Micgesa - może wdrożą 
EDIT: IFy poprawione wg sugestii tuxcnc
Najpierw zmiana opcjonalna - wyłączenie numerków przed ptaszkami i przyciągnięcie ptaszków do lewej:
Szukamy (w okolicy linii 1574):
Kod: Zaznacz cały
set l [label $fdata.[qid] -text [format %#2d $onum] -anchor e \
-takefocus 0 -relief ridge -width 2]
pack $l -side left -fill x -expand 0
Kod: Zaznacz cały
if {[string first "<> " $::ngc($hdl,arg,comment,$num02)] == -1} {
set l [label $fdata.[qid] -text [format %#2d $onum] -anchor e \
-takefocus 0 -relief ridge -width 2]
pack $l -side left -fill x -expand 0
}
Wyszukujemy tego kawałka w okolicy linii 1588:
Kod: Zaznacz cały
set e [entry $fdata.[qid] \
-width $ew \
-font $::ngc(any,font) \
-textvariable $tvar\
-validate all\
-validatecommand \
[list ::ngcgui::validateNumber $hdl $tvar %W %s %P]]
Kod: Zaznacz cały
if {[string first "<> " $::ngc($hdl,arg,comment,$num02)] != -1} {
set ::ngc($hdl,arg,comment,$num02) [string range $::ngc($hdl,arg,comment,$num02) 3 1000]
set e [checkbutton $fdata.[qid] -anchor w -font $::ngc(any,font) \
-variable ::ngc($hdl,arg,value,$num)]
} else {
set e [entry $fdata.[qid] \
-width $ew \
-font $::ngc(any,font) \
-textvariable $tvar\
-validate all\
-validatecommand \
[list ::ngcgui::validateNumber $hdl $tvar %W %s %P]]
}

EDIT: IFy poprawione wg sugestii tuxcnc
Ostatnio zmieniony 11 gru 2012, 08:09 przez ArturM, łącznie zmieniany 1 raz.
-
- Lider FORUM (min. 2000)
- Posty w temacie: 23
- Posty: 9351
- Rejestracja: 26 lut 2011, 23:24
- Lokalizacja: mazowieckie
No niezupełnie.ArturM pisze:I już. Prosto czysto i przyjemnie.
U mnie wykonanie linii :
Kod: Zaznacz cały
set e [checkbutton $fdata.[qid] -anchor w -font $::ngc(any,font) \
-variable ::ngc($hdl,arg,value,$num)]
Kod: Zaznacz cały
Traceback (most recent call last):
File "/opt/linuxcnc-lathe.sim/bin/axis", line 3255, in <module>
root_window.tk.call("package","require",*pkg)
_tkinter.TclError: unknown option " "
Shutting down and cleaning up LinuxCNC...
.
[ Dodano: 2012-12-06, 20:37 ]
Znalazłem dziada.
Błąd formatowania.
Przyczyną okazało się kopiuj/wklej z forum do gedita.
Po wykonaniu takiej operacji za backslashem pojawia się spacja, a musi być koniec linii.
Po usunięciu tej spacji wszystko zaczyna działać.
Czyli mogło by być w jednej linii :
Kod: Zaznacz cały
set e [checkbutton $fdata.[qid] -anchor w -font $::ngc(any,font) -variable ::ngc($hdl,arg,value,$num)]
Kod: Zaznacz cały
if {[string first "<> " $::ngc($hdl,arg,comment,$num02)] == -1}
Kod: Zaznacz cały
if {[string first "<> " $::ngc($hdl,arg,comment,$num02)] != -1}
.
-
- Lider FORUM (min. 2000)
- Posty w temacie: 23
- Posty: 9351
- Rejestracja: 26 lut 2011, 23:24
- Lokalizacja: mazowieckie
Jak zwykle niczego nie rozumiesz, ale odezwać się musisz.kamar pisze:Normalnie czułbym się zawiedziony, gdyby kolega czegoś nie wytknął
Otóz jak się burdel robi w programie, to się właśnie utrudnia, albo wręcz uniemożliwia innym wprowadzenie zmian.
Dlatego dodany kod powinien być prosty, logiczny i jeszcze lepiej jak obkomentowany.
Jak parametr przyjmuje wartość -1 dla "nie znaleziono", to się powinno sprawdzać czy jest -1 czy nie.
Sprawdzanie czy jest mniejszy od zera to zupełnie niepotrzebne gmatwanie kodu.
.
-
- Lider FORUM (min. 2000)
- Posty w temacie: 82
- Posty: 3705
- Rejestracja: 15 sie 2010, 13:44
- Lokalizacja: Błonie
- Kontakt:
tuxcnc - byłbyś chory, gdybyś komuś nie nawrzucał, wytykając błędy 
A ogólnie fajnie by było, gdyby do NGCGUI dopisać możliwość wpisywania rozszerzonego opisu pola, wyskakującego w dymku po najechaniu na opis pola w jego dotychczasowej postaci. Lepiej to widać na zrzucie z oknem programu do zapisywania ekranu w formacie .ogg:

Do zaimplementowania np tak:
Gdzie ngcgui.tcl powinno z komentarza wydzielić wszystko co pomiędzy parami nawiasów trójkątnych, i wyświetlić w dymku po najechaniu myszką na pole.

A ogólnie fajnie by było, gdyby do NGCGUI dopisać możliwość wpisywania rozszerzonego opisu pola, wyskakującego w dymku po najechaniu na opis pola w jego dotychczasowej postaci. Lepiej to widać na zrzucie z oknem programu do zapisywania ekranu w formacie .ogg:

Do zaimplementowania np tak:
Kod: Zaznacz cały
#<sr_materialu> = #1 (=0 Średnica materiału <<Tutaj należy wpisać średnicę surowego wałka, włożonego w uchwyt. Wypełnienie tego pola powoduje automatyczne przetoczenie do średnicy podanej jako początkowa, na długości podanej jako końcowa w osi Z, lub do długości gotowego detalu, podawanej opcjonalnie w następnym polu formularza>>)