Cloud Software Techniques

Decorative Panels using Variables in Onshape

Recently, I noticed some decorative wood panelling and thought it would be an interesting exercise to create them, or something similar, as a 3D model using Onshape. The technique I’m going to use could be equally applied when creating fretwork or trellis.


I’ll take advantage of the symmetry in the design to simplify the geometry that I need to create and use the recently introduced “Variables” feature in Onshape as parameters to control the overall size and allow different designs to be easily created.

My design consists primarily of intersecting circular arcs which will be extruded to create a flat panel. A basic shape will be created and use the “Linear Pattern” feature to create the panel. Due to the symmetry in the basic shape, I only need to create a quarter which can then be mirrored to produce the basic shape.

Use the Variable command from the toolbar


to create variables for:

Diameter – the overall size of the basic shape, initially set to 100mm.



Thickness – the thickness of lines used in the shape, set to 2mm.


Variables are created as features and referenced by #name, in this case #Diameter and #Thickness. The value entered for the variable can use expressions, such as #Radius = #Diameter/2 but it remains unclear how extensive these can be (experiment for yourself).

Create a sketch, I’ve used the “Top” plane and will use the top right quadrant (origin at bottom left) to define the geometry.

Create horizontal and vertical construction lines and dimension their distance from the origin specifying the variable #Dimension as the value for the dimension. The dimension will be displayed showing the value of the variable.


Dimensions defined using variables will be displayed showing the result of the expression. Click on the dimension to view/modify the value of the variable.

Proceed to create the remain geometry. Adding dimensions as necessary to ensure that the sketch is fully constrained.




Extrude the sketch to create a solid


Mirror the part to create half the shape.


Mirror the part to create the basic shape ready for patterning


For the panel create 2 additional variables

#Horizontal – the number of basic shapes to pattern in the “x”-direction set to 2.

#Vertical – the number of basics shape to pattern in the “y”-direction set to 2.

and use the Linear Pattern tool to create the final pattern.


Change the panel by sinply modifying the variables to create different results


Modify the sketch to create more complex patterns



Here’s the finished Panel matching (or at least close to) the original image



Variables are a useful addition to the functionality available in Onshape and could have been implemented to form the basis for a future fully featured macro programming language which may be made available for users. They can be used to simplify the process for non CAD literate users when modifications are required to the model.

Techniques Tools WordPress

Archiving a WordPress Blog

As part of my annual spring-clean, I decided to archive some of my old WordPress blogs which I no longer update and will give up the related domains.

There are a number of different ways in which you can archive the blog, for example, you can simply dump the blog database, export the blog posts and save all the media files you may have used with the blog. This allows you to regenerate the blog if you so decide in the future,

Another alternative, is to simply save all the articles in a pdf file or multiple pdf files – an easy way to do this, in the Chrome browser is using the “RMB … Print option on the page you want archive and select the “Save as PDF” option. If you want to save the whole blog in this way, simply ensure that all the posts/articles are currently being displayed when you print the page. (This may not be practicable for blogs with a lot of posts)

While thinking about the different possibilities, I toyed with the idea of converting the blog into a linked set of static HTML files and discovered the really-static plugin for WordPress.

The really-static plugin will generate a static, HTML version of a WordPress blog. In addition, it will make  changes automatically to the static version of the blog when a post is published, edited or deleted.

In my case, I only want to generate a static HTML version of the blog, but because of the possible performance improvements in serving static HTML pages over the usual generation mechanism, I may use it in conjunction with my live blogs too.

Hints/Tips Techniques

Fingernail View

Mobile devices using touch screens have a variety of sizes and resolutions but the one thing that remains more or less constant is the average size of a fingertip which has a contact area of around 6-10mm. This makes precise positioning of objects on a touch screen, such as a cursor, a lot more difficult using a finger than it is using a stylus which has a smaller area of contact (or a mouse on a desktop machine).

This is particularly noticeable, for example, when sketching lines in a CAD application on a touch device.

My solution is to propose a “fingernail view” which is used to display the area of the screen under the finger as the finger moves across the screen. Rather than having a fixed location on the screen, the fingernail view is located slightly offset from the finger position on the screen and moves with the finger as the finger is moved over the screen. (This is simlar to the approach used for viewing text which lies under the finger on a number of touch devices).

Here is an example of the problem and the potential solution – the “Fingernail View”.

In a sketching application, here are 2 lines and a cursor shown as a cross,

When a finger is positioned on the the cursor, as shown by the sphere, it completely covers the cursor which becomes hidden from view.

Similarly, if a finger is moved over the intersection point you can no longer see the precise location of the intersection point.

A solution is to display a magnified view of the area of the screen which is hidden by the finger. As the finger is moved across the screen the user can see the area of the screen being obscured by the finger.

This mechanism, when combined with other techniques such as snapping, helps a user to locate or position items more precisely on a touch screen.

Possible enhancements include providing the ability to vary the magnification factor and/or the area covered by the fingernail view. (Of course, the grahics could be improved to look more like a magnifying lens too).

Interestingly, although originally intended as a helper for touch devices, I have also found the technique useful on traditional mouse driven desktop displays.

Try it out for yourself in KML Systems Labs at

Fingernail View


Shake n Sense

A novel approach to eliminating interference when 2 or more Kinects are used pointing at the same scene.

Shake’n’Sense: Reducing Interference for Overlapping Structured Light Depth Cameras

Due to appear in ACM SIGCHI, May 2012, Austin Texas

Shake ‘n’ Sense is a novel yet simple mechanical technique for mitigating the interference when two or more Kinect cameras point at the same part of a physical scene. The technique is particularly useful for Kinect, where the structured light source is not modulated. It requires only mechanical augmentation of the Kinect, without any need to modify the internal electronics, firmware or associated host software.

( video link: )