CAD and CAM Software: Difference between revisions

From Wurst-Wasser.net
Jump to navigation Jump to search
Line 18: Line 18:
|}
|}


== [[JSCut.org]] ==
{{Tipp|Tipps:
* If you're creating your own [[SVG]], make sure the pockets are "closed paths", meaning "areas", not open paths. Also use only infill, no stroke!
* Adding tabs with [[Inkscape]]:
** [[Inkscape add CNC tabs]]
}}
{{Info|1=[[JSCut]] is awesome, but has downsides:
* Can't create tabs (or won't work at the time of testing)
* Won't cut open-ended paths, only closed paths. Will close path if open with strange results
* [[jscut]] ignores stroke and follows the actual path not the visible dimensions (Say you (using [[Inkscape]])have a square 100x100mm and stroke 10mm, then [[jscut]] will cut 5/5 to 5/95 to 95/95 to 95/5! → Design in Inkscape W/O STROKE (only fill)!
More about [[JSCut]]: https://www.youtube.com/watch?v=dVgf0Hf91vA
Since JSCut isn't developed any more, try using it's successor: [[Laserweb]]
}}
* Create [[SVG]] with [[Inkscape]]
* Launch https://jscut.org/
* Open [[SVG]]
* Set units correctly (in my case <tt>mm</tt>)
* Set speeds and diameters, material strength and so on...
* Select object
* Generate operation
* Preview
* Repeat operation-generation for all your objects
* Download
* Hope for the best :)
=== Creating Tabs With [[JSCut]] ===
This is how it should work: https://www.youtube.com/watch?v=lwCatZ6q2Vw
Unfortunately this functionality seems to be broken on [http://jscut.org]&hellip;
cam-cpp.js is unavailable; tried the following paths:
js/cam-cpp.js
http://api.jscut.org/js/cam-cpp.js
on https://jscut.org
&hellip;I installed my own server:
* wget https://github.com/tbfleming/jscut/archive/refs/heads/gh-pages.zip
* unzip gh-pages.zip
* <del>wget https://github.com/tbfleming/web-cam-cpp/archive/refs/heads/master.zip</del>
noc:/srv/www/htdocs/jscut # make
cd cpp && em++ cam.cpp hspocket.cpp separateTabs.cpp vEngrave.cpp -I ../../boost_1_56_0 -std=c++11 --memory-init-file 0 -fcolor-diagnostics -Wall -Wextra -Wno-unused-function -Wno-unused-parameter -Wno-unused-variable -Wno-logical-op-parentheses -s
ASSERTIONS=0 -s ALLOW_MEMORY_GROWTH=1 -s SAFE_HEAP=0 -s DISABLE_EXCEPTION_CATCHING=1 -s FORCE_ALIGNED_MEMORY=1 -s NO_EXIT_RUNTIME=1 -s EXPORTED_FUNCTIONS="['_hspocket', '_separateTabs', '_vPocket']" -o ../js/cam-cpp.js  -O3 --llvm-lto 1
/bin/sh: line 1: em++: command not found
make: *** [Makefile:63: default] Error 127
noc:/srv/www/htdocs/jscut #
Ooookay...
wget https://github.com/emscripten-core/emsdk/archive/refs/heads/main.zip
unzip main.zip
cd emsdk-main/
./emsdk install latest
./emsdk activate latest
Adding this to .bash_profile:
  PATH=$PATH:/root/emsdk-main:/root/emsdk-main/upstream/emscripten:/root/emsdk-main/node/16.20.0_64bit/bin
  EMSDK=/root/emsdk-main
  EMSDK_NODE=/root/emsdk-main/node/16.20.0_64bit/bin/node
Which lead to...
em++: error: --memory-init-file is no longer supported
Then I removed the line from Makefile
em++: error: invalid command line setting `-sFORCE_ALIGNED_MEMORY=1`: forced aligned memory is not supported in fastcomp
Removed it, too.
./cam.h:22:10: fatal error: 'boost/polygon/polygon.hpp' file not found
Which lead to...
wget https://boostorg.jfrog.io/artifactory/main/release/1.84.0/source/boost_1_84_0.tar.gz
tar xzf boost_1_84_0.tar.gz
mv cpp/boost ../boost_1_56_0
THEN I IT COMPILED! UNBELIEVABLE! And no errors in UI!
But the created gcode seems to be b0rken, so this plan is out of the window.
It's 10 years old and its over. Whats the successor? ([[LaserWeb4]])


== [[LaserWeb4]] ==
== [[LaserWeb4]] ==

Revision as of 10:01, 28 April 2024

Designing your product

Inkscape

In the 3D-world I prefer the simple OpenSCAD and in 2D it's the also fairly simple Inkscape which is free and awesome, too! ;)

  • Basic usage is pretty easy, just try it. If in doubt, there's plenty of manuals and tutorials online
  • Inkscape add CNC tabs


Creating GCODE

Overview

Tool Still maintained Ease of use Functionality Comment
JSCut.org no ***** ***--  Missing/broken tabs operation, otherwise great, especially for newbies!
LaserWeb4 yes ***** *****  Similar zu JSCut, can do tabs (add them as path to/as svg and then to the tabs of the operation), AppImage/Binary for the popular systems.


LaserWeb4

Laserweb seems to be a very active project...
Lasweb tabs clampksnip 2024-03-24 14-29-17.png

  • First impression
    • Much more powerful than jscut
    • JSCut does honor visibility flags of layers and paths. LaserWeb doesn't
    • I like the material/tool library
    • It can create tabs the way JSCut does/did/should (converting from drawn paths)
    • Great visualization of the cutting path

This shows the basic usage: https://www.youtube.com/watch?v=UCTDbdJotHY

FAQ

Open paths

I ran into an issue where LaserWeb kept ignoring paths while other worked just fine.

I tested this:

How I solved this:

  • Remove fill
  • Add stroke (Hairline)
  • Identify gap (Tipp: if two points are in the same location, they appear greyish)
  • Close gap

It's that easy! Took me the better part of an hour to figure out…

Installation on OpenSUSE (as Webserver)

#1st Attempt (failed)

See: https://github.com/LaserWeb/LaserWeb4/wiki/1.3-Installation-on-Linux

zypper install npm
zypper in chromium
zypper in git
zypper in gcc-c++
cd /usr/local
git clone https://github.com/LaserWeb/lw.comm-server.git
cd lw.comm-server
npm install node-gyp
npm install @serialport/parser-readline
npm install -g npm-check-updates
npm-check-updates -u
npm install
npm audit fix
npm install

(unfinished)

noc:/usr/local/lw.comm-server # node server
/usr/local/lw.comm-server/server.js:31
const Readline = SerialPort.parsers.Readline;
                                    ^

TypeError: Cannot read properties of undefined (reading 'Readline')
    at Object.<anonymous> (/usr/local/lw.comm-server/server.js:31:37)
    at Module._compile (node:internal/modules/cjs/loader:1378:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1437:10)
    at Module.load (node:internal/modules/cjs/loader:1212:32)
    at Module._load (node:internal/modules/cjs/loader:1028:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:142:12)
    at node:internal/main/run_main_module:28:49

Node.js v21.6.2
noc:/usr/local/lw.comm-server #
#2nd Attempt (works like a charm)

See: https://github.com/LaserWeb/LaserWeb4

zypper install docker
systemctl enable docker
systemctl start docker
docker run -p 8000:8000 joesantos/laserweb:latest

(Maybe some use of firewall-cmd to adjust to the port)

Point your browser to the host's port 8000, that's it!

If you prefer https, I'd recommend using a reverse proxy and Letsencrypt.

PyCAM

Still needs python 2.7 and seems to abandoned since 2019.

Blender CAM

NOT TESTED YET!

https://blendercam.com/

gcad3d

NOT TESTED YET!

https://www.gcad3d.org/

Other Software (yet to test)

krabzcam

NOT TESTED YET! Looks much like jscut, but a bit more sophisticated.

bCNC

https://github.com/vlachoudis/bCNC

Not tested yet.

grbl gru

https://www.grblgru.com/

Not tested yet.

FreeCAD

See also

Do:

  • Make sure you played with Inkscape-SVGs and jsCut enough to understand the basics, otherwise handling (the much more complex FreeCAD) will be very frustrating…
  • Launch FreeCAD
  • Make sure you have already created proper solids (see above)!
  • Make sure units are ok:

PreferencesGeneralUnit SystemMetric small parts & CNC

  • Create Job:
    1. Select solid 2. Choose Path-Workbench 3. Create Job
  • Choose solid:
    Freecad solid choose gcode ksnip 2024-02-15 13-35-40.png
  • Set

Output to grbl

  • Create tools as needed:

PathToolbit Library Editor

  • Remove default tool
  • Choose Tool, set # to 1
  • Set H/V speed
  • TBD TBD TBD


Converting STL to solids in FreeCAD

See also: https://forum.freecad.org/viewtopic.php?t=14136

  1. Open the STL file
  2. Select object

PartCreate shape from mesh

  1. Select new object

PartConverte to solid

Sending GCode

What works fine for me:

  • cncjs
  • UGS (on my old T60 w/o visualization, might be an issue with the old machine)
  • not tested yet: LaserWeb

Footer

  • Links
    • TBD