cauldrondevelopmentllc / camotics Goto Github PK
View Code? Open in Web Editor NEWOpen-Source Simulation & Computer Aided Machining - A 3-axis CNC GCode simulator
License: Other
Open-Source Simulation & Computer Aided Machining - A 3-axis CNC GCode simulator
License: Other
Repeatedly saving a project causes more and more duplicates of nc file names to appear in the .xml.
Simulate the cuts as the tool moves rather than just the final cut workpiece. The advantage is that it would help in debugging problems if you could see exactly when a cut (or over cut) was made. However, OpenSCAM already allows you to run the simulation at any point in the cutting process by setting the tool path to that point and resimulating.
The plan is to invalidate regions of the 3D space and have the renderer regenerate affected 3D blocks as needed.
G10 L2 R#
Also, update this page when fixed: https://camotics.org/#missing-linuxcnc-codes
If you pass an argument like '''--bounds=false''' which sets one of the view flags to a non-default value the check box does not start out in the correct state.
It could be nice to see the actual gcode line that the simulator is currently on.
None
Allow entering project parameters in inches as well as mm.
Allow execution of external programs, such as python scripts, which generate tool paths.
See ticket #9.
The smoothing operation can take a long time for surfaces with many triangles. The render progress bar will just sit at 100% for awhile. It would be nice if there was also a progress bar for smoothing.
None
Dewey Garrett wrote:
I tried to install openscam_0.0.3_amd64.deb on :
$ uname -a
Linux u51 2.6.32-36-generic #79-Ubuntu SMP Tue Nov 8 22:29:53 UTC 2011 x86_64 GNU/Linux
$ sudo dpkg -i openscam_0.0.3_amd64.deb
Selecting previously deselected package openscam.
(Reading database ... 227746 files and directories currently installed.)
Unpacking openscam (from openscam_0.0.3_amd64.deb) ...
dpkg: dependency problems prevent configuration of openscam:
openscam depends on gtk2.0; however:
Package gtk2.0 is not installed.
openscam depends on libglade; however:
Package libglade is not installed.
openscam depends on sqlite; however:
Package sqlite is not installed.
dpkg: error processing openscam (--install):
dependency problems - leaving unconfigured
Errors were encountered while processing:
openscam
Apparently ubuntutu (lucid) doesn't name packages the way expected in the deb:
$ sudo apt-get install gtk2.0
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package gtk2.0 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package gtk2.0 has no installation candidate
None
This would require the ability to import a 3D model from a format such as STL and then perform boolean operations.
It would be nice to see under and over cuts which could be colored for easy identification.
This is a difficult problem but possible. Others have successfully performed Dual Contouring on the GPU and some papers discuss NC machining simulation methods on the GPU.
CAMotics currently uses Marching Cubes (MC) to extract the cut surface. MC has problems detecting sharp features. This is particularly noticeable when simulating a conical tool. You can simulate at higher resolution but you will always get jaggies in the sharp corners. They just get smaller at the cost of exponentially increasing simulation time.
Dual Contouring does a better job of detecting sharp features but requires "Hermite data" which means we need not only edge intersection points but also the surface normal at those points. Surface normals are not easy to calculate because we don't have a closed form depth function for tool sweeps. Surface normals can however be estimated to arbitrary precision with a binary search for the surface plane about the point of interest. Note, the typical method of estimating a surface normal by numerical integration of a depth function but again we don't have such a function.
Cubical Marching Squares is also an interesting option. It too requires Hermite data and is significantly more complicated to implement but has several advantages over DC.
linuxCNC (aka EMC2) is currently distributed on a 32-bit system.
Currently the tool path optimizer is useless because it can only read gcode and optimize the path but cannot regenerate optimized gcode.
See #9.
When the file dialog is opened and no project has yet been opened it does not start in the current directory as you might expect.
In the project dialog it would be very convenient if default tools where automatically entered and the automatic workpiece size calculated when the nc-files were changed.
Still seeing problems with NC-file relative paths. Specifically, it's not working correctly with new projects which don't have a file name yet.
The OpenSCAM GUI can talk to EMC2 remotely. I would be nice to control a remote EMC2 setup completely from the simulator. This would allow you to operate the CNC from any laptop or PC on the network with out installing a real-time kernel and all the other requirements of EMC2.
Saving the new project to a file first is a work around.
After saving the project for the first time NC file names should probably be made relative.
Also, update this page when fixed: https://camotics.org/#missing-linuxcnc-codes
G93 & G95
Also, update this page when fixed: https://camotics.org/#missing-linuxcnc-codes
Currently arcs are cut in to a number of straight segments which simulate the arc.
It would be nice to be able to rotate and translate the workpiece.
The grid should be less than the smallest tool size to help ensure that no features are missed.
However, you could also consider the size of the workpiece and how long it would take to render based on speed measurements and then choose a reasonable grid resolution based on how long it should take.
This error is printed to the console:
Gtk:ERROR:/scratch/build-area/gtk+2.0-2.24.4/gtk/gtkfilesystemmodel.c:746:gtk_file_system_model_sort: assertion failed: (r == n_visible_rows)
Currently creating a rough Debian binary package.
Ideally, there would be a source package for C! and CAMotics. The binary packages would then be built from this.
Kim Kirwan wrote:
I happened to choose a file name with spaces in it for my
first attempt. I know most CNC machines don't like spaces,
so maybe I shouldn't be using them, but here we are.Anyway, in the Project box under NC Files, my path and
file name looked something like this:linuxcnc/nc_files/OpenSCAM/Test
File
With
Cube.ngc
This could give a small performance boost.
The idea is to create a canonical tool path either as plain text or XML which the simulator can read and other tools could generate or process.
These tool paths should contain straight line moves, arcs, tools references, move types such as rapid, cutting, probe, etc., feed, and spindle speed but not contain offsets or drilling routines like GCode. Essentially the same information contained in the current '''Move''' class.
This could greatly improve render speeds especially for very large models.
The idea is that the simulation automatically adjusts its accuracy depending on what you are looking at. So details that you couldn't see well anyway or that were off the screen wouldn't use up CPU/GPU time. You could then render what was important in more detail and zoom in to areas to get even finer detail.
Start openscam with out a project file on the command line. Try to add an NC file.
The tool path position should be kept as a percentage of the total tool path. This way if a new NC file add loaded and the tool path was at 100% it will still be at the end as you might expect.
This is difficult
The simulator can handle composite tools, i.e. tools made up of several offset cylinders, cones and spheres. However, the user interface needs to support a way to input composite tool descriptions.
EMC2 O-Codes allow for some programming constructs such as '''if''' '''else''' and functions inside of GCode.
This is kind of hackish and I'm not sure this is the best route to go. Alternatively you could generate either GCode or canonical tool paths (See #9) from python scripts.
G73, G76, G81-G89
Also update this page when fixed: https://camotics.org/gcode.html#missing-linuxcnc-codes
Display the release version in the about box.
I'm not sure how many people will even care about this. Is there anyone interested in run this on OSX?
I made an attempt at this but ran into problems with GtkGLExt on this platform.
Allow importing a Constructive Solid Geometry workpiece description.
Not too sure what the demand for this is. I'm not a huge fan of RPM based systems but it wouldn't be too difficult to support.
Currently openscam only opens project XML files from the command line. It would be nice if it also detected NC files and loaded them in to a default project.
G41 & G42
LinuxCNC now allows named o-words. For example:
o<TestSub> sub
#<i> = 5
o<TestLoop> do
#<i> = [- 1](#<i>)
o<TestLoop> while [GT 0](#<i>)
o<TestSub> endsub
Allow importing an STL workpiece description.
None
This would allow further analysis of the resulting workpiece using other tools.
Attached example does not work because of use of polar coordinates which are supported by LinuxCNC.
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.