585,967 active members*
4,250 visitors online*
Register for free
Login
IndustryArena Forum > OpenSource CNC Design Center > OpenSource Software > PartKAM - free crossplatform 2.5d CAM
Page 1 of 7 123
Results 1 to 20 of 138
  1. #1
    Join Date
    Oct 2008
    Posts
    242

    PartKAM - free crossplatform 2.5d CAM

    Hi everyone

    I've been coding a 2.5d cam program for the past couple of months, and I've finally have something to show! I call it PartKAM (that stands for Kick Ass Machining :rainfro

    The idea is to have something simple and intuitive for hobbyists, and to be accessible from as many platforms as possible.

    here are some of the features, and a quick intro to the program:



    and here's the link to try it in your browser (you need to have flash 10 or higher!):
    PartKAM!

    be advised that it will almost definitely crash your browser! To save a local copy, right click here and click on "save target as".

    WARNING: this is still very BETA and you should not trust anything that comes out of it!! There are definitely still bugs in the system and I've seen them pop up, so always simulate or do air cuts first!

    It's a web-based app, so it's not going to be as fast as some of the offline ones, but it uses a very unique approach to offsetting that makes it quite speedy for certain types of geometry.

    known bugs:
    - occasionally you might see an island being completely ignored or a large anomalous area that is uncut. This is a known bug and caused by the island and the outer boundary's offset "wavefronts" not colliding for some reason. If you see this bug, try changing your stepover by a percent or two. If that doesn't work, post the file so I can examine it.
    - after switching between inch/cm, the cut simulation is wonky.

    I'm going to rest for a while (been coding all week..), but after that I'll start working on the bugs. Enjoy the program... if you dare :rainfro:
    ___________________________
    http://jack.works

  2. #2
    Interesting idea; I like the fact that it's focused on doing CAM operations rather than being some sort of general-purpose drawing application.

    Why did you choose to do this in Flash, though?

  3. #3
    Join Date
    Oct 2008
    Posts
    242
    there were a couple of reasons for flash when I was starting the project
    - I was familiar with flash development
    - it offers a nice seamless user-experience on the web
    - the cad tool I had was already coded in flash/actionscript

    but during the course of development I realized that flash is perfect for this app because it uses a bitmap based approach to offsetting. Flash's rendering engine is expressly designed for rendering vector paths to bitmap, and it does this very fast at very high resolutions. (for something running on a vm inside a browser..)
    ___________________________
    http://jack.works

  4. #4
    Join Date
    Mar 2005
    Posts
    140
    Very impressive. It's not the sort of thing I would use on a daily basis, but it's perfect for my friends who want me to make them parts but want to do the design work themselves.

  5. #5
    Looks pretty cool so far. But it definitely needs an "Undo!" function! (Not that I make misteak... mistakes or anything, you understand. But for those less fortunate. ;-)

  6. #6
    Join Date
    Oct 2008
    Posts
    242
    hey, misteaks can be tasty : ]

    undo seems to be a popular feature, so it's on the top of my feature-list. For now though I'm going to iron out the bugs in the existing features.
    ___________________________
    http://jack.works

  7. #7
    Join Date
    Apr 2005
    Posts
    263
    what open source license is your code available under?

    what algorithm are you using for 2D offsets? pair-wise offset segments/arcs with a second phase where invalid loops are removed? a level-set or fast-marching-method based approach? or the voronoi diagram of Held&co?
    or libarea on googlecode?

    thanks,
    AW

  8. #8
    Join Date
    Oct 2008
    Posts
    242
    it's not open source yet. I am planning on releasing the source, but I'm still contemplating which license to use. I also need to clean it up a bit for public consumption.

    I've tried implementing several methods, including the PWID algorithm as well as Held's voronoi approach, but encountered various blocking issues during implementation. In the end I came up with a bitmap-based approach that I haven't seen in literature. You can get the gist of it from this graphic:



    in other words, I wasn't smart enough to do it the proper way, so I cheated :rainfro: Maybe someone smarter than I can do it the proper way when I release the source.

    that graphic isn't the end of it actually, there are a few extra steps after that to clean up the output. The key is that only closed loops are valid, so it's pretty easy to recognize and remove the "stubbles" that hang off of the chain.
    ___________________________
    http://jack.works

  9. #9

    Smile

    Hey - sometimes the wrong way is the _best_ way! It's a pretty impressive accomplishment at any rate. Thanks for putting it out there!

    There are a couple of features I'd like to see (besides the forementioned "Undo"). Being able to save the parameters for the toolpath would be great. I don't seem to see a way to do that, and when I'm trying different tool sizes to see what works best, having to re-enter all the parameters each time is kind of painful... (wedge).

    I also haven't been able to find a way to delete a toolpath once it's created, which would be nice.

    Lastly, I don't know if this is a bug, or an overflow condition, or what, but when I try to get it to use a 0.005 inch engraving tool to generate a toolpath that works fine if I tell it to use a 0.0625 inch (for example) tool, it just sits there and looks at me funny. The parameter window for the toolpath never closes, and I never get a path. It just kind of "goes away". Any ideas?

  10. #10
    Join Date
    Oct 2008
    Posts
    242
    to delete a toolpath, just select it and press delete.

    if it ignores you when you hit ok, that usually indicates a stack overflow.. it seems that flash restricts you to 1000 stack values or something like that, which limits recursion depth. Does this happen with the follow-path (engraving) operation?

    It also seems that the stack limit varies from system to system. I will be re-implementing some of the recursive algorithms with looping to fix this issue.
    ___________________________
    http://jack.works

  11. #11
    Join Date
    May 2010
    Posts
    0

    PartKam bug message

    I just tried to import an SVG that I used Inkscape to trace from a monochrome bitmap of a line drawing. PartKam complained:


    TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at com.partkart::SVGToPath/getUnit()[C:\Users\Jack\Documents\partkart\designer\com\part kart\SVGToPath.as:346]
    at com.partkart::PathParser/getUnit()[C:\Users\Jack\Documents\partkart\designer\com\part kart\PathParser.as:223]
    at com.partkart::PathParser/parseSubPath()[C:\Users\Jack\Documents\partkart\designer\com\part kart\PathParser.as:94]
    at com.partkart::PathParser/parse()[C:\Users\Jack\Documents\partkart\designer\com\part kart\PathParser.as:29]
    at com.partkart::SVGToPath/parsePath()[C:\Users\Jack\Documents\partkart\designer\com\part kart\SVGToPath.as:226]
    at com.partkart::SVGToPath/parse()[C:\Users\Jack\Documents\partkart\designer\com\part kart\SVGToPath.as:67]
    at com.partkart::SVGToPath/parseG()[C:\Users\Jack\Documents\partkart\designer\com\part kart\SVGToPath.as:334]
    at com.partkart::SVGToPath/parse()[C:\Users\Jack\Documents\partkart\designer\com\part kart\SVGToPath.as:85]
    at com.partkart::SVGToPath/parseSvg()[C:\Users\Jack\Documents\partkart\designer\com\part kart\SVGToPath.as:146]
    at com.partkart::SVGToPath/parse()[C:\Users\Jack\Documents\partkart\designer\com\part kart\SVGToPath.as:61]
    at Main/processFile()[C:\Users\Jack\Documents\partkart\designer\Main.as: 1072]
    at com.partkart::SVGLoader/onLoadComplete()[C:\Users\Jack\Documents\partkart\designer\com\part kart\SVGLoader.as:79]

  12. #12
    Join Date
    Oct 2008
    Posts
    242
    Does this happen for every svg file or just that particular file? could you upload the offending file? I have an idea of what's wrong from the debug message, but I need to go through it with the debugger to understand what it's attempting to do.

    thanks
    ___________________________
    http://jack.works

  13. #13
    Join Date
    May 2010
    Posts
    0

    Problematic svg

    Cnczone won't allow .svg attachments. You can download the problematic .svg here.

  14. #14
    Join Date
    Oct 2008
    Posts
    242
    the bug has been fixed. You might have to clear your browser cache or redownload the file to see the changes.

    some notes:
    - you won't be able to use that svg directly, because partkam expects each path to be an individual loop. First you need to select the path and go to edit -> separate selected. This will separate each loop into its own path. Then select all the separate loops and do your cam operation

    - when you try to do a cam operation, certain problematic loops are detected and deselected

    - this particular file is quite complex. A profile op takes about 5~6 seconds, and a pocket op takes almost 10. This is very close to the 15 second limit for flash, so you might have it give you a timeout error. In the next release this will be fixed by implementing pseudo-threading.

    thanks for the tip!
    ___________________________
    http://jack.works

  15. #15
    Join Date
    Oct 2008
    Posts
    242
    quick update, several bugs fixed. Islands shouldn't be ignored anymore - unless it has a self-intersection somewhere. The view cuts bug is also fixed, and is more accurate for pockets.
    ___________________________
    http://jack.works

  16. #16
    Join Date
    Apr 2003
    Posts
    178
    Don't worry about doing the offsetting the "wrong way". Pocketing/offsetting is a very difficult think to get right and you are never done revising it because someone can always find a way to break it. I've written pocket code about 5 times from scratch for MeshCAM to get it to a point that I like it. Bitmap approaches are not as versatile or elegant but they are far less likely to break and that is the most important thing.

    -Robert
    (Note: The opinions expressed in this post are my own and are not necessarily those of CNCzone and its management)

  17. #17
    Join Date
    Oct 2008
    Posts
    242
    yeah, I know what you mean. I had quite a few false starts/dead ends while trying to figure it out. I'm still working on a few corner cases where it doesn't want to behave.

    I'm currently working on some new features (drilling, tabs, saving toolpaths). If anyone has an idea for cool features, let me know and I might include it into the program ; ]
    ___________________________
    http://jack.works

  18. #18
    Join Date
    Jan 2007
    Posts
    2
    Since you ask for new features...

    An option for profile and pocket operations that I would like is "ramp down" along the path to avoid strait down movements. Maybe angle should be an extra option, or just 45 degrees as a default.

  19. #19
    Join Date
    Oct 2008
    Posts
    242
    yeah, that's on the feature list.

    I'm preparing a 0.02 release, with some new features:
    - undo
    - threading
    - saving of machining operations
    - tool management

    and of course, ramping/spiral milling. I'm not sure how the g-code would work in this case though.. have to see what other cam programs output. I suspect it just separates the z and x/y commands somehow.
    ___________________________
    http://jack.works

  20. #20
    Join Date
    Oct 2008
    Posts
    242
    hi everyone. PartKAM 0.02 has been released!

    check it out at the original url: www.carveit.ca/partkam
    (might have to reload to see the changes)

    new features:

    - save/load your toolpath parameters (some svg metadata is added to remember depth of cut, tool size, etc)

    - "preview mode". Instead of immediately calculating the toolpath, there will be a yellow highlight around your path, this indicates that the toolpath has not yet been calculated. Click "calculate toopaths" to calculate all toolpaths.

    - Undo! (works for deletions and path dragging operations)

    - threading. For long operations, you will now see a progress bar and a cancel button, this allows you to cancel out if it's taking too long. This also fixes the previous 15 second script limit imposed by flash.

    - a bunch of bugfixes... recursive algorithms have been re-implemented with looping. Stack overflow shouldn't be a problem anymore.

    there are still a few features missing (ramping, drilling, tabs...). I will be working on these features next.

    as always, please report any bugs!
    ___________________________
    http://jack.works

Page 1 of 7 123

Similar Threads

  1. Free 2-D CAD
    By Wolfspaw in forum Uncategorised CAD Discussion
    Replies: 0
    Last Post: 05-21-2009, 01:12 PM
  2. Free 3d Mechanical Cad Tool, Did anybody try the free 3D CAD too CoCreate is offerin
    By hansge31 in forum Mechanical Calculations/Engineering Design
    Replies: 1
    Last Post: 06-20-2007, 08:13 PM
  3. Free Doors--Free Cabinet Door Software
    By 1BigPig in forum CNC (Mill / Lathe) Control Software (NC)
    Replies: 1
    Last Post: 06-07-2007, 07:36 PM
  4. Free CAM: cam.py
    By FritzX in forum Uncategorised CAM Discussion
    Replies: 12
    Last Post: 02-24-2006, 06:25 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •