Nasze ustawienia do tokarki pod Axisem
Domyślny Axis dla tokarki wygląda tak:

średnicę początkową podałem 100, na ekranie widać 50 i nie ma znaczka 'fi’, nie widać osi wrzeciona i zamiast osi X mamy 'Rad’ i 'Dia’ – czyli podaną średnicę i promień. Brzydko – chcemy mieć tylko X i Z, i X ma być średnicą a nie promieniem – taki kaprys 😀
⌀ i skale X
Najpierw dodamy znak ’⌀’.
Szukamy pliku hersey.py. Przy LinuxCNC zainstalowanym 'systemowo’ – czyli 2.5.x z Ubuntu 10.10 albo 2.7.0 z Debiana z Machinekitem to będzie //usr/share/pyshared/hersey.py/. Przy dystrybucji dla BeagleBone albo przy budowaniu LinuxCNC czy Machinekita lokalnie to będzie plik: ~/linuxcnc/lib/python/hersey.py
Dodajemy naszą średnicę jako znak '@’ do słownika 'translate’ na początku pliku. Zmodyfikowany słownik będzie wyglądał tak dla LinuxCNC 2.5:
translate = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6,
'7': 7, '8': 8, '9': 9, '-': 10, '.': 11, 'X': 12, 'Y': 13, 'Z': 14,
'G': 15, '@': 16}a tak dla 2.6 i 2.7:
translate = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9, '-': 10, '.': 11, 'X': 12, 'Y': 13, 'Z': 14, 'G': 15,
'U': 16, 'V': 17, 'W': 18, '@': 19}poniżej w tablicy self.hersey dodajemy na końcu definicję naszego znaku:
# fi
[[(200.0, 320.0), (260.0, 340.0), (320.0, 320.0), (360.0, 260.0), (360.0, 200.0), (320.0, 140.0),
(260.0, 120.0), (200.0, 140.0), (160.0, 200.0), (160.0, 260.0), (200.0, 320.0),
(160.0, 380.0),
(360.0, 80.0)]]i już – mamy zdefiniowany nowy znak '@’ który po wyrenderowaniu wygląda jak 'fi’.
Otwieramy plik glcanon.py. Będzie w //usr/share/pyshared/rs274/glcanon.py/ albo w ~/linuxcnc/lib/python/rs274/glcanon.py.
W okolicy linii 650 (dla 2.5) albo 719 (dla 2.6 i 2.7) znajdujemy i modyfikujemy poniższy fragment kodu:
if view != x and g.max_extents[x] > g.min_extents[x]:
y_pos = g.min_extents[y] - 6.0*dashwidth
bbox = self.color_limit(g.min_extents[x] < machine_limit_min[x])
glPushMatrix()
f = fmt % ((g.min_extents[x] - offset[x]) * dimscale * 2) # artur 20.08.2014
glTranslatef(g.min_extents[x] - halfchar, y_pos, z_pos)
glRotatef(-90, 0, 0, 1)
if view == y:
glRotatef(90, 0, 1, 0)
glTranslatef(dashwidth*1.5, 0, 0)
glScalef(charsize, charsize, charsize)
self.hershey.plot_string("@" + f, 0, bbox) # artur 20.08.2014
glPopMatrix()
bbox = self.color_limit(g.max_extents[x] > machine_limit_max[x])
glPushMatrix()
f = fmt % ((g.max_extents[x] - offset[x]) * dimscale * 2) # artur 20.08.2014
glTranslatef(g.max_extents[x] - halfchar, y_pos, z_pos)
glRotatef(-90, 0, 0, 1)
if view == y:
glRotatef(90, 0, 1, 0)
glTranslatef(dashwidth*1.5, 0, 0)
glScalef(charsize, charsize, charsize)
self.hershey.plot_string("@" + f, 0, bbox) # artur 20.08.2014
glPopMatrix()Moje zmiany są tylko w liniach opatrzonych komentarzem. Przy wypisywaniu wartości (czyli 'f’) dodaję na początku średnicę – stąd „@”+f Mnożę też dimscale przez dwa żeby mieć wypisane średnice a nie promienie. Po tych operacjach Axis wygląda tak:

Czyli wymiary mamy dobre i znak 'fi’ jest na miejscu. Malina.
Oś wrzeciona
w pliku glcanon.py w okolicy linii: 1465 (dla 2.6 i 2.7) albo 1226 (dla 2.5)
po:
glColor3f(*self.colors['axis_z'])
glBegin(GL_LINES)
glVertex3f(0.0,0.0,0.0)
glVertex3f(0.0,0.0,1.0)dodajemy:
my_z = -30.0
while(my_z < 30.0):
glVertex3f(0.0, 0.0, my_z)
glVertex3f(0.0, 0.0, my_z + 1)
glVertex3f(0.0, 0.0, my_z + 1.5)
glVertex3f(0.0, 0.0, my_z + 1.6)
my_z += 2 i mamy śliczną oś wrzeciona. O tak:

Rad, Dia i Vel
Zostały tylko te dziwne napisy w lewym górnym rogu.
plik glcanon.py linia 1361 (2.6 i 2.7) albo 1108 (2.5):
zamiast linii:
posstrs[0] = format % ("Rad", positions[0])
dajemy X i średnicę czyli:
posstrs[0] = format % ("X", positions[0] * 2.0)
linię z Dia:
posstrs.insert(1, format % ("Dia", positions[0]*2.0))
zastępujemy linią pustą:
posstrs.insert(1, "")
linię z Vel:
posstrs.append(format % ("Vel", spd))
zastępujemy posuwem:
posstrs.append(format % ("Posuw", spd))
i tyle.
Efekt powinien być zbliżony do tego:

Oczywiście daleki jestem od twierdzenia, że to jest jedyne i najlepsze ustawienie. Bardziej mi chodziło o to, żeby pokazac jak w sumie niewielkim nakładem sił można LinuxCNC dostosować sobie do wymagań/przyzwyczajeń.