Pb with Scene Editor and Tcl/Tk

Hello all:

I have successfully compiled Panda3D in Suse 9.3, but when I run the Scene 

Editor, it crashes and produces the following error.


DirectStart: Starting the game.
enumerate is already present in builtin
Warning: DirectNotify: category ‘Interval’ already exists
Known pipe types:
glxGraphicsPipe
(all display modules loaded.)
Warning: DirectNotify: category ‘ForceGroup’ already exists
Warning: DirectNotify: category ‘Particles’ already exists
Warning: DirectNotify: category ‘ParticleEffect’ already exists
:collide(warning): Using deprecated set_collide_geom(). Replace this with an appropriate call to set_from_collide_mask(), e.g. set_from_collide_mask(GeomNode::get_default_collide_mask()).
/home/ajfg/SceneEditor/seGrid.py:97: DeprecationWarning: integer argument expected, got float
for i in range(-numLines,numLines + 1):
----SideWindow is Initialized!!
TclError Exception in Tk callback
Function: <function callit at 0x4120e72c> (type: <type ‘function’>)
Args: ()
Traceback (innermost last):
File “/opt/panda3d/Pmw/Pmw_1_2/lib/PmwBase.py”, line 1747, in call
return apply(self.func, args)
File “/usr/lib/python2.4/lib-tk/Tkinter.py”, line 456, in callit
func(*args)
File “/opt/panda3d/Pmw/Pmw_1_2/lib/PmwScrolledCanvas.py”, line 222, in _scrollBothNow
self._horizScrollbar.set(xview[0], xview[1])
File “/usr/lib/python2.4/lib-tk/Tkinter.py”, line 2731, in set
self.tk.call((self._w, ‘set’) + args)
TclError: expected floating-point number but got “0,0157895.0”

Traceback (most recent call last):
File “sceneEditor.py”, line 1689, in ?
editor = myLevelEditor(parent = tkroot)
File “sceneEditor.py”, line 123, in init
AppShell.init(self, parent)
File “/opt/panda3d/direct/src/tkwidgets/AppShell.py”, line 90, in init
self.appInit()
File “sceneEditor.py”, line 288, in appInit
enableAutoCamera = self.enableAutoCamera)
File “/home/ajfg/SceneEditor/SideWindow.py”, line 63, in init
AppShell.init(self, self.parent)
File “/opt/panda3d/direct/src/tkwidgets/AppShell.py”, line 92, in init
self.__createInterface()
File “/opt/panda3d/direct/src/tkwidgets/AppShell.py”, line 114, in __createInterface
self.createInterface()
File “/home/ajfg/SceneEditor/SideWindow.py”, line 86, in createInterface
scrolledCanvas_hull_height = 570)
File “/home/ajfg/SceneEditor/seSceneGraphExplorer.py”, line 85, in init
self._node.expand()
File “/home/ajfg/SceneEditor/seTree.py”, line 140, in expand
self.view()
File “/home/ajfg/SceneEditor/seTree.py”, line 162, in view
self.canvas.yview_moveto(fraction)
File “/usr/lib/python2.4/lib-tk/Tkinter.py”, line 2250, in yview_moveto
self.tk.call(self._w, ‘yview’, ‘moveto’, fraction)
_tkinter.TclError: expected floating-point number but got “0.0”

~/SceneEditor> uname -a
Linux lp-ajfg 2.6.11.4-21.8-default #1 Tue Jul 19 12:42:37 UTC 2005 i686 i686 i386 GNU/Linux
:~/SceneEditor> gcc -v
Reading specs from /usr/lib/gcc-lib/i586-suse-linux/3.3.5/specs
Configured with: …/configure --enable-threads=posix --prefix=/usr --with-local-prefix=/usr/local --infodir=/usr/share/info --mandir=/usr/share/man --enable-languages=c,c++,f77,objc,java,ada --disable-checking --libdir=/usr/lib --enable-libgcj --with-slibdir=/lib --with-system-zlib --enable-shared --enable-__cxa_atexit i586-suse-linux
Thread model: posix
gcc version 3.3.5 20050117 (prerelease) (SUSE Linux)

tcl-8.4.9-7
tk-8.4.9-9

Any idea?

Thanks in advance

Alberto

I suspect you are experiencing the problem discussed here:
https://discourse.panda3d.org/viewtopic.php?t=310

And here:
https://discourse.panda3d.org/viewtopic.php?p=1936

And also reported here:
https://discourse.panda3d.org/viewtopic.php?t=613

In short, set the following environment variable:


export LC_NUMERIC=C

David

Hello:

  This works. The scene editor starts but when I click on the 

main window (black one), it crashes and produces an error:

File “/home/ajfg/SceneEditor/seSelection.py”, line 457, in collideWithWidget
mask.setWord(0x80000000)
File “BitMask32”, line 254, in setWord
OverflowError: long int to large to convert to int

Any idea?

Alberto

You must be using Python 2.4, which is not yet officially supported by Panda3D (it will be officially supported in the Panda3D 1.1 release).

In Python 2.4, some of the rules for large unsigned integers changed, so some of the Panda code has to be modified to account for the change.

Try modifying the offending line 457 in seSelection.py from the following:


mask.setWord(0x80000000)

To this:


mask.setBit(31)

David

Hello,

That works. Thank you very much

Alberto