Co racja to racja - poprawione w oryginalnym poście.tuxcnc pisze: Tak przy okazji, to bardziej elegancko jest postawić warunkiczyli nie znaleziono łańcucha iKod: Zaznacz cały
if {[string first "<> " $::ngc($hdl,arg,comment,$num02)] == -1}
czyli łańcuch znaleziono.Kod: Zaznacz cały
if {[string first "<> " $::ngc($hdl,arg,comment,$num02)] != -1}
.
Znaleziono 6 wyników
- 11 gru 2012, 08:10
- Forum: LinuxCNC (dawniej EMC2)
- Temat: LinuxCNC - tokarka
- Odpowiedzi: 253
- Odsłony: 36442
- 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):
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
- 15 mar 2012, 11:58
- Forum: LinuxCNC (dawniej EMC2)
- Temat: LinuxCNC - tokarka
- Odpowiedzi: 253
- Odsłony: 36442
w pliku glcanon.py w okolicy linii 643 mamy ifa:MlKl pisze:I znowu pokazałeś że można, ale już nie - jak...
Kod: Zaznacz cały
if view != x and g.max_extents[x] > g.min_extents[x]:
więc początkowy czyli linia 648:
Kod: Zaznacz cały
f = fmt % ((g.min_extents[x] - offset[x]) * dimscale)
Kod: Zaznacz cały
f = fmt % ((g.min_extents[x] - offset[x]) * dimscale * 2)
Kod: Zaznacz cały
f = fmt % ((g.max_extents[x] - offset[x]) * dimscale)
Kod: Zaznacz cały
f = fmt % ((g.max_extents[x] - offset[x]) * dimscale * 2)
Kod: Zaznacz cały
f = fmt % ((g.max_extensts[x] - g.min_extents[x]) * dimscale)

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?
- 09 lut 2012, 09:16
- Forum: LinuxCNC (dawniej EMC2)
- Temat: LinuxCNC - tokarka
- Odpowiedzi: 253
- Odsłony: 36442
Straśnie dużo pisaniaMlKl pisze: ok linii 1235 linijkę
zamieniamy na:Kod: Zaznacz cały
self.hershey.plot_string("Z", -2.5)
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)

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)

- 06 lut 2012, 19:55
- Forum: LinuxCNC (dawniej EMC2)
- Temat: LinuxCNC - tokarka
- Odpowiedzi: 253
- Odsłony: 36442
Dobry wieczór 
Robimy dowolnym edytorem w katalogu domowym plik .axisrc
- dokładnie tak ma się nazywać - czyli "kropka axisrc"
i w nim piszemy np.:
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:
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:
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:
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
Wiecej grzechów nie pamiętam, ide usypiac Małą

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

Wiecej grzechów nie pamiętam, ide usypiac Małą

- 30 sty 2012, 08:57
- Forum: LinuxCNC (dawniej EMC2)
- Temat: LinuxCNC - tokarka
- Odpowiedzi: 253
- Odsłony: 36442
[ciach plik]MlKl pisze:No i jak zwykle - pokazałeś, że coś się da zrobić, ale już "jak" nie raczyłeś![]()
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

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?

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?

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ć.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.
W naszym przypadku na CNC się pracuje podobnie (tylko wygodniej

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

Ach i znowu jakże kategoryczne stwierdzenietuxcnc 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.

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ć

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ł.
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ń.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.
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.

Aaaa, w przedszkolu to też chyba dawno nie byłeś

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
