Sketchup CNC
-
Hmm... Interest seems to have died down a bit.
-
@noelwarr said:
Hmm... Interest seems to have died down a bit.
Not on my part. I've been on the road for a week with very limited access to the Internet. (Chills, shakes, dry heaves. Maybe I'm addicted.) I came back to a huge pile of work, too. Still, I'd like to see what can be done with this.
-
@noelwarr said:
Hmm... Interest seems to have died down a bit.
Just throw us a bone and the interest will be much bigger
-
Noel,
You may also want to check out http://www.phlatforum.com - the owners designed and sell a 3-axis machine and software specifically made for SketchUp. (It looks like they are now designing a 3d printer since the last time I visited.)
-
I am also keeping a keen eye on this thread
-
Drum roll please.
I'll be uploading my code this comming weekend (In whatever state its in).
@voljanko: A bone you say. How about a little reflective code. I started out as a kid with pascal and Qbasic. I still find it mind boggling to call functions from themselves. You've just gotta love that OOP style. What a break through.
def gather(target, bundle = self, transformation = Geom;;Transformation.new) result = [] entity = bundle.entity if (entity.is_a? Sketchup;;Group) || (entity.is_a? Sketchup;;ComponentInstance) || (entity.is_a? Sketchup;;Model) transformation = (bundle.entity.transformation * transformation) if bundle != self if target == bundle["type"].to_s + bundle["execution"].to_s result.push [bundle, transformation] end bundle.entities.to_a.each{|ent| gathered = gather(target, Bundle.open(ent), transformation) if gathered != nil result += gathered end } end return result end
-
@noelwarr said:
I started out as a kid with pascal and Qbasic.
I started with the Basic commands written on the rubber buttons of ZX Spectrum
Anyway,we have a Roland cnc router in the office so I can make some tests of your plugin.
Hope it will not cut itself -
DISCLAIMER> The following code will not work for you "out of the box". First, you need to edit minivistii.rb to refference the other files correctly. Then you need to know how the four buttons work (see the readme file). Then edit the postprocessor.rb to suit your machine.
If you want to contribute, let me know. There are a few things I should explain about the approach I've taken. The Bundle class also needs to be explained.
If you don't know Ruby I sugest you wait a couple of months for me to improve the script.
Well, as promissed http://code.google.com/p/minivistii/source/browse/#git%2FMiniVistii
Use at your peril.
-
Thanks Noel for putting up your efforts so far. I hope that other programmers will be able to row in and help to get this open source ruby developed to a level that will render it useful.
Mike
-
Thanks for the encouragement Mike. It's already useful to me . As I mentioned before, Sketchup isn't really meant for CAM. Precisely because of this you can do things with it I have never seen a CAM application do...
With the plugin I can draw a few connected edges, declare it as a toolpath and then copy and paste this operation around my workpiece, stretching, scaling and rotating it as I wish. Very flexible.
-
Yep, I've been using SU since v1 and hardly a week goes by that I don't see some new use it has been adapted for. Maybe not ideally doing the job but still doing the job in some manner.
I wish I could offer actual productive help on this project but my programming skills are 0! Hopefully others will row in and get involved
-
Hello Noel,
I tried to have some g-code from your plugin.
After selecting the 2 vertexes with the 2nd button (the model must be edited to select vertex),all the edges has been colored black.
Then with the 4th button (for generating code) I get this error in the console:
Error: #<NoMethodError: undefined methodeach' for nil:NilClass> C:/Program Files/Sketchup8/Plugins/minivistii/concepts.rb:191:in
initialize'
What goes wrong?
I would like to test the g-code on the simple xyz router to engrave something.What tool and procedure should I select?
Congratulations for the plugin,the code seems to be very well structured.
Hope your plugin will be useful also for others. -
Hi there voljanko.
I'm really pleased you're giving it a go. Don't worry, we'll get it up and running in no time. I've had a look at where the error is coming from and I think there is something strange about the way you have declared your toolpath. Hardly surprising considering the fact there are no instructions, no icons and no nothing. I have written a little article in the wiki of the project. Try following those instructions. If you think you've done it right and it's still giving the same error send me your skp file and I'll take a look.From your error I guess the following is the case. You have a group with a bunch of edges that represent your toolpath. The toolpath however is actually defined by the vertices. If there is a vertex in the group that isn't part of the toolpath the method fails. There are a number of reasons this might happen.
Engraving should be easy enough. Check out this 6 month old post. I think it was about 50 lines of ruby code. It was just an experiment but ever since this project has been bubbling away in my mind. In the photos you can see a sketchup model, the gcode generated from a small script and the finished product.
https://plus.google.com/u/0/106243199685455140135/posts/3rq4Zep9V5b
Thanks again for giving it some time voljanko
-
Jeee,it's working now,I have some g-code!
First I have misunderstood the concept of the toolpath.Your plugin is only accepting lines for toolpath.If I want to declare anything else (shape or body) is giving me that error.
It's a good start.Now I have to check if the commands and coordinates in the code are compatible with the router.
Thank you again for your plugin.
I think it is a good start platform for a standard Sketchup to CNC plugin. -
Brilliant!
There is a good chance it won't be compatible with your CNC router. But don't worry, if it isn't, I'll write a simple postprocessor for your machine. A simple postprocessor is what this plugin needs to get others to start tinkering around with it. Let me know how you get on
-
I made my own CNC machine using a x2 mini mill... unfortunately, I moved and the machine is still siting at my parent's basement.
I'll keep an eye, but can't contribute testing right now
-
Oops...
Just realised a problem with the plugin. Workpieces seem to be taking their origin from the model's origin. Should be an easy fix. Don't know why that's happening. Probably a last minute change before I committed and pushed my code. I'll look into it this weekend. Meanwhile, for testing purposes please position your workpiece origins on the model origin. Thanks.
-
Ok please tell me how to install this and make it run.
-
Hi there dropout.
It's a plugin like any other so you just stick the relevant files in your Sketchup plugin directory. The next time you start sketchup they will be read and executed automatically.
That said, if you don't feel confident toying around with the code, it's probably best you stay away from this code for the time being. It's all quite exerimental at the moment and the user interface is unfriendly to say the least.
Also, you're probably wondering how to download the program. Well, you can't the way you would other programs. What I have uploaded is the repository which allows others to contribute to the source code. If you're still eager but don't want to install GIT you could just copy each file individually creating necessary folders, etc. Good luck
-
Noel, excellent start on a really interesting project.
I grabbed the code and notice a couple of things immediately:
a) you've used some words that would need translating before I had a clue what was going on ('cuchilla', 'graus', etc)
b) you've done something I've seen done many, many, times in Smalltalk and Ruby etc - made filenames by concatenating literal strings including the directory separators. Bad move, it makes for OS specific code when you don't want it. There should be useful methods to build a suitable path that avoids that issue. A quick google suggests using things like File.join instead of pwd + '\' + foo
Advertisement