LinuxCNC bez menadżera okien.

Dyskusje dotyczące działania obsługi programu LinuxCNC
Awatar użytkownika

MlKl
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 19
Posty: 3705
Rejestracja: 15 sie 2010, 13:44
Lokalizacja: Błonie
Kontakt:

#31

Post napisał: MlKl » 02 sty 2013, 11:55

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.



Tagi:

Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 11
Posty: 9326
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

#32

Post napisał: tuxcnc » 02 sty 2013, 20:14

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 :

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

Kod: Zaznacz cały

#!/bin/bash
echo $1 > .axis.xid
xterm -into "$1" -geometry 108x28 -e mcedit 
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 :

Kod: Zaznacz cały

#!/bin/bash
xterm -into $(cat .axis.xid) -geometry 108x28 -e mcedit "$1"
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 ?

.

Awatar użytkownika

MlKl
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 19
Posty: 3705
Rejestracja: 15 sie 2010, 13:44
Lokalizacja: Błonie
Kontakt:

#33

Post napisał: MlKl » 02 sty 2013, 20:26

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

Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 11
Posty: 9326
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

#34

Post napisał: tuxcnc » 02 sty 2013, 20:51

MlKl pisze:

Kod: Zaznacz cały

EMBED_TAB_NAME = AutoNGC
EMBED_TAB_COMMAND = xterm -into {XID} -geometry 151x53 -e mcedit -b auto.ngc
No nie ...
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> .

.

Awatar użytkownika

MlKl
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 19
Posty: 3705
Rejestracja: 15 sie 2010, 13:44
Lokalizacja: Błonie
Kontakt:

#35

Post napisał: MlKl » 02 sty 2013, 21:27

Jeżeli otwarcie konkretnego pliku w mcedit jest możliwe w zakładce NGCGUI, to należy napisac skrypt, który będzie ją tworzył dynamicznie, jak te, tworzone poprzez przycisk "Nowy" i zakładka powinna się sama zamykać/likwidować po użyciu F10.

F10 trzeba zablokować tylko w MC, w mcedit nie

Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 11
Posty: 9326
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

#36

Post napisał: tuxcnc » 03 sty 2013, 17:29

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

.

Awatar użytkownika

MlKl
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 19
Posty: 3705
Rejestracja: 15 sie 2010, 13:44
Lokalizacja: Błonie
Kontakt:

#37

Post napisał: MlKl » 03 sty 2013, 20:55

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.


kamar
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 15
Posty: 16281
Rejestracja: 18 wrz 2010, 06:17
Lokalizacja: Kozienice
Kontakt:

#38

Post napisał: kamar » 04 sty 2013, 07:08

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

Obrazek

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

Awatar użytkownika

ArturM
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 8
Posty: 160
Rejestracja: 12 kwie 2008, 07:53
Lokalizacja: Kozienice
Kontakt:

#39

Post napisał: ArturM » 04 sty 2013, 08:47

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:

Kod: Zaznacz cały

shell/.ngc
	Open=(axis-remote %f) 
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ę:

Kod: Zaznacz cały

root_window.tk.eval(pane_top + ".right raise preview") 
Efekt jest taki, że po załadowaniu pliku zakładka zmieni się z mc na Preview :D

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


kamar
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 15
Posty: 16281
Rejestracja: 18 wrz 2010, 06:17
Lokalizacja: Kozienice
Kontakt:

#40

Post napisał: kamar » 04 sty 2013, 08:55

Programisty cholera :) Godzina roboty a dwa dni gadania jakie to trudne :)
Ale " pomógł " nie wcisnę. :)
Poproszę jeszcze ładowanie mc z automatu z podglądem wybranego pliku po prawej stronie. Kopiowanie mniej przydatne a jak co to sie przełączy.

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „LinuxCNC (dawniej EMC2)”