517,696 active members
2,891 visitors online
Register for free
Login
IndustryArena Forum > MetalWorking > General MetalWork Discussion > Non-circular boring. (Linuxcnc fun)
Results 1 to 13 of 13
  1. #1
    Registered
    Join Date
    Jul 2003
    Posts
    1690

    Non-circular boring. (Linuxcnc fun)

    Andy created a hex on his lathe by slaving his x axis to the spindle rotation. I wondered if I could do something similar on the mill....

    bore a hex hole anyone?



    I created a hal component (realtime module within linuxcnc) that takes the spindle angle and calculates where x/y needs to be to create a polygon. (hex in this case but you can do almost any sided polygon)

  2. #2
    Registered
    Join Date
    Jul 2003
    Posts
    1690

    Re: Non-circular boring. (Linuxcnc fun)

    testing the component...


  3. #3
    Registered
    Join Date
    Jul 2003
    Posts
    1690

    Re: Non-circular boring. (Linuxcnc fun)

    This machine is being run with a rpi4+mesa 7i92.

    working well so far.

  4. #4
    Registered
    Join Date
    Jul 2003
    Posts
    1690

    Re: Non-circular boring. (Linuxcnc fun)

    First couple tries in plastic. (painfully slow - just testing) (and the hole size should be way closer to the inscribed polygon diameter...)

    https://youtu.be/X1ma_TsItMk





    This is the hal component for linuxcnc... WIP use at your own risk.

    Code:
    //   This is a component for Linuxcnc HAL
    //   Copyright 2020 Sam Sokolik <samcoinc@gmail.com>
    //
    //   This program is free software; you can redistribute it and/or modify
    //   it under the terms of the GNU General Public License as published by
    //   the Free Software Foundation; either version 2 of the License, or
    //   (at your option) any later version.
    //
    //   This program is distributed in the hope that it will be useful,
    //   but WITHOUT ANY WARRANTY; without even the implied warranty of
    //   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    //   GNU General Public License for more details.
    //
    //   You should have received a copy of the GNU General Public License
    //   along with this program; if not, write to the Free Software
    //   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
    component polygon "Create a spindle synced motion that carves a polygon using eoffset inputs.  Assumes positive rotation.";
     
    pin in bit enable;
    pin in unsigned numsides=3 "Number of sides in the polygon";
    pin in float inscribedradius=1 "inscribed radius of the polygon";
    pin in float cutterdiam "cutter diameter";
    pin in float eoffsetscale "scale that eoffset is set to.";
    pin in float toolang "angle difference between index and actual tool poition";
    pin in float spindlepos "Spindle position scaled to 1 per rev";
    pin out float spindlerad "Spindle postion in radians";
    pin out float polyradius "radious of the polygon at given spindle position";
    pin out float xoffset "x offset to send to offset componant";
    pin out float yoffset "y offset to send to the offset componant";
    pin out signed xeoffset "x eoffset output";
    pin out signed yeoffset "y eoffset output";
    pin out bit isindex "set index enable only once";
    pin io bit indexenable "hooked to index enable of encoder";
     
    function _;
    license "GPL";
    ;;
    #include  <rtapi_math.h>
    #define  PI 3.14159265358979323846
    float spinang;
    float scale;
    float spinangoffset;
     
        if (!enable) {
            xoffset=0;
            yoffset=0;
            xeoffset=0;
            yeoffset=0;
            isindex = false;
            return;
        }
     
    // only set index enable once
        if (enable && !isindex) {
        isindex = true;
        indexenable = true;
            return;
        }
     
    // wait for spindle index before actually enabling
        if (enable && isindex && indexenable){
            return;
        }
     
    //convert spinangoffset to ratio.. for adding to spindle pos - plus a couple rotations
    //so the spindle position isn't negative
    spinangoffset = (toolang/360)+2;
     
    //formual I found is for circumscribed - convert to inscribed - makes more sense.
    scale=inscribedradius/cos(PI/numsides);
     
    spinang = ((spindlepos + spinangoffset) - (int)(spindlepos + spinangoffset))*2*PI;
    polyradius = (cos(PI/numsides)/cos((fmod(spinang, (2*PI/numsides))-PI/numsides)))*scale-cutterdiam/2;
     
    //actual offsets applied - could be used for offset componant.
    xoffset = cos(spinang)*polyradius * -1;
    yoffset = sin(spinang)*polyradius;
     
    //counts for use with eoffset functionality
    xeoffset = xoffset / eoffsetscale;
    yeoffset = yoffset / eoffsetscale;
     
    spindlerad = spinang;

  5. #5
    Member
    Join Date
    Jun 2010
    Posts
    3956

    Re: Non-circular boring. (Linuxcnc fun)

    OK, that's a new one on me. Very clever.
    You need a servo-controlled spindle for it: mine cannot do that.

    Cheers
    Roger

  6. #6
    Registered
    Join Date
    Jul 2003
    Posts
    1690

    Re: Non-circular boring. (Linuxcnc fun)

    No... The axis are slaved to the spindle. You see me.turnung the spindle by hand and the 2 axis moving.

  7. #7
    Member
    Join Date
    Jun 2010
    Posts
    3956

    Re: Non-circular boring. (Linuxcnc fun)

    Encoder on the spindle then?

    Cheers
    Roger

  8. #8
    Registered
    Join Date
    Jul 2003
    Posts
    1690

    Re: Non-circular boring. (Linuxcnc fun)

    Yes - exactly.

  9. #9
    Registered
    Join Date
    Jul 2003
    Posts
    1690

    Re: Non-circular boring. (Linuxcnc fun)

    Now rotatable...


  10. #10
    Registered
    Join Date
    Jul 2003
    Posts
    1690

    Re: Non-circular boring. (Linuxcnc fun)

    Added the ability to change the radius of the polygon by moving the X axis. (so you can create profiles..) The resolution of the spindle encoder is visible in the cut you could also just do round profiles. Sort of like lathe turning profiles on a mill.




  11. #11
    Registered
    Join Date
    Jul 2003
    Posts
    1690

    Re: Non-circular boring. (Linuxcnc fun)

    video coming... one gcode program - chamfer, hex and hole all poly-bored..




  12. #12
    Registered
    Join Date
    Jul 2003
    Posts
    1690

    Re: Non-circular boring. (Linuxcnc fun)

    another high quality video..

    https://youtu.be/LWLcFdObLvA

  13. #13
    Registered
    Join Date
    Jul 2003
    Posts
    1690

    Re: Non-circular boring. (Linuxcnc fun)

    surprised how well it worked considering what I am working with mechanics wise...


Similar Threads

  1. Replies: 0
    Last Post: 10-31-2019, 05:13 PM
  2. Replies: 0
    Last Post: 07-29-2013, 01:15 PM
  3. Replies: 0
    Last Post: 07-24-2013, 07:03 AM

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •