Tangential cutter in development

New Home Forum Mostly Printed CNC – MPCNC Hardware Development – MPCNC Tangential cutter in development

This topic contains 166 replies, has 14 voices, and was last updated by  Eruheran 2 months, 1 week ago.

Viewing 30 posts - 31 through 60 (of 167 total)
  • Author
    Posts
  • #47210

    James Donnelly
    Participant

    Thanks for that circle. Did it have any signs of a different radius on the top and bottom? W.r.t. the line segment talk, I’m saying the you can’t just turn 90 degrees without lifting the blade. For the square, if you tried just turning at the corner, without lifting the blade, then the material would push against the side of the blade and it would probably just tear everything. The circle turned out good though, so there must be a point where it basically works. I wonder where that is. 10 degree turn? 30 degree turn?

    The circle came out perfect as far as I can tell.  Seems to me XY movement should be unaffected as long as the A axis is dialled in, which I believe is the case.

    The way I’m dealing with blade lifts is I have introduced a user parameter into gcodetools, where you set the threshold angle above which a lift will take place.  I think that circle had 24 segments.  It was cut with g1 commands rather than arcs, so there were 24 turns of 15 degrees.   By the way, I don’t actually understand how the cut curve is so smooth with 24 g1 commands

    For all the cuts I’ve done so far the lift angle threshold has been left at 45 degrees, hence why you saw the lifts for the square but not for the circle.  I believe the threshold angle you’ll need for a given material will be determined by its thickness and lateral rigidity.  I guess it will be something that will need to be established, like feeds and speeds.

    Having the lift threshold is key, and should mean very intricate tasks can be taken on.  The problem I have at the moment is that if I spin the A axis and watch the tip of the blade, it doesn’t stay centred in one place but draws a little circle.  I am planning to redesign the blade holder so that there is a more positive lock in the right position

    #47237

    Jeffeb3
    Participant

    By the way, I don’t actually understand how the cut curve is so smooth with 24 g1 commands

    When you say G01 X10 Y5 E10 from 0,0,0, the firmware will make a 3D line and follow that. So the angle would be:

    X1 Y0.5 E0.1
    X2 Y1.0 E0.2

    X10 Y5 E10.0

    Since the firmware doesn’t know this is the angle of a blade, it’s treated just like any other dimension.

    The accelerations and max speeds of the different dimensions will determine how fast the line is travelled, but it will always follow that line.

    So the position of the blade was following the 24 sided shape, but the angle was continuous.

    What caused the little spin move at the end? Do you have anything in the code to avoid reducing from 2pi to 0 during the cut?

    1 user thanked author for this post.
    #47253

    Ryan
    Keymaster

    Oh that is it…too nerdy for me, radians .. 2pi. I’m outta here. Let me know when your done with the math. yuck

     

    I thought the spin at the end was just flair to get some extra style points.

    #47254

    Jeffeb3
    Participant

    IDK, if this will be helpful, but I researched how Marlin and grbl do their movements and wrote about it a while ago:

    https://www.v1engineering.com/forum/topic/g00g01-speedaccelerationnot-jerk-and-marlingrbl/

    Also, Ryan, it’s just starting to get fun!

    #47269

    geodave
    Participant

    This is looking interesting.  Since it was fairly easy to do, I designed an adapter mount for my my bosch quick disconnect mount using https://www.thingiverse.com/thing:2494258 as a guide.  Looks like all I need is a mount with the same bearings & center hole as MPCNC_DragKnife3.stl.  Are you going to be releasing any other modification to that design?

    #47270

    James Donnelly
    Participant

    What caused the little spin move at the end? Do you have anything in the code to avoid reducing from 2pi to 0 during the cut?

    Thanks for the explanation, and it was me doing a g1 e0 by habit to be ready for the next cut

    No the gcode generated simply adds or subtracts radians to turn the knife, so it will never try to go back to 0.

    I thought the spin at the end was just flair to get some extra style points.

    I am busted, yes in fact I thought it looked cool too.

    IDK, if this will be helpful, but I researched how Marlin and grbl do their movements and wrote about it a while ago: https://www.v1engineering.com/forum/topic/g00g01-speedaccelerationnot-jerk-and-marlingrbl/ Also, Ryan, it’s just starting to get fun!

    Thanks for the link.  I will have read on the train.  Yes this is my idea of a good time.

    This is looking interesting. Since it was fairly easy to do, I designed an adapter mount for my my bosch quick disconnect mount using https://www.thingiverse.com/thing:2494258 as a guide. Looks like all I need is a mount with the same bearings & center hole as MPCNC_DragKnife3.stl. Are you going to be releasing any other modification to that design?

    Yes as soon as I have time it’s going on Thingiverse, which I’ll release with a version of Gcodetools with the code changes.  The design has two linear bearings so the axis assembly can move wrt to the mount for the spring loaded effect, and without introducing any slop between mount and assembly.  If you look at the first post you should see what I mean.

    Also the offset from centre axis to point of blade has been reduced to nothing from the 4mm in that design.

     

     

    #47317

    James Donnelly
    Participant

    Published to Thingiverse:

    https://www.thingiverse.com/thing:2624654

    Shout if there any issues, mistakes or omissions and I will respond ASAP.

     

    #47423

    James Donnelly
    Participant

    I’ve run into a problem with my workflow and have got a bit stuck.

    I’m trying to output layers from Fusion360 Slicer (used to be 123D Make).  It has the options of DXF, EPS and PSD.

    When I import a DXF from this into Inkscape, I can see arcs are represented as lots of very short segments.  Running the gcodetools workflow documented in the Thingiverse page, I was at first able to generate some gcode, but it was useless.  A massive file full of ‘sub paths’.  Gcodetools does a lift for every sub path.

    So I tried various ways to get the circles in my file to be one arc but failed so far.  Combine works, but produces one object, and nothing I’ve tried can generate a new vector representation of the input.  See attached, trimmed down to one part and saved as SVG.  I’m not allowed to attach SVG or DXF, so see image with one segment selected.  Also see the sub path gcode generated for each segment:

    G00 Z5.000000
    G00 X13.055949 Y8.658069
    (Subpath start)
    G00 Z0.000000 (Lift up)
    G00 E2.495283 (Turn knife 142.969171899 degrees)
    G01 Z-2.000000 F900.0 (Penetrate back)
    G01 Z-2.000000 F900.0(Penetrate)
    G01 X12.713863 Y8.916138 Z-2.000000 F900.000000
    (Subpath end)
    G00 Z5.000000

    Also related, when you tell Gcodetools no arcs (high minimum arc radius),  the way it handles arcs in the input is it breaks them into segments.  I haven’t found in the code where it determines the segment length.

    I could probably get Gcodetools to not lift between sub paths, but it’s still a mad amount of gcode when there about 100 segments for each circle.

    I’ve also tried outputing from Slicer to EPS and PSD and tracing a new vector, but without success.

    Any help much appreciated.

    Attachments:
    #47432

    geodave
    Participant

    I can not help you with the fusion360 since I use DraftSight to generate my 2d geometry.  That is an AutoCAD clone & will generate curves with arcs and not segmented polylines.  They have a free version that works quite well if you are willing to try a different workflow.

    I have a couple of questions for you.

    Do you have a photo showing the TN knife assembly with the MPCNC Z-Axis motor also?  It would be nice to see how it looks all together.

    While working on modifying this TN_machine_mount.stl , I noticed there is only a .8mm distance between the widest part of the M10 holes or 20mm between the center of each hole.  Is there anything special about that distance?  I would like to make it 22mm between the holes to give it just a little more plastic between them.

    Here is a screen shot of the dimensions I pulled off.

    TN_Hole_Dimensions

    #47437

    Jeffeb3
    Participant

    You exported the circle in AutoCAD, which turned it into a polygon. Then gcode tools treats each segment as a separate object?

    Can you open it in something else, like Inkscape and create a path from the segments, so they are treated like a polygon instead of line segments? Are there any options you can tweak in fusion? Dxf supports circles/arcs, so it should be able to output those.

    What about drawing the shape in another cad program, like libreCAD or OnShape?

    Just trying to brainstorm.

    #47452

    James Donnelly
    Participant

    Do you have a photo showing the TN knife assembly with the MPCNC Z-Axis motor also?  It would be nice to see how it looks all together.

    tn_knife_mounted

    While working on modifying this TN_machine_mount.stl , I noticed there is only a .8mm distance between the widest part of the M10 holes or 20mm between the center of each hole.  Is there anything special about that distance?  I would like to make it 22mm between the holes to give it just a little more plastic between them.

    You’ve found the problem I most expected people to pick up on.   I wanted the screw holes to be accessible in a straight line without the bulge of the bearing housing in the way – a pet hate of mine is not being able to mount/unmount tools easily.  Keeping the linear bearings close together meant not having to push the bearings to far out from the tool mount.  I figured the wall thickness outside the bearings would mean there was no problem but it’s not elegant I admit – novice designer 🙂

     

    #47457

    James Donnelly
    Participant

    I can not help you with the fusion360 since I use DraftSight to generate my 2d geometry.  That is an AutoCAD clone & will generate curves with arcs and not segmented polylines.  They have a free version that works quite well if you are willing to try a different workflow.

    You exported the circle in AutoCAD, which turned it into a polygon. Then gcode tools treats each segment as a separate object? Can you open it in something else, like Inkscape and create a path from the segments, so they are treated like a polygon instead of line segments? Are there any options you can tweak in fusion? Dxf supports circles/arcs, so it should be able to output those. What about drawing the shape in another cad program, like libreCAD or OnShape? Just trying to brainstorm.

    I realise now I totally didn’t make things clear – I guess I assumed more knew about Slicer.

    Slicer is a stand alone app, that is a rewrite of 123D Make.  Takes a model (STL or object) and offers a workflow of generating 2d cutouts for different construction types; flat slices, radial – tons actually.  There is a workflow to use it from within F360, but’s really a closed system.

    The cutouts can only be downloaded in EPS, PDF or DXF.  It just happens that it exports DXFs with all the arcs as very short line segments.  Since I posted, I found lots of reports about this causing issues with laser cutter software etc.

    I am currently half way through trying out a workflow where you use the EPS option – looking good.  I didn’t realise when you have the object browser in Inkscape open you can select elements within the imported EPS individually.

    By the way, the whole reason for this knife is I’m trying to make these:

    scraplight_hives

    …and want one bigger than my laser cutter can do.  Easy to do stuff like this in Slicer.

     

    #47460

    Ryan
    Keymaster

    An stl by design is just a bunch of triangles, when you slice those you always get line segments, higher res smaller segments. To get away from that you will need to start with a real file not a stl. Or maybe that isn’t the issue?

    #47464

    Jeffeb3
    Participant

    I wonder if you could make some code that could find the segments and make either the arc or a polyline/polygon in the svg. They segments should be touching, so as long as there aren’t there line segments ending in one spot, you should be able to find them. I’d start with brute force, then speed it up with some pre sorting.

    You could either make it read and write svg or do it in your gcode tools.

    #47498

    James Donnelly
    Participant

    An stl by design is just a bunch of triangles, when you slice those you always get line segments, higher res smaller segments. To get away from that you will need to start with a real file not a stl. Or maybe that isn’t the issue?

    In this case the object being worked on is not an STL.  I’d have to look at what happens when you start with an STL.  I think the general answer is that just after the slicing gets done in the software, the object is still made up of arcs, and when the translation to DXF for output happens, these arcs are expressed as segments.

    I wonder if you could make some code that could find the segments and make either the arc or a polyline/polygon in the svg. They segments should be touching, so as long as there aren’t there line segments ending in one spot, you should be able to find them. I’d start with brute force, then speed it up with some pre sorting. You could either make it read and write svg or do it in your gcode tools.

    It seems strange that after much searching there isn’t an easily available function to derive arc vectors from sequences of segments.  Just to be clear, there isn’t a general problem with Inkscape/Gcodetools in relation to generating 4th axis Gcode.  It’s just that Slicer can’t output arcs, and the reason I’m clinging to Slicer is…well you just have to try it, and maybe you’ll also get the bug.

    #47503

    Jeffeb3
    Participant

    But, the gcodetools should be able to cut a polygon without lifting the blade at every corner, right? We were talking about a max angle before it would lift up. Something is keeping it from treating it as a continuous path. Arcs would be fine, but the cam should be able to handle this anyway. There are an awful lot of objects that aren’t just arcs or long lines.

    I assumed the reason it was a problem was that they were treated as separate, unique objects.

    #47507

    James Donnelly
    Participant

    But, the gcodetools should be able to cut a polygon without lifting the blade at every corner, right? We were talking about a max angle before it would lift up. Something is keeping it from treating it as a continuous path. Arcs would be fine, but the cam should be able to handle this anyway. There are an awful lot of objects that aren’t just arcs or long lines. I assumed the reason it was a problem was that they were treated as separate, unique objects.

    You’re right, I failed to emphasise again that it’s not just that there are segments instead of arcs.  It’s also that gcodetools thinks they’re not joined up, because it’s using a sub path for each one, causing a lift.  Some debugging could be in order.

    However, even if the segments were not treated as sub paths, there would still be a lot of gcode to do a circle.  I guess that wouldn’t matter.

    #47551

    geodave
    Participant

    Are the 2 x 10mm x 120mm steel or aluminum rods in this design to give it more stability and tie the stepper mount to the machine mount?  The reason I am asking is that I need to move the cutter at least 5mm towards those 10mm rods to be able to clear my quick disconnect mount.  If that is the case, could I just use a couple of smaller M5, M6 or M8 screws and change the design of those 2 mounts?

    #47568

    James Donnelly
    Participant

    Are the 2 x 10mm x 120mm steel or aluminum rods in this design to give it more stability and tie the stepper mount to the machine mount? The reason I am asking is that I need to move the cutter at least 5mm towards those 10mm rods to be able to clear my quick disconnect mount. If that is the case, could I just use a couple of smaller M5, M6 or M8 screws and change the design of those 2 mounts?

    I’m not 100% clear on the question, but the rods are there because spring loaded movement of the blade was a primary design goal.  given the stepper needs to move freely in the z axis w.r.t. the mount, the two rods, two bearings arrangement was chosen to minimise X/Y slop.

    My experience with cutting thicker material is that rigidity of the cutting head is key, but so is the spring loaded action, as it regulates the downwards pressure of the blade.

    #47571

    geodave
    Participant

    Do you have a video showing the movement of the whole assembly.  Not sure I can explain my question properly, but from what I could tell from the assembly only the drag knife with spring moved relative to the 4th axis stepper motor.  The stepper mount & machine mount look like they are fixed together and only move with the z-axis motor.  Is that not true?

    #47574

    James Donnelly
    Participant

    Do you have a video showing the movement of the whole assembly. Not sure I can explain my question properly, but from what I could tell from the assembly only the drag knife with spring moved relative to the 4th axis stepper motor. The stepper mount & machine mount look like they are fixed together and only move with the z-axis motor. Is that not true?

    The 4th axis stepper is mounted to the stepper mount (obvs).  The shaft of the stepper is coupled to the bolt of the knife holder assembly with a pineapple coupler. This assembly moves freely w.r.t. the machine mount, which is fixed in the usual way.

    To put it another way, when mounted, if I grab the blade and push up, the bolt, pineapple, stepper and stepper mount all move as one.

    If you un-screw the pineapple coupler, the bit with the stepper, stepper mount and rods will come right off.

    Won’t be able to do a vid for at least a day, but will do so .

    Incidentally, I’m moving to a smooth bolt rod from the knife mount through the skate bearings, much more freedom of movement, just need to find one with the thread in the right place

     

    #47799

    James Donnelly
    Participant

    Sorry geodave, didn’t do your video.

    Been struggling for time, and struggling with issues on this thing.  I need a bit more help I think.  Or maybe just to share my problems.

    jeffeb3, you were explaining why my circle was round and not segmented.  I messed up, because that circle was cut with arcs.  I forgot to set the minimum arc angle to prevent it using arcs for that one.  It turns out, when gcodetools uses segments instead of arcs, it does the turn commands separate to the move commands, which doesn’t sound too bad, but the segment count for a circle is not easy to control.

     

    It’s controlled with a parameter (biarc interpolation tolerance) but results in un-even segment length.  So arcs would be so much nicer.  Unfortunately, extensive testing has revealed that with arcs it seems steps are missed.  Is this the expected behaviour with arcs?

    Sample arc gcode:

    G03 X135.287820 Y102.900965 Z-7.000000 I-59.843105 J-0.000000 F900.000000 E1.963495

    Sample segmented gcode:

    G01 E-0.049368 (Turn knife -2.82856773182 degrees)
    G01 X96.332726 Y47.737004 Z-7.000000

    Regarding the issue with slicer’s output, the segment vectors are there in the file as individual paths.  Gcodetools doesn’t seem to know that even if the end point of one path is the start point of the next, it can be treated as a single cut path, hence why you end up with tons of sub paths in the gcode.

     

     

    #47801

    Jeffeb3
    Participant

    It’s controlled with a parameter (biarc interpolation tolerance) but results in un-even segment length.

    Ah, that’s the thing where you’re basically setting the maximum difference between arcs and line segments, right?

    Unfortunately, extensive testing has revealed that with arcs it seems steps are missed.

    What do you mean? The steppers are skipping, or part of the process or gcode is missing? If the steppers are skipping, if try doing the moves in mid air, and see if you can see why they aren’t doing the right thing.

    That gcode looks fine, but those two parts aren’t equivalent. I’m not sure what I’m looking for, exactly.

    The gcode for movement always starts at the previous location (obviously) the arc commands and the line segments both end up at the x y locations. The Arc commands just go there by moving along the circle defined by the I and j values.

    One thing that’s always bothered me is what happens when the i,j doesn’t fit with the starting location and the x,y location. But that’s neither here nor there.

    Marlin thinks the E value is just the amount of plastic to push while following that path. If the path is 3mm long and it’s supposed to extrude 0.3mm, it will extrude 0.1mm when it’s travelled 1mm along the arc.

    That actually works out for us, because if the angle starts at 0 and it’s ultimately going to end up at 90, will traveling 10mm, it will be at 45 at 5mm. That will work out as long as the arcs are generated the right way. If the path was clockwise and the cutter moved anticlockwise, then there would be problems.

    If be curious to know if the slicer handles polygons differently than independent line segments. If the only way to make that shape work is arcs, then… Bummer.

    Another note. You shouldn’t worry about the size of the gcode, just the runtime. Trochoidal milling uses a bunch of little arcs to make it’s circles, so it is huge. If it’s lifting 2mm everytime it moves 1mm, then that’s a problem, but the length of the file is no big deal.

    1 user thanked author for this post.
    #47803

    Jeffeb3
    Participant

    Did you post the troubled svg somewhere?

    #47810

    Steve
    Participant

    Conversation is over my coding head. But the same topic seems to be here: http://www.cnc-club.ru/forum/viewtopic.php?f=33&t=17214&p=392530#p392530

    #47819

    Jeffeb3
    Participant

    I bet that’s James too. His username here is jamesd256.

    1 user thanked author for this post.
    #47820

    Neil
    Participant

    This is awesome (not sure how I missed this). I want too try cutting dollar tree foam board.  This could be great for cutting foam planes. Keep up the great work!

    Neil

    #47821

    James Donnelly
    Participant

    Thanks for sticking with this jeffeb3, I appreciate the support.

    Ah, that’s the thing where you’re basically setting the maximum difference between arcs and line segments, right?

    That parameter actually works whether gcodetools is generating arcs or segments to match the shape.

    If you start with a circle path in inkscape, you can get gcodetools to do it with arcs or segments based on the value of the minimum arc radius.  If you set this high enough, it will do your circle in segments.

    Biarc interpolation tolerance controls something close to how you describe, but works for both arcs and segments.  Even for arcs, they are approximated to the underlying path, and that param controls the tightness of the approximation.  For segmented gcode, it effectively controls the segment length, as the higher the value, the less segments it will use to approximate a circle.

    What do you mean? The steppers are skipping, or part of the process or gcode is missing? If the steppers are skipping, if try doing the moves in mid air, and see if you can see why they aren’t doing the right thing.

    After I run the arc based gcode to draw a circle, which is drawn from 3 o’clock anti-clockwise back to 3 o’clock.  Even in mid air, the orientation of the tool does not return to the starting orientation, but instead lags behind by a few degrees.

    I calibrated steps per mm for E so that 10 rotations (pi * 20) return the blade to the original orientation after 10 turns.  I also double checked this after the circle gcode was run.  Hence my conclusion that arcs cause missed steps.  As you say there is no physical resistance, so I assume it’s a processing failure.

    I have also looked at the numbers in the gcode, and the blade should start and finish at 90 degrees or 1/2 pi.  Somewhat unrelated, but in the simulation the arcs look correct.

    I understand your point about the gcode size – if getting the software to produce a segmented circle was going well it would be ok, although it would be better if the segment moves also had the E moves, so it wasn’t move->turn->move->turn

    This is all separate to the slicer problem.  I’m just drawing a circle in inkscape and trying to produce gcode from it at the moment.

    The slicer problem is that it produces arc free DXF’s (I am not very clear about arc support in DXF), and the segments are all as individual paths in Inkscape.  Gcodetools sees these as sub paths.  There would need to be code changes to accommodate this, and anyway I’ve found a work around – export to png and then centerline trace from Inkscape, which is working fine.

    I did post that stuff on CNC Club RU.  It was about something different thought, namely blade lifts.  The forum is not active and I worked out the answer to that myself.

    #47822

    James Donnelly
    Participant

    This is awesome (not sure how I missed this). I want too try cutting dollar tree foam board. This could be great for cutting foam planes. Keep up the great work! Neil

    Thanks!  Time will tell if this turns (turns!) out better for foam board than  a needle cutter.  My feeling is that maybe the needle cutter will be the ultimate tool for foam.  I’ve bought my bits for that, and will make one soon.

    I’m fairly obsessed with cardboard at the moment, although if I can solve the issues I’ve got, I will certainly be testing some very sharp angled cuts in vinyl, such as small lettering, where a drag knife suffers.

    #47823

    geodave
    Participant

    Sorry geodave, didn’t do your video.

    No problem,  after your previous message I looked at the assembly a little closer & think I understand the movement now.  I have moved on to some other interests this week & not sure when I will get back to this.  I did get the 2 main parts remixed in openscad so they are close to fitting in the quick release bracket.  I am thinking about using 2x 8mm rod instead of the 2 x 10mm x 120mm rod so it would be easier to fit within the quick release bracket.  Do you see any problem with using 8mm versus 10mm?

Viewing 30 posts - 31 through 60 (of 167 total)

You must be logged in to reply to this topic.