Znaleziono 6 wyników

autor: ArturM
11 gru 2012, 08:10
Forum: LinuxCNC (dawniej EMC2)
Temat: LinuxCNC - tokarka
Odpowiedzi: 253
Odsłony: 36442

tuxcnc pisze: Tak przy okazji, to bardziej elegancko jest postawić warunki

Kod: Zaznacz cały

if {[string first "<> " $::ngc($hdl,arg,comment,$num02)] == -1}
czyli nie znaleziono łańcucha i

Kod: Zaznacz cały

if {[string first "<> " $::ngc($hdl,arg,comment,$num02)] != -1}
czyli łańcuch znaleziono.
.
Co racja to racja - poprawione w oryginalnym poście.
autor: ArturM
06 gru 2012, 09:23
Forum: LinuxCNC (dawniej EMC2)
Temat: LinuxCNC - tokarka
Odpowiedzi: 253
Odsłony: 36442

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):

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
i wstawiamy w to w ifa - czyli zastępujemy tym:

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
} 
A teraz zmiana obowiązkowa - czyli podmiana pola tekstowego na ptaszka:

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]] 
i też dodajemy ifa - ale z generowaniem ptaszka - czyli zamieniamy na cos takiego:

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]] 
} 
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żą :D

EDIT: IFy poprawione wg sugestii tuxcnc
autor: ArturM
15 mar 2012, 11:58
Forum: LinuxCNC (dawniej EMC2)
Temat: LinuxCNC - tokarka
Odpowiedzi: 253
Odsłony: 36442

MlKl pisze:I znowu pokazałeś że można, ale już nie - jak...
w pliku glcanon.py w okolicy linii 643 mamy ifa:

Kod: Zaznacz cały

if view != x and g.max_extents[x] > g.min_extents[x]: 
i tam w tym ifie jest wypisywanie wymiarów - początkowego, końcowego i środkowego.

więc początkowy czyli linia 648:

Kod: Zaznacz cały

f = fmt % ((g.min_extents[x] - offset[x]) * dimscale) 
zamieniamy na:

Kod: Zaznacz cały

f = fmt % ((g.min_extents[x] - offset[x]) * dimscale * 2) 
końcowy (660):

Kod: Zaznacz cały

f = fmt % ((g.max_extents[x] - offset[x]) * dimscale) 
zamieniamy na:

Kod: Zaznacz cały

f = fmt % ((g.max_extents[x] - offset[x]) * dimscale * 2) 
a środkowego, czyli (672):

Kod: Zaznacz cały

f = fmt % ((g.max_extensts[x] - g.min_extents[x]) * dimscale) 
nie ruszamy :D i już.

Oczywiście to powinno być uzależnione od ustawień maszyny - tzn. powinno być sprawdzane w ifie czy maszyna jest tokarką w diameter mode (znaczy że g7 było wydane) i wtedy mnożyć. Ale to trzebaby poszukać jak to sprawdzić. Jest Micges na sali?
autor: ArturM
09 lut 2012, 09:16
Forum: LinuxCNC (dawniej EMC2)
Temat: LinuxCNC - tokarka
Odpowiedzi: 253
Odsłony: 36442

MlKl pisze: ok linii 1235 linijkę

Kod: Zaznacz cały

self.hershey.plot_string("Z", -2.5)
zamieniamy na:

Kod: Zaznacz cały

 glColor3f(*self.colors['axis_x']) 
            self.hershey.plot_string("0", 31.5) 
            self.hershey.plot_string("X", 30.5) 
            self.hershey.plot_string("-", 28.5) 
            self.hershey.plot_string("-", 26.5) 
            self.hershey.plot_string("-", 24.5) 
            self.hershey.plot_string("-", 22.5) 
            self.hershey.plot_string("-", 20.5) 
            self.hershey.plot_string("-", 18.5) 
            self.hershey.plot_string("-", 16.5) 
            self.hershey.plot_string("-", 14.5) 
            self.hershey.plot_string("-", 12.5) 
            self.hershey.plot_string("-", 10.5) 
            self.hershey.plot_string("-", 8.5) 
            self.hershey.plot_string("-", 6.5) 
            self.hershey.plot_string("-", 4.5) 
            self.hershey.plot_string("-", 2.5) 
            self.hershey.plot_string("-", 0.5) 
            self.hershey.plot_string("-", -2.5) 
            self.hershey.plot_string("-", -4.5) 
            self.hershey.plot_string("-", -6.5) 
            self.hershey.plot_string("-", -8.5) 
            self.hershey.plot_string("-", -10.5) 
            self.hershey.plot_string("-", -12.5) 
            self.hershey.plot_string("-", -14.5) 
            glColor3f(*self.colors['axis_z']) 
            self.hershey.plot_string("Z", -2.5)
Straśnie dużo pisania :D
Zamieniłem na:

Kod: Zaznacz cały

            glColor3f(*self.colors['axis_x']) 
            self.hershey.plot_string("0", 31.5) 
            self.hershey.plot_string("X", 30.5) 
            x = 28.5
            while(x > -14.5): 
                self.hershey.plot_string("-", x) 
                x -= 2.5
            glColor3f(*self.colors['axis_z']) 
            self.hershey.plot_string("Z", -2.5) 
- tak będzie łatwiej ustawić odstępy i miejsce ustawienia kresek. :)
autor: ArturM
06 lut 2012, 19:55
Forum: LinuxCNC (dawniej EMC2)
Temat: LinuxCNC - tokarka
Odpowiedzi: 253
Odsłony: 36442

Dobry wieczór :D

Robimy dowolnym edytorem w katalogu domowym plik .axisrc
- dokładnie tak ma się nazywać - czyli "kropka axisrc" :)

i w nim piszemy np.:

Kod: Zaznacz cały

c.state(emc.STATE_ESTOP_RESET) 
c.state(emc.STATE_ON) 

ensure_mode(emc.MODE_MANUAL) 
c.wait_complete() 

c.home(0) 
c.home(1) 
c.home(2) 
I już mamy bazowanie 3 osi przy starcie.

Sam plik .axisrc jest bardzo fajny - można wydac axisowu cała mase poleceń jeszcze przed startem.

My np. wyłączamy bazowanie pod Home - a przypisujemy pod Ctrl-Home
przyczyna ta sama co przy pamiętnych średnicach - żeby wyeliminowac mozliwość błędu - po prostu zbyt często operatorzy przez pomyłkę trącali Home i bazowali maszynę.

A robimy to dodają do .axisrc nastepujące linijki:

Kod: Zaznacz cały

root_window.bind("<Control-Home>", commands.home_axis) 
root_window.unbind("<Home>") 
aaaa, jeszcze jedna fajna rzecz - wiadomo że nie ma czasu na bezsensowne ruchy - więc u nas maszyny mają ustawiony ruch skokowy tylko na 1mm i 0.1mm.
Zwiększanie skoku jest normalnie pod 'i'. A zmniejszanie sobie dodajemy pod 'u' za pomocą linijki:

Kod: Zaznacz cały

root_window.bind("u", lambda event: jogspeed_incremental(-1)) 
Przy takim ustawieniu to bez patrzenia na ekran mogę ustawić skok na 0.1m dwa razy wciskając 'u' albo na 1mm dwa razy wciskając 'i' - niezależnie od tego co było usstawione wcześniej na maszynie.
No i tak się można bawić do upadłego :)


Aaaa2, z tym się wiąże jeszcze jeden sekret:
w pliku 'axis' podmieniamy funkcję activate_axis_or_set_feedrate(n):

na coś takiego:

Kod: Zaznacz cały

def activate_axis_or_set_feedrate(n): 
    if n < 4: 
        set_feedrate(2*n) 
    else: 
        set_feedrate(10*n) 
i wtedy mamy tak, że pod klawiszami 1,2,3,4,5... mamy prędkości 2%, 4%, 6%, 40%, 50%
a nie 10%, 20%, 30%, 40%, 50%.

Powód prosty - z prędkości 10-40% i tak nigdy nie korzystamy - a prędkości rzędu 2%, 4%, 6% doskonale sie nadają do frezowania 'z łapy' - np. żeby zebrać jakiś naddatek który pozostał po wycięciu sztuki, jakiś ząbek, albo poprawic jakis kształt zupełnie 'niematematyczny' - wtey wciskam se 1 czy 2 i mozna strząłkami jechac frezem jak Porszakiem w jakiejś grze :D

Wiecej grzechów nie pamiętam, ide usypiac Małą :D
autor: ArturM
30 sty 2012, 08:57
Forum: LinuxCNC (dawniej EMC2)
Temat: LinuxCNC - tokarka
Odpowiedzi: 253
Odsłony: 36442

MlKl pisze:No i jak zwykle - pokazałeś, że coś się da zrobić, ale już "jak" nie raczyłeś :)
[ciach plik]

U nas podobnie - tylko zamiast średnicy mamy X, a promień wywalam - czyli jakoś tak:

Kod: Zaznacz cały

            if self.is_lathe(): 
                posstrs[0] = format % ("X", positions[0]) 
                posstrs.insert(1, "") 
                droposstrs[0] = droformat % ("R", positions[0], "R", axisdtg[0]) 
                droposstrs.insert(1, diaformat % ("X", positions[0]*2.0)) 

            if self.get_show_machine_speed(): 
                spd = self.to_internal_linear_unit(s.current_vel) 
                if self.get_show_metric(): 
                    spd = spd * 25.4 * 60
                else: 
                    spd = spd * 60
                posstrs.append(format % ("Posuw", spd)) 


[ Dodano: 2012-01-30, 10:57 ]
Ja przepraszam że tak raz za razem - ale dwie różne sprawy i nie chciałem postów mieszać.

Jejej jacy stanowczy jesteśmy :D
Ja tam się oczywiście nie znam i nie bardzo mam czas śledzić popisy elokwencji, ale kolega mimo niewątpliwej wiedzy to taki bardziej odklejony chyba jest, nie? :mrgreen:
Kiedyś ktoś mądry powiedział, że "największy problem tego świata polega na tym, że głupi są pewni siebie a mądrzy pełni wątpliwości." - więc może lepiej być mniej stanowczym w sądach? :D
tuxcnc pisze: Na CNC pracuje się zupełnie inaczej niż na manualu.
Doświadczenie zdobyte przy kręceniu korbami niekoniecznie się przydaje przed klawiaturą.
Braku podstawowej wiedzy z zakresu informatyki nie nadrobisz umiejętnością toczenia stożków na liniale, albo przesuniętym koniku.
No właśnie problem polega na tym, żeby ktoś kto całe życie kęcił korbami, ma pewne nawyki i do tego obawia się komputera mógł podejść do tej 'tejemniczej bestii CNC' i po kilku godzinach normalnie pracować.
W naszym przypadku na CNC się pracuje podobnie (tylko wygodniej :D) jak na manualu.
Nie ma tajemniczej komórki z naukowcami w białych kitlach, nikt nie siedzi 8 godzin i nie robi na gotowo wielkiego programu do obrabiarki który potem się puszcza tysiące razy na maszynie. Podchodzi 'pan Mietek', zamiast korbami kręcić se wciska przyciski, zeruje, klepie parę cyferek i już. Normalnie komputeryzacja odarta z całego sacrum :P
tuxcnc pisze: Używałem tego w czasach gdy maszynę miałem sterowaną z dosowego TurboCNC, bo ze starym Ubuntu EMC2 nie mogłem dojść ładu.
Właściwie to dopiero 10.04 nadaje się do normalnej pracy.
Ach i znowu jakże kategoryczne stwierdzenie :D
Też używaliśmy TurboCNC (i mieliśmy kod źródłowy kupiony i swoje z gruntu błędne bezeceństwa se usiłowaliśmy dodawać :D)
No ale LinuxCNC uzywamy od 8.04 - 8.04 był przed 10.04 i ja nie wiem czy się do 'normalnej pracy' nadawał. Do zarabiania na życie toczeniem i frezowaniem się w każdym razie nadawał.
tuxcnc pisze: Operator dowolnej obrabiarki musi umieć czytać rysunek techniczny.
Daje mu się kawałek papieru i on ma się domyślić co na nim jest narysowane.
Jak nie umie, to niech idzie ulice zamiatać.
[ciach]
Co to za "doświadczony tokarz", który jak dostanie promienie zamiast średnic to się zesra ?
Tokarzowi powinno być wszystko jedno, bo dzielić i mnożyć przez dwa to chyba w przedszkolu teraz uczą.
A jak ma z tym problem to niech je więcej ryb i pije mniej wódki.
Ach jej. Znowu mamy idealny świat w którym każdy jest kompetentny do bólu, nikt nie ma kataru, problemów w domu, nikt nie jest nawet odrobinę rozkojarzony, nikt nie ma 20 letnich przyzwyczajeń.
No dobrze.
Ale użyłeś słowa 'domyślić' - czyli pracownik ma pracować w oparciu o informację niezupełną. No i powiedzmy robisz wał do czegośtam - materiał drogi jak cholera, wał potrzebny zleceniodawcy na dziś jak dwie cholery, a kasy masz za to ugadane jak 3 cholery. Zrobione już 12 operacji, zostało 2 operacje.
Dajesz taki wał pracownikowi, cośtam mażesz na kartce 'żeby się domyślił' i zostawiasz go z wałem? Czy może jednak lepiej żeby się 'nie domyślał' i żeby miał tak podane wymiary jak 'zawsze'? Ja wiem, że jeżeli pracownik popełni błąd (bo np. dziś go boli głowa, albo się zakochał albo cośtam - sam pisałeś że ludzie to nie serwomotory) to Ty go wyślesz żeby zamiatał ulice. Ale chyba długo będzie musiał zamiatać żeby Ci się wróciło za materiał, niewykonane zlecenie i np. popsute stosunki ze zleceniodawcą.
A wystarczyło tylko w jednym pliku osie przenazwać, a pracownikowi dać wymiary normalnie - ze średnicami. :mrgreen:

Aaaa, w przedszkolu to też chyba dawno nie byłeś :D - zobacz czego teraz uczą w pierwszej i drugiej klasie z matematyki. Ja tam kategoryczny w osądach nie jestem - ale nie wydaje mi się, żeby moja córa w przedszkolu dzielenie miała ;D

A już tak zupełnym 'bajdełejem' to nikt nie jest idealny - może i my 'niezgodnie ze sztuką' używamy ustawień tokarki, ale są też tacy co 'od kilku lat' pracują na Linuksie tylko z konta roota - a to jest dopiero pogwałcenie wszystkich zasad moralności :P

Wróć do „LinuxCNC - tokarka”