JJ_SmartQuad is based on the classic Lightwave SmartQuad plugin that
would create a single planar quad from three selected vertices.
JJ_SmartQuad extends the idea (with a huge nod to Seneca's SmartQuad
modo script) so that you can create/recreate either a single quad or
whole rows of quads from vertex or edge selections. The animated gifs
below give you an idea of when and how to use the plugin. Key benefits:
- Quick method to create quads
- Optional 'Connect' parameter will hook up the quad to
- Will work on whole rows of quads (See: 'Row of Quads with Connect')
- Works with both edges and points.
Single Quad from Edges
Select two contiguous edges and run
JJ_SmartQuad and a new quad will be created in the same plane.
Row of Quads with Connect
Here a whole row of edges has been selected and
the connect option used so that the new quads are created and then
hooked into existing geometry.
Note the L shape of the selection which is acting as a guide for the
quad placement (more on this later).
Row of Quads with Connect Around Corners
Here you can see that JJ_SmartQuad will 'go around corners'. More
simply it will follow the contour of your edge/point selection.
However, when it goes around 90 degree corners it doesn't create an
extra quad to preserve the integrity of the grid's topology (hopefully
in a later version).
Again, notice that there's an L Shape at one end of the selection. This
is crucial to let the tool know where and how it should be creating
What constitutes an L Shape
In this example you can pretty much see how JJ_SmartQuad attempts to
understand your selection. It looks at either end of the selection and
then makes a judgement on where the L Shape starts and then fills in
the quads on that basis.
The L Shape doesn't have to be defined by an additional polygon - just
by a change in direction. The tolerance is very, very small so you
could create incredibly thin strips of polys this way! If you were
crazy enough to do so...
JJ_SmartQuad installs two commands:
JJ_SmartQuad and JJ_SmartQuadC. The former generates an
unconnected poly/row of polys where the last vertex is not joined
to existing geometry. See right.
The second command - JJ_SmartQuadC - generates a
poly/row of polys where the last vertex is connected
to existing geometry. See right.
Connecting to Adjacent Geometry
By using connect you can 'force' the new polygon out of planarity and to connect to
the nearest vertex.
If you end up using SmartQuad there are going to be times when
you don't get what you expected. The script tries to interpret the
'flow' of the topology by looking at the angles between adjacent polys.
If your mesh is irregular then SmartQuad is likely to return irregular
You need to be careful not to confuse SmartQuad with ambiguous
selections i.e. where you have an L Shape at either end of the
selection, for example or if your selection could be interpreted as looping
Most importantly, SmartQuad has been designed to only work with regular
quad topology - if the edge comes into contact with tris or ngons the
tool will find it impossible to assess the poly flow correctly.
How to Use jj_SmartQuad
When you place jj_SmartQuad into your plugins directory and either
restart XSi or Update Plugins, the script creates two new commands
which you can either drag on to a toolbar or use via keymapping.
Notes on Usage
I think most of the time SmartQuad will be used to just quickly derive
a single quad from a couple of edges. If you're using it to generate
rows of quads then you need to understand the limitations: you need an
L Shape; you can't have a double L Shape etc.
How to Install jj_SmartQuad
jj_SmartQuad is a Python script which means that you'll need a copy
of Python installed on your machine and a copy of the PyWin32
Installing Python takes a couple of minutes. You can either download
these separately from here:
or download a single bundle from ActiveState which does the complete
install in one hit:
Once you've installed Python you just need to drag jj_VectorSnap into
your plugin directory.
Then, go to File: Plugin Manager and hit 'Update All'. The commands
should now be available.
Updated Version. Released 10th March 2008.
01.Trapped bug in XSI 6.x with PointLocators
Updated Version. Released 19th February 2008.
01.Fixed incorrect sequencing which could happen in certain circumstances
02.Trapped errors caused by a 'looping' selection
Version 1.0: jj_SmartQuad 1.0
Original Version. Released 14th February 2008.