Beginner Thread

Hey Tom,

We’re not at the kindergarten. It’s all just Gemütlichkeit :slight_smile:

So having joined the discussion, I thought I would add how valuable it has been to my learning, to experience information in many different ways - as a teacher, my students taught me that daily, but as a learner I am no different.

To that end, may I suggest that any definitions provided in the document, also provide links to professional texts, images, and videos to support the understanding of any given term/topic.

For example. I find the Haas tips helpful, and here is one that helped me understand surface speed and why it is important and often given by manufacturers…

2 Likes

Not a bad idea, but that can get out of hand fast just with the plethora of internet information available.
My initial interpretation and intention was to create a one stop shop for n00bs to get exposure to terminology so when someone says your gantry is twisted and your carriage is leaning forward in areas and back in others.

I understand. Perhaps then, you could leverage the many ‘CNC terminology’ glossary lists that already exist, and modify/add to them slightly so they better help owners of the original and the Elite series.

2 Likes

I’ve looked at a few of them and was aiming for the day 1 cnc’er and any terminology that may be used to effectively describe a problem/solution.

I said Early I’m not one who knows onefinity exclusive terminology and that’s where I’m not a SME, i still have my shapeoko 3 and am waiting for my elite. I mentioned hearing jerk, and saying idk what it is, and i don’t care to know, because as onefinity said, it Didn’t apply to the elite, which i already knew because I hadn’t seen it in the reading of the masso site on their site.

glossary v1.4.pdf (456.3 KB)

Is there any other day 1 terminology that you wish you had?
What’s the target range for chipload with the onefinity,?

Chris,
Chip load is not Onefinity dependent per se, it really is related on rotational speed of the bit, the number of flutes and the travel speed into the material. Some people think depth of cut effects it, but in reality, that is horsepower related and not chipload related.

So, if you are cutting into MDF, it has no grain, and the density is fairly consistent, so a chip load is kind of nebulous in a way, and so maybe a chip load of .004 or maybe .006 is what you should strive for, but if it’s white oak or hard maple, you may want to be at .003, depending on your milling motor, you might only be able to cut to .125 inch depth in either though. Ultimately, it is trial and error for the most part, but be aware that that being too conservative is problematic, because if your chip load is too low, then it will not keep the heat down, as the chip load is what will remove heat from the bit, as strange as that may sound. If you use a hand router too slow or a table saw moving too slow, friction will cause discoloration (burning) and smoke and all kinds of bad stuff, just because your moving too slowly.

2 Likes

Hey all,

this one explains it well (in imperial units):

I already posted these links above:

1 Like

I just know where i come from in the land of carbide 3d, they posted a lower limit chipload of .001-.02 and i was looking to see if there was a similar range in 1f land

Shapeoko chiploads guideline

For the minimum chipload value to avoid rubbing, there is a large consensus in the CNC community that a value of 0.001’’ (0.0254mm) is a good absolute lower limit guideline, at least for 1/4’’ endmills and larger. It may need to be lowered to 0.0005’’ for 1/8’’ and smaller endmills.

This is assuming you are using a sharp cutter. You should never use a dull cutter anyway, if you do you may end up rubbing even at this 0.001’’ chipload.

The maximum reachable chipload depends on a lot of things, but mostly:

  • the hardness of the material being cut

  • the type and diameter of the endmill (smaller teeth need to take smaller bites: the maximum chipload for a given endmill scales linearly with its diameter)

  • the toolpath used (how wide/deep the cutter is engaged) and the rigidity of the machine : it is quite easy to forget that the Shapeoko is not as rigid as industrial CNCs, so endmill manufacturers recommendations may not be directly suitable for the Shapeoko. Any mechanical mod of the machine also impacts the max chipload capability.

The Shapeoko’s limits must also be accounted for: the absolute maximum theoretical chipload on a stock Shapeoko would be reached when using a single-flute endmill at the lowest RPM (10,000RPM on the Makita router) and at the fastest feedrate of 200 inch per minute, and that would be 200/(1×10,000) = 0.02’’ = 0.5mm

So all chiploads should be somewhere between 0.001’’ and 0.02’'.

As seen in this article

1 Like

I saw that article, but i was inquiring on upper limits of 1f

Hey Chris,

Onefinity makes nearly no statements about the capabilities of their machine in the meaning of providing numbers.

In any case I would assume that on a machine that uses a .75 kW hand trim router as milling motor (which since it is a commutated series-wound motor with carbon-brush commutators which by translating AC into a DC-like motion, induce counter-currents due to electromagnetic induction everytime when alternating current direction, that besides the production of heat and sparks, ensures a poor efficiency, furthermore a motor with very unfavorable motor characteristics, and a power statement that means power consumption and not, as IEC 60034-1 requires, the mechanical power available at the shaft, does not at all translate to the performance of a .75 kW spindle), the router is the limiting factor, whereas with a 2.2 kW spindle it should be the machine (assuming that a chip load that bends the machine or makes it chatter is outside the range of being specified).

1 Like

Too easy, I’ll just remove the statement… i was just trying to avoid the inevitable “okay cool, so at what point is it too high”
That would also explain why my Google-fu hasn’t been strong on the topic.

Anything else in there. As you see i changed the part about gcode to “machine code”

Hey Chris,

I don’t know if I surprise you when I say that probably “machine code” is not ideal too, since it already means something else :slight_smile:. Machine code was the first code I typed into computers after having learned BASIC, I learned the Assembly language of various popular CPUs at that time, these were the first programming languages that I learned, and before I could afford the cassette with the assembler/disassembler, I translated the Assembly code by hand on paper and typed it in as POKE commands :frowning:. This followed soon by learning C at the same time which is very hardware-close with its direct access to memory and the required knowledge of the machine code and the CPU capabilities of the platform for which you code, which explains why it is still a such important language today, e.g. Linus Torvalds repeatedly refused to switch to C++ for programming and contributing to the linux kernel, which seems logical when you consider the fact that the linux kernel is the only kernel for unixoid operating systems that offers low-level drivers for the large variety of graphics cards including the most modern and recent ones very quickly, graphics cards manufacturers often work together with the linux kernel today. BSD and other UNIX kernels can only dream of such low-level graphics capabilities. The second language that now entered linux kernel development is RUST.

The NIST, that issued the still valid G-code definition, defines G-code as “a numerical control code” which calls a “set of canonical machining functions”

Ok. Damn, I thought i had it with machine code. The nist definition sounds good… anything else you see senior qa/qc rep. I’ve added alot and changed a few over the various iterations… you can dm me if there is more wrong than right with semantics.

I did them with simple definitions to serve as a quick reference for n00bs to give them the words meaning when someone uses an unconventional term to an outsider coming into the circle. The level of n00bs im referring to are the ones that have a drill, and maybe a table saw, but probably not… because the home store will cut it for you.

Anyone willing to do one with onefinity specific language?

I want to post this in its own thread without further debate.

1 Like

Hey Chris,

the differentiation between G90 (set absolute distance mode) and G91 (set incremental distance mode) has nothing to do whether the machine is set to use machine coordinates (called “absolute” on the Buildbotics.com / Onefinity Controller) or the coordinate system currently in effect (e.g. after probing the workpiece).

G90 means: When encountering a motion command, move to a point designated by axis values that is absolute in the currently active coordinate system. It does no matter whether your current coordinate system is the machine coordinate system (since you didn’t yet probe/zero something) or whether it is, after probing/zeroing your workpiece, is meant to be interpreted in the currently active coordinate system. It just means, it is a coordinate relative to the currently active zero.

G91, on the other hand, means: When encountering a motion command, move to a point that is relative to wherever the axis is now, at the moment. This means, no matter what the current position is in machine or workpiece coordinates, add the value to the current position (negative values are also allowed). Per g-code definition, the coordinate system of X, Y and Z is always a Cartesian coordinate system with right hand orientation, which means, in this incremental mode, a negative value on X would be towards left, on Y towards front, and on Z towards bottom (see image below).

See also

2 Likes

I’m lost in what your trying to say i was incorrect in… Are you saying change zero to present position?
If that’s the case. Yes. Your right, incremental is based on present position and absolute is based on a specific position for the machine, regardless of the present position.

I’m reading other sources… so here I’m learning something, i always thought absolute meant the same. Looking at my macros i see g53 was used for those.

I think i got a simple explanation:

Absolute: a coordinate system that originates from your current 0,0,0 setting using that as an orgin as it measures out. Gcode compiled after your post processor utilizes the absolute coordinate system. Ex: x25y31, x24, y30, x25, y31 would make a square. G90 in gcode.

Incremetal: a coordinate system that is related to your present position. Ex: x25y31, x-1, y-1, x1, y1 would create a square.

Yeah. I feel more confident with that. Thank you, ya learn something new every day… i knew what they were, but absolutes orgin was what i thought i knew but was wrong. I had the right idea but the orgin wasn’t right. Made my macros a long time ago, and never looked at them since. thank you!

Hey Chris,

in order for others to understand what we are talking about, I quote your version 1.4:

Absolute Coordinate(s) (System) (Positioning): A coordinate system that does not take into consideration the position of any axis zero position. You should use the absolute coordinate system when you are having the machine travel to a set point as it will not move based on your XYZ zero point (example middle back, to move the machine out of the way so you can manipulate something on your waste board.) G90 in G-Code. See Incremental coordinate for the obverse.

Incremental Coordinate(s) (System) (Positioning): A coordinate system that is related to your axis zero point. G-Code compiled after your post processor utilizes the incremental coordinate system. (G91 in gcode) See Absolute Coordinates for the obverse.

So first, you write:

Incremental Coordinate(s) (System) (Positioning): A coordinate system that is related to your axis zero point. G-Code compiled after your post processor utilizes the incremental coordinate system. (G91 in gcode)”

This is wrong. It is not related to your axis zero point. **Incremental distance mode (G91) just means that any subsequent axis value (e.g. “Z3” or “Z-3”) on the currently active motion command is relative to the position wherever the axis is at the moment. Negative values mean adding the value to current position by moving towards left, front, or bottom. Positive values mean adding the value to current position towards right, rear, or top.

Then you write:

Absolute Coordinate(s) (System) (Positioning): A coordinate system that does not take into consideration the position of any axis zero position. […] G90 in G-Code.

This is wrong. Here you mix up to completely different things, the machine coordinate system and the absolute distance mode, which have nothing to do one with the other. The fact that on the Buildbotics.com / Onefinity controller, the machine coordinate system is called Absolute in the “Absolute” column on CONTROL page, may have contributed to this erroneous assumption, because the correct term is machine coordinate, not “Absolute position”. So, to make it clear, the machine coordinate system is the one that is in effect after homing and before bringing into effect another coordinate system. If you want to move relative to the machine coordinates, while another coordinate system is in effect, you got to prepend G53 (Move in Machine Coordinates) command to the motion command. The machine coordinates always designate coordinates relative to the machine origin, which never changes.

This has nothing to do with G91 (Set absolute distance mode). This mode means, any subsequent axis value (e.g. “Z3” or “Z-3”) on the currently active motion command is relative to the zero point of the currently active coordinate system. This does say nothing about which coordinate system that is, it could be the machine coordinate system in case you did not yet probe/zero a workpiece, or an offset coordinate system that has the zero point at the zero position of your workpiece origin. The G91 command just means, the subsequent values are to be interpreted as a coordinate in the currently active coordinate system.

Note: I wrote this as reply to #61, before reading your answer one above (#62), just for the record.

2 Likes

Hey Chris,

This is wrong. G-code compiled after your post processor may, in the same way as any other g-code or even freely entered MDI commands, use any of all possible coordinate systems including machine coordinate system, and even define and put into effect any possible offset coordinate system, and switch between those.

Also it may freely change the meaning of motion commands between absolute distance mode and incremental distance mode on every new motion command, just to tell the interpreter how the subsequent values are to be interpreted.

I am sorry that I have to contradict you so much, but I appreciate you don’t seem to have teaching allergy :slight_smile: (that rarely some people seem to have)

2 Likes

I encourage it. I always assume I’m not the smartest person in the room… and if i turn out to be, i find a new room.

My whole thing about not being human readable was partially along the lines of it being encoded or cryptic as you said and not in narrative form (that wasn’t what i was referring to specifically btw). You have decode it either by direct reference or subconsciously translate it, which was why i added the caveat it is possible to read in small parts…
the body of something really complex like 3d gcode was what i was referring to because like you mentioned reading music and hearing it is an example a non-english language… but I’ll say this again, i don’t think anyone can read the body of gcode and see what it will do/is without the use of a visualizer… that’s the context of not human readable i was referring to. If it was a simple shape with multiple passes maybe because of pattern recognition. Honestly if someone can read 1,000,000 lines and see what it is without computer help, they wouldn’t be doing this.

1 Like