Coder Social home page Coder Social logo

cauldrondevelopmentllc / camotics Goto Github PK

View Code? Open in Web Editor NEW
592.0 592.0 133.0 44.68 MB

Open-Source Simulation & Computer Aided Machining - A 3-axis CNC GCode simulator

License: Other

Makefile 0.01% Python 3.09% Smarty 0.68% Shell 0.10% C++ 45.76% C 45.09% JavaScript 5.07% GLSL 0.03% Vue 0.07% HTML 0.01% NSIS 0.11%

camotics's People

Contributors

50j0urner avatar dougcoffland avatar hpmachining avatar hrobeers avatar hygonsoc avatar jcoffland avatar kbernhagen avatar luzpaz avatar marcus7070 avatar martonmiklos avatar sergey-239 avatar srakitnican avatar tpimh 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

camotics's Issues

Real-time cutting simulation

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.

Display progress bar for smoothing operation

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.

Dependency failure installing on Ubuntu

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

GPU accelerated simulation.

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.

Improve surface rendering

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.

NC-file path problems

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.

Complete remote EMC2 communcation

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.

Crash in Gtk code

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)

Create Debian source packages

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.

Handle spaces in filenames

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

Create canonical tool path notation

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.

View dependent Level of Detail

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.

Tool path position sometimes moves away from end

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.

Implement composite tool interface

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.

Implement EMC2 O-Codes

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.

OSX Build

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.

CSG Workpiece

Allow importing a Constructive Solid Geometry workpiece description.

Create RPM packages

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.

Implement named o-words

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

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.