PolyQuilt addon for Blender 2.8

I may have missed it in the options but is there a way for polyquilt to use existing modifiers? like the mirror modifier or the shrinkwrap? When I’m editing an existing mesh that uses these modifiers polyquilt ignores the modifiers. For example, when the mirror modifier has clipping enabled quadquilt ignores it and allows me to push the vertexes across the center line. When shrinkwrap is on poly quilt senses the mesh as though it doesn’t have shrinkwrap enabled.

Hope this was clear. Thanks for your time, it’s a great addon.

1 Like

Thank you! Yes, with the brushes it turned out interesting, at first I tried to make a sphere like yours, but it looks incomprehensible in such a small size, and then it occurred to me to take only a quarter. Most of the time I spent figuring out how to convert SVG to DAT.
1
Of course you can use everything as you want. :grin:

3 Likes

The Creative Commons licences are well suited for images, art, icons…

https://creativecommons.org/choose/

3 Likes

I was just using PolyQuilt 1.1.2 with shift on some edges and I got this error:

Traceback (most recent call last):
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\PolyQuilt\pq_operator.py", line 149, in modal
    raise e
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\PolyQuilt\pq_operator.py", line 145, in modal
    val = self.update( context, event)
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\PolyQuilt\pq_operator.py", line 182, in update
    ret = self.currentSubTool.Update(context, event)
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\PolyQuilt\subtools\subtool.py", line 110, in Update
    ret = self.OnUpdate(context,event)
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\PolyQuilt\subtools\subtool_brush.py", line 104, in OnUpdate
    self.LMBEvent.Update(context,event)
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\PolyQuilt\utils\mouse_event_util.py", line 104, in Update
    self.OnEvent( event , MBEventType.Click )
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\PolyQuilt\utils\mouse_event_util.py", line 134, in OnEvent
    self.eventFunc( self.eventClass , self)
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\PolyQuilt\subtools\subtool_brush.py", line 75, in LMBEventCallback
    tools = [ t(self) for t in self.callback[event.type] if t.Check( self , self.currentTarget ) ]
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\PolyQuilt\subtools\subtool_brush.py", line 75, in <listcomp>
    tools = [ t(self) for t in self.callback[event.type] if t.Check( self , self.currentTarget ) ]
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\PolyQuilt\subtools\subtool_autoquad.py", line 40, in __init__
    verts , normal = self.MakePolyByEmpty( self.bmo , self.startMousePos )
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\PolyQuilt\subtools\subtool_autoquad.py", line 314, in MakePolyByEmpty
    if Chk( startPos , vt) :
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\PolyQuilt\subtools\subtool_autoquad.py", line 298, in Chk
    wp = pqutil.Ray.from_screen( context , hit ).hit_to_line_pos( v1 , v2 )                                        
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\PolyQuilt\utils\pqutil.py", line 171, in hit_to_line_pos
    d0 = (v0-h1).length
AttributeError: Vector subtraction: (Vector - NoneType) invalid type for this operation

location: <unknown location>:-1
1 Like

Got another one:

Traceback (most recent call last):
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\PolyQuilt\gizmo_preselect.py", line 80, in test_select
    self.DrawHighlight = PQ_Gizmo_Preselect.subtool.DrawHighlight( self , self.currentElement )
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\PolyQuilt\subtools\subtool_brush.py", line 83, in DrawHighlight
    drawAutoQuad = SubToolAutoQuad.DrawHighlight(gizmo,element)
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\PolyQuilt\subtools\subtool_autoquad.py", line 88, in DrawHighlight
    verts , normal = cls.MakePolyByEmpty( gizmo.bmo , gizmo.mouse_pos )
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\PolyQuilt\subtools\subtool_autoquad.py", line 314, in MakePolyByEmpty
    if Chk( startPos , vt) :
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\PolyQuilt\subtools\subtool_autoquad.py", line 298, in Chk
    wp = pqutil.Ray.from_screen( context , hit ).hit_to_line_pos( v1 , v2 )                                        
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\PolyQuilt\utils\pqutil.py", line 171, in hit_to_line_pos
    d0 = (v0-h1).length
AttributeError: Vector subtraction: (Vector - NoneType) invalid type for this operation

location: <unknown location>:-1
1 Like

Poly Quilt Update ver1.1.5

  • Add Edge Edxrude Marker. You can now extrude edges without LMB holds.
  • You can hold and drag markers to create a series of quads. The size of the quad depends on the length of the extruded side.
  • Ireplaced the icon.
  • and more…
17 Likes

Thank you very much for this update! I like the new Edge Extrude Markers (that allow to quickly create quads sequentially) very much. It is going to be so useful for retopology. At first I didn’t know how to use this new feature, it took me a minute or two to understand that there was a marker that I could drag.

Feature request: Could add an option (in the addon preferences) to choose the dimensions of this (triangle) marker?
Because currently, in some circumstances, this triangle can be quite small (depending on the zoom, if there’s a close-up on the face or if the view is zoomed out). An option to choose the size of the marker would be useful.
Or maybe the triangle marker could automatically adapt its dimensions according to the zoom of the viewport? Zoomed out = small marker; zoomed in = bigger marker.


I think that you want your users to use just the LMB as much as possible but I still hope that you will add a new hotkey (ALT+LMB or CTRL+LMB) to create these “sequential quads”


Within the first minutes when I tested the new version, I have noticed an error.

Addon version: 1.1.5
Blender version: 2.82 official

This error appeared after extruding an edge and then clicking on an empty area of the viewport (I think that’s what I did, but I am not 100% sure).
I am trying to reproduce the bug but without any luck for the moment. Maybe the following error will give you a hint to understand what happened:

Traceback (most recent call last):
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\PolyQuilt\pq_operator.py", line 149, in modal
    Exit()
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\PolyQuilt\pq_operator.py", line 145, in modal
    try :
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\PolyQuilt\pq_operator.py", line 182, in update
    if self.currentSubTool is not None :
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\PolyQuilt\subtools\subtool.py", line 110, in Update
    
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\PolyQuilt\subtools\subtool_brush.py", line 104, in OnUpdate
    self.LMBEvent.Update(context,event)
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\PolyQuilt\utils\mouse_event_util.py", line 104, in Update
    self.OnEvent( event , MBEventType.LongClick )
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\PolyQuilt\utils\mouse_event_util.py", line 134, in OnEvent
    if self.eventFunc != None :
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\PolyQuilt\subtools\subtool_brush.py", line 75, in LMBEventCallback
    tools = [ t( event.event , self) for t in self.callback[event.type] if t.Check( self , self.currentTarget ) ]
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\PolyQuilt\subtools\subtool_brush.py", line 75, in <listcomp>
    tools = [ t( event.event , self) for t in self.callback[event.type] if t.Check( self , self.currentTarget ) ]
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\PolyQuilt\subtools\subtool_autoquad.py", line 40, in __init__
    verts , normal = self.MakePolyByEmpty( self.bmo , self.startMousePos )
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\PolyQuilt\subtools\subtool_autoquad.py", line 314, in MakePolyByEmpty
    if Chk( startPos , vt) :
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\PolyQuilt\subtools\subtool_autoquad.py", line 298, in Chk
    wp = pqutil.Ray.from_screen( context , hit ).hit_to_line_pos( v1 , v2 )                                        
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\PolyQuilt\utils\pqutil.py", line 171, in hit_to_line_pos
    d0 = (v0-h1).length
AttributeError: Vector subtraction: (Vector - NoneType) invalid type for this operation

location: <unknown location>:-1

Hey! Sorry if I sound pushy but I was wondering if my previous suggestion is possible or not? I think if it could sense modifiers it will make this tool a great retopology tool.

1 Like

I investigated that, but it’s impossible.
Modifier applied meshes are not compatible with the source mesh and cannot have edits applied.

I don’t mean to edit the modifier but for polyquilt use the modifier stack in the viewport? Similar to when you enable a modifier to be seen in edit mode.

1 Like

Wow! Haven’t tried this in ages and it’s come a long way. Almost as good as Maya Quad draw, although I prefer a modifier key based workflow rather than the delays, especially because it makes the knife tool a bit limited if you can only draw cuts from outside the mesh. Same for empty space applied to box select.

I agree that the arrow to pull out quads from edges is a bit fiddly when trying to just move the edge.

It seems clipping isn’t respected with the mirror modifier?

Is 0.2 the lowest the delay goes? Do you intend to add modifier keys as well? Thanks. Great tool.

3 Likes

I’m glad you enjoyed this add-on.

Yes.It’s in the plan.
However, many keys are already reserved in Blender and it is difficult to avoid conflicts. I hope the “sticky key” being developed by campbell is a good solution.
https://developer.blender.org/D7055

2 Likes

Yeah, i’ve seen this Addon many times but never got to try it due to the delay thing that i don’t really find convenient for repetitive uses. I think it’s fine for an operation you make every 30 sec or more, but for something that you do every 3 sec… I’m totally for modifier keys ! :slight_smile:

3 Likes

It doesn’t :confused:

2 Likes

I am trying to install it -from the zip file as usual- to the latest official version but nothing happens. Do we have to unzip the files to the add-on directory?

If you downloaded the zip from github you can make a separate zip with the content just from the subfolder addons/polyquilt/ and install that.
(Or you can use the link to the prepared zip from the readme)

Thanks for the reply. It did not work, however, even with zipping as you said. But finally it worked by placing the unzipped ‘polyquilt’ folder to the add-ons directory.

Amazingly, you have inadvertently created my most missed tool from 3dsMax, Swiftloop. :laughing:

Your edgeloop tool is essentially the same(although holding shift with swiftloop applies a set flow) If it didn’t have the delay it would be perfect. Is there any way you could branch off this part of Polyquilt into its own, separate tool? People will love it. Maya also has this kind of tool. It’s so much faster than edgeloop+slide. Also, if it were a separate tool it wouldn’t need the delay.

7 Likes

@Musashidan By default you can reduce the LongPressTime in the settings to at least 0.2. I found that still too long and reduced it in the pq_preferences.py to 0.14. That’s still absolutely distinguishable to normal clicks and feels much more direct.

    longpress_time : FloatProperty(
        name="LongPressTime",
        description="Long press Time",
        default=0.14,
        min=0.14,
        max=1.0)
2 Likes

@Debuk , thanks. The first thing I did was reduce it to the minimum of 0.2, but it’s still too much of a delay. I’ll edit the .py. :+1: