CGCookie / retopoflow

A suite of retopology tools for Blender
2.48k stars 249 forks source link

Polypen editing froze blender after merging existing verts to fill faces #222

Closed Innuksuk closed 8 years ago

Innuksuk commented 8 years ago

I was using polypen to fill faces inside empty geometry, ctrl + lmb to create poly first and drag/drop to existing verts to merge them and red dots appeared in the open air freezing blender altogether.

bug

carter2422 commented 8 years ago

This is the first time I've seen this. @Innuksuk are you able to replicate?

Also, does ESC unfreeze and cancel the operator or do you have to force quit Blender?

Innuksuk commented 8 years ago

I couldn't do anything to blender after this. Any keys on my keyboard and mouseclicks weren't doing anything. I had to close blender and had no chance to save it... Wow, it happens when I create poly from an edge (not verts). I selected an edge and lmb click to create a triangle, ctrl + lmb again to create the poly, merged one vert to one corner, and when I merged the final corner to the other vert and it happened again.

bug 2

carter2422 commented 8 years ago

That's no good. Thanks for the report. I will try and replicate and track it down.

carter2422 commented 8 years ago

@vxlcoder I'm looking into this and trying to find how to consistently replicate it. I managed to make it happen once so far. Here's the error:

EXCEPTION (<class 'AssertionError'>): unhandled count of linked faces 2, 0
         /Users/jonathanwilliamson/Dropbox (Personal)/blenderDev/addons/cgCookie/scripts/addons/retopoflow/op_polypen/polypen_modal.py
000 0947:clean_duplicate_bmedges() assert len(bme0.link_faces) == 1 or len(bme1.link_faces) == 1, 'unhandled count of linked faces %d, %d'%(len(bme0.link_faces),len(bme1.link_faces))
001 0448:modal_move_vert() self.clean_duplicate_bmedges(bmv1)
         /Users/jonathanwilliamson/Dropbox (Personal)/blenderDev/addons/cgCookie/scripts/addons/retopoflow/modaloperator.py
Innuksuk commented 8 years ago

There are actually two error messages when you hover your cursor around: EXCEPTION (<class'AssertionError'>):unhandled count of linked faces 2,0 c:\Users\Jonah_2\AppData\Roaming\Blender Foundation\Blender\2.76\Scripts\addons\RetopoFlow\op_polypen\polypen_modal.py 000 0947:clean_duplicate_bmedges() assert len(bme0.link_faces) ==1 or len(bme1.link_faces)==1, 'unhandled count of linked faces %d, %d'%(len(bme0.link_faces),len(bme1.link_faces)) 001 0448:modal_move_vert() self.clean_duplicate_bmedges(bmv1) c:\Users\Jonah_2\AppDate\Roaming\Blender Foundation\Blender\2.76\scripts\addons\RetopoFlow\modaloperator.py 002 0274:modal() nmode = self.FSM[self.fsm_mode](context, eventd)

and the other

EXCEPTION (<class'AttributeError'>):Vector subtraction: (Vector - NoneType) invalid type for this operation c:\Users\Jonah_2\AppData\Roaming\Blender Foundation\Blender\2.76\scripts\addons\RetopoFlow\op_polypen\polypen_modal.py 000 0399:modal_move_vert() p2d + self.mouse_curp2d - self.mouse_downp2d c:\Users\Jonah_2\AppData\Roaming\Blender Foundation\Blender\2.76\scripts\addons\RetopoFlow\modaloperator.py 001 0274:modal() nmode = self.FSM[self.fsm_mode](context, eventd)

I hope I typed them correctly, I had to Prt Sc a few times (popped up 5 different times but the last 3 were the same). Also an indistinguishable overlapping error messages below the first.

carter2422 commented 8 years ago

Thanks @Innuksuk, we'll track it down.

patmo141 commented 8 years ago

image

carter2422 commented 8 years ago

Looks like this is one for you @vxlcoder. Here's error message when doing what @patmo141 showed above:

EXCEPTION (<class 'AssertionError'>): unhandled count of linked faces 2, 0
         /Users/jonathanwilliamson/Dropbox (Personal)/blenderDev/addons/cgCookie/scripts/addons/retopoFlow/op_polypen/polypen_modal.py
000 0960:clean_duplicate_bmedges() assert len(bme0.link_faces) == 1 or len(bme1.link_faces) == 1, 'unhandled count of linked faces %d, %d'%(len(bme0.link_faces),len(bme1.link_faces))
001 1200:handle_insert_vert_nearest() self.clean_duplicate_bmedges(self.nearest_bmvert)
002 0907:handle_action_selface() return self.handle_insert_vert_nearest(context, eventd)
003 0722:handle_action() return self.handle_action_selface(context, eventd)
004 0369:modal_wait() return self.handle_action(context, eventd)
         /Users/jonathanwilliamson/Dropbox (Personal)/blenderDev/addons/cgCookie/scripts/addons/retopoFlow/modaloperator.py
005 0244:modal_main() nmode = self.FSM['wait'](context, eventd)
006 0299:modal() nmode = self.FSM[self.fsm_mode](context, eventd)

Note: the face does fill, it just presents the error first.

carter2422 commented 8 years ago

This is fixed now @Innuksuk. It'll make it into the v1.2.0 release :)