Coder Social home page Coder Social logo

kallaballa / ctrl-cut Goto Github PK

View Code? Open in Web Editor NEW
62.0 5.0 7.0 76.9 MB

Get your laser cutter under control

License: GNU General Public License v2.0

QMake 0.24% Shell 0.97% Makefile 0.06% Python 0.55% C++ 50.49% C 1.56% PostScript 46.12% GDB 0.01% Rich Text Format 0.01%
lasercutter laser-cutting driver cross-platform

ctrl-cut's Introduction

Laser cutter driver and control panel

Ctrl-Cut is an initiative to produce Open Source toolchain for talking to laser cutters without being restricted to proprietary drivers and the chosen operating system of the laser cutter vendor.

Initially, this is targetted Epilog laser cutters.

Laser cutters from Epilog are fantastic devices. Unfortunately, Epilog forces us to use their Microsoft Windows-only laser cutter drivers. In addition, they only support Corel Draw as an application from which you can run jobs (other tools might work but are not supported).

There are also multiple other shortcomings of the Epilog drivers, which we will elaborate on later.

To remedy this, we are writing our own drivers, which will run on both Linux and Mac OS X (and any other system supporting CUPS).

Currently, we only support Epilog Legend 36EXT, but we aim to support other backends as well.

Please get in touch if you want to help out by developing, testing, documenting or supplying information about other laser cutters.

Packages

https://software.opensuse.org/download.html?project=home%3Aelchaschab&package=ctrl-cut

License

GPL V2 (or later)

Contact

Amir Hassan: [email protected]

Marius Kintel: [email protected]

ctrl-cut's People

Contributors

fa-bien avatar kallaballa avatar kintel avatar meksor avatar pwnicorndev 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

Watchers

 avatar  avatar  avatar  avatar  avatar

ctrl-cut's Issues

Copy and Paste doesn't actually work

It looks like it works in the gui, but when we save it seems like the copy has the exact settings of the original no matter what modifications where done.

Make editing of spinboxes more sensible

Doing a single edit (one key stroke) in a qspinbox will emit valueChange and the component loses the focus.
Instead it should wait for either the return key being hit or for lost focus before commiting the change.

Color code cutting parameters

When objects in the scene has different cutting parameters, render them with different colors to highlight these differences.

Don't show New Job dialog when opening file

A few cases:

  • Pass .cut filename on the command-line: Should just open the file
  • Drag&Drop or double-click .cut filename while New Job dialog is open: Open file and close dialog
  • Double-click to open file: Just open file

Feature: Add an object list view

It would be nice to have a list view showing all added objects, a bit like the layer view in QCad:

  • show filenames per object
  • Enable show/hide
  • Selection
  • Delete
  • Show color code for cutter parameters?

The idea would be to set up an QAbstractTableModel and a corresponding selection model, and sync these bidirectionally to the QGraphicsScene.
This might not be trivial:

Kuratowski graph found in make planar

That means the explode somehow failes, because the cut still forms a graph the can't be layout in a straight line drawing (which shouldn't happen without any intersecting segments).

CutItems auto close polygons

When loading the minimal test case test-data/gui/closing_polygon/closing_polygon.svg in the gui somehow the polygon ends up closed.

Add rulers

Add rulers to the edges of the main window, to better get a feel for object dimensions

Don't crash when opening corrupt .cut files

When opening a corrupt or partial .cut file, we currently bail and let the process crash.
e.g. on Mac:

libc++abi.dylib: terminating with uncaught exception of type xmlpp::parse_error: Document not well-formed.
Line 10, column 5 (fatal):
Extra content at the end of the document

Abort trap: 6

We should be more robust and offer an error message.

Clean up compiler warnings

clang spews out a huge amount of warnings when building, making it hard to see errors.
Clean up warnings test with both clang and gcc.

Object grouping

Implement grouping properly:

  • Handle group selections similarly as multi-selection (blocked by #11)
  • Save grouping to .cut files
  • Preserve grouping when opening .cut files
  • auto-group combined vector/raster imports ?

DocumentHolder leak on redo

in function CtrlCutUndo::redo a new DocumentHolder is allocated but never deleted. use shared pointers to fix the problem

Copy/Paste settings

We need an easy way of copying and pasting selection from on object to the next.
Suggestion: Add two Edit menu items:

  • Copy Settings
  • Paste Settings

This is pretty common for things like font style in drawing software.

Improve rectangle selection

QGraphicsView supports basic rubber band selection, but it's limited:

  • Extending an existing selection doesn't work
  • It looks like it uses bounding box selection as default. Not sure if this can be extended

When importing many objects, rectangle selection would be convenient.
If we do this, QCad's selection style would be cool:

  • Drag from left to right: select objects fully inside the drag rectangle
  • Frag from right to left: select objects partially inside the drag rectangle

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.