Skip to content

Error on undo after saving with RF active #1499

Closed
@jlampel

Description

@jlampel

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'

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions