mkrabset / krabzcam Goto Github PK
View Code? Open in Web Editor NEWOnline CAM tool for generating G-code from vector graphics and bitmaps
Online CAM tool for generating G-code from vector graphics and bitmaps
Krabzcam runs great on my newer PC's, but changes made after Apr 24, 2022 broke krabzcam on older browsers. On older browsers, krabzcam Apr 24,2022 and earlier works fine, but Jun 26, 2022 and later versions just give a blank display.
Not worth a major effort, but if it is something simple it would be nice to be able to run krabzcam on the same PC controlling my router.
My router is controlled by LinuxCNC on a laptop, and unfortunately on laptops, LinuxCNC only runs on an obsolete Linux version(Debian 7). The newest browsers I have found for it are from before 2019, Firefox version 63 and Opera version 55. Both browsers work with old versions of krabzcam, but won't work with the current version.
It would be nice to have a feature where you could do a pocket or any operation. With a rough large diameter bit first and only cleanup the left overs with a smaller diameter bit. This is useful for large operations with only a little text or details that must be kept. You can see an example of this functionality in Easel it is not opensource and you do need a free account. But I prefer to support open source software.
In your preview in krabzCam it's easy to see what material will be left over as the bit can't go there. Maybe it's not too much work for you to add this useful feature that will save many people much time.
Hello,
Firstly, awesome project. My friend and I are very impressed with the ease of use and are hoping to use it in the near future.
I was going to make a few customizations for our use case, but noticed two things:
2.3b087336.chunk.js.LICENSE.txt
)So, I am wondering if you could associate a license (perhaps in a LICENSE.txt or something similar), so that people like me know whether they are allowed to modify and/or redistribute the software, and also whether it would be possible to have the original, un-minified source files (assuming the license allowed modifications and such).
Thank you for your time.
It would be wonderful to see this feature in an opensource online CAM package. For the moment I use the opensource software F-engrave.
This request exists out of 2 parts:
JScut has already some sort of opensource v-carving. and F-engrave has all this functionality but their g-code is very poor it does a lot of things twice. And isn't optimized at all.
Krabzcam looks like a very promising package and I'd love to see this as my one stop project for all my 2d, 2.5d and carving and inlay work.
I'd love to support this project anyway I can. Wheter it is by sending some Belgian beers to you, send you some money, helping where I can.
Over a few weeks I'll be teaching a CNC lesson in a FabLab where lot's others will be following remote and I'm planning to demo this project also.
Firstly, KrabzCAM is a great tool - thank you.
I've been exploring the laser raster function, and it appears that when importing an image, the software imports at 1 pixel to 1mm, despite offering a much lower "write" resolution (0.25mm appears to be the default). Whilst scaling within the program is possible, that's an extra step in a workflow, and both scaling and positioning are mouse-driven (and hence a little fiddly to get exact). I would typically opt to do any raster image work (compositing multiple images, rotating, scaling, etc) in an image editor before importing to CAM.
I would suggest that having an import resolution parameter would be a useful additional feature for KrabzCAM raster image functionality. This could be implemented as an input box below the "Load PNG / JPG" button, populated with a default value.
I saved many gcode files for a project recently, and I had trouble remembering what starting heights I chose for the operations. It might be nice to add comments into the gcode for the various operations, date/time and/or documenting the names of the SVG files used.
; generated at 2022-02-08T23:08:11.049Z
; source files: dragon.svg logo.svg
; operation laser FOLLOW_PATH_LASER 200 mm/min 255 power
g0 x208.90916549 y9.79353371
g1 z-1.8 f400
g3 i-0.15 j0 x208.62928714 y9.86857778 f800
g1 z-2 f400
g3 i-3.0803191 j-5.63091501 x206.90343384 y10.51149669 f800
...
Last weekend I played around with a pen holder on my CNC. and I tried using krabzCam for generating g-code. For drawing = engraving lines it's perfect. But for filling (=pocketing, I guess) the drawing it works kind of.
It would be cool that the pocket feature would have other strategies as well like:
Line:
Trianagle:
Grid: = cross hatch
This might go two ways:
Please let me know what you think.
Kind regards
Bruce
Hello,
a multiline selection when generating the gcode in order to select all the lines.
Congratulations for his work
Hi Marius,
I'm trying to use the drag knife operation in Krabzcam. One issue I am having is that when the tool needs to travel to another path, it does so at the default / non-cut z-height (in my case it's 0). For some reason this travel movement still cuts the material. I'm trying to cut a vinyl masking sheet. I understand this could be because of inaccurate setup of the machine ie bed that is not 100% level, but I'm cutting a 0.2mm thickness material. My setup is a hobby setup, so the bed may not be level to .01 mm accuracy ๐ต.
It would be nice if there is a field for the drag knife operation to be able to specify the travel z-height to ensure that during travel the tool/cutter is away from the material. I believe on line 70-71 on the g-code (and is probably another one since it needs to travel to the next path). I think this is more of a feature request, rather than a bug. Thanks!
SVG:
test-b-96.svg.zip
G-Code:
dragknife.nc.zip
First of all, thanks for this great program! Finally there is a modern alternative to MakerCAM that is as easy to use.
I ran into a small issue with Smoothieboard: it ignores the lower case g-codes generated by KrabzCAM. Could KrabzCAM be made to output g-codes in upper case?
I could make a pull request for this, but it seems the repository does not have the source code of the project. Do you intend to release this as open source some time?
Hi, it seems the order has changed, when I do profile outside it'll do the larger outside of the object then come in and do the inside cut outs, it used to do the inside object cut outs first and then the outside
Why are SVG files 33% smaller when imported into KrabzCAM?
This bug makes it very difficult to scale things correctly.
Hello again,
Our machine is supposed to support G02 and G03, but it often rejects them for reasons I haven't yet determined.
Is it possible to have a checkbox under "Operations" to prevent G02 and G03 commands being generated? In other words, instead of generating a single command for a curve with I and J parameters, generate a series of commands for short lines which approximate the curve?
This may be a significant amount of work, and I am not sure how many people would benefit.
I will test the output of krabzcam on our machine and see if it works with G02 and G03.
Thank you.
Beautiful work!
Would it be possible to return the cutter to the safety height while traveling between unconnected SVG components in engraving mode? Right now, travel between components is at whatever the current cutting depth is, as is the lead-in from home to the initial cut point.
(Or is there a reason why this is a desirable behavior? I can't think of a reason, but sometimes I'm dense!)
If I get the chance I'll dive under the hood and see if I can tweak this myself - small price to pay for the great work you've done on this so far!
Not a high necessary or urgent feature but an adaptive milling pocketing pattern would be cool. http://cadcamlessons.com/2d-adaptive-clearing-fusion-360/
For me the V-carve and wooden inlay features have a higher priority.
The dogbone feature is really nice, but it fails if more than 5 inside angles. You can see it by placing an n-gon and doing an inside profile with dogbones enabled. N-gons with 3,4,5 sides work fine and have dogbones in all corners. Hexagon only puts dogbones in 3 corners. If more than 6 sides, then no dogbones are done.
Hi, how i can choose the starting point for outside profile milling ? because the starting point actually are not good for me.
Thank you
Is it possible to edit a generated toolpath?
What I'm looking for is a feature to select a generated toolpath and edit the settings for that specific toolpath.
Thanks in advance
This is a very nice looking project and I hope I can replace JScut by this pretty project.
Keep up the great work.
Love the application. Im using it with a maslow, Is there a way to export all the G-codes you've created together?
Hello
I was thinking about something. One day I'd love to hook up a plasma cutter to my cnc machine.
Therefore it would be interesting to have a little extra in the toolpaths. a start point that you can choose on the in or outside of your object. something like this: https://torchmate.com/cad-cam-7-8-9/FAQs-Tool-Paths
This could be as simple as a little straight line that is placed at every vector that is customizable for the in and outside.
Do you consider this as something usefull?
Thanks in advance
Hi
I'm a previous MakerCam user and I'v been testing KrabCam today and noticed a few issues or oversights
Hope this helps
Chris
Hello, thank you for this wonderful.
I just tried it out and figured that no speed parameter was existing which results in a GCODE file with an unset M3 parameter.
Which is problematic since it means the mill will not turn at all and will break (at least in a CNC cut with a FOLLOW_PATH operation).
There might be a reason for the missing speed parameter in the UI?
If not I would recommend adding a field Speed [...] rpm and using this parameter during the generation of the GCODE "M3 S10000" for example if the user sets the speed to 10000RPM
Thanks!
Hi, congrats for the nice job!
I need to know after I create a GCode file, where I need to setup my CNC initial point,
Upper Letf,
Upper right
Centre
Bottom Letf ou Bottom right?
Camotics simulates fin down-letf side and NCviewer from upper left...
Thanks alot
hi marius
Is it possible to integrate a confirmation of closing the krabzcam window
so as not to forget to save the current project
good luck and I still love KRABZCAM
screen freezes
Warning at bottom covers last options
One feature I've found extremely useful in other CAM software is the ability to add the cut/travel distance and divide by the respective feed rates to calculate how long the cut will take. Thanks for considering this feature. Awesome work!
Modern versions of GRBL have a "laser" mode, which makes a distinction between M3 and M4 for laser operations. (See
https://github.com/gnea/grbl/wiki/Grbl-v1.1-Laser-Mode)
M3 turns the laser on in constant-power mode.
M4 is "dynamic power mode" and "will automatically adjust laser power based on the current speed relative to the programmed rate. It essentially ensures the amount of laser energy along a cut is consistent even though the machine may be stopped or actively accelerating."
This could be handled in a post-processing step, but it might also be convenient if there was a way to do it right in KrabzCAM.
Hello,
I use KRABZCAM all the time in my YouTube videos
more and more subscribers find it really interesting and I understand them
I wanted to know if there was a detailed documentation of all the commands
Cordially
In the comments on #2 you indicated that you assumed that the drag knife would stay in the same orientation during fast moves (which I think is right.). But the "optimize" button re-orders all the fast moves... so maybe the assumptions about blade orientation are wrong after a fast move if it's been optimized. Does the "optimize" function re-compute the drag knife corner actions while it is optimizing the fast moves?
Kiri:moto has a feature which I find pretty pleasant to have.
Where it checks whether if an end-mill can reach into a corner or not. If this is not possible it automatically places a dogbone in the corner if this option is enabled.
This is nice for two scenarios:
Hi,
I have only just discovered Krabzcam and I must say, it is absolutely brilliant - thanks for creating it.
I built myself a CNC router many years back now and I have been searching for a suitable app to use with it ever since and finally I have found it!
Anyway, what for me would improve it even more would be a way to get it to import my default settings.json file at startup (when running it locally). I don't believe there is a way to do this at present?
and if it were possible to add my own custom footer and header lines to the gcode it produces
Yesterday when I was doing pockets with krabzCam.
I was thinking it would make it a lot more attractive to have finishing passes if it were easier to create one.
As I understand it, it's possible to to do a pocket with: "Roughing clearance (mm)" set, and after that do a "Profile inside" operation. To clean the whole cut at once.
Wouldn't it be easier to have something like two extra inputs:
So when you enable [1] and enter 0.2mm into [2] you'll first do a pocket with a clearance of 0.2mm from the sides. Next you'll do a profile inside for this last 0.2mm from [2] and cut these at full-depth. To get rid of all the Z lines.
Do you think this could be useful?
Hey, First of all, Krabzcam is excellent! Many thanks for it. I write for Hackspace magazine and I shall probably be mentioning it in an article in the next few months. One small issue I have found with it is that if you delete a selected path or svg you then can't reload the same file until you reload the page or close and reopen. It's the same on your github.io hosted version or on my local download.
Massive kudos to you again. Easy to approach CAM is a massive part of making CNC stuff more accessible.
I rendered some text in Inkscape with the Hershey Text (1-stroke) extension, and the font "EMS Readability". The resulting paths look fine in Inkscape, but when imported into Krabzcam, some of the letters are missing parts, such as "H", "h", "T" (et al.) I speculate that this is a problem with the SVG parsing code.
Attached example file demonstrates. (It has been renamed to a .txt file because GitHub doesn't like .svg)
I want to simply convert svg path to gcode without UI can I use this app like script in my own HTML PAGE?
I usually generate SVG files as input to Krabzcam in Inkscape. I think it would be useful to be able to select paths by color in Krabzcam so that I can indicate in Inkscape that different parts are intended for the same operation. For example, in Inkscape, I might put all the dark laser engraves in blue, and all the light engraves in red. Or similar for different CNC depths, whatever.
The optimize gcode button in krabzcam is a fantastic feature but often I see my self clicking this button 30 times to see if it will find an even better optimization. It would be nice if there would be an input box where you could enter the number of times you'd like to run the optimization. This is not very high on my I want this feature list. If this is appreciated I can try to add it myself.
I'd like to use KrabzCAM for a drag knife (I use a CB09/CB09U Graphtec Blade Holder in a CNC engraver).
Since the cutting tip of a drag knife literally drags behind the center of motion, compensating actions need to be made to either close paths or square corners. I believe these are generally called "corner actions".
As a reference, Donek Tools offers a free gcode processor to add corner actions, but it's implemented as Excel macros. (ugh) https://donektools.com/free-cnc-router-software/#corner-actions
For unknown reasons, when the attached file is loaded into Krabzcam, one of the "soot sprites" is in the wrong place. Ungzip the attached file, and compare it in Inkscape vs Krabzcam.
I'm trying to use the dog-bone feature and I discovered an issue.
outside profile: (no dog-bones are generated) (project attached)
profile outside.json.gz
profile outside inconsistent behavior: outside inconsistent.json.gz
Profile inside [dia = 10mm] (no dog-bones are generated) prof-inside-10mm.json.gz
Profile inside [dia = 1mm] (dog-bones are generated) with the default diameter it works)
Can you please have a look at this?
Do you might know a work around or a quick fix?
I'm taking a day off soon to have some time with the CNC machine I'm planning on making this:
I included a part of the design file I plan on cutting out. So you can test this. I'm planning on using a 8mm and 3.175mm router bit.
extensive test file v0.1a.zip
Thanks in advance and keep up the good work!
Originally posted by @geobruce in #12 (comment)
hello,
while making my pencil box for my future video I noticed that the Roughing clearance function was not available in the inside and outside profiles
this function could be useful to create roughing clearances during nesting creation
have a good day
ps: I will post the link of the video once online I finish editing
https://youtu.be/G91yvMPXf7k
Great software! But, when I open a DXF file with an object of known size, it appears at a different size in the main window.
For example, I have a square with rounded corners that I'd like to cut. The overall size of the square is 43 mm in QCAD but it appears in krabzcam as just under 26.5 mm to a side. I know that units are arbitrary, but it would be nice if one unit in DXF is the same as one unit in krabzcam.
Have I missed something? I've tried uploading the DXF here to illustrate the problem, but Github won't allow it.
Thank you.
Hi marius,
I wanted to know if you had planned to make a strawberry bank function in order to record the characteristics of the strawberries that you could select after in the course editing and displayed in the comments G-CODE
I know it represents a big development
if there was already a "tool name" field which would be displayed in the G-CODE comment this would allow the opening of the G-CODE in CANDLE or others to easily have the information when opening
Have a good day
When I import my SVG and select profile outside for cutting it only generates the paths for the outer squares and not the inner shapes. Not sure if this is a problem with the SVG file or if I didn't specify a parameter. Here is a zip file of the SVG and a screenshot of issue.
map.svg.zip
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.