Grasshopper

algorithmic modeling for Rhino

Hi all,

I have been consolidating ideas on making a CAM plugin for GH. This is due to the fact that more and more RH/GH people are working with a CNC router, with a plugin that adds the ability to parametric create 2D or 3D cuts are definitely helpful.

I'm still at the stage of drafting the goal and audience description for the plugin. and the next stage is to programme it. I don't have all necessary skills yet but will try, hopefully someone will join the team.

Goal (Draft)

A plugin that is easy enough for most GH users to use. It aims at creating toolpaths in a parametric way, allowing reuse of definition settings, quick design change, and able to process large batch of information without error.

Audience (Draft)

  • GH users who designed structures in GH, own or work closely with a CNC machine.
  • CNC machine owners who need a easy to use and reliable CAM package. Esp handling large batch of cuttings.

Functions - Toolpaths

  • 2D , 2.5D Curve following - with multi-level 
  • Drilling, Drilling cycles
  • 2.5D Profiling - with multi-level 
  • 2.5D Pocketing (Next Stage)
  • 2.5D Facing (Next Stage)
  • 3D Roughing (Next Next Stage)
  • 3D Sweeping (Next Next Stage)

Functions - Outputs

  • Direct NC File Generation (Easy to use header and footer info)
  • Multiple possibilities for postprocessor (Cater different machines)
  • Toolpath optimization for unorganized input
  • Support multiple tools (works with ATC machine)
  • Per toolpath based control for lead-in, lead-out methods, feed rates
  • Per toolpath based definition of cutters.
  • Combine multiple tool paths in NC file.
  • Handles data trees of input

Implementation

Geometry engine will rely on Rhino SDK (Offsets, Transformations, 3D)

Most logic can be written in VB.net (I'll test write as custom VB component)

Package distributed as a plugin (I don't know how to do that at the moment)

---- On going edits to the post as ideas unfold ----

Todo List

  • Make an action plan on mile stones for the software development
  • Make a list of the required programmers role and who to fulfill it.
  • Start UI / logic design, create dummy scenario (usage case study) for brainstorming.
  • Discuss and decide on whether Open Source or not
  • Study and compare existing CAM software on market. (eg:MasterCAM, RhinoCAM, V-Carve Pro,MadCAM)
  • Study other plugins and look for potential to collaborate or integrate and to clearer define this project's stance. (eg:Beaver,Lobster,CAMel)

Views: 11427

Replies to This Discussion

Where is your sense of adventure?  I agree, but at the same time think that it could make for a more seamless way of controlling the machine.  

I think you are getting the machine control and the generation of toolpaths mixed up.  My understanding is that Victor wants to create a CAM plugin..ie one that can generate useful tool paths that can then be sent to a controller such as Mach 3 or whatever you happen to be using.  

I completely understand what Victor is trying to do, but another piece to this could be developing a controller that runs the Gcode you just generated.  

Sorry..I had read the response to your initial post without seeing what you had written!  At any rate, controlling a CNC machine with a PC is always going to have limitations based on the pulse chain that it can send out.  Best to have a dedicated control for this.  Mach 3 is pretty good for what it is, but there is a reason that nice commercial machines end up with their own controllers that are RISC based.  If you are using Mach3 currently, and you are interested in the advantages of having a DSP based control, which includes the ability to have a true closed loop system (yes even on a stepper based system), then you should check out Dynomotion Kflop (www.dynomotion.com).  Come to think of it, your idea of having Grasshopper be a "control" of sorts could be easily accomplished with a Kflop board, as you are free to do what you like with it so long as you understand C and/or .net.  

I am actually entertained by the fact that you can drive machines with GH directly. However it might be out of the scope of what this project is trying to achieve.

Back some time, I have made a polargraph project with GH directly driving a Arduino through a DNC approach. Where lines of motion code is passed as strings via Firefly to Arduino, an Arduino sketch will phrase the input to a motion profile and pulse generation.

Direct pulse generation from GH is a bit far fetched considered the timing issues. But a DNC approach will probably satisfy the apparent desire to have direct linkage from GH to Machine. There are not many DNC controllers out there though, not sure if GRBL is one of them, but that is more DIY approach. 

I am in no way against adventure just running any cnc could be daunting. So you want to generate pulses using grasshopper? I do not know any other insect so versatile! 

Yea, that might be quite risky... but let's wait what David has to say about it.

Ultimately, I think everyone is interested in promoting the design environment and workflow that grasshopper allows for. I think the "seamless" aspect of grasshoper allows for plug and play experimentation, which, in many ways, is a low risk high reward. As thing become more physical, the risk increases. I know when it comes to printing projects, I'm too quick to export/print and have incurred high costs and waste in printing, so adding some layers of safety could prove to be helpful.

Does anyone here have any experience with DIY CNC machines? A plug-in like this and a capable DIY machine (maybe http://buildyourcnc.com/) seem to go hand in hand.

I've got a CNC router that I built myself.  I use Rhino and Madcam for tool paths as well as VCarve Pro.  The machine is controlled with Mach3.  It all works quite well for what it is. 

Hi all,

Because of work, I have to quickly put together a script that fulfils this CAM purpose. I have scripted in custom VB components directly in GH, and made it worked for "Curve Follow" and "Drilling". I have already tested it on my company's machine, which worked with some minor bugs.

Since I have never developed any GHA components, scripting things in the custom VB component box is all I know. I made this super fast, so everything is bare minimum.

I have placed some comments into the canvas explaining the things I have do, and what I think is right for the development next step. I am planning to continue with the todo list above, and research on the existing plugin before continuing.

If you are interested, please download and have a look and comment back. Thank you.

The script goes with a demo file, which is a piece of equipment (a rack) to hold plywood in my company's workshop, made from 6 sheet of plywood. Tool path involves profiling (Offset is manually done in Rhino) and drilling, this will demonstrate the efficiency and power of multi-operation and multi-sheet calculation. The board rack is designed by Ryan Tubby from Tasmania.

Attachments:

Should I open a "group" in this forum to have the discussion there, or later?

RSS

About

Translate

Search

Photos

  • Add Photos
  • View All

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service