LinuxCNC bez menadżera okien.
-
- Lider FORUM (min. 2000)
- Posty w temacie: 19
- Posty: 3705
- Rejestracja: 15 sie 2010, 13:44
- Lokalizacja: Błonie
- Kontakt:
Obecnie największym problemem dla początkujących jest sama instalacja Linuxa, i konfiguracja maszyny. Jeżeli zrobi się to, co zaplanował tuxcnc, nie ma znaczenia wiedza - klient stawia pierwszy z brzegu komputer, wkłada w gniazdo USB pendrive i odpala maszynę. System sie ładuje do RAM-u, i wstaje z odpalonym LinuxCNC. Jak na pendrive będą wstępnie ustawione pliki konfiguracyjne, to konfiguracja ograniczy się do ustawienia w pliku pola pracy i skali dla osi. Bardziej zaawansowani mogą jeszcze powalczyć z jitterem.
Ogólnie to jeszcze system po odpaleniu powinien włączać dopiero resztę - zasilanie na płytę główną i sterowniki, oraz na falownik wrzeciona i pompkę chłodziwa. I wyłączać to wszystko przy zamknięciu programu.
Wtedy włączenie komputera równa się włączeniu całej maszyny, wyłączenie go - wyłączeniu całości.
Ogólnie to jeszcze system po odpaleniu powinien włączać dopiero resztę - zasilanie na płytę główną i sterowniki, oraz na falownik wrzeciona i pompkę chłodziwa. I wyłączać to wszystko przy zamknięciu programu.
Wtedy włączenie komputera równa się włączeniu całej maszyny, wyłączenie go - wyłączeniu całości.
Tagi:
-
Autor tematu - Lider FORUM (min. 2000)
- Posty w temacie: 11
- Posty: 9326
- Rejestracja: 26 lut 2011, 23:24
- Lokalizacja: mazowieckie
Nie mam dzisiaj nastroju do pracy, ale trochę sprawy się posunęły naprzód.
Ten {XID} to oczywiście identyfikator okna, pomyślałem że jakby go gdzieś zapisać, to można by go użyć później.
No i w sumie bingo.
Tak więc mamy w pliku ini :
Tak więc utworzenie okna o tytule "edytor" skutkuje jednorazowym uruchomieniem pliku /root/linuxcnc/configs/frezarka-sim/.dump.xid z argumentem będącym wartością zmiennej {XID}.
Plik oczywiście musi być wykonywalny, a zawiera :
Wartość zmiennej {XID} mamy już w pliku /root/linuxcnc/configs/frezarka-sim/.axis.xid, a w karcie otwarty pusty edytor.
Teraz kolej na plik /root/linuxcnc/configs/frezarka-sim/.edytor, też oczywiście wykonywalny :
Ten plik jest wykonywany po każdym kliknięciu w menu Plik->Edytuj a argumentem oczywiście jest nazwa pliku do edycji, podawana przez LinuxCNC.
Program sobie czyta identyfikator okna z pliku .axis.xid i w odpowiedniej karcie mamy już możliwość edycji programu.
Uprzedzając pytania, ja nie lubię zmiennych środowiska, zawsze są z nimi problemy, wolę sobie pamiętać w pliku.
Teraz o problemach.
W karcie, znając identyfikator okna, można sobie pewnie i sto mc czy mcedit otworzyć, kolejny przysłania poprzedni i tyle.
Natomiast zamykając dowolny z nich wykrzaczamy okno.
Zostaje pusta karta i niczego już w nią załadować nie da rady.
Jeden mc czy mcedit to megabajt pamięci, system powinien znieść i sto takich procesów, ale formalnie to mi się nie podoba.
Próbowałem ubić starsze procesy zostawiając ostatni, ale efekt ten sam - pusta karta.
Ja już wczoraj dłubałem w źródłach mc i nie ma problemu tak go zaczarować, żeby klawisz F10, przycisk F10 i "Zakończ" w menu nie zamykały mc.
Ale teraz to by trzeba mieć niezamykalny mc i dwa mcedit, bo jeden musi się zamykać, ten wywoływany z mc przez F4, a drugi musi być niezamykalny, ten samotny w oknie "edytor".
Też mi się to zasadniczo nie podoba, ale jest do zrobienia.
Jakieś lepsze pomysły ?
.
Ten {XID} to oczywiście identyfikator okna, pomyślałem że jakby go gdzieś zapisać, to można by go użyć później.
No i w sumie bingo.
Tak więc mamy w pliku ini :
Kod: Zaznacz cały
[DISPLAY]
DISPLAY = axis
EDITOR = /root/linuxcnc/configs/frezarka-sim/.edytor
EMBED_TAB_NAME = mc
EMBED_TAB_COMMAND = xterm -into {XID} -geometry 108x28 -e mc
EMBED_TAB_NAME = edytor
EMBED_TAB_COMMAND = /root/linuxcnc/configs/frezarka-sim/.dump.xid {XID}
Plik oczywiście musi być wykonywalny, a zawiera :
Kod: Zaznacz cały
#!/bin/bash
echo $1 > .axis.xid
xterm -into "$1" -geometry 108x28 -e mcedit
Teraz kolej na plik /root/linuxcnc/configs/frezarka-sim/.edytor, też oczywiście wykonywalny :
Kod: Zaznacz cały
#!/bin/bash
xterm -into $(cat .axis.xid) -geometry 108x28 -e mcedit "$1"
Program sobie czyta identyfikator okna z pliku .axis.xid i w odpowiedniej karcie mamy już możliwość edycji programu.
Uprzedzając pytania, ja nie lubię zmiennych środowiska, zawsze są z nimi problemy, wolę sobie pamiętać w pliku.
Teraz o problemach.
W karcie, znając identyfikator okna, można sobie pewnie i sto mc czy mcedit otworzyć, kolejny przysłania poprzedni i tyle.
Natomiast zamykając dowolny z nich wykrzaczamy okno.
Zostaje pusta karta i niczego już w nią załadować nie da rady.
Jeden mc czy mcedit to megabajt pamięci, system powinien znieść i sto takich procesów, ale formalnie to mi się nie podoba.
Próbowałem ubić starsze procesy zostawiając ostatni, ale efekt ten sam - pusta karta.
Ja już wczoraj dłubałem w źródłach mc i nie ma problemu tak go zaczarować, żeby klawisz F10, przycisk F10 i "Zakończ" w menu nie zamykały mc.
Ale teraz to by trzeba mieć niezamykalny mc i dwa mcedit, bo jeden musi się zamykać, ten wywoływany z mc przez F4, a drugi musi być niezamykalny, ten samotny w oknie "edytor".
Też mi się to zasadniczo nie podoba, ale jest do zrobienia.
Jakieś lepsze pomysły ?
.
-
- Lider FORUM (min. 2000)
- Posty w temacie: 19
- Posty: 3705
- Rejestracja: 15 sie 2010, 13:44
- Lokalizacja: Błonie
- Kontakt:
gedit krzyczy, jak inna aplikacja wyedytuje otwarty przez niego plik, i pyta, czy przeładować. mcedit niestety tak sprytny nie jest. Nie sprawdzałem, czy jest jakaś opcja przeładowania otwartego pliku, bo ostatnio wczytany w LinuxCNC zawsze jest w auto.ngc i daje się go przy starcie załadować w okienko Axis, ale wczytanie kolejnego, czyli nadpisanie przez LinuxCNC pliku auto.ngc nie powoduje żadnej reakcji mcedit.
Kod: Zaznacz cały
EMBED_TAB_NAME = mc
EMBED_TAB_COMMAND = xterm -into {XID} -geometry 151x53 -e mc -b
EMBED_TAB_NAME = AutoNGC
EMBED_TAB_COMMAND = xterm -into {XID} -geometry 151x53 -e mcedit -b auto.ngc
-
Autor tematu - Lider FORUM (min. 2000)
- Posty w temacie: 11
- Posty: 9326
- Rejestracja: 26 lut 2011, 23:24
- Lokalizacja: mazowieckie
No nie ...MlKl pisze:Kod: Zaznacz cały
EMBED_TAB_NAME = AutoNGC EMBED_TAB_COMMAND = xterm -into {XID} -geometry 151x53 -e mcedit -b auto.ngc
Ja to uważam, że takich plików jak auto.ngc to się nie powinno edytować nigdy i pod żadnym pozorem.
To jest po prostu zły nawyk i kiedyś się to zemści.
Jak plik auto.ngc jest wart edycji, to trzeba go zapamiętać pod inną nazwą.
Po to właśnie wykombinowałem mc w karcie Axisa, żeby wszelkie operacje na plikach wykonywać szybko.
<F5> lub <F6>, nowa nazwa, enter i po problemie.
Ale ostatnio to nawet F5 nie używam, tylko w linii poleceń cp albo mv i <alt>+<enter> <alt>+<enter> <backspace> ~~ <enter> .
.
-
Autor tematu - Lider FORUM (min. 2000)
- Posty w temacie: 11
- Posty: 9326
- Rejestracja: 26 lut 2011, 23:24
- Lokalizacja: mazowieckie
mcedit to jest link do mc .
Tak więc zamykając mcedit faktycznie zamykasz mc .
Cały problem się sprowadza do tego, że np. gedit wywołany ponownie otworzy nową kartę a nie nowe okno, ale jego z kolei nie da się osadzić w karcie Axis.
Natomiast mcedit da się osadzić, ale za każdym razem utworzy się nowy proces.
Jak już miał bym dużo dłubać w kodzie, to bym wolał osadzalnego gedita zmajstrować.
Zresztą może poszukam autorów i zapytam ...
.
Tak więc zamykając mcedit faktycznie zamykasz mc .
Cały problem się sprowadza do tego, że np. gedit wywołany ponownie otworzy nową kartę a nie nowe okno, ale jego z kolei nie da się osadzić w karcie Axis.
Natomiast mcedit da się osadzić, ale za każdym razem utworzy się nowy proces.
Jak już miał bym dużo dłubać w kodzie, to bym wolał osadzalnego gedita zmajstrować.
Zresztą może poszukam autorów i zapytam ...
.
-
- Lider FORUM (min. 2000)
- Posty w temacie: 19
- Posty: 3705
- Rejestracja: 15 sie 2010, 13:44
- Lokalizacja: Błonie
- Kontakt:
Tak się zastanawiam - jak mamy już MC w zakładce, to czy nie da się zasymulować mu (tej konkretnej instancji) polecenia typu przejdź do pliku xxx.ngc >F4 jakby zostało wpisane z klawiatury. To by musiała być cała sekwencja - trzeba aktywować zakładkę, ustawic na niej fokus, ścieżka do pliku musiała by być pełna, żeby nie miało znaczenia, co jest w otwartych panelach w momencie wydawania polecenia.
-
- Lider FORUM (min. 2000)
- Posty w temacie: 15
- Posty: 16281
- Rejestracja: 18 wrz 2010, 06:17
- Lokalizacja: Kozienice
- Kontakt:
Po dwóch dniach używania mc w zakladkach pare wniosków mam. Po pierwsze i najważniejsze to powtórzę - ładowanie pliku .ngc po enterze czy kliknięciu. Podobno nie łatwe ale do zrobienia
Po drugie umiejscowienie zakładki mc na początku listy obok DRO albo nawet zamiast. Z edycją pliku to raczej nie widzę problemu. Na maszynie edytowanie więcej niż jednego pliku na raz, mało przydatne. No i na koniec - zaczyna być potrzebne rozszerzenie listy zakładek, chociaż na dwa wiersze na razie 

Na zrucie ekran panoramiczny to niby miejsca jeszcze jest ale na maszynowych to już spieniające przewijanie.



Na zrucie ekran panoramiczny to niby miejsca jeszcze jest ale na maszynowych to już spieniające przewijanie.
-
- Specjalista poziom 1 (min. 100)
- Posty w temacie: 8
- Posty: 160
- Rejestracja: 12 kwie 2008, 07:53
- Lokalizacja: Kozienice
- Kontakt:
Nie wiem czy Wam potrzebne - ale ja dziś dostałem polecenie służbowe i zrobiłem takie coś:
W mc wchodzimy do Command->Zmodyfikuj plik rozszerzen i dodajemy:
Te spacje przed 'Open' to musi być jeden znak - TAB czyli char(9) - inaczej nie zadziała.
To spowoduje, że kliknięcie albo Enter na pliku .ngc załaduje dany plik do Axisa.
Potem edytujemy /usr/bin/axis, funkcję open_file_name(f)
i na koncu (linia 1918 u mnie) dodajemy linijkę:
Efekt jest taki, że po załadowaniu pliku zakładka zmieni się z mc na Preview 
Jeszcze tylko muszę zobaczyć jak wywalić DRO i wstawić tam mc na stałe, potem edycja fontów w xtermie i ustawien mc (domyślnie jeden panel z plikami a w drugim 'quick view' albo coś w podobie) i będzie pięknie
W mc wchodzimy do Command->Zmodyfikuj plik rozszerzen i dodajemy:
Kod: Zaznacz cały
shell/.ngc
Open=(axis-remote %f)
To spowoduje, że kliknięcie albo Enter na pliku .ngc załaduje dany plik do Axisa.
Potem edytujemy /usr/bin/axis, funkcję open_file_name(f)
i na koncu (linia 1918 u mnie) dodajemy linijkę:
Kod: Zaznacz cały
root_window.tk.eval(pane_top + ".right raise preview")

Jeszcze tylko muszę zobaczyć jak wywalić DRO i wstawić tam mc na stałe, potem edycja fontów w xtermie i ustawien mc (domyślnie jeden panel z plikami a w drugim 'quick view' albo coś w podobie) i będzie pięknie
