Closed wassimj closed 3 years ago
my guess is that there is still a discrepancy between the Python version topologicPY is built around vs Blender python?
I am able to import Topologic and cppyy from Blender's python 3.92 console
just importing, or indeed deeply introspecting the topologic module from that blender py console?
" Can't obtain buffer " is emitted directly from here https://github.com/nortikin/sverchok/blob/ca65d1ff281e7f05d0e3e61e41facb5ba4e36237/utils/logging.py#L51-L71
it might be worth clearing Sverchok's logging mechanism. as a test.
I am able to import Topologic and cppyy from Blender's python 3.92 console
just importing, or indeed deeply introspecting the topologic module from that blender py console?
Fully functional.
it might be worth clearing Sverchok's logging mechanism. as a test.
Tried. Did not make any difference. Still crashes right after registering all 117 nodes.
ok. can you make a test script that does the following.
register one topologic node, and add it to the tree
# execute this from TextEditor ( Alt + P )
class YourTopologicNode(....):
...... stuf ....
"""
make a dud / dummy node that doesn't really do anything other than
- prove that the topologic module imports OK
- and can print data
"""
classes = [YourTopologicNode]
register, unregister = bpy.utils.register_classes_factory(classes)
if __name__ == '__main__':
register()
then you see if you can add the node:
# execute this from console
bpy.data.node_groups['NodeTree'].nodes.new("YourTopologicNode")
it may seem like quite a bit of code just to load one node, but it will become part of your own test suite.
this way you can bypass many many sverchok things.
ok. can you make a test script that does the following.
- when sverchok is loaded, and active
register one topologic node, and add it to the
tree
# execute this from TextEditor ( Alt + P ) class YourTopologicNode(....): ...... stuf .... """ make a dud / dummy node that doesn't really do anything other than - prove that the topologic module imports OK - and can print data """ classes = [YourTopologicNode] register, unregister = bpy.utils.register_classes_factory(classes) if __name__ == '__main__': register()
then you see if you can add the node:
# execute this from console bpy.data.node_groups['NodeTree'].nodes.new("YourTopologicNode")
it may seem like quite a bit of code just to load one node, but it will become part of your own test suite.
Yes that all worked perfectly.
so the same code (full topologic add-on) continues to work in 2.9.2 unchanged? using the same Sverchok ?
because i could see from your screenshots on twitter that the viewerdraw was from a slightly older revision of Sverchok. (pre: https://github.com/nortikin/sverchok/pull/4077 )
it would be useful to know if there is a version of sverchok that does let you load topologic into Blender 2.9.3. It's certainly possible that I introduced a behaviour recently that is not compatible with the way your addon piggybacks sverchok. My best guess is to try a few older releases.. or even older revisions of master if you find one release works but the next doesn't.
wish I could be more helpful, but sometimes Blender is cryptic about its crash. There is a crash report cmd
in the Blender folder along side the .exe ( blender_debug_log.cmd
) which might give some hints . I can't tell if your stacktrace comes from that.
it would be useful to know
so the same code (full topologic add-on) continues to work in 2.9.2 unchanged? using the same Sverchok ?
because i could see from your screenshots on twitter that the viewerdraw was from a slightly older revision of Sverchok. (pre: #4077 )
it would be useful to know if there is a version of sverchok that does let you load topologic into Blender 2.9.3. It's certainly possible that I introduced a behaviour recently that is not compatible with the way your addon piggybacks sverchok. My best guess is to try a few older releases.. or even older revisions of master if you find one release works but the next doesn't.
wish I could be more helpful, but sometimes Blender is cryptic about its crash. There is a crash report
cmd
in the Blender folder along side the .exe (blender_debug_log.cmd
) which might give some hints . I can't tell if your stacktrace comes from that.
Sorry to be thick, where can I find older builds of sverchok?
you could use git to checkout various hashes, https://devopscube.com/checkout-clone-specific-git-commit-id-sha/
alternatively each branch is automatically accompanied by a zip download.
but I suggest trying the releases, in reverse order. https://github.com/nortikin/sverchok/tags , this will give a coarser jump between commit ID's (SHA) , and if you find that sverchok loads OK in one release, but not in the next, that's going to show us a tighter window of where the "bug" is introduced.
the github API (from what i can tell) only exposes the last 30 regular commits , so i can't make a script for you that would list the most recent zips-from-branches in any useful way.
Sorry to have disturtbed you with this. It turns out that the crash was because I linked to OCCT7.5. Topologic is guranteed to work with OCCT7.4, but thought I could build it with 7.5. The build went fine, but I started getting errors etc. Once I reverted to linking to OCCT7.4 it worked as expected and I can load it with no issues into Blender2.93 with python 3.9.2 and the latest sverchok_master. I need to investigate why Topologic is not working well with OCCT7.5. It worked for a while, but then errors started cropping up. Apologies again for wasting your time.
you're OK @wassimj . at least you can narrow down where to look for solutions.
Problem statement
I have upgraded Topologic to work correctly with Blender 2.93. I am able to import Topologic and cppyy from Blender's python 3.92 console. However, when I install the TopologicSverchok add-on, Blender crashes with "Can't Obtain Buffer" and will continue to crash until I manually remove the topologicsverchok add-on from the scripts folder.
Steps to reproduce
Expected result
Topologic activated
Actual result
Sverchok version
0.6.0.0