• Login
sketchucation logo sketchucation
  • Login
πŸ€‘ SketchPlus 1.3 | 44 Tools for $15 until June 20th Buy Now

Sketchup CNC

Scheduled Pinned Locked Moved Woodworking
90 Posts 28 Posters 466.2k Views
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • N Offline
    noelwarr
    last edited by 29 Mar 2012, 11:13

    I've almost finished developing a plugin that extends sketchups capabilities into a rudementary CAM application.
    It consists of four magic buttons

    1. Decalare a component instance as a "workpiece"
    2. Convert a set of edges into a toolpath
    3. Create a cylinder representing a hole
    4. Generate the Gcode.

    I know sketchup isn't really meant for CAM but it's free and easy to use. I've geared it towards a 3 axis woodworking cnc machine with multiple tools but I'm sure it could be adapted to other manufacturing processes. The really fantastic thing is that with dynamic components you can have a whole wardrobe's gcode generated automatically. It's a bit fidgity but I'm getting there

    I was planning to make it opensource but I'm not really sure if there is any demand out there. If it's just a couple of people I'll be more than glad to just email the files. So, anyone?

    1 Reply Last reply Reply Quote 0
    • D Offline
      Dave R
      last edited by 29 Mar 2012, 12:03

      Noel, I haven't got a CNC router but I have a friend who does and he's been talking with me about a collaboration where I do the drawings and he uses them for his woodworking projects. I'd be interested to see how your plugin works and if it could work with his Shopbot. I think I know of some others who might find it useful, too.

      Etaoin Shrdlu

      %

      (THERE'S NO PLACE LIKE)

      G28 X0.0 Y0.0 Z0.0

      M30

      %

      1 Reply Last reply Reply Quote 0
      • D Offline
        d12dozr
        last edited by 29 Mar 2012, 14:16

        That plugin sounds like the cat's meow for makerspaces. I recently got access to a Shopbot via a local makerspace , so I'd be interested. I bet many makerspaces/hackerspaces would be interested in it. Here's a list of them throughout the world: http://hackerspaces.org/wiki/List_of_Hacker_Spaces

        3D Printing with SketchUp Book
        http://goo.gl/f7ooYh

        1 Reply Last reply Reply Quote 0
        • E Offline
          EscapeArtist
          last edited by 30 Mar 2012, 04:04

          • 1 on the Makerspaces. If I ever get some extra $$, my number one purchases are a DIY CNC router kit and/or a Makerbot.
          1 Reply Last reply Reply Quote 0
          • N Offline
            noelwarr
            last edited by 3 Apr 2012, 15:46

            Brilliant!

            I've had a look at these shopbots and they are quite simple machines compared to the ones we have at my workplace. This means the postprocessor (This is the part that converts the toolpaths into the text file the CNC machine uses) I have made is a little overkill. On the positive side, it's always easier to downscale that upscale.

            SOME GOOD POINTS:

            Because the plugin uses attributes to tell the parser "Hey, I'm a toolpath" or "Hey, I'm a hole", it is also posible to have other plugins run ontop of it. You could have one that automatically generates the toolpaths for complex mesh surfaces. Wouldn't that be nice!

            The plugin is divided into a few seperate ruby files. One is "postprocessor.rb". I hope this makes it easier for people to edit, modify and make their own.

            SOME BAD POINTS:

            I am not a professional programmer. The code has no documentation or comments at present. It is not an extension (yet). I'm sure it is full of unorthodox practices. I haven't even designed icons for the buttons 😳 (I know which one is which off by heart.)

            But then that's why I'm making it open source. So YOU do the work for me πŸ˜„ How cheeky can you get? The point is it works. Still in beta but check out the stool and chair I made, all from within Sketchup.
            https://plus.google.com/u/0/106243199685455140135/posts/X95aEM2G3b1
            https://plus.google.com/u/0/106243199685455140135/posts/94dAHb1utfW

            OK, please bear in mind I am new to this so I need some help from you guys. I'm usually quite chaotic but I would like to do this right. First off, liscense and sharing.

            1. GPL, BSD...
            2. GIT, google projects, just email...

            Any preferences or recomendation? My defaults would be GPL and goole projects.

            1 Reply Last reply Reply Quote 0
            • N Offline
              noelwarr
              last edited by 5 Apr 2012, 15:03

              Hmm... Interest seems to have died down a bit. πŸ˜•

              1 Reply Last reply Reply Quote 0
              • D Offline
                Dave R
                last edited by 5 Apr 2012, 15:46

                @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.

                Etaoin Shrdlu

                %

                (THERE'S NO PLACE LIKE)

                G28 X0.0 Y0.0 Z0.0

                M30

                %

                1 Reply Last reply Reply Quote 0
                • V Offline
                  voljanko
                  last edited by 7 Apr 2012, 07:13

                  @noelwarr said:

                  Hmm... Interest seems to have died down a bit. πŸ˜•

                  Just throw us a bone and the interest will be much bigger πŸ˜„

                  SuSolid.com - solid check - solid repair- solid intersection check - weight plugin

                  1 Reply Last reply Reply Quote 0
                  • J Offline
                    Jim
                    last edited by 7 Apr 2012, 10:43

                    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.)

                    Hi

                    1 Reply Last reply Reply Quote 0
                    • P Offline
                      prismcnd
                      last edited by 7 Apr 2012, 12:36

                      I am also keeping a keen eye on this thread

                      β€œWhatever the mind of man can conceive and believe, it can achieve.” -W.Clement Stone (American best selling Author and Founder of Combined Insurance Co (now a part of Aon Corp.), 1902-2002)

                      1 Reply Last reply Reply Quote 0
                      • N Offline
                        noelwarr
                        last edited by 9 Apr 2012, 10:14

                        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
                        
                        1 Reply Last reply Reply Quote 0
                        • V Offline
                          voljanko
                          last edited by 10 Apr 2012, 15:47

                          @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 πŸ˜„

                          SuSolid.com - solid check - solid repair- solid intersection check - weight plugin

                          1 Reply Last reply Reply Quote 0
                          • N Offline
                            noelwarr
                            last edited by 13 Apr 2012, 14:47

                            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.

                            1 Reply Last reply Reply Quote 0
                            • M Offline
                              Mike Lucey
                              last edited by 13 Apr 2012, 15:24

                              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

                              Support us so we can support you! Upgrade to Premium Membership!

                              1 Reply Last reply Reply Quote 0
                              • N Offline
                                noelwarr
                                last edited by 13 Apr 2012, 23:16

                                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.

                                1 Reply Last reply Reply Quote 0
                                • M Offline
                                  Mike Lucey
                                  last edited by 13 Apr 2012, 23:51

                                  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 πŸ˜„

                                  Support us so we can support you! Upgrade to Premium Membership!

                                  1 Reply Last reply Reply Quote 0
                                  • V Offline
                                    voljanko
                                    last edited by 15 Apr 2012, 07:17

                                    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 method each' 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.

                                    SuSolid.com - solid check - solid repair- solid intersection check - weight plugin

                                    1 Reply Last reply Reply Quote 0
                                    • N Offline
                                      noelwarr
                                      last edited by 15 Apr 2012, 20:16

                                      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

                                      1 Reply Last reply Reply Quote 0
                                      • V Offline
                                        voljanko
                                        last edited by 16 Apr 2012, 18:15

                                        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.

                                        SuSolid.com - solid check - solid repair- solid intersection check - weight plugin

                                        1 Reply Last reply Reply Quote 0
                                        • N Offline
                                          noelwarr
                                          last edited by 16 Apr 2012, 19:16

                                          😎 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

                                          1 Reply Last reply Reply Quote 0
                                          • 1
                                          • 2
                                          • 3
                                          • 4
                                          • 5
                                          • 1 / 5
                                          1 / 5
                                          • First post
                                            6/90
                                            Last post
                                          Buy SketchPlus
                                          Buy SUbD
                                          Buy WrapR
                                          Buy eBook
                                          Buy Modelur
                                          Buy Vertex Tools
                                          Buy SketchCuisine
                                          Buy FormFonts

                                          Advertisement