0% found this document useful (0 votes)
263 views40 pages

JointPushPull - User Manual

This document describes the JointPushPull plugin, which allows users to interactively offset faces in multiple modes. It provides an overview of the plugin's capabilities and installation instructions. The document also explains the different push/pull modes like joint, normal, round, vector, extrude and follow. It details the common parameters, options and limitations of the plugin.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
263 views40 pages

JointPushPull - User Manual

This document describes the JointPushPull plugin, which allows users to interactively offset faces in multiple modes. It provides an overview of the plugin's capabilities and installation instructions. The document also explains the different push/pull modes like joint, normal, round, vector, extrude and follow. It details the common parameters, options and limitations of the plugin.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 40

JOINTPUSHPULL

MULTI-FACE PUSH PULL – INTERACTIVE EDITION


VERSION 4.3 – 21 FEB 2018
BY FREDO6
NORMAL VECTOR

Similar to native Push Faces are offset along


Pull, but in multi-face. a custom direction
Faces generated are picked graphically in
non-jointed. the model (or along
model axes). Faces
generated are jointed.

JOINT EXTRUDE

Faces are offset along Faces are offset along


their normal but are an average direction,
kept jointed. Useful keeping faces jointed.
for thickening shapes. Gives more consistent
results than Joint mode

ROUND FOLLOW

Combination of Faces are offset along


Normal and Joint the direction given by
mode depending on their adjacent edges.
the angle between This concept was
faces, with automatic introduced by
rounding of gaps a4chitect’s Smart
between faces Push Pull plugin1.

The home page of JointPushPull is on the Sketchucation web site at:

https://sketchucation.com/plugin/715-jointpushpull

1
See http://sketchucation.com/forums/viewtopic.php?p=197828#p197828 on Sketchucation forum

Fredo6 – JointPushPull 4.3 Page 1 / 40 v4.3 – 21 Feb 2018


Contents
1. Overview ................................................................................................................... 3
2. Installation................................................................................................................. 4
3. Menus, Toolbar and Configuration ............................................................................. 5
4. Common workflow .................................................................................................... 8
1) Interactive Face Selection............................................................................................ 8
2) Multi-face Selection ...................................................................................................10
3) Push-pulling faces by dragging...................................................................................10
4) Simulation of the Push-Pull ........................................................................................11
5) Typing Offset in the VCB .............................................................................................12
6) Repeating Push-Pull ...................................................................................................12
7) Sketchup Inferences ...................................................................................................12
8) Preview Mode ............................................................................................................13
9) Rollback .....................................................................................................................13
10) Exiting JointPushPull ..................................................................................................13
5. Common Parameters ............................................................................................... 14
1) Finishing ....................................................................................................................14
2) Border faces ...............................................................................................................15
3) Molding .....................................................................................................................16
4) Generate as Group .....................................................................................................17
5) Forcing a Plane or Vector Direction ............................................................................18
6) Random Offset ...........................................................................................................20
6. JOINT Push-Pull ........................................................................................................ 22
7. NORMAL Push-Pull ................................................................................................... 24
8. ROUND Push-Pull ..................................................................................................... 26
9. VECTOR Push-Pull .................................................................................................... 29
10. EXTRUDE Push-Pull .................................................................................................. 32
11. FOLLOW Push-Pull.................................................................................................... 34
12. THICKENER............................................................................................................... 36
13. Other Options – Default Parameters ........................................................................ 37
14. Limitation and Future Work ..................................................................................... 40

Fredo6 – JointPushPull 4.3 Page 2 / 40 v4.3 – 21 Feb 2018


JOINT PUSH PULL
Multi-face Push Pull – Interactive Edition
VERSION 4.0 – 20 OCT 2017

by Fredo6

1. Overview
JointPushPull is a suite of interactive tools generating the offset geometry of one or
several faces, typically push-pull or thicken.
The common characteristics of JointPushPull tools are:
- Pre-selection mode (faces and groups / components) with launch from toolbar,
main menu, and contextual menu
- Interactive selection mode, where faces can be selected across the boundaries of
components and groups, individually, as a surface, all connected or connected by
material. Interactive selection works across boundaries of Components and
Groups.
- Visual dragging of faces, with enabling / disabling of Sketchup inferences
- Preview mode, for faster feedback when selection includes a large number of
faces
- Modification of parameters after generation, with recalculation of shape
- Various options: support of thicken and push pull mode, 3 modes of generation
of borders (contour, grid, none), generation as a group, etc….
- Random Push-Pull, with specification of range
- Quick Launcher and configurable icon toolbar

Note about the old JointPushPull v2.x


The previous version of JointPushPull (v2.x) can coexist with the new version 4.x.
It is released on Sketchucation under the name Joint Push Pull Classic.

The new version includes all functionalities of JPP 2.x (and more), except:
- Auto-scaling of holes and faces embedded within faces (can be done if there
is a request)
- More accurate texturing of borders when original faces are textured

Fredo6 – JointPushPull 4.3 Page 3 / 40 v4.3 – 21 Feb 2018


2. Installation
 Sketchup Versions: 6 and above (Free and Pro). Works better with v8 M2 and
above.

 Platforms: Windows XP, Vista, 7 and Mac OSX all versions

 IMPORTANT: JointPushPull requires the Shared Library LibFredo6 v7.8 or


higher.
Since SU8 M2 and SU 2013, there are now several ways to install a plugin.
- SCF Plugin Store, recommended method
- EWH (when published)
- SU Extension Manager to install a .rbz file
- Unzipping into the SU Plugins directory from a .zip file (see details below)

Instructions for installation of JointPushPull and LibFredo6 can be consulted at:

https://sketchucation.com/plugin/715-jointpushpull

All installations however will end up with the following footprint in the SketchUp
Plugins directory:
 one script file Fredo6_JointPushPull.rb
 one subfolder Fredo6_JointPushPull. This subfolder contains the library files,
the icons, cursor files, language files, …

Name Type
SU Plugins root directory Plugins Root Folder
Fredo6_JointPushPull Folder
Fredo6_JointPushPull.rb Ruby file
Fredo6_!LibFredo6 Folder
Fredo6_!LibFredo6.rb Ruby file

CAUTION: NEVER rename or move files from their folders. If you are unsure of
your unzip operation, do it in a neutral folder and check that you reconstruct the right
footprint. Then transfer the folders and files to the SU Plugins Directory.

Note: you can select an alternative plugin directory (see AdditionalPluginFolders at


http://sketchucation.com/forums/viewtopic.php?f=323&t=39073#p345150).

Fredo6 – JointPushPull 4.3 Page 4 / 40 v4.3 – 21 Feb 2018


3. Menus, Toolbar and Configuration

Main menu
By default in Tools > Fredo6 Collection > JointPushPull. All functions are available
in this menu, whether shown or not in the toolbar.

Contextual menu
Whenever the selection includes a face, the contextual menu shows an entry for
JointPushPull:

Note: From the Default Parameters dialog box, you can configure which commands
are shown in the contextual menu (you can even remove them all).

Quick Launcher
This is a small floating window which displays all JointPushPull tools in a list. It can
be invoked from the menu or the toolbar icon:

Fredo6 – JointPushPull 4.3 Page 5 / 40 v4.3 – 21 Feb 2018


Optionally you can pin the Quick Launcher window on your viewport for subsequent
use. By default the window closes when you launch a command.

Toolbar
Toolbar name is Fredo6_JointPushPull by default (you can change it).

All icons2 are shown right after installation. However, you can configure which icons
are visible in the Default Parameters dialog box.

Buttons Palette
The buttons palette shows the available parameters. Parameters may differ between
tools.
Since JointPushPull 4.0, the Button Palette has a Simple mode, with only basic
parameters, and an Expanded mode for more advanced usage. You can toggle
between the two modes using the button with chevrons on the left side of the
palette. For instance, here are the Simple and Expanded mode for the Joint tool:

2
Thanks to Daniel S. for designing the icons

Fredo6 – JointPushPull 4.3 Page 6 / 40 v4.3 – 21 Feb 2018


Error Handling
In some circumstances, JointPushPull may be unable to perform the operation, either
because the contours are not compliant or simply because there are still bugs in the
script.
If this happens, you may get an error message shown as the dialog box below:

Although this is purely technical information related to the Ruby script, it can be
useful for the author to trace the cause of error. For instance, exporting as txt file (or
simply copy / paste) and posting on Sketchucation.

Fredo6 – JointPushPull 4.3 Page 7 / 40 v4.3 – 21 Feb 2018


4. Common workflow
JointPushPull workflow includes 3 or 4 steps:
1) Interactive Face Selection mode – you can also invoke JointPushPull with a valid
pre-selection of faces and/or groups/components including faces.
2) Dragging mode – Once faces are selected, you can
- Drag the mouse to pull or push faces visually
- Type the offset directly in the VCB when cursor is over a face
- Double-click on a selected face to repeat the push pull with the same
parameters
3) Preview mode (when applicable) – this intermediate mode allows the
visualization of the result before generation. It is only triggered when the selection
includes a ‘large’ number of faces (see below to adjust this number).
4) Generation – the geometry is generated in Sketchup. At this stage,
- you can either change some parameters via the button palette or the VCB,
- or click on other faces for a new selection.
JointPushPull provides a Rollback button to navigate back along these states. The
Escape key is equivalent. Ctrl-Z and Undo are also supported.
All parameters are preserved across Sketchup sessions, for each individual JPP mode.

1) Interactive Face Selection


JointPushPull allows selecting faces within groups and components at any level (you’ll
see a coral or gray bounding box if you hover over faces within a group or component).
The principle of interactive selection is similar to the native Sketchup PushPull. You
hover faces or surfaces, and then click – drag to perform the push-pull operation.
You have 4 options to specify the selection scope. They are available in the button
palette. You can also cycle through these options by typing TAB or Shift TAB.

Note: when there is already an initial selection, the selection is blocked. You cannot add
or remove faces by hovering over faces. Just type ESC to clear the initial selection if
you wish to do the selection interactively.

Fredo6 – JointPushPull 4.3 Page 8 / 40 v4.3 – 21 Feb 2018


When you hover over a face, faces are highlighted based on the selection scope,
showing the result of a click:

Single-Face selection mode Same-Material selection mode

For surfaces, that is, a set of adjacent faces connected by smooth and/or soft edges, the
whole surface is automatically selected if you are in Geometry Hidden mode.

Otherwise, selection is based on the current selection scope, Single-Face or Surface.

Surface selection mode Single-Face selection mode

Note that in the examples above, a Bounding-box is shown when you hover over faces
within components or groups. The selection is reflected on all instances of components.

Fredo6 – JointPushPull 4.3 Page 9 / 40 v4.3 – 21 Feb 2018


2) Multi-face Selection
For convenience, there is a multi-face interactive selection mechanism.
When you hover over a face (or surface), press Shift (without clicking) to keep the
face(s) permanently selected. As long as Shift is kept depressed, faces under the mouse
will be permanently selected.
To unselect permanently-selected faces, just move over a selected face, press Shift.
This will unselect the face(s). As long as Shift is kept depressed, faces under the mouse
will be permanently deselected.
This feature also works to modify a pre-selection. Using the Shift method, you can
add/remove faces.

3) Push-pulling faces by dragging


When the selection is done, click and drag one of the selected faces. The interactive
push-pull will start right away.
The direction of dragging is indicated by a dashed line. The offset is indicated in the
VCB and the offset button in the palette. It depends on the type of Push-pull and can
also be influenced by the forced plane or vector if specified.

The push-pull operation is natural, as in Sketchup:


 Click-down – Drag – Release, or
 Click-release – Drag – Click again

Fredo6 – JointPushPull 4.3 Page 10 / 40 v4.3 – 21 Feb 2018


4) Simulation of the Push-Pull

JointPushPull tries simulating the resulting shape when pushing or pulling faces:
- Original faces are hidden temporarily when you have the finishing option “push-
pull” on (i.e. not thickening)
- Properties of edges are also simulated. When in push-pull mode, lower border
edges are hidden to show border continuity

Thickening Mode Push-Pull Mode


- Painted faces are simulated by their color (with no shading). For textured faces,
the average color is used.

Note: During the dragging and Preview steps, JointPushPull only displays a limited
amount of faces and borders. Therefore, when there is large number of faces in the
selection, you may not see a simulation of all faces and borders as in the final geometry
(like above).

Fredo6 – JointPushPull 4.3 Page 11 / 40 v4.3 – 21 Feb 2018


5) Typing Offset in the VCB
Before, during or after dragging, you can type the offset in the VCB. It can be positive
or negative (zero value are ignored). The conventions are:
- Positive number is in the direction of pull.. if you already started dragging
- A float number is considered in current model units (architectural measures are
also supported)
- You can specify and force the unit. Ex: “3.4cm”
- You can use formulas. Ex: “3.2 / 2 + 5cm”
This method is strongly recommended when you have a very large number of faces
to push-pull. This avoids slow performance in dragging faces.
You can also enter the offset value by clicking on the offset field in the button palette. It
also supports unit specification and formulas.

Note: the offset value is preserved across JPP sessions and Sketchup sessions.

6) Repeating Push-Pull
You can repeat a push-pull operation with the same offset on other faces by:
- Selecting faces and double-clicking on them
- Hovering over the selection and typing Return
Before repeating push-pull, you can of course modify some parameters, in particular the
offset. So a fast way to Push Pull without dragging faces is:
- Change the offset in the VCB, with the mouse NOT on a face
- Double-click on the face(s) to push-pull.
You can repeat within the same JPP session, across JPP sessions or even across
Sketchup sessions, since parameters are always kept.

7) Sketchup Inferences
JointPushPull supports Sketchup inferences when picking and push-pulling faces.
Actually, the choice of the face and the point under the cursor when you drag the
mouse may be important, because the initial picked point and face are used to
determine:
- the reference origin-target, in particular in the Vector push-pull mode
- the face-side orientation, taken from the face under the mouse.
a) In Vector Mode, pressing Shift (down and toggle) will lock / unlock the current
direction
b) In other JPP modes, Shift will turn inferences on or off. This may be useful to
avoid being bothered by undesired inferences.

Note: when you drag faces, offset faces and borders drawn in the viewport occult
inferences to underlying model objects.

Fredo6 – JointPushPull 4.3 Page 12 / 40 v4.3 – 21 Feb 2018


8) Preview Mode
The Preview step is useful when the model to push-pull includes a large number of
faces. To adapt to the performance of your computer, this ‘large number’ of faces can be
specified in the Default Parameters dialog box (see this section later in this document).
In the Preview step, the cursor shape is a green checkmark.
In the Preview step, you can interactively modify all parameters: offset and others. The
changes will be reflected.
When finished, you can generate the geometry by
- Clicking anywhere in the model
- Typing RETURN
- Clicking on the checkmark button in the palette

9) Rollback
At each step you can rollback to go to the previous step. This can be achieved by
pressing the orange back arrow button in the button palette. You can also press Escape.

In Selection Mode
- Rollback will undo the selection
In Preview Mode
- Rollback will go back to selection, with selected faces selected again
- You can also resume dragging by pressing Escape
When the geometry is just generated
- Rollback will go to Preview mode. You can change parameters and click again.
Sketchup Undo, via Ctrl-Z or Undo button is supported and normally safe. It will first
act as a rollback on the current operation and then as a classical undo, resetting the
selection.
IMPORTANT: The main difference between Ctrl-Z and ESCAPE is that Escape will
just undo the current operation, whereas Ctrl-Z will undo ALL past operations,
possibility beyond the initial state when you launched JointPushPull (this is as it works
in native Push Pull).

10) Exiting JointPushPull


Once geometry is generated, you can exit JointPushPull by clicking on the Exit icon in
the main palette (or pressing SpaceBar) or clicking anywhere in an empty zone of the
model.

Fredo6 – JointPushPull 4.3 Page 13 / 40 v4.3 – 21 Feb 2018


5. Common Parameters
All JointPushPull modes share a few parameters and configurations. These are
a) Finishing option (push-pull or thickening)
b) Configure borders (contour, grid or none)
c) Generate in Group
d) Forcing a Planar (or vector) Direction
e) Random Offset (Normal and Joint tools)

1) Finishing
As for the native Sketchup Push-Pull, there are 2 modes: Offset and Thickening.
 Push-Pull offsets the face and therefore erases the original face.
 Thickening preserves the original faces and creates the offset faces. For
convenience, the orientation of the original and offset faces is adjusted so that
their recto side points toward the outside. A small + is shown in the bottom-
right corner of the cursor.

Push-Pull by Offset Thickening

The finishing option can be changed by 2 methods:


a) Clicking on the button in the palette

b) Pressing Ctrl in toggle mode (i.e. press-release), like for the native SU Push-Pull

Note that the finishing option is preserved across JPP sessions (and SU Sessions)
individually for each tool.

There is an exception for single, standalone face which is always handled as


thickening, as it is for the native Sketchup push-pull.

Fredo6 – JointPushPull 4.3 Page 14 / 40 v4.3 – 21 Feb 2018


2) Border faces
You can control the creation of border faces, with 3 options available from the drop-
down menu in the button palette (expanded mode):
a) Contour: Border faces are only generated for edges bordering the whole set of
adjacent faces. This is the default mode for all JPP tools that keep faces jointed
(Joint, Vector, Extrude, Round, Follow).
b) Grid: Border faces are generated for each individual face. This is the default
mode for Normal push-pull, as offset faces are usually non-jointed.
c) None: Border faces are simply not created. You simply offset the face(s) or
surface(s).

Contour Grid None

Note that, in general, borders inherit the material of the corresponding top face. There is
however an exception in Push-Pull mode, borders will inherit the material of the
adjacent face which is coplanar if any.

Original Thickening Push-Pulling

This is the behavior of the native Sketchup push-pull. However, if you prefer that
borders always inherit the material of their adjacent coplanar face (if any) whatever is
the finishing option, you can set this parameter in the Default Parameter dialog box.

In such a case, the result with Thickening will be:

Fredo6 – JointPushPull 4.3 Page 15 / 40 v4.3 – 21 Feb 2018


3) Molding
The concept of Molding is to expand or shrink the extruded faces by offsetting their
border. In contrast, the tapering option uses the center to the bounding box of the faces
to perform the tapering. A good illustration is for extruding letters, as show below:

Original model Molding Tapering


For Molding, the slopes around the face(s) contour, inside and outside, are oriented in
the same manner, whereas, for Tapering, the inside slopes are oriented reversely
compared with the outside slopes.
This option is available for the Normal, Joint and Extrude tools.

For Normal tool, Molding operates on the individual faces:

For Joint and Extrude tools, Molding operates on the contours of all selected faces:

The palette allows to set the angle of the slope for the border faces. The angle can be
positive or negative, corresponding to expanding versus shrinking the extruded faces.

An angle of 0 means NO molding. The Plus/Minus sign simply allows to switch to the
opposite angle.

Fredo6 – JointPushPull 4.3 Page 16 / 40 v4.3 – 21 Feb 2018


4) Generate as Group
You have the option to generate the offset in a Group instead of in the context of the
original faces.
This option is visible when you drag faces, with a dashed bounding box shown in
orange.

Note that groups are generated for each adjacent set of faces, at the same level of
embedding as the original faces when included in components and groups (i.e. not at the
top level of the model).

Fredo6 – JointPushPull 4.3 Page 17 / 40 v4.3 – 21 Feb 2018


5) Forcing a Plane or Vector Direction
In some situations, you may want to offset along a privileged direction rather than along
the face normal only.
For instance, when you push-pull a curved surface with Joint push-pull, the natural
result is, as shown below:

As you can notice, the top thickening surface is not planar. To get it planar, you need to
project the offset on the horizontal plane:

For all JPP modes except Vector3, you can set a privileged plane via the button sub-
palette:

3
For Vector tool, you will set a privileged direction. See the section on Vector Push-pull later in this document

Fredo6 – JointPushPull 4.3 Page 18 / 40 v4.3 – 21 Feb 2018


For convenience, JPP offers several settings for planar direction.
 Plane can be an axis plane, defined by its normal direction and color: X, Y or,
Z. Note that you can type the corresponding Arrow to set the plane, and Arrow
Down to unset the privileged direction.
 You can define a custom plane (see below)
 All planar directions are referenced by their scope.
o Model: reference is absolute
o Local: reference is about the axes of the component or group embedding
the faces. If the group / component is rotated, then axis directions will
also be rotated.
Important: the offset is always measured along the projected direction if a privileged
plane has been forced.

Setting a custom Plane

a) Click on the ‘Question Mark’ yellow button. You enter a special mode:
Custom Plane Picker. The button palette is not displayed.

b) Pick a face (plane = plane of the face) or pick an Edge (plane = plane
perpendicular to the edge). The plane is indicated by a semi-transparent grid.

c) The Plane Picker is closed and the privileged plane is set as the current custom
plane.

Picking a face plane Picking an edge plane

Using a custom plane in JointPushPull

Simply click on the small C button.

Note: if there is a current plane active, axis or custom, it is shown as a small grid by
the cursor in the viewport.

Fredo6 – JointPushPull 4.3 Page 19 / 40 v4.3 – 21 Feb 2018


6) Random Offset
Random Offset is available by default for Normal Push Pull.
For other JPP modes, except Round, it is also available. However for performance
reasons, it is not enabled by default. You have to go to the Default Parameters dialog
box to enable it. Then, after usage, it is advised to disable it again.

Random offset is based on 2 parameters:


 The range of offset, given by a minimum and maximum ratio by reference to
the current offset. Bounding value can be positive, negative or zero.
 The random seed, which determines the pattern of randomization.
The corresponding buttons in the palette allows configuring these parameters:

In the settings above, the offset of faces will range between 0.5 times and 4 times the
current offset set by the user.

Constant offset Same offset in Random


Note: you should always make sure that the range includes the value 1.0, because the
face dragged under the cursor is always extruded by the current offset (so its own factor
is 1.0).

Fredo6 – JointPushPull 4.3 Page 20 / 40 v4.3 – 21 Feb 2018


You can change the seed by clicking on the + or – buttons and obtain different
randomization patterns so that you can choose the one you judge interesting.

Hereunder are some randomizations with Joint Push Pull (note: you should set the
borders to Grid for making sure they are filled)

Fredo6 – JointPushPull 4.3 Page 21 / 40 v4.3 – 21 Feb 2018


6. JOINT Push-Pull
PURPOSE: Offset faces along their normal and keep them jointed

Faces are offset along their normal but are kept jointed. This is the most appropriate tool
for thickening shapes.

The Joint mode works on smooth surfaces as well as ‘boxy’ shapes with sharp edges and
corners:

Original shape Thickening

Original shape Thickening Push-Pull

Original shape Thickening

Fredo6 – JointPushPull 4.3 Page 22 / 40 v4.3 – 21 Feb 2018


On top of the common options, there is one specific feature for Joint Push-Pull:

1) Influence of neighbor faces

The direction at a vertex is calculated by averaging the normal of the vertex faces
which are part of the selection. Other faces are ignored.

You can however enable the influence of these other neighboring faces (i.e. not
part of the selection), by setting the corresponding option in the palette. Not sure
this is useful, but this generates the offset as if the outside faces were part of the
selection.

Original shape NO influence from Neighbors Influence from Neighbors

Fredo6 – JointPushPull 4.3 Page 23 / 40 v4.3 – 21 Feb 2018


7. NORMAL Push-Pull
PURPOSE: Offset faces along their individual normal

Normal Push-Pull equivalent to the native Sketchup Push-Pull, but in multi-faces


version, with additional options.

However, it does not fully cover some features of the native tool:
 Create automatic intersections and holes when pushing in solid objects
 Prevent push-pull beyond certain offset (this can be a plus or a minus however)

Push-pull or thickening is performed by offsetting individual faces along their normal.


But you can of course apply a privileged plane, as shown below:

NO privileged plane Privileged plane = Z plane

On top of the common options, there are 2 specific functions for Normal Push-Pull:

2) Quad Preservation

When faces are arranged in quads, that is 2 triangles whose common edge follows
the diagonal conventions (Cast Shadows = false), you have the possibility to force
a jointed push-pulling by quad instead of by individual triangle.

Original quads NO preservation of quads Preservation of quads

Fredo6 – JointPushPull 4.3 Page 24 / 40 v4.3 – 21 Feb 2018


3) Tapering

This function will scale the generated offset faces individually by a given
factor. The scaling is done radially about the barycenter of each face.

This is controlled by a button in the palette where you can enter the tapering factor
(increment are by 0.1, i.e. 10%). You can also enter the value, followed by ‘s’ in
the VCB.

The natural case is when the tapering factor is 1.0: offset faces have the same size
as the original faces.

If the factor is different from 1.0, you can create a tapering effect:

Original faces Tapering factor = 0.7

Actually, you can even generate spikes by setting the factor to 0.0

Tapering factor = 0.0 - Spikes

Note: I left the possibility to enter negative factors. In such cases, the faces will be
twisted. Not sure it is useful for architecture purpose, but maybe for modern art!

Fredo6 – JointPushPull 4.3 Page 25 / 40 v4.3 – 21 Feb 2018


8. ROUND Push-Pull
PURPOSE: Combine Joint and Normal push-pull and fill gaps by rounding

Round Push-Pull is a combination of Normal and Joint push-pull tools. It is controlled by


a ‘joint angle’. The spirit is to keep jointed adjacent faces that show a small deviation,
lower than the joint angle, and round the junction of faces that have a sharp edge.

The objective, or at least the intention, is primarily to serve 3D printing, providing a way
to keep the thickness more uniform for some complex shapes mixing boxy and smooth
sections. In JointPushPull 3.0, the implementation is partial, because the script should also
round the original faces when the shape includes concave junctions.

In the example below, faces participating in the cylindrical section are kept jointed,
whereas faces participating in the box are offset along their normal and joined by a
rounding.

Original shape Round Push Pull

Note: I finally did not implement the mathematical solution for keeping thickness exactly
uniform. The reason is that it does not give aesthetical results when edges angles are not at
90 degrees. Instead, I used an algorithm close to RoundCorner. Still, it may not give a
‘nice’ result (see below in the concave part of the shape).

Fredo6 – JointPushPull 4.3 Page 26 / 40 v4.3 – 21 Feb 2018


A good alternative is to perform a regular Joint Push-pull on the shape and then apply a
RoundCorner:

Joint push-pull followed by a RoundCorner

Round Push-Pull can handle corners with any number of edges. The corner junctions are
however handled differently than for RoundCorner:

Original shape Round push-pull Details of 4-edges corner

The rounding occurrence and shape are controlled by 2 parameters, as shown in the button
palette:

 The Joint Angle is used to determine when to round or to join two adjacent faces.
If their angle is lower than the Joint angle, then the extrusion keeps them jointed.
You can set the Joint Angle via the palette or by typing an angle in the VCB:
- Angle in degrees followed by ‘d’, ex: 30d for 30 degrees
- Angle in radians followed by ‘r’, ex: 0.4r for 0.4 radians (~22.9 degrees)
- Angle in grades followed by ‘g’, ex: 20g for 20 grades (18 degrees)
- Slope in % (i.e. tangent of the angle: 100% = 45 degrees)
Formulas are accepted.

Fredo6 – JointPushPull 4.3 Page 27 / 40 v4.3 – 21 Feb 2018


 The Number of Segments is given for a nominal circular section of 90 degrees.
This is because the number of segments for each rounding is adjusted depending
on the angle of its contributing faces. Therefore a value of 6, means 6 segments for
perpendicular faces (so 24 segment for a full circle). You can set the Number of
Segments for rounding via the VCB by typing its value followed by ‘s’ (for
instance ‘8s’). Note that because roundings are textured, the number of segments is
always adjusted to a multiple of 2.

The example below illustrates the impact of the value of the Joint Angle:

Original shape Joint Angle = 30°


2 edges are rounded

Joint Angle = 15° Joint Angle = 10°


3 edges are rounded 4 edges are rounded

Fredo6 – JointPushPull 4.3 Page 28 / 40 v4.3 – 21 Feb 2018


9. VECTOR Push-Pull
PURPOSE: Offset selected faces along a vector, keeping them jointed

Vector Push-Pull is a straight offsetting of faces along a vector


- specified visually by dragging the direction in the viewport, or
- along axes, local or model, or,
- along a persisted custom direction specified by the user

Vector Push-Pull always keeps faces jointed.

The specified offset length is counted along the direction vector, not the normal of
faces.

1) Specifying the direction in the viewport

Once you have selected faces, you click and then drag the mouse to perform an
interactive push-pull. The faces follow the direction given by the mouse. The origin
point may be important as you’ll be matching a target to determine visually the
direction vector.

You can (and should) use inference to lock the end of the direction vector on a point
of the model. Moving the mouse in the ‘empty’ space of the viewport is quite
misleading otherwise.

For convenience, Vector push-pull offers the possibility to lock the direction by
pressing or toggling Shift. Once the direction is locked, you can freely adjust the
offset (or type it in the VCB).

Here is an illustration. A line has been drawn on the left to serve as a guide for
specifying the target.

Original Model Clicking with origin on


2 faces are selected a corner of a face

Fredo6 – JointPushPull 4.3 Page 29 / 40 v4.3 – 21 Feb 2018


Origin is dragged to Direction is locked (Shift)
the target (top of line) Offset can be freely adjusted

2) Specifying the direction as an axis

You can set the directions to be along an axis by clicking on the corresponding
buttons in the palette.

In practice, you can also use the Arrow keys to specify the direction (Arrow-Down for
NO privileged direction).

3) Specifying and using a custom direction

If you want to set a particular direction, for example, if this direction is materialized
in the model by an edge or a face normal, or if you plan to use it for several Vector
push-pulls in other sessions, you specify a custom direction. It will be preserved
across Sketchup sessions for later re-use.

Just click on the button with a yellow question mark ?. You will enter the Custom
Direction Picker mode. You can later recall it by pressing the C button.

The Custom Direction Picker allows selecting:


- an edge in the model: the direction is the edge line
- a face in the model: the direction is the normal to the face.

Direction based on an Edge Direction based on a face normal

Fredo6 – JointPushPull 4.3 Page 30 / 40 v4.3 – 21 Feb 2018


4) Automatic keeping of last direction in memory

For convenience, the last direction used in a Vector push-pull is kept in memory.

When you pursue with another Vector push-pull in the same JPP session, or invoke
again Vector Push-Pull, or even close / reopen Sketchup and invoke Vector Push-Pull,
the vector direction is locked on this ‘last’ direction.

If you wish to specify another direction, just press Shift to unlock it.

The benefit is that:


- You can use double-click to repeat a Vector push-pull with the same direction
as previously specified.
- You can quickly perform several Vector push-pulls in a row without having to
go through a lengthy adjustment of direction again.

Fredo6 – JointPushPull 4.3 Page 31 / 40 v4.3 – 21 Feb 2018


10. EXTRUDE Push-Pull
PURPOSE: Extrude a set of adjacent faces and preserve their overall shape

Extrude Push-Pull is adapted to the extrusion of shapes embedded within shapes. Joint
Push-Pull will not give a nice result because, keeping the faces jointed will geometrically
create distortion.

Original shape JOINT push-pull EXTRUDE push-pull


Shape is distorted Shape is preserved

In practice, Extrude push-pull is a particular case of Vector push-pull with the vector
computed as the average of face normals. So, extruded faces are always jointed.

On top of the common options, there are 2 specific functions for Extrude Push-Pull:

1) Flatten extruded faces

The top faces generated follow the shape and curvature of the original faces. You
can however impose that they are flattened on the plane of extrusion.

Regular Extrude Extrude with Flattening

Fredo6 – JointPushPull 4.3 Page 32 / 40 v4.3 – 21 Feb 2018


2) Tapering of extruded faces

You can set a Tapering factor that will be applied collectively to all extruded
faces.

This can be controlled by the button in the palette:

Tapering factor of 1.0 means NO scaling.

Tapering factor of 0.0 will generate spikes.

NO Tapering – Tapering factor = 1.0 Tapering factor = 0.6

Tapering factor = 1.5 Spikes - Tapering factor = 0.0

Fredo6 – JointPushPull 4.3 Page 33 / 40 v4.3 – 21 Feb 2018


11. FOLLOW Push-Pull
PURPOSE: Push-Pull faces along the direction of their external borders

This special push-pull mode was introduced by a4chitect in a plugin called Smart Push
Pull. The implementation of Follow PushPull is simply a generalization of Smart Push
Pull to multi-faces and the support of the common options available in all JPP tools
(thicken / push-pull, borders, etc…).

The push-pull is guided by outside bordering edges for outer faces. For inner faces, Joint
push-pull is used.

The following examples illustrate the concept:

Original shape Follow Push-Pull of top face

Original shape Follow Push-Pull of 2 faces

Follow Push-Pull requires indeed that you are clear with the outside bordering edges
imposing directions.

Fredo6 – JointPushPull 4.3 Page 34 / 40 v4.3 – 21 Feb 2018


For convenience, Follow push-pull allows using lonely edges to guide the push-pull.

Original shape – 2 faces selected After Follow push-pull

Fredo6 – JointPushPull 4.3 Page 35 / 40 v4.3 – 21 Feb 2018


12. THICKENER
PURPOSE: Just a No-Frill version of JointPushPull

The thickener is simply a version of Joint PushPull without the options and the button
palette. The idea was to have a simple mode similar to the native Sketchup puh-pull, but
acting on surfaces instead of an individual face.

The default selection mode is Single-Face (and Surface when faces are separated by
smooth/soft edges).

With the Thickener, you can still:


- Select and multi-select face (in Single-Face selection mode), including across
boundaries of groups and components.
- Interactively push-pull by dragging faces
- Set the offset value in the VCB
- Toggle between Thicken and Offset modes by using Ctrl.
- Set planar directions with Arrows.

Fredo6 – JointPushPull 4.3 Page 36 / 40 v4.3 – 21 Feb 2018


13. Other Options – Default Parameters
JointPushPull provides a few options that are defined in the Default Parameters dialog
box. When you change them, you may have to close JointPushPull and reopen it again to
have them effective.

1) Number of faces for auto-generation of geometry

This parameter allows controlling whether you go to the Preview mode or


directly generate the geometry after dragging faces (or modifying any options
like offset, finishing, ….). This parameters must be set based on the performance
of your computer.

A value of 0 means that you will always go to the preview mode.

2) Number of faces and borders shown when dragging and preview

These 2 parameters allows controlling how many faces are drawn in the
viewport when dragging and in the Preview mode. The values should be
adjusted to the performance of your computer.

Fredo6 – JointPushPull 4.3 Page 37 / 40 v4.3 – 21 Feb 2018


3) Show / Hide tooltips in the viewport

For convenience, JointPushPull displays tooltips in the viewport for each step of
the workflow. After a while, you may be familiar with the process, and may want
to disable them in order to gain more real-estate visible in the viewport.

4) Preview on all component instances

When you select faces embedded within a component, the push-pull will also
apply to the other instances of the component in the model if any.

JointPushPull echoes push-pull to all component instances when dragging and in


preview mode. This allows the user seeing the real impact of the operation.

As this is impacting performance on slow computers, you may want to disable this
feature.

Note that the option only affects the visual feedback of JointPushPull. The
geometry will be generated in all component instances.

5) Auto-softening of border edges

Bordering edges properties are determined by the original shape. In particular,


vertices within a curve will generate soft / smooth bordering edges.

However, the generated shape may present sharper angle than in the original
shape or you may not correspond to a curve in the original shape. So, this option
allows performing automatic softening based on the specified angle, regardless of
the original edge properties.

6) Random option for all Push-Pull tools

JointPushPull is optimized for tools which maintain faces jointed, namely Joint,
Vector, Follow.

The Random offset option forces the algorithm to downgrade this optimization,
even for all cases when randomization of offset is not used.

Whenever you need Random for Joint, Vector or Follow tools, just enable this
option and re-launch the JPP tool. You will see the random parameters in the
palette. When finished, just disable the option.

Fredo6 – JointPushPull 4.3 Page 38 / 40 v4.3 – 21 Feb 2018


7) Material inheritance

For Thickening mode, this option allows altering the behavior of the texturing for
borders when coplanar to outside border faces:

Original shape Option is OFF Option is ON


Border material inherited Border material inherited
From top face from adjacent border faces

Note that the middle picture corresponds to the behavior of the native Sketchup
Push-Pull.

8) Transparency for wireframe simulation

When dragging faces, JointPushPull simulates the geometry with a wireframe.


The Transparency parameter allows to set the transparency of the wireframe
faces. This factor is comprised between 0.3 and 1, the value of 1 meaning opaque.
The default value is 0.75.

The idea of transparency4 is to allow to better grasp visually the original shape
when dragging faces.

4
Original idea came from a suggestion by JQL

Fredo6 – JointPushPull 4.3 Page 39 / 40 v4.3 – 21 Feb 2018


14. Limitation and Future Work
In version 3.0, JointPushPull includes some limitations:

1) Texturing on borders with true textures: the texturing is not adjusted to the
proper scale and orientation inherited from the top face. This is better handled in
JPP v2.0.

2) Holes and Embedded faces for Joint push-pull: Holes and faces embedded
within faces are extruded orthogonally. In practice, there should be an option to:
- Either extrude orthogonally
- Or extrude with a scaling adjustment, as in JPP 2.0

Original shape JointPushPull v3.0 JointPushPull v2.0


Hole is not scaled down Hole is adjusted to fit
and does not fit in in the extruded face
The extruded face

3) Intersections: Unlike the native Sketchup Push-Pull, JointPushPull does not create
intersections allowing creating holes in back faces when applicable.

These limitations may be addressed in further versions.

Fredo6 – JointPushPull 4.3 Page 40 / 40 v4.3 – 21 Feb 2018

You might also like