jSKETCH - Part 2

date:Feb 25, 2009 @ 13:42

jSKETCH is a proof of concept that explores how well, or otherwise, it is possible to have a lightweight client application that can be used for creating 3D models.

Part 1 discussed the necessary development components for creating the client-side application. This section will describe the necessary server-side support that provides the modelling generation capabilities.

The basic principle being followed is that the client generates a 2D sketch. This is converted into a series of modelling instructions which are sent to the server. The server, currently running an Apache server, processes the instructions and generates a 3D model. The model is translated into a series of facets which are returned to the client for display.

Here is the simple expression used to extrude a rectangle into a box:

...test4.pl?obj=rectangle(10,100)(120,20)]&action=extrude&r=5&extrude=150

The client invokes a Perl cgi script on the server to process the modelling instructions using SolidWorks. The model is generated and a graphical representation is produced and returned to the client for display.

This type of communication is sufficient for prototyping purposes and can be represented in an even more compact form using binary encoding if necessary. Using SolidWorks as the modelling engine is also sufficient for prototyping purposes, but there is currently no mechanism in place to avoid access conflicts.

It will work on Windows platforms (both XP and Vista), the Ubuntu based Mini9 and Mac OSX.

Launch it from the web address

http://xps-15/lab/jsketch

_images/launch.png

and select the launch button.

This will install any missing components that are required to run the client application on your machine. On Windows machines it may require that you install the Java runtime components which is automated.

Starting the app from this web-page, using web-start, will ensure it’s always up-to-date. If I change it, the system will automatically download and run the current version.

Pretty basic functionality is provided at the moment (i.e. a little fragile), although it will allow you to create multi-body parts, extrusions or revolves, and I may add some more functionality later.

When creating a revolve you need to create a construction line in the sketch to define the axis of revolution.

_images/jsketch-mac.png

Viewing control active when in the 3D View pane are

  • LMB to Rotate,
  • MMB to zoom and
  • RMB to pan.

NOTE:

On Mac OSX, use the link

http://xps-15/lab/jsketch/launch.jnlp

and select to open with webstart.