Table of Contents

1. Introduction

This package allows to tween between two or more closed curves in a parameter-independent fashion and without overlaps. Only for Rhino 7 on Windows 10 or 11, Rhino version 7.24 and above (the latest as of November 2022) - but it might also work with prior versions of Rhino, at your own risk. If you experience issue, please try to install the latest version of the .NET Framework 4.8 Runtime (not 4.8.1) from https://dotnet.microsoft.com/en-us/download/dotnet-framework/net48. Both the in-built Rhino and Grasshopper tweeners as well as other components take a very control-point-centric approach. In contrast, this package provides a tweening functionality whose emphasis on the mere curves' shapes is entirely independent on how the curve is controlled or parametrized. Also, the tween curves do not cut the interior curve avoiding undercuts, thus the package lends itself specifically to applications such as general illustration, typography, 3d printing layer design, CNC, landscape architecture etc - typically in landscapes, you don't want overhanging cliffs; likewise, a concrete printer usually has difficulties with excessive overhangs. Furthermore, this package provides the unique functionality tween from one outer input curve to two or more inner input curves, instead of just one. Thus, it can generate curves similar to the Cassini curves, for example. Further functionality that is available on request includes a grasshopper component, output of the textured animation mesh, a high quality option, and the option to tween open curves also, and an API access, output to NURBS curve, ability to be called from within scripts. This plugin accompanies the development of a web publishing pipeline for geometrical finite element applications, aiming at enabling both tech-savy and novice users to quickly prototype, and web-deploy parametric finite element applications to general geometric problems, as opposed to just physics applications. Further examples of such applications include image registration, medial axis extraction, Poisson interpolation, and optimal transfer type problems, see https://mathiasfuchs.com/Tweeners for more info and examples. To view the Tweener toolbar with the icons for the most important command, go to Tools -> Toolbars, choose File-> Tweener, and click Tweener next to the Tweener icon. Caution- To function properly, this plugin has to change your viewport mode sometimes (wireframe, shaded, rendered). By using Tweener, you agree to using it at your own risk. No liabilities / warranties implied. Thank you for understanding. Please let me know what you think about Tweener. Any feedback is appreciated. Contact mathias@mathiasfuchs.com

2. Grasshopper Components

2.1. Components to generate example input

There are a few commands to generate example input data for consumption in the other category of components

2.1.1. TweenerCurvesExample

2.1.2. TweenerCylindricalBrepExample

2.1.3. TweenerBrepNCurveExample

2.1.4. TweenerStartCylindricalMeshExample

2.1.5. TweenerMeshNCurveExample

2.2. Components to produce a Tweener goo (object for consumption in another Grasshopper component)

These components are in complete analogy with the examples

2.2.1. TweenerStartFromPlanarCurves

2.2.2. TweenerStartFromCylBrep

2.2.3. TweenerStartFromBrepAndCurves

2.2.4. TweenerStartFromCylMesh

2.2.5. TweenerStartFromMeshAndCurves

2.3. TweenerLicenseStatus

A component to get the license status, or to apply your license key

2.4. Components that consume a Tweener goo

2.4.1. TweenerCurves

2.4.2. TweenerInfo

2.4.3. TweenerPreview

2.4.4. TweenerToMesh

2.5. Util components

2.5.1. TweenerClosedCurveCountour

2.5.2. TweenerExtractNakedEdges

3. Rhino commands

3.1. TweenCurves2

A function that works almost like the ordinary TweenCurves command in Rhino. This provides a simplified interface and just computes tween curves quickly.

3.2. Tweener_DeviceName

Your device id. Send me this one to become a pro Tweener.

3.3. Tweener_Help

to show the About Box with help

3.4. Tweener_Version

Prints the Tweener version you're on.

3.5. Commands to steer the interactive 2d tween region editor

This is the core functionality of Tweener. n example tween environment is started with the Tweener_StartExample command. You can start your own tween environment with Tweener_Start. The two most important editing commands inside a Tweener editing environment are Tweener_FishEye and Tweener_AddControl. When you are finished with editing the tween curves, the command Tweener_Apply allows to export the tweening operation either to a textured mesh, or to curves. All commands, including the starting and ending commands, can be undone using the Undo-Redo functions. The main 2d editing cycle that goes as follows:

3.5.1. Tweener_StartExample

to start a tween editor example either with this one, or

3.5.2. Tweener_Start

to start a tween editor using outer and inner curves as referenced objects.

3.5.3. Tweener_AddControl

To add control to the tween curves using a point on the outer or inner curve as reference object. Each call to TweenerAddControl allows you to pull in and out the tween curves. Repeat until the tween curves take the shape you want them to take).

3.5.4. Tweener_FishEye

to spread or contract the curves to your liking. The intensity can be set by holding the shift key down while hovering the mouse over the tween region. Mouse movements in the x-direction set the fish eye size, mouse movements in the y-direction set the fish eye intensity which can be positive (pink, spread curves) or negative (blue, contract curves). The fish eye size and intensity are visualised by a cylinder whose radius represents the fish eye size and whose height (positive or negative) represents the fish eye intensity.

3.5.5. Tweener_SetTexture

Set the texture for exporting a tweener with the following command.

3.5.6. Tweener_Apply

to export either the isolines, or the colorful textured mesh shown in the examples below.

3.6. Commands for 3D surface tweening

Tweening in 3d. There is (not yet) a tween editing environment like there is in 2d. In 3d, you have to have a mesh to tween on. There are the following commands:

3.6.1. Tweener_ExampleMesh

A good example mesh to try out the TweenMesh command.

3.6.2. TweenMesh

to tween between the two boundary components (naked edges). This only works if your mesh is topologically a cylinder.

3.6.3. Tweener_TweenCurvesOnmesh

to tween between any two curves on any mesh.

3.7. Tweener_FishEyeOnMesh

undocumented

Created: 2022-11-21 Mon 20:25

Back to main Tweener site