Contour-Studio

User guide for designing an outline with a repeating pattern, and the vase you can make from it

1. What does the program do?

Contour-Studio lays a repeating pattern (rectangles, triangles, trapezoids, half circles, a sine wave ...) over a closed outline, like the vase-like sculptures you see in the 3D design world. You can:

All sizes are in millimetres. Everything is recalculated and redrawn immediately after each change.

2. The screen

The input is on the left, in blocks from top to bottom. If the window is not tall enough, scroll the left column with the scroll bar or the mouse wheel.

BlockContents
(top)Project buttons Open, Save, Save as and Help
Base outlineShape, sizes, size is, import from DXF/STL
PatternFigure, direction, count, width, gap, depth, top width, fillet, shift
Vase (3D preview)3D preview on/off, height, twist, top scale, bulge, steps over the height, vase export
SettingsSmallest size (warning limit), point spacing, display (grid, base line, fill)
ExportThe outline as DXF or STEP
Information fieldThe actual sizes after fitting, lengths, outer size, number of points and warnings

The drawing (or the 3D preview) is on the right, the status bar at the bottom.

3. Base outline

Shape
Circle (diameter only), Ellipse (width and height), Rectangle (width, height and corner radius; a corner radius of half the height gives a stadium shape) or Imported (DXF/STL), see chapter 11.
Size is
outer size (max.): the outermost points of the pattern lie on the given size. For outward figures the base line is shrunk by the depth.
inner size (min.): the innermost points lie on the given size. For inward figures the base line is enlarged by the depth.

The base line is the outline the pattern is laid on. It is dashed in the drawing. The pattern starts at the top centre, on the positive y axis, and runs counter-clockwise.

On a rectangle with a corner radius of 0 (sharp corners), figures that fall across a corner are distorted and you get a warning. A small corner radius (for example 1 mm) gives a nicer result.

4. Pattern

FigureSizesRemark
None-Only the base outline
Rectanglewidth, gap, depth, fillet
Squarewidth, gap, filletThe depth equals the width and is filled in
Trianglewidth, gap, depth, filletA gap of 0 gives a zigzag
Trapezoidwidth (base), top width, gap, depth, filletThe top width is at most the base width
Half circlewidth, gapThe depth is half the width and is filled in
Sinewidth (wavelength), depth (crest to trough)No gap and no fillet
Direction
outward: the figures stick out of the base line. inward: the figures are recesses.
Width and gap
Measured along the base line. The flanks are perpendicular to the base line. On a convex outline, outward figures therefore get slightly wider towards the outside, and inward figures narrower towards the inside.
Fillet
The radius used to round the corners of rectangle, square, triangle and trapezoid, both on top and at the base line. If it does not fit, it is made as large as possible and you get a warning.
Shift [% of pitch]
Shifts the whole pattern along the outline. At 0 a figure sits at the top centre, at 50 a gap. Because the pattern repeats every pitch, 0 to 100 % reaches every position. See also aligning with the mouse.

5. Division: count or width

The pattern must close exactly. The pitch (figure plus gap) is therefore always the length of the base line divided by the count. Which size drives the division depends on the field you entered last:

The information field shows which division is active ("by count" or "by width"). When you change the base outline, that division keeps applying: "by count" changes the widths, "by width" changes the count.

6. Aligning with the mouse

In the 2D drawing, for all shapes, imported outlines included:

In both cases the Shift field is updated, so you can fine-tune it there.

7. Warnings

Warnings are shown in orange at the top left of the drawing, in the information field and (as a count) in the status bar. An error (no valid outline) is shown in red.

WarningMeaning and solution
Figure width / gap / top width / depth is smaller than ...A size is smaller than the smallest size in the settings (default 0.4 mm, for example the nozzle diameter of a 3D printer). Choose fewer figures or larger sizes. For inward figures the narrowing towards the inside is taken into account.
Fillet reducedThe fillet radius does not fit in the figure and has been made as large as possible.
The depth exceeds the tightest bend radiusInward figures run into each other in the tightest bend. Choose a smaller depth or a rounder base shape.
Sharp cornerThe base outline has a sharp corner; figures across that corner are distorted. Use a small corner radius or align the pattern on the corner.
... self-intersection(s) removedThe pattern intersects itself (usually in a corner or tight bend). The loops are cut away so that the outline stays usable, but the pattern does not fit there as intended.
Pitch is very smallThe figures are so narrow that they can hardly be made.

Point spacing (settings) is the largest distance between the outline points along the base line. Default 0.1 mm; smaller is more accurate but heavier.

8. The drawing and the status bar

The status bar shows the pitch, the number of figures, the length of the base line (circumference), the number of warnings and the mouse position in mm.

9. 3D preview of the vase

Switch the 3D preview on with F3, or with the check box Show 3D preview in the block Vase (3D preview). That block is below the Pattern block; you may have to scroll down in the left column. F3 takes you back to 2D.

The outline is repeated in slices over the height. Each slice is scaled and rotated:

Height [mm]
The height of the vase.
Twist [°]
How many degrees the pattern rotates from bottom to top (negative = the other way).
Top scale [%]
The size of the top relative to the bottom. 100 = straight, 80 = tapering towards the top, 120 = wider towards the top.
Bulge [%]
How much wider the vase is halfway up. A negative value makes it narrower in the middle (waist).
Steps over the height
Into how many slices the vase is built. Between two slices the wall is straight. Without twist, scale and bulge 1 is enough; with twist or bulge this determines how smooth the result is (with 60 steps and 90° twist each slice turns 1.5°). More steps is smoother, but slower.
Vase type
solid: a closed body, as a slicer wants it for vase mode (spiralize). hollow: a real vase with a wall and a bottom.
Wall thickness (min.) [mm]
The wall thickness of a hollow vase. The inner wall follows the pattern, so the wall is equally thick everywhere. With scale and bulge the wall gets slightly thicker where the vase is wider, but never thinner than given. If the wall is too thick for the outline, you get a message.
Bottom thickness [mm]
The thickness of the bottom of a hollow vase; the cavity runs from the bottom thickness to the top.
Inner wall
follows the pattern: the inside has the same pattern, so the wall is equally thick everywhere. smooth: the inside only follows the base line with twist, scale and bulge; the wall thickness then applies at the innermost point of the pattern (for inward figures the bottom of the recess). automatic (default): follows the pattern, but becomes smooth when the wall is thicker than the pattern depth or the pattern cannot be followed.

Controls: drag = rotate, mouse wheel = zoom, double-click or F5 = reset. The outside is light and the inside darker, so you can look into the vase from above. For heavy models a coarser mesh is drawn while rotating.

10. Exporting

The outline (block Export)

DXF (R12) ... Ctrl+D
The closed outline as one polyline on layer OUTLINE, in the oldest DXF format (R12), which almost every program reads, including old versions of Rhinoceros. With Also export the base line the base line is added on layer BASE.
STEP ...
STEP as: curve (outline) (default): the outline as lines and B-splines, the way Rhino itself writes curves. In Rhino, join them with Join.
STEP as: solid: the outline extruded over the STEP height into a solid. In Rhino, DupEdge on the bottom edge gives the outline back.

Before writing, superfluous points on straight parts are left out; the shape deviates at most 0.001 mm.

The vase (block Vase)

Vase as STL ...
The vase as a triangle mesh (binary), watertight. Solid with a closed bottom and top, suitable for the vase mode (spiralize) of a slicer; hollow with an inner wall, an inner bottom and a rim on top. How fine the mesh is over the height is set with Steps over the height.
Vase as STEP ...
The vase as a solid with smooth B-spline surfaces that pass exactly through every step, and flat bottoms and a flat top (for a hollow vase a rim with a hole). In Rhino you can continue with it directly. A vase with many figures and many steps can be around 10 MB.

11. Importing (DXF and STL)

The button DXF / STL ... in the Base outline block imports your own base outline. The shape then switches to Imported (DXF/STL), and width and height get the size of the imported outline. Changing them scales the outline (width and height independently).

12. Working with Rhinoceros

Exporting DXF from Rhino

When saving as DXF, choose these settings:

SettingChoiceWhy
AutoCAD versionRelease 14 (or 2000)Release 12 has no splines; everything becomes a polyline.
Write curves asSplinesThe curve is stored exactly (NURBS); the program reads it exactly.
Use simple entitiesonStraight parts and circular arcs become real lines and arcs.
Simplify tolerance0.001With 0.05 Rhino may distort the curve by up to 0.05 mm.
Project to planeonNeeded if the curve is not flat on z = 0 (z is ignored anyway).

If you do use Polylines, set Polyline max angle to 1 or lower: at 10° an arc with radius 25 mm deviates by about 0.1 mm. Draw in millimetres in Rhino and use Explode on blocks.

STL from Rhino

Files from this program in Rhino

13. Saving and opening projects

With Save (Ctrl+S), Save as (Ctrl+Shift+S) and Open (Ctrl+O) you store a design as an .omt file. It contains all settings: base outline, pattern (including whether you divided by count or by width), shift, vase, settings, display and export.

14. Keyboard shortcuts

Key / mouseAction
F1This user guide
F3Switch between 2D drawing and 3D preview
F5 or double-clickFit (2D) or reset the view (3D)
Ctrl+O / Ctrl+S / Ctrl+Shift+SOpen / save / save project as
Ctrl+DExport the outline as DXF
Mouse wheelZoom
DragPan (2D) or rotate (3D)
Shift+clickFigure centre on this point of the outline (2D)
Ctrl+dragSlide the pattern along the outline (2D)

15. Problems and questions

I cannot see the 3D preview.
Press F3 (click in the window first), or tick Show 3D preview in the Vase block; scroll the left column down if needed.
The figures run into each other or loops are cut away.
The depth is too large for a tight bend or sharp corner. Choose a smaller depth, fewer figures, a corner radius, or align the pattern on the corner.
When importing: "No closed outline found".
The curve is not closed (a gap between two pieces), is inside a block, or is drawn in another unit. Close the curve in Rhino (Join, check with What that it is "closed"), use Explode on blocks and draw in mm.
With an STL: "No closed cross-section found".
The model is not watertight, or the height falls exactly on an edge or the bottom. Choose another height or repair the model.
Rhino does not read a STEP file correctly.
For the outline use "STEP as: curve" or "solid". Old Rhino versions do not read plain polylines in STEP; this program therefore writes lines and B-splines, just like Rhino itself.
A file cannot be written.
The file may still be open in another program, or the folder is read-only.
Linux
The program uses no Windows functions and can also be compiled on Linux (pbcompiler -e contour-studio_en contour-studio_en.pb). There the user guide is opened with xdg-open.