вопрос по центровке отрисовки в gremlin ...
в Axis  функция o.set_centerpoint(x, y, z ) центровки вызывается в двух местах(при загрузке и после загрузки ж-кода):
Код: Выделить всё
    def open_file_name(f):
        open_file_guts(f)
        if str(widgets.view_x['relief']) == "sunken":
            commands.set_view_x()
        elif str(widgets.view_y['relief']) == "sunken":
            commands.set_view_y()
        elif str(widgets.view_z['relief']) == "sunken":
            commands.set_view_z()
        elif  str(widgets.view_z2['relief']) == "sunken":
            commands.set_view_z2()
        else:
            commands.set_view_p()
        if o.canon is not None:
            x = (o.canon.min_extents[0] + o.canon.max_extents[0])/2
            y = (o.canon.min_extents[1] + o.canon.max_extents[1])/2
            z = (o.canon.min_extents[2] + o.canon.max_extents[2])/2
            o.set_centerpoint(x, y, z)
 
из glnav.py:
Код: Выделить всё
    def set_centerpoint(self, x, y, z):
        """Set the new center point for the model.
        This is where we are looking."""
        self.xcenter = x
        self.ycenter = y
        self.zcenter = z
        print "glnav", x,y,z
        self._redraw()
далее это "уходит" наверно(?) в minigl.c с корнями в самой библиотеке GL
если пытаться задать свои координаты центровки(ну вот хоть из кода Axis):
Код: Выделить всё
        if o.canon is not None:
            x = -20.0
            y = (o.canon.min_extents[1] + o.canon.max_extents[1])/2
            z = (o.canon.min_extents[2] + o.canon.max_extents[2])/2
            o.set_centerpoint(x, y, z)
то заданное значение функция принимает - но отрисовка остается прежней(
такое впечатление ,что моментально перерисовывается из другого места...
но set_centerpoint вызывается только в этих двух файлах:
Код: Выделить всё
$nkp@nkp-desktop:~$ grep -rl 'set_centerpoint' /home/nkp/emc2-dev-80db2a2/
/home/nkp/emc2-dev-80db2a2/bin/axis
/home/nkp/emc2-dev-80db2a2/src/emc/usr_intf/axis/scripts/axis.py
/home/nkp/emc2-dev-80db2a2/lib/python/glnav.py
/home/nkp/emc2-dev-80db2a2/lib/python/glnav.pyc
/home/nkp/emc2-dev-80db2a2/lib/python/rs274/glcanon.py
 
glcanon.py
========
вроде бы мелочь , но "нарисовав"  в Axis линии заготовки , хотелось чтоб центровалось именно по ней ...
сейчас сделано "по центру" загруженной программы (Gcode)