Download Version 1.0: jj_SnapToPlane


JJ_SnapToPlane is a simple modelling utility to snap points to a 'virtual' infinite plane defined by a single polygon. The tool offers three distinct modes:

  • Direct Snap - vertices travel directly to the plane across the shortest possible distance
  • Edge Directed Snap - vertices travel along the vector defined by an attached edge until they reach the plane
  • Single Edge Directed Snap - all vertices move in the direction of a single vector until they reach the plane

Mode 1 - Direct Snap
Here, the tagged points move directly to the plane of the selected polygon by the shortest possible route. The plane is infinite in extent.

In this mode both selected edges and vertices will be snapped. If you're in vert mode you might not realise you also have some edges selected. On the other hand it means you can snap with edges if you want to...


Mode 2 - Edge Directed Snap
Here the points are moved in the direction of the selected edge that adjoins them until they reach the plane. I think the animated gif probably explains it better. To use this mode you need to tag the points you want to move, selecte the adjacent edges to define the direction in which you want them to move, and, of course, select the target polygon. Only points with a selected edge adjoining will be moved i.e if you have a point tagged with no selected edge next to it the point will not move.


Mode 3 - Single Edge Directed Snap
Here all tagged points are moved in the direction specified by a single edge until they reach the plane. This edge can be on any geometry provided it is selected.


How to Use jj_SnapToPlane

When you place jj_SnapToPlane into your plugins directory and either restart XSi or Update Plugins, the script creates a single new command which you can either drag on to a toolbar or use via keymapping. By altering the argument you feed the command you can specify which mode you want to use:

jj_SnapToPlane(0) Direct Snap
jj_SnapToPlane(1) Edge Directed Snap
jj_SnapToPlane(2) Single Edge Directed Snap

Notes on Usage

1. The usual workflow is to select the relevant objects, enter polygon mode and select your target polygon and then tag points and edges (if you're using edges)

How to Install jj_SnapToPlane

jj_SnapToPlane is a Python script which means that you'll need a copy of Python installed on your machine and a copy of the PyWin32 extension.

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.


Version 1.0:
jj_SnapToPlane 1.0
Original Version. Released 5th October 2007.

Julian Johnson