warifuru features wishlist

Posted by on Jul 22, 2016 in Design, Digifab, Warifuru | No Comments

I learn a lot by observing the process of how other designers and engineers actually do their work.  Here’s a look at mine, this is my catch-all outline of desired features (as of today) for warifuru.  I keep this list in OmniGraffle but what I should do is start a bug/features tracking system.   Sourceforge has a ticket tracking system worth a try or I can just set up my own tickets/source repository on a personal site.

 

- warifuru interface
    - General Goals
        - UI consistent across platforms
            - C++/Qt5
        - features for novices
            - perimeter/bounding box dry run
            - test print on paper
            - estimate of etch/cut times
            - reset x,y home to current laser position
        - features for production
            - cut as many objects as quickly as possible
            - load raw g-code
            - 2d bin fitting
            - g-code editing
            - UI for consolidating all etching in to a single pass,
              then optimize that pass
            - support Z axis data for intensity in etches
            - project save-as feature that can save DXF, DWG, SVG
        - features for hackers
            - needs to change cut parameters at hardware level
            - firmware update
            - dynamic stop location to simulate smaller beds
            - g-code editing
            - change sensors / limits
        - features for artists
            - experiment with cut parameters
            - estimate of etch/cut times
            - z axis to move bed while cutting
            - allow picking of cut paths to be in/middle/out of source
              line
        - common features
            - cut simulation
            - relocate and reorient 
                - for 0,0
                - for a specific corner or edge
                - arbitrary point using current location of laser as 0,0
            - graphic display of cut progress and gcode being executed
              at the moment
            - media database
                - select media from a pull down, similar to Flow
                  software
                - use media + thickness to suggest cutting and etching
                  speeds
                - add/save new media types
            - job maintenance
                - save/memorize job settings by file name, offer as
                  starting settings on future job
                    - include generated code
                    - include laser settings and anything that can be
                      configured in the UI
                    - text description/feedback/comments by user
                - cache gcode for jobs
            - prototyping
                - cut entire sheet using speeds from 0 to max and power
                  from 0 to %100
                    - x axis speed, more room for lots of variations
                    - y axis power, only need to do %5 increments
                    - use as baseline cut/etch settings for each media
                      type
            - raster/fill
            - consolidate cuts/etching based on actual kerf.  ex: if
              kerf is 1mm, don’t cut two lines .2mm apart.
            - image manipulation
                - scale
                - flip — respect three axis where height can be
                  intensity
                - rotate
                - resize to fit cutting area
                - replicate / tile image
            - allow picking cut lines to be in/middle/out of actual cut
            - real-time tutoring/help
                - media placement
                - cut settings
    - UI wishlist
        - Error messages explain why something happened, not just that
          an error happened
            - loaded file doesn’t fit on cutting area
            - loaded file has syntax errors
            - loaded file has commands that can’t be implemented
        - Modal cut dialog
            - bring up progress display as popup window, only allow
              stopping/pausing the cut
                  If we want to create a customized message box—for
                  example, using custom button texts and a custom
                  icon—we can create a QMessageBox instance. We can
                  then use methods such as QMessageBox.addButton() and
                  QMessageBox.setIcon(), and pop up the message box by
                  calling QMessageBox.exec_().
        - UI for consolidating all etching at various levels into a
          single pass, then optimize that pass
        - binary display of cut progress and gcode being executed at
          the moment
        - preferences
            - pick default cut powers and speeds for each of the 7
              colors
            - set actual bed dimensions by bumping end stops
        - media database
            - select media from a pull down, similar to Flow software
            - use media + thickness to suggest cutting and etching
              speeds
    - Backend Wishlist
        - structure for supporting g-code for a specific engine
            - lasersaur g-code set
            - plasma table g-code set
            - CNC mill g-code set
        - replicate uses subroutines in g-code?  How do you make 100
          foos without generating 100x gcode?

 

Leave a Reply