Created by: gwideman, Jul 13, 2012 5:16 am
Revised by: gwideman, Aug 2, 2014 10:31 pm (20 revisions)

Overview

This page and subsidiary pages discuss the LaserCut software produced by Leetro, which currently seems to be the only complete way to drive a Leetro laser cutter control board.
An examination of LaserCut is of interest from several angles
  • How to bypass? The examination might lead to an understanding of how alternative software could bypass LaserCut software and communicate directly with the Leetro controller.
  • How to harness via API? If LaserCut is providing some complicated or secret sauce, then it might be possible for alternative software to use a LaserCut API to drive the Leetro controller. What APIs or points of intervention might there be?
  • Enumerates functionality needed: LaserCut provides an example of the software functionality and user interventions that this company thought necessary to provide. These are important considerations for developers of alternative software.

License and dongle required

For those wanting to examine the software: the full software supplied on CD with the laser cutter requires a license (which you get with the laser cutter) and a supplied USB security dongle to operate.

Versions

Judging by Google, the version of LaserCut that is widely used as of 2013 is LaserCut 5.3. There does not seem to be a large number of previous version numbers, v5.1 is the only one I have see widely mentioned. However, there are a succession of versions within "5.1" or "5.3", coordinated with particular versions of the Leetro 6515 controller's firmware. (This is the first clue that the communication exchange between LaserCut and controller is finer-grained than might be hoped.)

Downloads

Software

  • There is a CD supplied with the laser cutter hardware (see Jan for further info on that), however certain downloads might be useful for partial examination of the software.
  • Leetro downloads.
    • http://www.leetro.com/down/54.html but it's in Chinese, so...
    • Go to google translate, and supply the address: http://www.leetro.com/down/54.html
    • Note the section "Supporting the motion controller - MPC6515 Download"
      • MPC6515V4.1.2.3 (firmware upgrade package, and application software)
        • This includes the entire installation, including LaserCut software, and a demo version of it, plus drivers and firmware. However, some of the dialogs are in Chinese, which, in the Hurricane-provided install, are in English.
  • Rabbit download
  • Keep on searchin' google.

Documentation

Installation Issues

I have carried out the LaserCut installation several times on Windows 7 64, using variously the Leetro download or the Hurricane-provided installation. On none of these occasions did the installation actually complete (always ended with a Windows "installation did not complete" dialog). However, in each case the main LaserCut software did get copied to the intended target directory (default is non-conventional C:\LaserCut53\), and could be run by clicking the executable. (I attribute the installation troubles to not having a dongle installed, but in the case of the Leetro download versions it could be because I guessed a button wrongly on one of the Chinese dialogs.)
  • Where I installed the Hurricane-supplied software on a laptop, without a dongle, the install didn't complete, but later we plugged in the dongle and laser cutter, and it worked fine.
  • The installation was only able to set up the plugin for CorelDRAW in the case where I had CorelDRAW X4 installed. For cases where CD X5 or X6 is present, no plugin.
    • See later comments about the CorelDRAW plugin. Basically the Leetro-supplied components don't properly follow the Corel plugin conventions. A manual installation would be possible, if that's of interest to someone.

Exercising the software

The LaserCut software is provided with the laser cutter hardware (in our case, Hurricane cutters) on CD. It comes with a dongle ("SoftDog") which is required to run the software. This, of course, greatly limits the usability of the software -- there is no straightforward way to prepare files using LaserCut, except on the PC that actually runs the laser cutter.
Workarounds:
  • Demo version: The LaserCut installation includes two main executables: Lasercut53.exe and also Lasercut53_Demo.exe. Lasercut53.exe immediately presents a dialog complaining about missing dongle. However, the Demo version can be run and exercised, but has some limitations.
    • Most of the UI works, so it's a useful vehicle for studying the basic operation of the software, while trying to make sense of the manual.
    • Among the salient limitations, I think the intent was to prevent saving and loading Lasercut data files, as the Save and Load functions don't operate. However, the "save on file close" functionality is still there, as is the ability to create output files for the cutter. Both of these are useful for studying the operation of the software. (Though lack of ability to load a LaserCut file is a serious shortcoming.)
  • Remote desktop operation: Conceivably, you could set up Lasercut53 on a machine that permits remote desktop login, to allow operation of the software remotely. If the machine was running Windows Server that might permit multiple users at once to prepare files. There would be some hazard that remote users would launch actual laser operations, which seems like trouble waiting to happen. I have not tried the multiple login scenario; it's conceivable that Lasercut53 prevents multiple instances running at once.

LaserCut main program overview

(See expanded overview here.)
Lasercut is a drawing program with additional features that provide detailed control of a laser cutter to perform cutting and engraving. To these ends, the features include:
  • Drawing surface onto which can be placed vector shapes such as lines, rectangles, ellipses and so on. Bitmaps can also be placed (to be used for engraving operations). These drawings can be saved and then loaded in a later session.
    • Drawings can also be imported from files of other formats, such as CorelDRAW and Adobe Illustrator.
  • Panels and dialogs in which to set up details needed for the laser cutter, such as
    • Overall laser cutter configuration parameters
    • For the current drawing, association of particular speed and power parameters to particular colors of line
    • X-Y origin point
    • Configure how the contents of the current drawing should be replicated in X and Y directions to cut multiple pieces
  • Panel and dialog with which to perform some immediate actions on the laser cutter
    • Move home, job, fire laser (?)
  • Panel and dialog with which to convert the current drawing to laser cutter instructions, send that job to the laser cutter, and run it one or more times.

PrintDriver, CorelDRAW plugin overview

One of the DLLs in the Lasercut package is PrintDriver.dll, which is the basis of plugins for CorelDRAW, and, I believe, Adobe Illustrator and AutoCAD.
PrintDriver is essentially a version of the LaserCut application, minus editing capability, which exposes a small number of functions via COM Automation so that it can be invoked from VBA (or other scripting means) from within CorelDRAW (or other apps).
In CorelDRAW, the Lasercut installer should install a toolbar for invoking the Lasercut output functions, whose buttons invoke Lasercut-supplied VBA routines. These routines save the current CorelDRAW document (in AI format), start PrintDriver, and tell it to load the just-saved AI drawing. PrintDriver presents a dialog which looks like the Lasercut application (minus editing), and from there the user can set the color = speed/power associations, send immediate commands to the laser cutter, and ultimately compile and send the cutting/engraving job to the cutter.

Issues with CorelDRAW plugin

Incorrect UI configuration

The CorelDRAW conventions for adding UI elements are as follows:
Much of the CorelDRAW UI is specified in XML format in a file called DRAWUIConfig.xml. Plugins are expected to provide an XSLT (XSL Transform) file which specifies the changes they want to the UI, and is supposed to be used to transform the original XML data. By complying with this plan and providing only the changes, the plugin has some hope of working in successive versions of CorelDRAW, and playing well with other plugins.
Instead of providing such an XSLT file, instead Lasercut provides a complete replacement DRAWUIConfig.xml files (actually named with CorelDRAW version number suffix, 14 = X4 being the latest as of the date of the plugin). These do not work with subsequent versions of CorelDRAW. However, since the additions to the UI are minimal (one toolbar, four buttons), it would be straightforward to make it work, either by adding the Lasercut UI to a newer DRAWUIConfig.xml, or by creating a proper XSLT file.
Even without the toolbar and buttons, the Lasercut-supplied VBA procedures can be installed and then invoked from the CorelDRAW VBA environment. "Installation" consists of copying Lasercut's GlobalMacros_14.gms file to c:\Program Files (x86)\Corel\CorelDRAW Graphics Suite X6\Draw or equivalent -- look for CorelDRAW's existing GlobalMacros.gms file.

32/64 bit issues

In a small amount of experimentation, it appears that 64-bit CorelDRAW VBA is not able to call a 32-bit DLL, or requires some additional magic. So for use with Leetro's LaserCut PrintDriver, use 32-bit CorelDRAW.

Subsidiary topics

Additional pages cover more detailed topics:
  • Software overview: Overview of LaserCut software functionality
  • Software components: description of the Lasercut software structure, the constituent components and their relationships.
  • PrintDriver: discusses this DLL which provides plugin "print directly to the cutter (sort of)" functionality for CorelDRAW and other applications
  • Driver DLL APIs: This page examines the roles and APIs of the DLLs which drive different models of laser cutter, particularly mpc05ls.dll and CommM05.dll which pertain to the MPC 6515 controller card.
  • Drawing DLLs COM API: This page accounts for the DLLs which provide Lasercut's drawing environment
  • Possible interventions: Having examined all parts of the application structure in the above pages, this page discusses the merits and difficulties that a custom application would encounter in trying to interact with different points in Lasercut's processing steps.