GithubHelp home page GithubHelp logo

openbuilds / openbuilds-cam Goto Github PK

View Code? Open in Web Editor NEW
238.0 37.0 596.0 21.3 MB

Online CNC CAM System

Home Page: https://cam.openbuilds.com

License: GNU Affero General Public License v3.0

CSS 36.73% HTML 0.68% JavaScript 38.81% TypeScript 0.59% nesC 11.08% G-code 0.38% Less 5.59% SCSS 6.14%
cnc cam javascript opensource dxf svg gcode grbl

openbuilds-cam's Introduction

cam.openbuilds.com

OpenBuilds CAM - Cloud based software for converting DXF, SVG, Bitmap (BMP, JPG, PNG, GIF) and Gerber X274 to GCODE

Access it live at https://cam.openbuilds.com

openbuilds-cam's People

Contributors

danfrechette avatar petervanderwalt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openbuilds-cam's Issues

Firefox Bug

Firefox does not handle <input type=number> correctly. If you enter decimals, Firefox complains and wants you to round up or down :(
Works fine in Chrome.

Workaround involves custom validation scripts on every number field that should allow decimals.

missing Gcode

Hi again
I loaded the 'Hello World' example and created Gcode but the Gcode is missing some edges, particularly across the top of the "HELLO" word.
I then regenerated the code with different bits sizes, and also scaled the entire thing to 75mm wide (to fit my bit of foam for an actual test cut) and redid all the cut paths and still got the same missing edges.

Right now I have just opened the cam site (Firefox) and loaded the default Gcode in CAMotics and it shows the missing edges....
image

the outside cut on WORLD fairs better but is missing the vertical part of the internal cut on the R

Comments for tool diameter to saved gcode

Love what you've done so far - but I generated several gcodes - and was changing tool diameter, etc to get the best cut...now, I don't know which is which. The "Configure Tool Paths" dialog has the information to create the tool paths - can the toll diameter be added to a comment at the top?

Todo: Optimise G-Code Generator: Don't repeat F/S commands unless changed, also remove modal commands that repeated)

Hi Peter
I was looking at the generated Gcode and noticed 2 things:
[code]
; GCODE Generated by cam.openbuilds.com
G21 ; mm-mode
G21 G90 G17 F1000 M3
; Operation 0: CNC: Vector (path inside)
G0 Z10 <----------
G0 F1000 X94.4630 Y103.6576

G0 Z0
G1 F300 Z-3.0000
G1 F1000 X97.6498 Y103.3799 Z-3.0000 S100
G1 F1000 X99.2483 Y103.4581 Z-3.0000 S100
G1 F1000 X99.2483 Y103.4581 Z-3.0000 S100
G1 F1000 X100.7043 Y103.6917 Z-3.0000 S100
G1 F1000 X101.9992 Y104.0741 Z-3.0000 S100
[/code]
that first
G0 Z10
it not safe. I had my cutter positioned away from the cut area and while Z10 is safe within the cut area outside of that may have clamps or a vice etc. so the initial 'go to start position should be at safe height rather than clearance height.
code like this this would be much safer for initial positioning:
[code]
G53 G0 Z0 ; safe height
G0 F1000 X94.4630 Y103.6576 ; go to start;
G0 Z10 ; lower to clearance height
[/code]

The other thing is the repetition of F1000 and S100 (and Z-3), and even the G1's, on every line.
All those codes only need be output when they change since they are modal.
Having such long lines can mean that GRBL cannot plan ahead efficiently because only a few actual lines fit in the buffer. (but Marlin will need a G1 or G0 on every line)

The S100 should be output when M3 is output as well, since some controllers will error or default to S0 so even though the spindle is enabled it will not be up to speed before the first cut starts.

This is what we can aim for
[code]
M3 S100 ; turn spindle on and set speed
G0 Z0 ; rapid down to surface - not the best idea but it does work ok for softer materials
G1 F300 Z-3.0000
X97.6498 Y103.3799 F1000
X99.2483 Y103.4581
X99.2483 Y103.4581
X100.7043 Y103.6911
X101.9992 Y104.0741
G1 Z0
G0 Z10
[/code]

PS: (I realize that laser engraving will need the S words more often, and possibly F as well, but ordinary routing definitely does not.)
also, the buffer size and timing issues apply to GRBL on an Arduino, on the upcoming ARM version it may not matter at all.

I don't speak Java but I might have a look at doing some of this.... maybe...

Laser Operations: Z Axis stepdown

  • On Settings applet add a "I have a z axis" option
  • Show Z stepdown options on the Toolpath setups (currently we have Multiple Passes, but thats without Z moves)

Workflow improvement: Get rid of Toolpaths top-menu

Move SIM to bottom of Viewer and then cleanup the remaining buttons (Clear GCODE, and Add to Existing Toolpaths -> Goes to the right hand side toolpath window) (Select All/None/Invert -> Goes to the right side Documents window )

How to make it work offline

I tried to clone the project and run the index.html that seems to work fine at first. But I can't generate the gcode after I setup an operation. It loads indefinitely.
image

The same svg file work fine in the online version.
image
Also the text feature does not work offline.

I hope that an offline version can be a future option for this software, it's really easy and fluid. I can test more features as the team fix those bugs, I have some basic knowledge of git python and arduino and access to a grbl cnc machine.

Todo: WebWorkers

Rewrite CAM preview render as WebWorker and integrate webworker based GCODE parser (Used in MachineDriver - pull over here)

job movement buttons

Hi Peter
I was trying this out last night and spotted a thing:
in the list of jobs on the right of the screen there are buttons for moving the jobs later/earlier in the sequence.
but, the down pointing button has a hint that pops up and says 'move up'.
The down pointing button does move the the job down.

Unable to open gerbers exported from EasyEDA

I'm trying to open my easyeda project to the cam. selecting gerbers gives me

main.js:92 New FileOpen Event:
main.js:93 Event
main.js:78 TypeError: Cannot read property 'length' of undefined

(https://cam.openbuilds.com/lib/gerber/gerberparser.js line 8)
gerberparser.js:8 Uncaught TypeError: Cannot read property 'length' of undefined
    at parseGerber (gerberparser.js:8)
    at FileReader.r.onload (main.js:243)

also excellon files could not be selected, since no *.DRL format is supported

Gerber archive attached

Gerber_separate-spindle-board_20190228201511.zip

gcode parameter window size

Hiya
On my Elitebook the gcode parameter dialog is too short even though the buttons are usable (if you can see them against the background)

The Elitebook is running Ubuntu and its only job is to run the Ox. I normally generate Gcode on another machine and then transfer though the network, but it woudl be very handy o be able to use the online cam directly at the machine for simple jobs.
20180918_184215

Todo: Cancel animate when webglcontext is lost

this.canvas = renderer.domElement;
this.canvas.addEventListener("webglcontextlost", function(e) {
   e.preventDefault();
   this_.cancelAnimate();
}, false);
this.canvas.addEventListener("webglcontextrestored", function(e) {
 this_.createRenderer(true);
 this_.animate();
}, false);

Todo: Booleans

Select Objects:

  • Bool=split - removes selected entities from Parent Document, and create a new Document with them
  • Bool=merge - Merges entities into single entity. Can include entities from other documents
    • Merge may have more strategies like union, xor, etc for different effects

Old bootstrap modal in text func

basic-cad-text.js:27 error: TypeError: $(...).modal is not a function
at basic-cad-text.js:22
(anonymous) @ basic-cad-text.js:27
Promise.catch (async)
(anonymous) @ basic-cad-text.js:26
setTimeout (async)
addText @ basic-cad-text.js:12
(anonymous) @ basic-cad-text.js:199
dispatch @ jquery.min.js:3
r.handle @ jquery.min.js:3
basic-cad-text.js:28 Uncaught (in promise) TypeError: $(...).modal is not a function
at basic-cad-text.js:28

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.