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:
- choose a base outline (circle, ellipse, rectangle with corner radius) or import one from a DXF file or a cross-section of an STL model;
- choose whether the given size is the outer or the inner size;
- choose a figure with depth, fillet and division; the program fits the sizes so that the pattern closes exactly;
- align the pattern with the mouse on a corner or symmetry axis;
- view the outline as a vase in 3D, with twist, scale and bulge;
- export the outline as DXF or STEP, and the vase as a solid STL or STEP;
- save everything as a project.
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.
| Block | Contents |
|---|---|
| (top) | Project buttons Open, Save, Save as and Help |
| Base outline | Shape, sizes, size is, import from DXF/STL |
| Pattern | Figure, 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 |
| Settings | Smallest size (warning limit), point spacing, display (grid, base line, fill) |
| Export | The outline as DXF or STEP |
| Information field | The 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.
4. Pattern
| Figure | Sizes | Remark |
|---|---|---|
| None | - | Only the base outline |
| Rectangle | width, gap, depth, fillet | |
| Square | width, gap, fillet | The depth equals the width and is filled in |
| Triangle | width, gap, depth, fillet | A gap of 0 gives a zigzag |
| Trapezoid | width (base), top width, gap, depth, fillet | The top width is at most the base width |
| Half circle | width, gap | The depth is half the width and is filled in |
| Sine | width (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:
- Enter a count: width, gap and top width are fitted (in the same proportion) and filled in.
- Enter a width or gap: the count is rounded and filled in. The widths are adjusted slightly so that the pattern closes. The actual sizes are shown in the information field.
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:
- Shift+click close to the outline (within about 30 pixels): the centre of a figure is placed exactly on the nearest point of the base line. Useful to put a figure on a corner or symmetry axis.
- Ctrl+drag: the pattern slides live with the mouse along the outline.
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.
| Warning | Meaning 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 reduced | The fillet radius does not fit in the figure and has been made as large as possible. |
| The depth exceeds the tightest bend radius | Inward figures run into each other in the tightest bend. Choose a smaller depth or a rounder base shape. |
| Sharp corner | The 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) removed | The 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 small | The 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
- Mouse wheel: zoom around the mouse. Drag: pan. Double-click or F5: fit.
- The red line is the x axis, the green line the y axis. The grid adapts to the zoom (fine lines, every fifth or second one thicker).
- Grid, Base line and Fill (settings) switch the grid, the dashed base line and the fill colour on or off.
- When you change base sizes the view is fitted again; when you only change pattern sizes your zoom stays.
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
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,DupEdgeon 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).
- DXF: lines, arcs, circles, ellipses, polylines (with bulges) and splines (NURBS) are read. Separate pieces are joined. Millimetres are assumed. Blocks (INSERT) are skipped.
- STL (binary or ASCII): the model is cut. First at half its height; in the field STL section z you choose another height, measured from the bottom of the model (the tooltip shows the model height).
- If there are several closed loops, the largest is used. Below the button you can see how many loops were found.
- The imported outline is centred, made counter-clockwise and starts at the top on the y axis, like the built-in shapes.
- Sharp corners (a kink of more than 25°) are treated like the sharp corners of a rectangle.
12. Working with Rhinoceros
Exporting DXF from Rhino
When saving as DXF, choose these settings:
| Setting | Choice | Why |
|---|---|---|
| AutoCAD version | Release 14 (or 2000) | Release 12 has no splines; everything becomes a polyline. |
| Write curves as | Splines | The curve is stored exactly (NURBS); the program reads it exactly. |
| Use simple entities | on | Straight parts and circular arcs become real lines and arcs. |
| Simplify tolerance | 0.001 | With 0.05 Rhino may distort the curve by up to 0.05 mm. |
| Project to plane | on | Needed 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
- STL only contains triangles of surfaces or solids. For a loose curve Rhino reports "No surface to export"; make a solid first, for example with
ExtrudeCrvand Cap=Yes. - Binary is preferred (smaller, faster, exact); ASCII works too.
- A fine mesh gives a smooth cross-section. The model must be watertight, otherwise there is no closed cross-section.
- Choose the section height where the wall has a clear outline, not exactly at the bottom.
Files from this program in Rhino
- DXF (R12): a closed polyline straight away.
- STEP curve: separate connecting curves; join them with
Join. - STEP solid (outline or vase): a closed solid; get the outline back with
DupEdge.
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.
- An imported outline is stored in the project itself, so the project also works when the original DXF or STL file is gone. If the STL file still exists, it is loaded again so that you can still change the section height.
- The title bar shows the project name, with a * when something has changed. When closing or opening another project, the program asks whether to save the changes.
- A project file can also be passed as a parameter at start-up (for example by associating the program with
.omtfiles). - The file is plain text and the same for the Dutch and English version, Windows and Linux.
14. Keyboard shortcuts
| Key / mouse | Action |
|---|---|
| F1 | This user guide |
| F3 | Switch between 2D drawing and 3D preview |
| F5 or double-click | Fit (2D) or reset the view (3D) |
| Ctrl+O / Ctrl+S / Ctrl+Shift+S | Open / save / save project as |
| Ctrl+D | Export the outline as DXF |
| Mouse wheel | Zoom |
| Drag | Pan (2D) or rotate (3D) |
| Shift+click | Figure centre on this point of the outline (2D) |
| Ctrl+drag | Slide 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 withWhatthat it is "closed"), useExplodeon 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 withxdg-open.