Results 1 to 1 of 1

Thread: My Conversion Scripts

  1. #1
    Registered lwill's Avatar
    Join Date
    Aug 2005
    Location
    USA
    Posts
    143
    Downloads
    0
    Uploads
    0

    My Conversion Scripts

    This is a set of scripts and a configuring GUI I use and I thought I would share.
    I use KiCad for layout and EMC/LinuxCNC.
    This is the README include with more info.
    Code:
    README 03/28/20012
    
    Tested with LinuxCNC 2.6.0~pre and KiCad (2012-01-19 BZR3256)-stable and
        pcb2gcode 1.1.4
    
    ### DISCLAIMER ###
    CNC MACHINES CAN BE DANGEROUS!!!
    THOROUGHLY CHECK AND TEST ANY CODE BEFORE RUNNING!!!
    
    Files included in boardtools directory:
    doall.py                    GUI front end for pcbbatch
    pcbbatch.py                 Batch file to run all programs using config file
    boardcfgdef.py              Default config file
    Etch_Z_adjust.2.2.cl.py     Modified command line version
    gerber2emc2cl.py            Modified command line version
    p2gdrillopt.py              For optimizing drill files
    p2gpathopt.py               For optimizing paths
    demo                        Directory with sample Kicad layout, gerbers, and
                                sample boardcfg.py for testing
    
    REQUIRED:
    python-argparse
    pcb2gcode installed on system
    EMC2/LinuxCNC 2.5+
    KiCad
    
    Optional:
    opti  (from Etch_Z_adjust)  Untested, I have not used it, not included
    
    -Quick and dirty:
    Extract.
    For GUI, from boardtools directory run:
    
    $python doall.py
    
        You will probably need to run doall.py at least once to verify default
        file paths. Save defaults to boardcfgdef.py in installed directory.
    
    To try demo:
        Click "Load boardcfg"
        Open the demo directory and choose boardcfg.py
        Click "Default Paths" and set to the correct locations.
        Click on "Browse" under "Board back" and reselect "demo-Back.gbl"
            to make sure the path is working directory is correct.
            This will automatically set the other files correctly.
        Click "Run boardcfg" (it will automatically ask you to save)
        Check out the generated files!
        
    To run a config file from a project directory:
    
    $python boardcfg.py
    
    -The idea:
    Generate ready to run g-code files from KiCad for LinuxCNC using one interface.
    
    -The method (how I do it):
    Schematic and board layout with KiCad.
        I use the Comment layer for text and draw board outline using actual tool
        path based on the bit I will be using so I can leave gaps to keep boards
        paneled together. (there is an option to use pcb2gcode for outline instead)
    Generate gerbers and drill files (4). *Back.gbl, *PCB_Edges.gbr, *Comments.gbr,
        and *.drl
    Use pcb2gcode to generate back and drill g-code files.
        * the paths are very "stair-steppy" which I did not like
    Use gerber2emc2cl to generate text and outline g-code files.
    Join the paths and text together in one file.
    Use p2gpathopt to reduce "stair-step", smooth paths, and reduce moves.
        Due crude optimizing.
    Use p2gdrillopt to due crude optimizing and optionally use only one drill bit.
    Use Etch_Z_adjust (*modified) to do auto-leveling.
    
    -The Solution:
    Have a config / batch script to do all this automatically.
        In reality there is a script that is placed in the drawing directory 
        that holds the configs (boardcfg.py) and calls another script (pcbbatch)
        that does all the hard work. This way boardcfg can be run in place when
        a board is modified without copying main script to each drawing directory.
        All needed settings needed to run are saved in the boardcfg.py file.
    A GUI to select all the various setting and generate the config file and
        optionally run it.
    Config file default name is boardcfg.py This can be modified by hand "at own
        risk" if desired, but may break compatibility with GUI. Undocumented.
    
    -What does the work:
    pcb2gcode
    
    Etch_Z_adjust.2.2.cl.py
        Modified command line version. Added ability to re-run file without
        re-probing. Modified to use a separate probe instead of tool bit, and to
        set tool height automatically.(Must use EMC2/LinuxCNC 2.5+!!!!!! uses G10)
    gerber2emc2cl.py
        Modified command line version. Added ability to mirror and offset.
    p2gdrillopt.py
        For optimizing drill files. Allows using only one drill and does crude
        optimizing using Morton number.
    p2gpathopt.py
        For optimizing paths. Smooths out pcb2gcode paths by finding the midpoint
        of each stair-step, eliminates redundant points creating straight lines
        within a set tolerance. (difference in slope < .001 or about .057 degrees)
        Adds very slight deviations from original, but gives much smoother result.
        You decide.
        Also optimizes based on Morton number.
        
    -Credit where credit is due:
    While thoroughly hacked and mangled, my work is based on these previous works.
    Both have no copyright/left restrictions in the files.
    I likewise put no restrictions other than ask for credit if you use it.
    (Please visit lwill.net)
    
    Etch_Z_adjust from michael_m at cnczone.com
    http://www.cnczone.com/forums/pcb_milling/82628-cheap_simple_height-probing-11.html#post843483
    
    gerber2emc2 from SAMMEL Lothar on the LinuxCNC wiki 
    http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Converting_Tools
    
    -Other software:
    KiCad
    http://kicad.sourceforge.net/wiki/Main_Page
    
    LinuxCNC
    http://www.linuxcnc.org
    
    pcb2gcode
    http://sourceforge.net/apps/mediawiki/pcb2gcode/index.php?title=Main_Page
    
    -Why my settings / method seems weird:
    I actually use a coated board and a drag bit to scribe the coating, then drill
        it without removing it from the machine, then etch in FeCl. The scribe
        only needs to be offset .001. The scribe and probe mount off to the side
        of my spindle, that is the reason for the offsets. I also use
        Etch_Z_adjust for engraving other things using a normal engraving bit and
        separate probe which was the original reason for modifying it.
    I used the Morton number optimizing method because it was fast and simple and
        better than nothing. I may rewrite the optimizing method later.
    This is my first major attempt at Python programming, so it is ugly. It     
        started simple, and 1100+ lines of code later.... So don't ask why I did
        something the way I did, the answer you will likely get is
        "Because it worked!"
    More info on this and other stuff at lwill.net/blog
    All comments are welcome, but I reserve the right to ignore them!
    
    I can be contacted though lwill.net
    If you find this usefull, find a bug, or have a good sugestion I would like to know.
    Attached Thumbnails Attached Thumbnails My Conversion Scripts-screenshot.jpg  
    Attached Files Attached Files
    Last edited by lwill; 03-23-2012 at 03:18 PM.


Similar Threads

  1. Problem- Need help with scripts
    By joewaterjet in forum BobCad-Cam
    Replies: 1
    Last Post: 03-13-2012, 12:24 AM
  2. Scripts for your everyday needs!
    By tjones in forum BobCad-Cam
    Replies: 4
    Last Post: 03-01-2006, 10:43 AM
  3. Scripts
    By tjones in forum Tutorials
    Replies: 0
    Last Post: 01-25-2006, 01:06 PM
  4. V19 Solid Scripts
    By cely in forum BobCad-Cam
    Replies: 0
    Last Post: 03-23-2004, 06:17 PM
  5. vb scripts
    By HuFlungDung in forum Mastercam
    Replies: 2
    Last Post: 07-08-2003, 12:53 PM

Posting Permissions


 


About CNCzone.com

    We are the largest and most active discussion forum from DIY CNC Machines to the Cad/Cam software to run them. The site is 100% free to join and use, so join today!

Follow us on

Facebook Dribbble RSS Feed


Search Engine Friendly URLs by vBSEO ©2011, Crawlability, Inc.