Ворон226/Подготовка системы к созданию своей панели управления

Материал из cnc-club
Версия от 13:20, 14 мая 2014; Nick (обсуждение | вклад) (Новая страница: «== Установка LinuxCNC. == Для начала нужно: Сначала удалить "дистрибутивную" версию linuxcnc или emc2 …»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

Установка LinuxCNC.

Для начала нужно: Сначала удалить "дистрибутивную" версию linuxcnc или emc2 (зависит от того, что прописано в системе)

sudo dpkg -r `dpkg -l | grep 'ii  linuxcnc' | awk '{print $2}'`

или

sudo dpkg -r `dpkg -l | grep 'ii  emc2' | awk '{print $2}'`

Потом открываем текстовым редактором файл /etc/apt/sources.list

sudo gedit /etc/apt/sources.list

находим в нём строчки типа

deb http://linuxcnc.org lucid base linuxcnc2.5
deb-src http://linuxcnc.org lucid base linuxcnc2.5

или

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

и заменяем их (или закомментируем) на

deb     http://buildbot.linuxcnc.org/ lucid master-rt
deb-src http://buildbot.linuxcnc.org/ lucid master-rt

(вот тут есть полный список вариантов http://buildbot.linuxcnc.org/ )

теперь ставим свежайшую версию с github

sudo apt-get update
sudo apt-get install linuxcnc linuxcnc-dev linuxcnc-doc-en

Теперь linuxcnc сможет даже автоматически обновляться.

Альтернативный вариант: Установка EMC2 или LinuxCNC из исходников.

1. Установка дополнительных пакетов.

Выполняем в терминале или консоли:

sudo apt-get build-dep emc2
sudo apt-get install build-essential autoconf

2. Устанавливаем версию LinuxCNC из исходников,

Архивы нужно качать здесь - http://buildbot.linuxcnc.org/dists/lucid/v2.5_branch-rt/source/ или http://buildbot.linuxcnc.org/dists/lucid/master-rt/source/

(одно из многих преимуществ установки из исходников - это возможность ставить самую свежую сборку или сборку с какими то особыми изменениями. Разработка и усовершенствование EMC2 идет денно и нощно. вот здесь, например, - http://git.mah.priv.at/gitweb?p=emc2-dev.git;a=summary - можно читать внесенные изменения и быть так сказать на передовой разработки)

По ссылке выбираем версию и скачиваем менеджером архивов. Распаковываем в новую папку. Например, linuxcnc-dev.

3. Проверка наличия всех необходимых пакетов.

Входим в папку linuxcnc-dev:

cd linuxcnc-dev

Проверяем наличие всех необходимых пакетов:

cd debian
./configure -a (для установки симулятора ./configure sim)
cd ..
dpkg-checkbuilddeps

Будет показан список отсутствующих пакетов. Нужно скопировать этот список в команду вида:

sudo apt-get install "список пакетов, через пробел"

Копировать не напрямую, там некоторые пакеты даются на выбор - из них один оставить, другой удалить.

Получил список неустановленных компонентов -

texlive-lang-german 
texlive-lang-spanish 
texlive-lang-polish 
libreadline-dev 
asciidoc (>= 8.5) 
source-highlight dblatex (>= 0.2.12) 
libboost-python-dev 
texlive-lang-cyrillic

Жирным шрифтом выделил ненужные (зачем нам польский язык или испанский?)

Устанавливаем:

sudo apt-get install libreadline-dev asciidoc source-highlight dblatex libboost-python-dev texlive-lang-cyrillic

В терминале пишем:

cd
cd linuxcnc-dev
cd src
./autogen.sh 
./configure

после этого в терминале должны увидеть примерно такое:

Следом -

make
make install-menus
sudo make setuid

Готово.

Создание стартового файла.

Далее код:

#!/bin/bash
. scripts/rip-environment
linuxcnc 

cохраняем в файле start без расширения в папке linuxcnc-dev , делаем его исполняемым (ПКМ по файлу - свойства - права - поставить галку "разрешить исполнять ....") и его будем запускать двойным кликом.

Запустить и проверить на простой стандартной конфигурации 3-осевого станка. Должно заработать...

Теперь все варианты панелей управления сохранять в папке /linuxcnc-dev/configs

Создание папки для новой конфигурации станка.

Создаем папку для новой конфигурации с названием MyGUI, в нее кидаем стандартные файлы (ну например из Sherline3Axis).

Переименуем наш .ini файл в MyGUI.ini

Проверяем работоспособность нашей конфигурации запуском:

если ок - идем дальше...

Создание визуальной панели.

В Glade рисуем наше окно и сохраняем наш труд в файл mygui.glade в папку /share/linuxcnc (все пути указаны пути относительно папки установки linuxcnc-dev).

Создание скрипта на Python-е.

В папку /bin кладём файл mygui с таким содержимым:


#!/usr/bin/python
import pygtk
pygtk.require("2.0")
import gtk
import gladevcp.makepins
from gladevcp.gladebuilder import GladeBuilder
import hal
import sys,os
BASE = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), ".."))
datadir = os.path.join(BASE, "share", "linuxcnc")
xmlname = os.path.join(datadir,"mygui.glade")
class Mygui(object):
  def __init__(self):
    self.builder = gtk.Builder()
    self.builder.add_from_file(xmlname)
    halcomp = hal.component("mygui")
    self.builder.connect_signals(self)
    self.window = self.builder.get_object("window1")
    self.window.show()
    panel = gladevcp.makepins.GladePanel( halcomp, xmlname, self.builder, None)
if __name__ == "__main__":
  app = Mygui()
  gtk.main()

и делаем его исполняемым (смотри выше как это делать).

В нашем ini-файле пропишем :

[DISPLAY]
DISPLAY = mygui 

Запускаем LinuxCNC и наслаждаемся созданным интерфейсом.

Дополнительная настройка панели.

При повторном запуске нашей панели наткнемся на ошибку - панель не желает запускаться...

В Glade добавим к нашему окну сигнал " on_window1_destroy " :

а в код mygui добавим функцию для корректного выхода:

def on_window1_destroy(self, widget, data=None):
print "quit++"
gtk.main_quit()

Теперь при запуске start мы будем пользовать нашу панель через LinuxCNC, установленный из исходников.

Иногда необходимо выполнить:

sudo apt-get install python-gnome2 python-glade2 python-numpy python-imaging python-imaging-tk python-xlib python-gtkglext1 python-configobj python-gtksourceview2 glade 

Удачи!