Archive for the 'Software' Category

Alibre is Now Geomagic

3D Systems recently acquired Geomagic.  Several years ago they acquired Alibre.  Alibre is a parametric CAD program.  It appears that they are simply re-branding the existing version of Alibre as Geomagic, but will incorporate feature of the Geomagic product line over time.  Here is the basic product line.

  • Geomagic Design Expert $1999
  • Geomagic Design Pro $999
  • Geomagic Design Personal $199

I am also pretty sure that Cubify Invent @ $49 is a further simplified version of “Personal” that allows you to work at the part only level.  A comparison of the upper levels is here.

I have used Alibre and Cubify Invent and find them to be quite capable.  Some day I may loose my easy check out access to Pro/Engineer and these products are on the radar as possible solutions.  I found the even Cubify invent could do a few little tricks that are a pain in Pro/E.

 

Intro to V Carving

In a couple weeks we are going to do a CNC V Carving night at Pumping Station One.  We hope to fabricate a number of designs on the CNC router.  This blog post will serve as a basic introduction to the concept and will help people get artwork ready.

What Can V Carving Do?

V Carving uses a V shaped bit to to “carve” a design into the material.  Because the bit has a v shape, you can cut narrow shapes with the tip or wider shapes near the bottom.

You can even cut shapes wider than the widest part of the bit by doing multiple passes of the bit.  The depth of the cut is proportional to width of the cut, so you need to make sure your material is thick enough.  If you have very wide areas, you can set a depth limit and you can make that area have a flat bottom with a second flat bit.

Normally routers cannot cut square inside corners because you are cutting with a round bit.  V Carving can get around this limitation because the bit can rise up into the corners until it gets to the zero radius tip.

Finishing Tricks

V Carvings can look great simply cut in the natural material, but they can really pop when you put a contrasting finish in the carved areas.  This is a time consuming process and can be difficult to do well.

You can often shortcut this process by using masking materials.  You start by applying a background finish to the work piece.  This is then masked with tape or specialized masking material.  The router then cuts through that as it is cutting the design.  Now, only the cut area is exposed and you can simply spray paint the exposed area.  If the design has multiple colors you can cut one color, paint, remask and repeat the process.

The files should in in DXf, DWG, AI, EPS or PDF  format.  Many programs like InkScape and CorelDRAW can output these formats.  If you have hi resolution bitmap, some of these programs can convert to a vector format.  Feel free to try that, but help with that will be beyond the scope of the session.

The quality of the masking material comes into play with very fine details.  If your design will leave tiny isolated dots of masking, some materials may not stick well enough and break free during cutting.  If that happens, you can manually touch up those areas later.  I like to use Avery Paint Mask, but plain masking tape, adhesive shelving paper and materials for vinyl cutters also work.

What is good artwork to start with

  • Avoid very thin lines lines.  The  material needs to be needs to be perfectly flat and consistently thick for this.
  • Very large areas to cut will take a long time, so avoid them for this session.
  • Multiple colors.  Multiple colors is OK, be each color needs to be separated from the other color so there is masked uncut area between them.

This logo would work.  The red would be the base material and all other colors would be cut and colored.

This one would be very hard to do because of the adjacent colors.

How to bring the artwork to the session.

To save time, the artwork should be as ready to import as possible.  Problem artworks will be pushed to the back of the queue and might not get cut.

The artwork needs to be in a digital, vector format.  By digital I mean you can sent the file electronically.  Vector files are created with actual geometry.  Lines are lines and not a string of pixels.  Scans and photographs are not usable.  If you zoom in and the image gets pixelated, it is not ready to use.  The shapes also need to be closed.  If you have a square, for example, all the corners need to meet or the software cannot determine inside from outside.  Tiny gaps can be closed in the CAM software, but if you can see them, close them.

Try not to be too complex or have large cut areas.  These will take a long time and will limit how many people we can accommodate in one session.  We can still create G-Code, but you many need to cut it at a later date.

If there is time I my cut small PS:One snowflakes for the people who did not bring any artwork.

Material

The idea material is a smooth, pre-finished piece of wood.  It needs to be as least as deep as 1/2 the width of your widest feature if you are not planning a flat bottom.  The material should be as flat and consistently thick as possible or the results can be distorted, because the depth of the cut is so critical.  Avoid oily or wet finishes because the mask material may not stick well.  Plywood does not look well and often interior layers have voids.

Examples

Image From http://www.routercut.com/

 

Image from: http://www.makecnc.com

Web Page G-code Viewer

Try this Web Page G-code Viewer

I met programmer and maker, Joe Walnes, through a few local Chicago maker groups.  He  showed me a really cool web based G-code viewer he wrote to preview his 3D printer G-code.   It used WebGL for super smooth motion of the model.  It also allowed you to drag and drop your own files right into the page.  It worked great, but really only worked with 3D printer G-code.  He posted the code on GitHub.

I have a couple programming projects in the works that need a G-code viewer, so I decided to update his program to handle more types of programs.  Joe had a really nice UI and design pattern for the code, so I left that  alone.  He also helped me out with a few issues as I worked.

G-code Parser

A parser is a bit of code that breaks down text into tokens, or the basic grammer of the G-code.  He was working with very well formatted G-code so his parser was pretty simple.

G1 X5 Y5 Z6 E0.124

I was dealing with really Fugly lines of G-Code like this, so I needed to totally rewrite the parser.

N100G17G91G1X5Y5Z6M03S1000(comment)G1X5;comment

Graphics Generation

Reprap 3D printers basically use G1 (straight moves) for everything.   I needed to add the code to handle G2 and G3 (arc moves).  This was a little tricky because there are no arcs in WebGL.  I had to break them into small line segments.   Joe also treated each Z level as a separate layer.  That is nice for printers, but not for general G-code.  I changed that and the way the color of the lines worked.

A Work in Progress.

It works on all my CAM generated 3D printer and CNC router G-code, but I want to add code to deal with more advanced features that are often hand coded like incremental moves, machine offsets, parameters, math functions and subroutines.

I will post the source code soon.

Usage

You need a WebGL capable browser like Chrome, Opera or Firefox.  I hard to turn on WebGL  in my Firefox.  I got it to run on my Android phone in Opera, but could not spin/zoom the model with the screen controls.

To view your own files, just drag and drop the G-code into the browser.  It will use the zoom settings for the previous model, so if you drop something that is a different size or offset to the side you may need to zoom around to find it.

 

Getting More Power and Cutting Accuracy Out of Your Home Built Laser System

I have developed an inexpensive control system (less than $70) that can be used to both get more cutting power out of a DC discharge laser and significantly improve cutting accuracy for home built laser systems.  The control system implements a control technique known as Pulse-Per-Inch (PPI) control.  PPI control involves pulsing the laser every time the head travels a certain distance.  PPI control allows a CNC laser to produce consistent cuts at the same power level setting over over a wide range of speeds.  In effect, pulsing the laser as a function of distance along a cut decouples the power input to cut from the speed that the head travels.  Therefore, the speed and acceleration of the CNC system have minimal bearing on the cut characteristics.  Furthermore, the unique transient rise response of a DC discharge laser allow PPI to deliver more power to a cut in comparison to the same laser system with just on/off control.

Background and Motivation

A while back, I was active on a forum in which we were discussing the time it takes to turn a laser on and off and how that relates to engraving control.  One of the forum members from Full Spectrum Engineering posted a high-speed intensity spectra for the cheap DC discharge lasers that we use for DIY laser cutters.  I was quite surprised by the spectra.  I expected to see a nice exponential rise to set power level, but what we saw was a rapid rise to a very high power level (nearly double the set value) followed by an exponential decay to a set value.  The Spectrum in question is shown below (credit for the spectrum rests with Full Spectrum Engineering).  The yellow square wave is a 5ms pulse sent to the laser power supply.  The green spectra is the intensity spectra of the laser.  For whatever reason, the magnitude of the spectra is upside down (I think the ground and signal leads were reversed), so on for the digital signal and higher intensity for the laser power spectra are down rather than up.  Anyhow, the spike in intensity is caused by the necessity voltage to start a plasma in a DC Laser.  The laser power supply generates a very high voltage to start the plasma which is stored in a capacitor.  When the signal comes to turn on the power, the power supply dumps this charge into the system and then supplies a nominal (still very high) voltage to sustain the plasma once it is on.

DC Discharge Pulse

Continue reading ‘Getting More Power and Cutting Accuracy Out of Your Home Built Laser System’

MakerSlide Camera Slider Control Program

There has been a ton of interest in camera slider applications for MakerSlide.  A while ago I decided to make a very simple reference design for a motorized slider.  This design only required fabrication of one part.  The rest of the parts are existing components.  The part can be made on a laser cutter, router or even by hand.  There are no tight tolerances and you can use the MakerSlide carriage as a template for drilling some of the holes.  I can sell a complete slider system including motor for less than $120 for a 1 meter setup.  It would only be $10 for each addition meter.  The longest I can ship is 2.5 meters, but I stock the material in 4.5 meter lengths if you can figure out how t0 get it.

I don’t know much at all about this type of camera work so I did not see all this interest coming.  Several people approached me about buying my prototypes and I have sold several of them.  Most of them asked me how to control the motor.  I come from a CNC background so most of my demonstrations were done using CNC software like Mach3, EMC2 or even GRBL.  This has few issues.  The first is many photographers have no knowledge of CNC or G-Code.   The second is the solution is way overkill in cost and complexity for a single axis machine.  The third issue is portability.  This will probably be used in the field where a PC is impractical and power may be unavailable.

I decided to make an Arduino based controller.  Arduinos are good because they are cheap, small and easy to program.  They also use very little power.  I wrote a similar controller for the PIC processor a long time ago and borrowed the basic algorithm from that.  The method used could work for multi-axis machines if you want to steal the code.  The Arduino is. using my Stepper Shield.  I have just one driver installed and in another “slot” I have a bread boarded switch.  The stepper shield is nice because it can act as a mother board for many future features.

MakerSlide: Camera Slider Control Program 2011 CC-A-SA

0 = Set Current Location as 0
S = Stop now!
D = Disable Motor
E = Enable Motor
H = Home (Move to 0)
M = Move to ..(M Dest Speed Accel)
J = Jog until stopped ('J 1' for forward, 'J -1' for reverse, 'J' to stop )
I = Info (show current parameters)
G = Go (start program)
P = Show Program
C = Clear Program
L = Edit Line.  Format: L Line# Dest Speed Accel)  Ex: L 0 2000 3000 1500
      Use 0 for destination and speed to indicate end of program
      Use 0 for speed to indicate a pause.  Dest is pause in milliseconds
R = Set Max Speed
A = Set Max Accel
V = SaVe to EEPROM
? = Redisplay this menu

The controller uses a menu driven interface via the USB connection.  The easiest way to talk to it is though the Arduino IDE serial monitor.  That allows a free, common interface between PC, Apple and Linux,  but most serial terminals would work.  The commands currently work in the unit of stepper motors steps.  It could be easily converted to a real world unit, but at this time it is just easier to use the same unit that the motors use.  My system has 4000 steps per inch.  That makes for a very smooth system.  Extremely slow rates are possible.  It can go 1 step per second at 4000 steps per inch, so it could take well over and hour to go an inch.  You could hack the code to easily drop this by many orders of magnitude.  Each move can have its own speed and acceleration to fine turn the affect you want.

It has several commands to interactively move the carriage around.  This would probably be done to setup the system before the actual “shot”.  These include Move, Home (go to zero), Jog and Zero (define current location as zero).  You can also create a move program.  This allows you to define a couple dozen moves that run sequentially.    These can either be moves or dwells (pauses).  Once the program is entered it can be saved.  This allows you to pre-program the device before you take it in the field.

At power up the motor disables.  This allows you to slide the carriage by hand.  This is handy if you don’t have a PC to do it in the field.  As soon as you make any move or run a program the motors enable.

How it works (programmers only)

The controller uses a timer to run an interrupt function at a regular interval.  The default is 40,000 times per second, but that be be tweaked by changing one program line.  The interrupt function determines if a step should be taken.  If you want to move at 20 steps per second, you allow the interrupt to run (40000/20) or 2000 times before the step is taken.  A counter in the interrupt counts up until it is time to step.  By varying the count on the fly you can create smooth acceleration.  All the math required to smoothly accelerate could limit the interrupt rate, so  the calculation are done once, before the move occurs.  Inside the interrupt is all simple integer counting and a few tests.

 

Source code (Arduino 1.0)

 

 

 

Wiki Page on Slider

Wiki Page on Software

 

Buy one here at the MakerSlider Store

Future Plans

I have several features I want to add.

Drawbacks

Stepper motors draw a lot of power.  I was running my NEMA 17 at 11V and 0.1 amps.  You need a decent battery of 2000-3000 mAH to do a multi-hour run.  Steppers are also notoriously loud.  The camera will  pick up the noise if the mic is close the the motor like on the camera itself.   The motors I have are way over kill and running at less than 10% of their rated current.  I have some NEMA 14 motors on order.  Servo (not hobby servo) motors would be a lot quieter but and lower power, but are more complicated and might require gearing down.

Comments: feel free to comment below or on this forum thread.

Videos



Mach3 Via VNC?

A guy I met at WorkShop 88 is putting together a Maker Faire like event through the local ASME group. It is called the “AMSE Open Source Microcontroller Workshop“. He wants to get a bunch of local open source people to show off their machines and electronics. If you are interested in a meet up, stop by. I can probably get a few free tickets.

I agreed to go, but I don’t like hauling my laser around because I might break something. I have a second laser build going to test the MakerSlide changes. This will be fully functional except for the tube and tube power supply. It will also be run via Mach3 rather than an expensive controller.

The only problem with Mach3 is that you need to haul around a complete computer, with keyboard mouse and monitor. I am already bringing my laptop, so I was trying to figure out a passable way of using that. I know there are options like SmoothStepper and PCMCIA (rarely works) parallel ports, but I did not want to spend any money just for this event.

I have a very small desktop computer with a parallel port. I decided to try putting a VNC server on that computer to see if the laptop could be the display, keyboard and mouse for Mach3. I have used several flavors of VNC, but have found UltraVNC to be my favorite. VNC stands for Virtual Network Computing, but a better description is remote control software.  You basically get to control the desktop of a remote computer.

I installed it as a service so that it would be available as soon as possible. I already had the computer setup to boot right into XP without a login. The server computer did not complain at all about not having a keyboard attached.  I gave that computer and my laptop different static address on the same subnet.  I connected the two computers with an Ethernet crossover cable.  Once the VNC server (the Mach3 computer) booted, I connected with the viewer software from the laptop.

It connected fine and I was able to start Mach3 and run the laser.  It worked quite well and the display update rate was acceptable, even on the DROs.  The only issue I found was arrow key control of the axes was rough.  It took me a little time too figure out the problem.   The axis would start up fine then start to stutter a bit.  I think it worked fine until the key went into auto repeat mode.  If you hit the tab key to bring up the pendant looking thing, you can use the mouse to move the axes quite well.

 

I also hook up my Shuttle Pro and that works so much better than arrow keys any way.

Running G-Code worked perfectly.  It is not a permanent solution, but it met my goal of not spending any money.  It could also work as a simple remote monitor on a running job.

 

Using a ShuttlePro as a Laser Pendant

I have been using a ShuttlePro as a pendant for years on my router.  A pendant is basically a hand held remote control for your CNC.  It allows you to control a set of functions right at the machine.  I typically use it to zero the machine on the part, tweak the feedrate, start/pause/restart the job and do an e-stop.

The router’s pendant is starting to die.  It has been through hell.  I have dropped it about 10 times on the concrete floor.  It has also seen a lot of oil and fine dust.  A couple buttons are getting intermittent.  I have the functions to working buttons, but I was getting worried it would stop working completely.  I could not live without it, so wanted to get a replacement on order.  I found a good deal on eBay ($54) and since they had several, I decided to get one for the laser as well.

The ShuttlePro was designed for video editing.  One thing you do a lot in video editing is jogging the video forward and backward.  Typically you want to race forward until you get close then slow down and even go frame by frame until you get to the desired spot.  Sounds like CNC doesn’t it?  It has three dedicated functions for this.  Full speed forward and back via buttons, variable speed via a spring loaded jog dial and a frame by frame little detented rotator wheel.  It also has a lot of redefinable buttons.  These buttons have clear snap on caps, so you can add labels to them.  I have a Corel and PDF template at the end of the post.  Someone at the Mach3 forum dicovered this product and within days there was a plugin for it.

Setting it up is easy.

Download the ShuttlePro plugin from the Mach3 downloads page.  Place the ShuttlePro.m3p file you download in a convenient place like your desktop.  Double click on it.  That will launch a program that registers it with Mach3.  Plug in the ShuttlePro into your computer.  It uses the built in Human Interface Driverss (HID) so you do not need to install a driver.  It comes with some software to test it, but you must uninstall it before using Mach3.  Start Mach3.

Use the config Plugins menu pick to open the

Make sure the plugin is enabled with a green check.  Now click on the word config to the right of the plugin name.

That will bring up the screen above.  Each button can be associated with any of many functions.  My config is shown above.  You probably want some keys across the top to select the current axis.  I like to have the two buttons to the outside of the central wheels be rapid movement buttons.  It is also handy to be able to lock the pendant so accidental button pushes do not screw up a run.   I used the second button from the lower right.  The rest are up to you and how you use your laser.

Below is a video demonstration on my laser.

Using Vectric Cut2D With A Laser

Cut2D is 2D CAM program from Vectric.  It is designed to quickly and easily import DXF plus several other vector formats and create G Code for CNC cutting.  It is primarily designed for traditional mills and routers.  While I would not recommend purchasing it to only use on a laser,  people who have both a CNC router and a DIY laser will find this to be a very capable and inexpensive product.

I have used Vectric products for years.  I started with VCarve, then upgraded to Aspire.   A forum member recently asked for help using Cut2D.  Vectric was gracious enough to give me free evaluation copy.  This is probably due to the fact that I already own their top of the line product.  They did say that they are not really interested in selling it for laser use only because the program may be confusing to them and they only want 100% satisfied customers.

The Vectric products ship with 100+ pre-made post processors.  There are several flavors of Mach3 post processors that will work right out of the box for most mills and routers.  It is also very easy to customize your own post processor.  I created one for Aspire last year and found that it worked perfectly for Cut2D as well.  I wrote a blog post about it and the file is available here.  All Z movement is removed from the post processor, so the actual Z values used below are not going to affect your machine while cutting.

I am not going to explain how to use Cut2d.  Vectric does a great job of that.  I will just explain the differences when using a laser cutter.

Creating a Laser Tool

The first step is to setup a “tool” in the tool library for the laser beam.  The beam can be thought of as an end mill.  It is basically a cutting cylinder with a fixed width.  The major difference is that it has an “infinite” depth of cut.  In reality most lasers are not going to cut anything thicker than an inch or so due to beam divergence.

Many values you set are just default values and can be changed when you use the tool for a cut.

Tool Name

I called my tool “Laser Beam 0.003″.  If you want to go crazy, you could setup dozens of tools with default values that work well with certain materials.  You could name the tools “1/8 Plywood laser cut” or “6mm Acrylic laser cut”, for example.  This way you do not need to remember what speeds and feeds are needed for each material.

Tool Diameter

Cut2D will use this when calculating how much to offset the cut line from the geometry when cutting inside or outside features.  An easy way to determine this is to cut out a 1 inch square on the geometry lines with no offsets.  Measure the actual size of the part.  The amount you are less than the inch will give you the beam diameter.  If you want to be as accurate as possible, you could define multiple tools based on different materials and thicknesses.

Pass Depth.

You cannot realistically use Cut2D to control the depth of a laser cut.  Therefore, this value is not important.  You do want to make sure this value is larger than any value that you will use when specifying tool paths so the cut is always one pass.  I suggest setting this to a value of 1 inch.  This default value can always be changed when you are setting up a toolpath if you actually want to play games with multiple passes.

Stepover

This does not apply for lasers, because we will not be doing pocketing.  Just set it for 45% to keep Cut2D happy.

Spindle Speed

This value is also not really important at this point.  You could use it to control beam power if your laser supports that.  If your laser can use this for beam power then set it for the number that would yield max power, otherwise a value of 1000 should be fine.

Feed Rate

Again, this is a default number that can be changed at each tool path, so pick number that is close to t typical number you might use.

Plunge Rate

This does not apply so just put in any reasonable value.

Here is what a typical laser might look like.

Usage

I will explain one cut using the wing_spar example file that comes with Cut2D.  The cut will be the inside features of the wing spar.

Select all the inside features and then click the Create Profile Toolpath icon on the toolpaths flyout menu on the right.

Cutting Depths.

These values do not matter.  You just want to make sure the cut depth is less than the pass depth set for the tool.  This will insure that only one pass is done.  Advanced user could of course use this to setup multiple passes.

Tool

This is where you select your laser tool.  Use the edit button to set the actual cutting speed you want.

Machine Vectors.

Use this to tell Cut2D what side you want the tool offset to.  The direction setting (climb or conventional) is primarily for spinning tools, like end mills, but if you care which way the cut goes around the loop, you can change this.

Ramp moves

Don’t use this.

Tabs.

Tabs are primarily used to keep parts in place with spinnig tools, but you might want to take advantage of it to keep light parts from blowing around, or if you want all the parts to stay on the material after cutting.

Outputting the G Code file.

The last step is to output the file using the custom laser post processor.  A copy of the file is available here.

Good luck.  You might want to try a few dry runs with the laser disabled and you hand on the e stop button to make sure it works for you.

Slicer – Google Sketchup Plugin

Slicer3 is a new plugin for Google Sketchup from TIG.  It allows you to slice an object into pieces that can be cut and re-assembled into the part drawn in Sketchup.  This would be great for a laser cutter.

In high school I did several architectural models and cutting the terrain was fun (for a while), but always very time consuming.  This tool would have saved me many hours of cutting and one nasty cut to my index finger.

Here are some images from the Google Sketchup blog that show some terrain being sliced in 3 different ways.

I decided to try a simpler example.  This is a little project box, that I might cut out of Acrylic or foam board.  If you subtract the time spend on screen shots and writing the steps, it probably took about 3 minutes to do.  Here was my process. Continue reading ‘Slicer – Google Sketchup Plugin’

Phlatscript – Sketchup to G-code

This is a plugin for Google Sketchup that generates G-Code from 2D drawings from the folks at Phlatboyz.com.  It is very limited in what it can do, but many people will like the familiar interface of Sketchup.

Below is a video of what it can do.  The code is open source and can be obtained from their forum here.  You need to register on the forum.