Closed
Description
If you save a file while Retopoflow is active, do an action, and then try to undo, Retopoflow freezes and you get the following error.
Leading up to it:
RFCore_Operator.__init__
RFCore_Operator.__init__
CACHING BVHS FOR ALL SOURCE OBJECTS
0.00secs
RFCore_Operator executing
Activating <class 'bl_ext.vscode_development.retopoflow.retopoflow.rfoverlays.quadstrip_selection_overlay.RFOperator_PolyStrips_Selection_Overlay'>
<bpy_struct, Area at 0x000002593D4EE260> <bpy_struct, Region at 0x000002593D4F2B20>
Stopping RFCore
RFCore.remove_handlers
RFCore_Operator exiting
RFCore_Operator.__del__!!!
<bpy_struct, RETOPOFLOW_OT_core("RETOPOFLOW_OT_core") at 0x000002592C7DFB88>
True
Info: Saved "twisted_strips.blend"
RFCore_Operator.__init__
RFCore_Operator.__init__
CACHING BVHS FOR ALL SOURCE OBJECTS
0.00secs
RFCore_Operator executing
Activating <class 'bl_ext.vscode_development.retopoflow.retopoflow.rfoverlays.quadstrip_selection_overlay.RFOperator_PolyStrips_Selection_Overlay'>
<bpy_struct, Area at 0x000002593D4EE260> <bpy_struct, Region at 0x000002593D4F2B20>
Stopping RFCore
RFCore.remove_handlers
RF was started without context being set up correctly.
This can happen when blender starts RF without the artist switching to it.
For example: if startup blend chooses RF tool
RFCore.restart()
Info: Saved "twisted_strips1.blend"
RFCore_Operator.__init__
RFCore_Operator.__init__
CACHING BVHS FOR ALL SOURCE OBJECTS
0.00secs
RFCore_Operator executing
quick switch! ('builtin.select', 'retopoflow.polystrips')
Stopping RFCore
RFCore.remove_handlers
RFCore_Operator exiting
RFCore_Operator.__del__!!!
<bpy_struct, RETOPOFLOW_OT_core("RETOPOFLOW_OT_core") at 0x000002594D26B1C8>
True
RFCore_Operator exiting
RFCore_Operator.__del__!!!
<bpy_struct, RETOPOFLOW_OT_core("RETOPOFLOW_OT_core") at 0x000002594D26A2C8>
True
quick switch! ('retopoflow.polystrips',)
RFCore_Operator.__init__
RFCore_Operator.__init__
CACHING BVHS FOR ALL SOURCE OBJECTS
0.00secs
RFCore_Operator executing
Activating <class 'bl_ext.vscode_development.retopoflow.retopoflow.rfoverlays.quadstrip_selection_overlay.RFOperator_PolyStrips_Selection_Overlay'>
<bpy_struct, Area at 0x000002593D4EE260> <bpy_struct, Region at 0x000002593D4F2B20>
And the error itself:
Error in bpy.app.handlers.save_pre[0]:
Traceback (most recent call last):
File "C:\Users\Jonathan\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\vscode_development\retopoflow\retopoflow\rfcore.py", line 403, in handle_save_pre
bpy.context.scene.retopoflow_tool = RFCore.selected_RFTool_idname
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'Scene' object has no attribute 'retopoflow_tool'
Info: Saved "twisted_strips1.blend"
Traceback (most recent call last):
File "C:\Users\Jonathan\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\vscode_development\retopoflow\retopoflow\rfcore.py", line 629, in modal
RFCore.handle_update(context, event)
File "C:\Users\Jonathan\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\vscode_development\retopoflow\retopoflow\rfcore.py", line 347, in handle_update
if brush: brush.update(context, event)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Jonathan\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\vscode_development\retopoflow\retopoflow\rfbrushes\stroke_brush.py", line 234, in update
self.update_snap(context, mouse)
File "C:\Users\Jonathan\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\vscode_development\retopoflow\retopoflow\rfbrushes\stroke_brush.py", line 191, in update_snap
self.nearest_bmf.update(
File "C:\Users\Jonathan\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\vscode_development\retopoflow\retopoflow\common\bmesh.py", line 521, in update
if (co2d - bmf_co2d).length < Drawing.scale(distance2d):
~~~~~^~~~~~~~~~
TypeError: unsupported operand type(s) for -: 'NoneType' and 'NoneType'
Error: Python: Traceback (most recent call last):
File "C:\Users\Jonathan\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\vscode_development\retopoflow\retopoflow\rfcore.py", line 629, in modal
RFCore.handle_update(context, event)
File "C:\Users\Jonathan\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\vscode_development\retopoflow\retopoflow\rfcore.py", line 347, in handle_update
if brush: brush.update(context, event)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Jonathan\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\vscode_development\retopoflow\retopoflow\rfbrushes\stroke_brush.py", line 234, in update
self.update_snap(context, mouse)
File "C:\Users\Jonathan\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\vscode_development\retopoflow\retopoflow\rfbrushes\stroke_brush.py", line 191, in update_snap
self.nearest_bmf.update(
File "C:\Users\Jonathan\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\vscode_development\retopoflow\retopoflow\common\bmesh.py", line 521, in update
if (co2d - bmf_co2d).length < Drawing.scale(distance2d):
~~~~~^~~~~~~~~~
TypeError: unsupported operand type(s) for -: 'NoneType' and 'NoneType'