Instalacja wersji rozwojowej LinuxCNC z NGCGUI

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

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

Instalacja wersji rozwojowej LinuxCNC z NGCGUI

#1

Post napisał: MlKl » 22 sty 2012, 03:56

O instalacji programu LinuxCNC w wersji stabilnej z obrazu płyty .iso LIVE już pisałem, pisałem też o podstawach używania go i pisania procedur w G-code. Zespół piszący program LinuxCNC nie zasypia gruszek w popiele, i oprócz stabilnej wersji 2.5 mamy wersję rozwojową 2.6, na razie jeszcze dość chwiejną.

Dlaczego warto się zainteresować którąś z nowszych wersji? Główną przyczyną jest rozszerzenie NGCGUI, czyli aplikacja pozwalająca zaprogramować ciąg kolejnych operacji, przy użyciu gotowych procedur, wszystko w trybie graficznym, ale bez konieczności poznawania jakiegoś osobnego języka programowania - wszystko dzieje się w pomysłowo sformatowanym G-code i równie sprytnie wykorzystywanych komentarzach.

Obrazek

Tak to wygląda po zainstalowaniu. Niemal tak samo, jak w wersji 2.4, wzrosła tylko ilość zakładek nad okienkiem z wizualizacją. Kliknijmy którąś:

Obrazek




Ale zacznijmy od początku:

Najprościej zainstalujemy NGCGUI wraz z wersją 2.5. Wystarczy wstawić w sources źródła do wersji 2.5 i zainstalować ją przez apta.

w /etc/apt/sources.list zamienić:

Kod: Zaznacz cały

deb http://www.linuxcnc.org/emc2 lucid base emc2.4
deb-src http://www.linuxcnc.org/emc2 lucid base emc2.4
na

Kod: Zaznacz cały

deb http://buildbot.linuxcnc.org/ lucid v2.5_branch-rt
deb-src http://buildbot.linuxcnc.org/ lucid v2.5_branch-rt

potem w konsoli:

sudo apt-get update
sudo apt-get upgrade




Żeby zainstalować najnowszą wersję rozwojową 2.6 trzeba doinstalować gita i parę pakietów, wymaganych do kompilacji LinuxCNC. Wchodzimy w terminal i wklejamy, czy wklepujemy następujące polecenie:

Kod: Zaznacz cały

sudo apt-get install --no-install-recommends python-gtkglext1 build-essential devscripts debhelper libpth-dev tcl8.5-dev tk8.5-dev bwidget libxaw7-dev libreadline5-dev python-dev libglu1-mesa-dev libxinerama-dev autoconf python-tk libglib2.0-dev libxft-dev gettext libgtk2.0-dev python-imaging-tk libgnomeprintui2.2-dev libboost-python-dev libtk-img git-core gitk git-gui git-doc git-arch git-cvs git-svn git-email git-daemon-run gitweb libboost1.40-doc libboost-date-time1.40-dev libboost-filesystem1.40-dev   libboost-graph1.40-dev libboost-iostreams1.40-dev libboost-math1.40-dev libboost-program-options1.40-dev libboost-regex1.40-dev libboost-serialization1.40-dev libboost-signals1.40-dev libboost-system1.40-dev libboost-test1.40-dev libboost-thread1.40-dev libboost-wave1.40-dev doxygen docbook-xsl default-jdk fop libtk-img-doc libgle3

Dalej w konsoli wklejamy kolejne polecenie:

Kod: Zaznacz cały

git clone git://git.linuxcnc.org/git/linuxcnc.git linuxcnc
To polecenie kopiuje nam wersję źródłową programu do podkatalogu linuxcnc w naszym katalogu domowym.

Nadal w konsoli przechodzimy do skopiowanego katalogu:

Kod: Zaznacz cały

cd /home/twoja-nazwa-uzytkownika/linuxcnc/src
odpalamy skrypt przygotowujący konfigurację:

Kod: Zaznacz cały

./autogen.sh
i konfigurujemy:

Kod: Zaznacz cały

./configure --enable-run-in-place --enable-simulator
Warunki po ./configure nie są wymagane - pominięcie --enable-run-in-place spowoduje zainstalowanie programu w systemie, a nie w podkatalogu, do którego go skopiowaliśmy (czyli nadpisze oryginalnie zainstalowaną wersję produkcyjną). Pominięcie --enable-simulator instaluje program w wersji pełnej - wymagane jest jądro RT i realna maszyna CNC zapięta na porcie LPT.

Wpisujemy na koniec

Kod: Zaznacz cały

make
I obserwujemy jak nam się kompiluje nasz program.

W nowej wersji podobno --enable-run-in-place już nie jest potrzebne, program samoczynnie kompiluje się do działania w katalogu użytkownika, zaś zainstalowanie go w katalogach systemowych wymaga podania po make kolejnego polecenia make install --prefix /usr

make
sudo make setuid

Before running the software, set the environment:
. (top dir)/scripts/rip-environment


Po zakończeniu kompilacji przechodzimy do podkatalogu scripts i uruchamiamy nasz LinuxCNC w wersji najnowszej.

Kod: Zaznacz cały

cd ..
cd scripts
./linuxcnc
Odpaliło nam okienko wyboru konfiguracji - wybieramy zakładkę ngcgui i plik konfiguracyjny ngcgui-lathe

Obrazek

Otwiera się nam znajome okienko starego EMC2, z tajemniczo brzmiącymi nazwami zakładek nad okienkiem wizualizacji. Id, od, taper-od i własne. Co to oznacza? Każda zakładka wykonuje konkretną operację - id to roztaczanie otworu wewnętrznego, od - toczenie walca od zewnątrz, taper-od to w zasadzie toczenie stożka, ale w tej postaci, jaka jest nadaje się co najwyżej do fazowania - toczy stożek na jeden przebieg. Zakładka własny pozwala skonfigurować ad hoc własny ciąg procedur.

Obrazek

Ten zestaw procedur można w łatwy sposób we własnym zakresie rozbudowywać i zmieniać wedle potrzeby. Dopiszmy własną zakładkę - na początek niech będzie to procedura toczenia półkuli, albo półokrągłego elementu od dowolnej średnicy w dowolnym punkcie osi Z - oczywiście do wsadzenia w NGCGUI. Zapisujemy kod do pliku polkula.ngc, plik wsadzamy do /home/twoja-nazwa-uzytkownika/emc2-dev/nc_files/ngcgui_lib/lathe. W /home/twoja-nazwa-uzytkownika/emc2-dev/configs/sim/ngcgui/ngcgui_lathe.ini dodajemy linijkę:

Kod: Zaznacz cały

NGCGUI_SUBFILE       = polkula.ngc
I restartujemy LinuxCNC

Kod: Zaznacz cały

; Author: Z. Maciej "Miki" Bajkowski

(info: Toczenie półkuli lub zaokrąglenia krawędzi wałka. ) 
o<polkula> sub

#<promien_walca> =     #1 (=30 Promień walca) 
#<promien_na_plasko> =  #2 (=20 Promień części bez zaokrąglenia. 0 - toczymy półkulę) 
#<promien_kulki> =     #3 (=15 Promień zaokrąglenia) 
#<przybranie> =     #4 (=3 Przybranie materiału) 
#<przesuniecie_z> =     #5 (=0 Punkt początku operacji na osi Z) 
 #<Coolant>    =        #6 (=8 8 - Chłodziwo włączone, 9 - wyłączone) 
#<predkosc> = #7 (=400 Prędkość skrawania) 

#<promien> = #<promien_walca> 
; Turn the OD
M3 M#<Coolant> ; spindle cw, coolant on/off

#<walec> = 0
#<promien_walca> = [#<promien_walca>-#<promien_na_plasko>] 
g18 (g7) 
M3 S1000

g0 z[#<przesuniecie_z>+1] x[[#<promien>]+1] 

o100 while [#<walec> lt [#<promien_walca>]] 

#<walec>=[[#<walec>]+[#<przybranie>]] 
x[[#<promien_walca>]-[#<walec>]+[[#<promien_na_plasko>]]] 
z[#<przesuniecie_z>] 

g3 x[[#<promien>]] z-[[#<walec>]-[#<przesuniecie_z>]] r[#<promien_kulki>]  f[#<predkosc>] 

g0
x [[#<promien>]+1] 
z[#<przesuniecie_z>+1] 

o100 endwhile ( koniec toczenia ) 


o<polkula> endsub
Obrazek

Obrazek

Procedura toczenia stożka na wiele przebiegów:

Obrazek

Kod: Zaznacz cały

; Author: Z. Maciej "Miki" Bajkowski

(info: Stożek zewnętrzny od prawej) 
o<stozek> sub
#<MaxRPM>          = #1 (= 3000 Obroty wrzeciona RPM) 
#<SurfaceUnitsMin> = #2 (= 400 skrawanie mm/min) 
#<Przybranie>        = #3 (= 2 Przybranie materiału) 
#<Z-Start>         = #4 (= 0.000 Start na osi Z) 
#<kat>           = #5 (= 10 Kąt stożka) 
#<dlugosc_stozka> =  #6 (=30 Długość stożka) 
#<srednica_walka> = #7 (=30 Średnica początkowa) 
#<Coolant>         = #8 (= 8 Chłodziwo=8, Wyłączone=9) 



#<zebrane_max> = [tan[#<kat>]*[#<dlugosc_stozka>]] 

#<ilosc_przybran> = [[#<zebrane_max>]/[#<przybranie>]] 
#<zejscie_dlugosci> = [[#<dlugosc_stozka>]/[#<ilosc_przybran>]] 
#2 = #<zejscie_dlugosci> 
#1 = 0
s[#<MaxRPM>] 

o100 while [#<ilosc_przybran> gt 0] 
#1=[[#1]+[#<przybranie>]] 
g0 z1

x[[#<srednica_walka>]-[#1]] 

z0

g1 f[#<SurfaceUnitsMin>] z-[#<zejscie_dlugosci>] x[#<srednica_walka>] 

g0 x[[#<srednica_walka>]+1] 

#<ilosc_przybran> = [[#<ilosc_przybran>] - [#<przybranie>]] 
#<zejscie_dlugosci> = [[#<zejscie_dlugosci>]+[#2]] 
o100 endwhile ( koniec toczenia ) 
g0 z1

o<stozek> endsub
Co wynika z powyższych przykładów? NGCGUI jest graficznym interfejsem wyświetlającym formularze tworzone automatycznie ze specyficznie formatowanych komentarzy do zmiennych, automatycznie przypisywanych do naszych deklarowanych zmiennych. Nazwy muszą występować w kolejności narastającej, i muszą być kolejne - Jak zadeklarujemy #1, to następna musi być #2.

Kod: Zaznacz cały

#<nasza_zmienna> = #1 (= 10.000 Opis zmiennej do formularza)
Deklarujemy zmienną #<nasza_zmienna> której NGCGUI przypisze swoją zmienną #4 o wartości domyślnej równej 0 i opisem pola w formularzu "Opis zmiennej do formularza".

Przy wywołaniu tego pliku .ngc (z zakładki, albo przez wybór pliku w procedurze) NGCGUI utworzy formularz, a w nim aktywne pole tekstowe z opisem "Opis zmiennej do formularza" i początkową zawartością 10. Możemy ją w formularzu zmienić - NGCGUI to zapamięta, i po wywołaniu naszej procedury zapamiętaną wartość podstawi pod zmienną #<nasza_zmienna>.

Ok, wiesz już jak tworzyć procedury, ale na tym nie koniec. NGCGUI pozwala utworzyć złożoną z wielu procedur operację, czyli można zaprogramować sobie złożony detal bez tykania w ogóle G-code, przez proste wypełnienie formularza na ekranie.

Załóżmy, że do wykonania jest sworzeń o dwóch średnicach, na jednej z nich zakończony stożkiem, na drugiej półkulą.

Wywołujemy więc zakładkę Walec, wpisujemy parametry do przetoczenia całego materiału na większą średnicę, i klikamy "Utwórz". Pozornie nic się nie zmieniło, ale na dole mamy komunikat "Wprowadż parametry dla cechy 2". Słowem - możemy zaprogramować kolejną operację. Ponieważ potrzebujemy mieć mniejszą średnicę na części materiału, nie zmieniamy głównego pliku procedury. Kasujemy za to zawartość okienka wstęp - tam jest wywoływany plik, ustawiający nam tokarkę - nie musimy go wywoływać za kazdym razem. Ale możemy tam przed kolejną operacją wywołać plik ze specyficznymi ustawieniami. Wpisujemy dane do wytoczenia kolejnego wałka, i znowu klikamy utwórz. Klikamy przycisk Procedura, i wybieramy plik polkula.ngc. Wprowadzamy dane i znowu klikamy utwórz. Znowu przycisk Procedura, wybieramy stozek.ngc, wprowadzamy dane. I tu możemy wybrać również Zakończenie - w moim przypadku to plik end.ngc zawierający jedno polecenie - G28, czyli zjazd do bazy, jako że to ostatnia operacja. Klikamy po raz ostatni utwórz, i Przekaż. Wyświetla nam się cała zaplanowana operacja, możemy ją sobie zapuścić na symulatorze, i jak jest poprawna, wykonać na maszynie.

Niżej procedury do NGCGUI tokarki napisane przez kamara:

Kod: Zaznacz cały

( ------------------------------ ) 
(           C Z O Ł O            ) 
( ------------------------------ ) 
( Kamar                          ) 
( Time-stamp: <05-02-2012 17:31> ) 
( ------------------------------ ) 

(info: Czoło ) 

o<czolo> sub

#<sr_pocz> = #1 (=100 Średnica początkowa) 
#<sr_koncowa> = #2 (=0 Średnica końcowa) 
#<poczatek> = #3 (=0  Początek) 
#<koniec> = #4 (-3 Koniec) 
#<dobieranie> = #5 (2 Dobieranie) 
#<posuw> = #6 (60 Posuw) 


g61
m3 s1
M8

o1 if [#<poczatek> lt #<koniec>] 
(msg, Początek musi być większy niż koniec!) 
m30
o1 endif

g0 z[#<poczatek> + 1] 
g0 x[#<sr_pocz> + 0.5] 
#<akt_pozycja> = #<poczatek> 

o100 while [#<akt_pozycja> gt #<koniec>] 
  #<akt_pozycja> = [#<akt_pozycja> - #<dobieranie>] 
  o102 if [#<akt_pozycja> lt #<koniec>] 
    #<akt_pozycja> = #<koniec> 
  o102 endif

  g0 z#<akt_pozycja> 

  g1 x#<sr_koncowa> f#<posuw> 
  g0 z[#<akt_pozycja> + 0.5] 
  g0 x[#<sr_pocz> + 0.5] 

o100 endwhile

m5
g0 x[#<sr_pocz> + 2] 

o<czolo> endsub

Kod: Zaznacz cały

( ------------------------------ ) 
(          S E G E R           ) 
( ------------------------------ ) 
( Kamar                          ) 
( Time-stamp: <2012-02-05 11:22> ) 
( ------------------------------ ) 

(info: seger ) 

o<seger> sub

#<sr_pocz> = #1 (=40 Średnica początkowa) 
#<sr_koncowa> = #2 (=37 Średnica końcowa) 
#<z_pocz> = #3 (=0 Z początkowe) 
#<noz> = #4 (=2 Szerokość noża) 
#<kanal> = #5 (=2 szerokość kanałku) 
#<posuw> = #6 (=60 Posuw) 
#<woda> = #7 (=1 Woda) 

g61

m3 s1
o1 if [#<woda> eq 1] 
   M8
o1 endif


o100 if [#<sr_pocz> gt #<sr_koncowa>] 

g0 z#<z_pocz> 

x[#<sr_pocz> +1] 
g1 x#<sr_koncowa> f#<posuw> 
g0 x[#<sr_pocz> +1] 
o101 if [#<kanal> gt #<noz>] 
g0 z[#<z_pocz>+[#<kanal>-#<noz>]] 
g1 x#<sr_koncowa> f#<posuw> 
g0 x[#<sr_pocz> +1] 
o101 endif


o100 endif


o200 if [#<sr_pocz> lt #<sr_koncowa>] 
g0 z1
g0 x[#<sr_pocz> -1] 
z#<z_pocz> 
g1 x#<sr_koncowa> f#<posuw> 
g0 x[#<sr_pocz> - 1] 
o102 if [#<kanal> gt #<noz>] 
g0 z[#<z_pocz>+[#<kanal>-#<noz>]] 
g1 x#<sr_koncowa> f#<posuw> 
g0 x[#<sr_pocz> - 1] 
o102 endif
g0 z10

o200 endif

o<seger> endsub

Kod: Zaznacz cały

( ------------------------------ ) 
(          S T O Z E K           ) 
( ------------------------------ ) 
( Kamar                          ) 
( Time-stamp: <2012-02-05 11:22> ) 
( ------------------------------ ) 

(info: Stożek ) 

o<stozek> sub

#<sr_pocz> = #1 (=20 Średnica początkowa) 
#<sr_koncowa> = #2 (=40 Średnica końcowa) 
#<z_pocz> = #3 (=0 Z początkowe) 
#<dl_stozka> = #4 (=20 Długość stożka) 
#<kat> = #5 (=0 Kąt) 
#<dobieranie> = #6 (=2 Dobieranie) 
#<posuw> = #7 (=60 Posuw) 
#<woda> = #8 (=1 Woda) 

g61

m3 s1
o1 if [#<woda> eq 1] 
   M8
o1 endif


o100 if [#<sr_pocz> lt #<sr_koncowa>] 

#<akt_start> = #<sr_koncowa> 
o5 while [#<akt_start> gt #<sr_pocz>] 
  #<akt_start> = [#<akt_start> - #<dobieranie>] 

  o10 if [#<akt_start> lt #<sr_pocz>] 
    #<akt_start> = #<sr_pocz> 
  o10 endif
   
  g0 z#<z_pocz> 
    g0 x[#<akt_start>] 
  g1 x[#<sr_koncowa>] z[#<z_pocz> - [[[#<sr_koncowa> - #<akt_start>] * #<dl_stozka>] / [#<sr_koncowa> - #<sr_pocz>]]] f#<posuw> 
o5 endwhile

o100 endif


o200 if [#<sr_pocz> gt #<sr_koncowa>] 

#<akt_koniec> = #<sr_pocz> 
o205 while [#<akt_koniec> gt #<sr_koncowa>] 
  #<akt_koniec> = [#<akt_koniec> - #<dobieranie>] 

  o210 if [#<akt_koniec> lt #<sr_koncowa>] 
    #<akt_koniec> = #<sr_koncowa> 
  o210 endif
   
    g0 x[#<sr_pocz> + 1] 
    g0 z[#<z_pocz> - [-1 * [[#<sr_koncowa> - #<akt_koniec>] * #<dl_stozka>] / [#<sr_pocz> - #<sr_koncowa>]]] 
    g0 x#<sr_pocz> 
  g1 x[#<akt_koniec>] z[#<z_pocz> - #<dl_stozka>] f#<posuw> 
o205 endwhile

o200 endif

o<stozek> endsub
kamar pisze:Procedurka na kieszeń prostokątną.

Kod: Zaznacz cały

( ------------------------------ ) 
(         KIESZEŃ PROSTOKĄTNA    ) 
( ------------------------------ ) 
( Kamar                          ) 
( Time-stamp: <2012-02-19 14:26> ) 
( ------------------------------ ) 

(info: Frezowanie kieszeni prostokątnej ) 

o<kieszen> sub

#<frez> = #1   (=8 frez) 
#<x_pocz> = #2 (=20 X początkowy) 
#<x_kon> = #3  (=10 X końcowy ) 
#<y_pocz> = #4 (=10 Y początkowy) 
#<y_kon> = #5 (=190  Y końcowy ) 
#<glebokosc> = #6  (=-10 głębokość  ) 
#<glebokosc_poczatkowa> = #7 (=0 głębokość poczatkowa ) 
#<skok> = #8 (=2 skok) 
#<predkosc_bok> = #9 (=60 prędkość bok) 
#<predkosc_dol> = #10 (=40 prędkość dół) 
#<pokrycie> = #11 (=1 zachodzenie w mm ) 

( ------------------------------ ) 
( ------------------------------ ) 

#<przyrost>=[#<frez>-#<pokrycie>] 
#<x_fak>=[#<x_kon>-[#<frez>/2]] 
g17 g21 g61
/g0 x[#<x_pocz>+[#<frez>/2]] y[#<y_pocz>+[#<frez>/2]] 
/g0 z2

m3 s1
m8


#<akt_glebokosc> = #<glebokosc_poczatkowa> ( aktualna glebokosc ) 
#<x_akt>=[#<x_pocz>+[#<frez>/2]] 


o100 while [#<akt_glebokosc> GT #<glebokosc>] 
     #<akt_glebokosc> = [#<akt_glebokosc> - #<skok>] ( ustalenie glebokosci ) 

     ( jezeli nizej limitu to jade max ) 
     o110 if [#<akt_glebokosc> lT #<glebokosc>] 
     	  #<akt_glebokosc> = #<glebokosc> 
     o110 endif

     g0 x#<x_akt> y[#<y_kon>-[#<frez>/2]]	 
     g0 z#<akt_glebokosc> 
     G1 Z#<akt_glebokosc> F#<predkosc_dol> ( dobieranie poczatkowe ) 
     y[#<y_pocz>+[#<frez>/2]] f#<predkosc_bok> 
   
o120 while [#<x_akt> lt  #<x_fak>] 
     #<x_akt>=[#<x_akt>+[#<frez>-#<pokrycie>]] 

     ( jezeli nizej limitu to jade max ) 
     o111 if [#<x_akt> gT #<x_fak>] 
     	 #<x_akt> = #<x_fak> 
     o111 endif

   #<dodaj>=[#<x_akt>+#<przyrost>] 



     x#<x_akt> 
    G1 y[#<y_kon>-[#<frez>/2]] f#<predkosc_bok> 

     o112 if [ #<dodaj> gT #<x_fak>] 
     	#<dodaj> = #<x_fak> 
     o112 endif

     x#<dodaj> 

    
      #<x_akt>=[#<x_akt>+#<przyrost>] 
     y[#<y_pocz>+[#<frez>/2]] f#<predkosc_bok> 
   

o120 endwhile
g0 z10
 #<x_akt>=[#<x_pocz>+[#<frez>/2]] 
g0 x#<x_akt> y[#<y_kon>-[#<frez>/2]] 

		 
o100 endwhile
g0 z10



#<akt_glebokosc> = #<glebokosc_poczatkowa> ( aktualna glebokosc ) 
o130 while [#<akt_glebokosc> GT #<glebokosc>] 
     #<akt_glebokosc> = [#<akt_glebokosc> - #<skok>] ( ustalenie glebokosci ) 

     ( jezeli nizej limitu to jade max ) 
     o131 if [#<akt_glebokosc> lT #<glebokosc>] 
     	  #<akt_glebokosc> = #<glebokosc> 
     o131 endif
g0 z[#<akt_glebokosc> +1] 
     G1 Z#<akt_glebokosc> F#<predkosc_dol> ( dobieranie poczatkowe ) 
  
  g1 y[#<y_pocz>+[#<frez>/2]] 
x[#<x_kon>-[#<frez>/2]] 
y[#<y_kon>-[#<frez>/2]] 
x[#<x_pocz>+[#<frez>/2]] 

o130 endwhile

g0 z10

o<kieszen> endsub
Obrazek

Obrazek
Ostatnio zmieniony 06 gru 2012, 10:28 przez MlKl, łącznie zmieniany 12 razy.



Tagi:

Awatar użytkownika

tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 7
Posty: 7870
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: Instalacja wersji rozwojowej LinuxCNC z NGCGUI

#2

Post napisał: tuxcnc » 22 sty 2012, 16:58

MlKl pisze:pominięcie --enable-run-in-place spowoduje zainstalowanie programu w systemie, a nie w podkatalogu, do którego go skopiowaliśmy (czyli nadpisze oryginalnie zainstalowaną wersję produkcyjną).
Niezupełnie.

Kod: Zaznacz cały

./configure && make
kompiluje program do uruchomienia z bieżącego katalogu, może to błąd w źródle, ale --enable-run-in-place nie miałem potrzeby użyć nigdy.
Natomiast do nadpisania zainstalowanego programu trzeba

Kod: Zaznacz cały

./configure --prefix=/usr && make && make install
Przynajmniej u mnie tak to działa.

.

Awatar użytkownika

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

#3

Post napisał: MlKl » 22 sty 2012, 17:10

Znaczy - po raz kolejny życie się rozjeżdża z instrukcją - wedle instrukcji powinno działać jak opisałem. Fakt - nie próbowałem zainstalować bez konfiguracji z --enable-run-in-place

Awatar użytkownika

tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 7
Posty: 7870
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

#4

Post napisał: tuxcnc » 22 sty 2012, 17:21

A przed chwilą znalazłem, że --enable-run-in-place ma być w ogóle wywalone i pewnie dlatego nie jest już potrzebne w 2.6.

Czyli by wychodziło, że instrukcja do antykwariatu, a robić trzeba tak jak napisałem.

.

Awatar użytkownika

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

#5

Post napisał: MlKl » 22 sty 2012, 17:33

Nie ma potrzeby używania make install - program działa po make.

Awatar użytkownika

tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 7
Posty: 7870
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

#6

Post napisał: tuxcnc » 22 sty 2012, 17:52

MlKl pisze:Nie ma potrzeby używania make install - program działa po make.
Po samym make to działa w tym katalogu, w którym go skompilujesz.
A do instalacji w katalogu /usr to potrzeba --prefix=/usr i z tego co pamiętam make install też.
Sprawdzać teraz nie będę, ale prawie pewny tego jestem.

.

Awatar użytkownika

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

#7

Post napisał: MlKl » 22 sty 2012, 18:23

Dobrze kombinujesz - to po prostu standardowa procedura instalacji kompilowanego programu w Linuxie. W przypadku LinuxCNC make tworzy działające środowisko w katalogu użytkownika. Po make install z opcją --prefix=/usr program się instaluje roboczo w katalogach systemowych.

Jednak do testowania wygodniej zostać w katalogu użytkownika.

Awatar użytkownika

Yogi_
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 2
Posty: 759
Rejestracja: 13 sty 2010, 08:07
Lokalizacja: Braniewo

#8

Post napisał: Yogi_ » 22 sty 2012, 19:38

A jaka jest kolejność czytania katalogów z programami? :???:

[ Dodano: 2012-01-22, 19:39 ]
I do czego odnosi się ikonka po takiej instalacji?
Pozdrawiam
Krzysiek

Awatar użytkownika

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

#9

Post napisał: MlKl » 22 sty 2012, 19:46

Ikonka się odnosi do tego, co było. Możesz sobie dodać nową w menu głównym, prowadzącą do wersji zainstalowanej w podkatalogu. Ja sobie tak zrobiłem - ta żółta mordka w ciemnych okularach na górnej belce systemu na zrzutach właśnie mi wywołuje nową wersję, pingwinek - starą.

Program czyta te katalogi, które mu zapodajesz.

Awatar użytkownika

tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 7
Posty: 7870
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

#10

Post napisał: tuxcnc » 22 sty 2012, 21:16

Yogi_ pisze:A jaka jest kolejność czytania katalogów z programami? :???:

[ Dodano: 2012-01-22, 19:39 ]
I do czego odnosi się ikonka po takiej instalacji?
Kolejność przeszukiwania określa zmienna środowiska PATH.
Ja mam w tej chwili przykładowo

Kod: Zaznacz cały

PATH=/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Jak się przebootuję na inny system, to może być inaczej, ale podobnie.

A "ikonki programów" to tylko obrazki za którymi się chowa odpowiedni wpis w odpowiednim pliku.
W zależności od menadżera okien może być różnie, ale zwykle są to pliki z rozszerzeniem .desktop.
Przykładowo /usr/share/applications/mc.desktop

Kod: Zaznacz cały

[Desktop Entry] 
Name=Midnight Commander
Name[af]=Middernag Kommandeur
Name[eo]=Meznokta komandanto
Name[fa]=&#1601;&#1585;&#1605;&#1575;&#1606;&#8204;&#1583;&#1575;&#1585; &#1606;&#1740;&#1605;&#1607; &#1588;&#1576; 
Name[ko]=&#48120;&#46300;&#45208;&#51079; &#52964;&#47704;&#45908; 
Name[lv]=Pusnakts Komandieris
Name[nso]=Molaedi wa Bosegogare
Name[th]=&#3617;&#3636;&#3604;&#3652;&#3609;&#3607;&#3660;&#3588;&#3629;&#3617;&#3617;&#3634;&#3609;&#3648;&#3604;&#3629;&#3619;&#3660; 
Name[ve]=Muhulwane wa vhukati ha vhusiku
Name[xh]=Umyaleli Waphakathi kobusuku
Name[zu]=Umyaleli waphakathi nobusuku
Comment=File manager
Comment[pl]=Menedżer plików
Exec=mc
Icon=MidnightCommander
Terminal=true
Type=Application
Categories=ConsoleOnly;Utility;FileManager; 
# vi: encoding=utf-8
Tłumaczenie co do czego chyba jest zbędne ?

.

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „LinuxCNC (dawniej EMC2)”