text:
Improving triangulation on AutoCAD-generated stl files
In regards to a part that I'm having printed remotely (by two processes:- stereolithography and laser sintering), I've been advised by the 3d printing company that 'the triangulation of the file is rather rough'.
In this particular instance, it probably doesn't matter, but for the future, are there any tips to improving 'triangulation' when generating forms in AutoCAD?
Note, AutoCAD's FACETRES variable is set to 10.

The phrase "triangulation of the file is rather rough" is somewhat vague, but one can interpret it to mean that the surface is what is considered "low poly" in the 3D modeling world.

From Thingiverse, this low poly fox shows an intentionally reduced poly surface. I'm not suggesting that your models appear this distorted, but it may give a hint to what the service is referencing.
Consider to load your model into a program such as Meshmixer, which will show you the triangles in 'W'ireframe mode. If there are few triangles over a surface, you can get the aforementioned effect.
Meshmixer also allows you to increase the mesh count, possibly improving the surface and satisfying the requirements of the printing service.

Regarding your last paragraph, that's like when the 2D poster printing shop tells you your 400px jpeg isn't sufficient resolution so you upscale it 10x and send it back to them. If the mesh is insufficient, you have to go back to the original source and produce something better, not "upscale" (add polys to) the bad mesh.

Most CAD tools generate quite low-res triangulations. The ideal solution is to avoid using the CAD tool to generate them. For example, if the print shop can accept your CAD files directly, they may have other software that can triangulate them. For example, if the shop uses GrabCAD Print to slice your parts, that software can open CAD files directly, and produce much better triangulations than exporting from the CAD software. (In this case they won't be using GCP, which doesn't support the print technologies you mention, but it's just an example: some other vendors' tools have the same functionality.)
If you don't wish to send your original CAD parts, check if your tool can export Parasolid files (.x_t or .x_b). They contain the original boundary representation your CAD tool uses to represent geometry, but not the feature structure, constraints, or design intent.

This thread and this article, both on Autodesks website, suggest altering the FACETRES system variable to 10 to achieve a higher-quality .stl export.
Alternatively, you can use the 3DPRINT command for FACETRES to be increased automatically, which will then offer an .stl export or to send the file directly to a 3D printing service.

Hi - Thanks - I should have mentioned that facetres was already set to 10. I'll edit accordingly...

Maybe this applies?
https://forums.autodesk.com/t5/autocad-forum/autocad-2018-facetres/m-p/7466483#M902878
Other than that, I would try exporting to a "lossless" format such as .step and exporting the .stl from another software suite like Fusion 360 or FreeCAD.


text:
Choice of lead for lead screw
This video brought to my attention the 8 mm lead of the Ender 3's Z axis screw, which seems like an exceedingly bad choice from a standpoint of accuracy with respect to common grid alignments in the Z direction. In particular, with the stepper having 200 full steps per rotation, the 8 mm lead consumes all the powers of two out of 200, leaving 25 full steps per mm - and 25ths of a mm are not a typical unit that layer heights/feature heights are going to be in. It seems like a 5 mm lead would be ideal, giving you 40 steps per mm, evenly divisible by 3 powers of 2 and one power of 5, for exact tenths and exact eights.
Is there a motivation behind the choice of 8 mm lead? Is this common for other printers, and are there printers that use a 5 mm lead, or 5 mm replacements that work well?

I've not seen trapezoid lead screws with 5 mm lead, you can get 5 mm lead ball screws though.
On one printer I use 4 mm lead screws to get native 0.02 mm resolution (so 5 full steps for 0.1 mm, 10 for 0.2 mm, etc.). I also geared down 8 mm lead screws with a 2:1 ratio (e.g. to use a single Z-stepper driving a belt that drives 2 lead screws), works fine.

Direct-drive, 8mm-pitch Z-axis screws is a very common configuration. Although it results in low z-axis resolution, apparently it works well enough for most FFF applications.
Like you, I noticed this curious design as soon as I got into 3D printing. Based on normal design principles, the resolution of the Z-axis of most printers is technically inadequate or barely adequate, at least based on normal principles from CNC machines and other motion applications (my background is semiconductor industry robots).
Printers cut a lot of corners for cost reasons. That's why they cost hundreds of dollars instead of many thousands of dollars like CNC machines. My printer, like many others, has 8mm-pitch screws and no gear reduction. Sticking an 8mm-pitch lead-screw directly onto a stepper is simply a cheap and easy design. You could get better resolution with a shallower-pitch leadscrew, or with stepper gearboxes, or with belt-and-pulley reduction. But it would add cost and complexity, and modern stepper drivers help to band-aid the low mechanical resolution.
The divisibility of the layer heights into stepper motor revolutions is not that big of a problem in the context. Z-axis resolution is just plain low, and evenly-dividable layers may or may not make an actual improvement. I think if you are concerned about Z-axis resolution then increasing the mechanical resolution should be a far higher priority than worrying about even divisibility.
It still sort of bothers me that the Z-axis resolution is so low. But we see that printers like mine tend to work fine with the 8mm leadscrews, even in vase mode, and even with auto-bed-leveling. And I never pay attention to "magic" z-axis numbers, either. I'm sure the Trinamic stepper drivers are a big part of the reason it works so well. Sure, I could buy 2mm-pitch lead-screws and nuts to increase my Z-axis resolution by 4X. Or, I could install planetary reducers to increase it 10X. But the problem I would be solving is apparently pretty minor in practice.
Also: most of these 8mm-pitch screws are 4-start threads. The reason the pitch is 8mm is partly to do with the lead-angle of the threads, and partly to do with the fact that it's a 4-start thread. The more starts a thread has, the higher the effective pitch; other things being equal, a 2-start thread will have twice the pitch, and a 4-start thread will have 4 times the pitch. So why use multi-start threads, if it reduces resolution? Technically, multi-start threads are better for lead-screw applications because they reduce binding forces. Single-start threads, like the normal UNC threads, are unbalanced, and they "push" from only one part of the diameter, so the nut tends to tilt and bind when loaded axially. This is normally fine for bolts which need to wedge in order to stay tight, but it adds friction and play when operating as a lead-screw. Using 2-start threads, the nut is "pushed" from opposite sides of the diameter, so the nut doesn't have the default tendency to tilt and bind. 3-start threads are even better because the nut is stabilized at 3 points, resisting binding forces from any direction. 4-start threads are better still but maybe a bit overkill. All this is to say that the downsides of the high effective thread pitch are somewhat compensated for by the benefits of using mult-start threads. Switching to a single-start 1mm thread would increase the resolution by 4X but would introduce some other downsides of using single-start threads, which technically could cause some other inefficiencies. It's not practical to make 4-start, 1mm thread or if it were, it wouldn't be a common part and thus probably even more expensive than just using gear reduction.

I expect a T8 with 8 mm pitch to be cheaper (in large quantities) than a T8 with 2 mm pitch (which also exists).
I think that if you have T8x8 you can use 4 milling heads (the screw has 4 starts) and therefore cut away the material faster. With a T8x2 mm you can use only a milling head at time.
This is speculation, since my local supplier prices them the same.
Also, microstepping is always used, especially if bed leveling is active, therefore you get at least 4x the resolution you think: 10 um per microstep. More than 4x microstepping may not be reliable, given the reduced additional torque provided by the motor and the higher torque required by a T8x8 mm lead screw (higher angle of attack, or what is that called).
Summary: it may be cheaper, and surely provides enough accuracy for the printers which use them. It's 4x faster than a T8x2 mm lead screw and 8x faster than a M8 threaded rod. This affects print times too.

Or 5.5555 times faster than metric Tr8x1.5

Yeah, that I have NEVER seen offered for printers :)

Well, you can use the screw with the size you can get easily, but sometimes can be messy at the time to mount to the printer, for example I'm using on two printers a standard thread 1/4 which measures 6.35 mm so is a little hard to coupling.

However milling the thread this can be mounted correctly, but the screw is soft and can be bent or warped easily making your printer wobbly and and produces failed prints.

However I´m satisfied with the printing quality and I can set prints with 0.1 and can increase 0.05 by 0.05
Now I want to mount an screw of 10 mm to minimize wobbling generated by those warped (bow) that repeats variation on size (x,y) on every cycle or every revolution. The 10mm screw are completely straight. I don't think that the stepper motors can be compromised with an extra weight.
So, Z layers can be at 0.05 mm but it can be achieved 0.02 mm tested until now. But wider diameter can achieve smooth edges.

Please reread the question, it is not about diameter, it is about the lead (the advancing) of the nut.

Yes, I know thats why I specified that z layers can be at 0.05mm but it can be achieved 0.02 tested until now. But wider diameter can achieve smooth edges.

@0scar Also refers to 5mm lead screw :) that size will wobble the printer and won't get well shaped borders, no matter if he worried about advancing z height.

True, such a small diameter screw (if that is what you mean) gets you into wobble issues pretty fast, that is just too thin to have rigidity.

You are delving into the darker recesses of 3D printing here!
ACME threads, anti-backlash nuts, ball-screws, etc. will ALL follow...
The simple answer is that the Z-axis screw on all the cheaper 3D printers are pure crap! They use 8mm With triangular threads because it they are cheap and most software works with it.
The first major upgrade most folks make to a printer (after the print bed surface) is to replace the Z-axis screw and nut. Many are poorly mounted and/or warped, resulting in Z-axis wobble.  Most suffer major backlash - offset only by the fact that most printing only ever goes upwards...
The ideal upgrade would be to replace the rod and nut with a good quality ball-screw assembly that is properly mounted. But, if you do change the pitch, make sure you can alter the software to account for it...
That said, if your prints are good, enjoy, and don’t sweat the details!

ender 3, one of the most cheap printers there is, uses  Trapezoidal 8mm pitch. The first upgrade on most printers is not the Z-axis, it is swapping either the hotend or mounting a BL-touch.

Cool! Then the world has moved on from my early days... :-) My first printer was a no-name kit that came with a cheap, warped, z-screw, and a cheap coupler that was impossible to center properly. It was a no-brainer to replace the coupler, the z-screw, and add an anti-backlash nut without having to change settings, get out the soldering iron, or recompile/flash the firmware. BL-touches were still very experimental and flaky at the time. Funnily, I still don’t have them on any of my printers.

Neither do I have a BL-touch, but a BL-touch has become a pretty much a drop-in replacement.

Did they reach a level where they actually improve print quality? Last time I looked (~18 months ago) they weren't well supported in most firmwares, and only really added a lot of value if you were setting up a print farm. The original issue with them was poor Z-Axis precision and backlash in a great many printers out there, but if good quality Z-axis precision has become the norm then I can imagine them making bed calibration easier...

Mesh Bed leveling is a feature that is supported by MArlin. However, a BL-touch can also function as just a single-point-leveling method, and because it is mounted on the printhead with a fixed offset and is easier to adjust to the nozzle at times, it can be easier for new users to adjust  the bed level this way:  the user only has to make sure the bed is flat and parallell to X and Y and can ignore the Z-position part.

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

sort: votes


text:
Why is the printed object smaller than original model?
I am printing a small cylinder, but when the object is finished, it's smaller than the measures I used when create the model.
I used thincerkad to make a simple model, the measures are:

width: 90 mm
height: 2 mm

After the print was done, the actual dimensions were:

width: 70 mm
height: 2 mm

Pictures
First attempt

The smaller object that's in the drawn circle was the first one printed, the dimensions I used were:

width: 110 mm
height: 2 mm

Then I printed it again, and the result was:

in reprinting: did you use the same gcode? did you resclice it? What does the Sicer tell you is the size of the disk?

I used simplify, just generate the file with the g-code, copy to the pendrive, insert that in the print, and lets go.

Good question, i Will try today with Slicer, but simplify show me the same measures than i put yo the model un the software

Is it true that the first picture shows a 70mm output for a 90mm model, and that the second picture shows a 110mm output for a 110mm model?  If so, something other than scaling (or wrong steps per inch) is happening.  Also, what is causing the cross-hatching?  That seems to be scale invariant.

110 mm model 90 cm output

Let's do the math, you printed something of size 9 cm and got a size of 7 cm. This implies that the scale equals $\frac{7}{9}=0.778$. In order to print it at the correct size, you should have printed the object at scale $\frac{1}{0.778}=1.286$; so 28.6 % bigger, i.e. $1.286\times9=11.6$ cm. You printed at 11 cm, so the print should become smaller than the pencil drawn circle on the paper. This is actually what you see in the image you supplied.
This can imply 2 things, you either scale the prints incorrectly to export to stl (but that is unlikely because the Z height is correct), or the steps per mm are incorrectly set in the firmware of your printer. The rotation of the steppers (usually 200 steps) need to be translated into linear movement; this depends on the used pulleys mounted on the steppers (typically used pulleys are: 16 or 20 teeth for belt driven X and Y axes).
Calibrating the steps per mm of the extruder is answered in this answer. For the X and Y axis this works the same. If you have a Marlin based printer firmware, send G-code M503 to the printer over a terminal interface as e.g. OctoPrint, Pronterface (as part from Printrun: 3D printing host suite), Repetier-Host have, you can obtain the current values from the reply; these are listed under M92.
That value for X and Y needs to be multiplied by 1.286 (as an example) to get the correct dimensions. You do this by sending G-code M92 like M92 X100.00 Y100.00 (see this answer that explains which values you should use based on pulleys you use, either 80 or 100) to the printer, to keep these values they need to be stored in memory using G-code M500 (note that the values 100.00 should be replaced by the values you get by multiplying the return values for X and Y from M503 by the 1.286 multiplication factor, only if the error is systematically increasing with print dimensions, otherwise stick to the calculated values from e.g. the Prusa belt calculator).
Without the proper steps per mm, you will not be able to use the full potential of the bed. An alternative as scaling your prints by the appropriate scaling factor will only help if your scaled print is smaller than the bed size divided by that scaling factor, so no use of the full bed. Rather fix the firmware to fit the actual mechanical layout.

Your answer is really awesome, tomorrow try your solution and tell you the result

I believe that 7mm and 9mm measurements were not take with enough significant figures to arrive at the 0.778 and 1.286 values. Using these values to calibrate the Steps per mm will result in a mis-calibrated printer. You would  be much better off using the calculated values from the mechanical properties of your printer.

Further, calibraing steps-per-mm via measurement rather than mechanical properties is always wrong, because it will result in values that don't evenly divide nozzle width/feature width, thereby producing really bad aliasing artifacts in all the printed surfaces. If the measured value doesn't match what's predicted by mechanical properties, then you need to fix whatever parts are dimensioned incorrectly that are causing the discrepancy (e.g. stretched belt, ...).

@PerplexedDipole ,R.. e.g. who says that a new belt is exactly 2 mm in width? Or whatever dimension of any part should be. It actually is a very good idea to adapt to your machine rather than counting on values. In the real world everything is produced with tolerances. Besides, the calculations show an example, with better measurements it would become more accurate, it is left as an exercise for the OP. There are some great stories to be found on people relying on hardware to be according to specifications rather than accounting for the actual sizes. I've been around to have seen examples.

Are you using the stock firmware of your printer? Sounds like to me that you have 16 tooth pulleys and your firmware is set to 20 tooth i.e. 80 steps per mm
The calculation behind the steps per mm is $\frac{\text{Steps per Revolution} \times Microsteps}{Teeth \times Pitch}$. The reason for this is that one revolution of the pulley will move the belt the number of teeth times the pitch of the belt. Now take the total number of steps, Steps per Revolution times microsteps, and divide by the distance moved giving the steps per mm.
In $\underline{most}$ hobby 3D printers you have:

1.8 degrees steppers which equals $\frac{360}{1.8}=200$ steps per revolution , Less common is 0.9 degrees steppers $\frac{360}{0.9}=400$
GT2 is the most common belts now which have a pitch of 2mm
The two most common pulleys are 16 tooth and 20 tooth,
Depending on what stepper drivers and or configuration you have

A4988 $\to$ 16 microsteps
DRV8825 $\to$ 32 microsteps
Trinamic $\to$ 16-256 mircosteps

In your situation I believe you have a 1.8 degree stepper with 16 microsteps, a gt2 belt, and a 16 tooth pulley. Which means your XY steps per mm should be $\frac{200 \times 16}{16 \times 2} = 100$. While your firmware is expecting 20 tooth pulleys, yielding $\frac{200 \times 16}{20 \times 2} = 80$. This would result in your prints being $\frac{100-80}{100} = 20\%$ smaller, which explains your results with the circles.
Generalizing, the steppers, microsteps, and pitch don't matter. To go between 16 tooth pulleys to 20 tooth, multiply by $0.8=\frac{16}{20}$. From 20 tooth to 16 tooth, multiply by $1.25=\frac{20}{16}$.

Excelent answer, this is the solution, thanks for all explaniation and the data for understand the problem.

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
Migbot extruder loading
Has anyone seen a printed bottom extruder block with a cone added to get the filament into the hole which then feeds into the metal tube that connects to the heater?
We have a hard time getting coiled filament lined up, the filament curves and takes a lot of twists and tries to get into the hole in the bottom plastic block, and lately we've just taken to removing the fan/heatsink at the end of the servo to guide it in my hand, which is a pain in the butt and likely to wear out screw holes or something eventually.
Hopefully this drawing shows what I mean.
It would be the 10th picture here, with a cone added above the hole at the lower left.
https://www.thingiverse.com/thing:852591

If the question is "has anyone seen..." my answer is yes. It's not precisely what you show in the drawings, but close enough and for the same purpose.
In the case of a Robo3D R1+ printer, replacing the stock "hexagon" hot end with an E3Dv6 hot end provides for a piece of PTFE tubing inserted into the heat sink. The recommendation from the denizens of the 'net is to slice the top of the tubing in the shape you have in the drawing and to have the tubing extend sufficiently to reach the junction of the hob gear and pinch roller. This took some doing, but I was able to get an appropriate taper to the tubing end that does not contact the moving parts.
As the fed-in filament exits the assembly, the small gap between the wheels and the tubing gives the filament nowhere else to go but into the heat sink and hot end.
As your design reference indicates a 3D printed part, it might be practical to engineer into that segment a larger hole to take the PTFE tubing and then size the length after the wheels are in place.

The above image shows the added PTFE tubing surrounding the filament. Even though the slightly diagonal cut appears somewhat as a cone, it is not. The edges are parallel to the rollers/hob gear. The lower portion has been omitted for ease of drawing, but would extend into a hole drilled or printed in the block holding the assembly, based on the thingiverse link provided.

There is a threaded tube with PTFE tube inside of it that ends at the bottom of the block above. So what I think you're suggesting is to get a longer PTFE tube and extend it thru the original block with up to the bottom of gear/pulley.
Overview image


text:
Ender 5 Slant or Leaning when printing multiple parts
Getting slanted or leaning prints when printing multiple parts.
I checked the eccentric nuts and belts aren't rubbing anything. All works well when printing a single part. But multiple parts:

What am I missing?

If you want a more detailed answer, you need to give more details, e.g.; "What filament are you using?" "How old is the printer?" "What mods have you made to it?"

I can tell you two possibilities. Either your x or y axis is slipping which could be because of worn out belts, belts that need to be tightened, or because of too much jerk. The other is overheating of the stepper drivers so make sure the board is getting enough air over it.

It could also be backlash in the system. Your belts aren't tight enough. Apparently the Y belt is not tight enough. That's a pretty awesome effect though.


text:
Rule of thumb for small type
Is there a good rule of thumb for small type on 3d printed pieces?
Minimum type size?
Good typeface for accurate reproduction?

The smallest legible type will depend on your nozzle size; what size nozzle are you using? I recommend sans-serif fonts, all caps.

@davo I don't have a specific design or machine figured out yet. I was trying to see if there was a size/face that would work for most machines. Sort of a standard aimed at the "lowest common denominator" for general use.

Answer is "no."  Depends on material type, nozzle size, and more.  I get radically different fine detail with different color, translucency, supplier PLA filaments.

@carl Thanks. I work in the (conventional) printing industry so I'm still learning to shift my thinking from that paradigm.

I've had better luck with fonts that are heavier, usually sans-serif, and usually bold-face. All-caps can help, too, if it makes sense at all for the text. Impact is one widely-available example, though it's far from perfect and rarely has the look I want. I also usually need to turn on the "Print Thin Walls" setting in Cura when handling smaller text.
When looking at how small you can get, we'll start with font sizes. It would be easy to get lost here in a discussion of points and measurements. The thing is, font sizes describe the vertical height of the characters. For 3D printing, I believe you'll do better paying more attention to the horizontal width of your text. Most characters are taller than they are wide, so if you can produce legible horizontal features, you can probably handle the vertical features, too.
I'll use the letter "H" as an example here, because it shows the full size of the box for a typical character. Specifically, since I'm talking about horizontal features if you look at the bottom of the H, it has a three sections: leg, then gap, then leg. Also notice the gap is about 3 times the size of the legs (you can see this better if you zoom in close). This varies by font, but 3:1 is good average ratio. That gives us 5 units of width for the character itself. Additionally, you want to allow some spacing between individual characters; not every character needs it next to every other character, but I find it useful to allocate a 6th unit here.
Now consider those 6 units in the context of your nozzle size. With a typical .4 mm nozzle, that means the smallest size character you can legibly produce is about 2.4 mm across. Of course, most fonts are not monospace, where a character might be larger or smaller, but I believe this makes a useful average. Count the number of letters in a line of text you want to print, multiply by 2.4 mm, and that's the minimum amount of horizontal space you need.
If you really want to push things, a font specifically designed for 3D printing should theoretically be able to work in terms of 3 nozzle units wide + an extra gap between certain letters. But this is all theory, and for the minimum of what's possible. When you also start to think about what actually looks good, especially if you want to show features like serifs, the real world can really mess this up. In practice, I've found I need to go significantly larger even than the 6 unit / 2.4 mm option... but maybe I've just used the wrong font. You can always try a test print of your text in a small rectangle, to make sure it will be legible before using in a larger object.


text:
What actual dyes are used in filaments?
I've seen several questions about dyes in regards to food-safety, with no conclusive answers, as well as anecdotes on the RepRap wiki about how the mechanical properties of dyed PLA tend to vary by color. The general unsatisfactory answer is that dyes and additives used are proprietary secrets of filament manufacturers. However, 3D printer filament is a sufficiently large industry, with sufficiently many players now, that many of these "secrets" surely have to be "open secrets" to some extent by now.
What is known about what types of dyes and additives that tend to be used in filaments for 3D printing? Is there information on distinguishing between them with optical, chemical, etc. properties?
My thought is that by knowing some of the common dyes used by some manufacturers, it would be possible to:

choose those if interested in properties of them, and;
devise test procedures to evaluate if a different/"generic" filament seems to be using the same ones.

Dye manufacturers list the dyes that they use, for example, ORCO, and data about the dyes (and pigments) are readily available, e.g. Solvent Blue 4.

I spoke with a chemist tonight.   He said to start with the SDS (or MSDS) for the filament,  which is required to be available for most materials.   It should list the pigments and additives if they are not recognized as safe.  If they are safe,  non-toxic, not flammable, non-reactive, they might not be disclosed on the data sheet.
He warns that sometimes the SDS lists just an industry name for a common pigment,  and sometimes is the full chemical name.   IMO, Google may help with translation.
The chemist has a deep background in color science and pigments.

No Dyes at all.
Your question is based on a misconception:

A dye is a coloured substance that chemically bonds to the substrate to which it is being applied, this distinguishes dyes from pigments which do not chemically bind to the material they colour.Wikipedia

The coloration does not chemically bond with the plastic in production. It is thus a pigment that is melted into the filament.
Pigments
The range of pigments is ginormous. They start as simple as pure carbon black, range over natural occurring ones such as zinc white (ZnO) to products of chemistry like the dark blue copper phthalocyanine. Some pigments of these are toxic (lead white), others are also carcinogenic (chrome yellow), others are atop that radioactive (uranium trioxide, aka uranium yellow).
But what is actually used for coloring the filaments? Usually, manufacturers choose their pigments carefully based on 3 factors:

thermally stable in the printing range
as non-toxic as possible (to avoid needing to declare it on the MSDS)
as cheap as possible to work with

Usually, this rules out all the highly toxic and radioactive ones, as that demands extreme caution to work with, upping prices.
What's used?
Usually, we can't know. While the list of inorganic pigments is rather limited in some areas, it is by far not complete. It's better to take a look at the Forbes Pigment Database, which lists 11 categories of white pigments, 9 of them by chemical composition, one by origin and one for 3 samples of unknown composition. The 2 categories of violet pigments contain 20 different samples.
But why don't we know?
In most cases, the color of plastic does not bring any danger or changes the properties more significant than changing its melting point. As the chosen pigments are inert to most treatments, they don't need to be listed on the MSDS, and thus omitted, allowing the companies to keep them a trade secret that helps them compete against other companies for only they have this one specific color.
Our best indicator for what pigments are used thus is, if they use a trade name for a filament, such as "ultramarine blue", which however might not be in the filament at all.
When do we know?
In some cases, we might actually know what they put into a roll of filament based on odd characteristics.
For example phosphorescent green filament. It is most commonly made with either zinc sulfide or strontium aluminate, and we can rule out one or the other based on how bright they glow on the dark photo.
Another case in which we know what is in the filament is in the case of metal infused filaments, where it is part of the advertisement, that these filaments contain some amount of one metal powder or another. For example, the rusting filament contains iron. Then there is also filament that contains up to 80 % metal powder. Another similar bucket are wood- and stonefill filaments, where wood fibers or ceramics were added to give color and texture.

I fear your supposition about secret --> open secret is too optimistic.   Manufacturers are very unlikely to reveal their components, or the mix ratio, used to create a given color.
Consider the Coca-cola formula.  It's been a secret for over a hundred years, despite a number of competing cola-ish brands.   Consider also that the label you buy is the label of the supplier, and there's no guarantee that a given supplier won't change the manufacturer they use for  bulk material at any time (raw colored plastic, just not drawn into filament).
As to doing analysis on your own, I fear the cost of a good gas chromatograph, mass spectrometer, etc. is staggeringly high.

The mix ratio is actually not part of the question as asked, only the identities of the dyes used. Also relevant to the Coke analogy: https://www.snopes.com/fact-check/coca-cola-fomula/


text:
ABS de-layering on Ender 3
I feel like I’ve tried everything. I’ve had an Ender 3 for seven months now printing in PLA.
I’ve modded it plenty including BLTouch. I’m now doing a project that really requires ABS so I have the white hatch box ABS. It wasn’t sticking at first but I got that well under control with glue tape and proper leveling with an enclosure. And I’m assuming this is important. I do indeed have an enclosure. Anyone I’m printing this part that has two long but thin-sideways protrusions coming out. Each one keeps de-laying at two specific points. I’ve tried everything including temperature and everything in Cura settings. I’m up to four failed prints now. I also tried other prints with the ABS and they also delayered in specific spots over and over.
Please help I’m close to completely giving up on my projects. The de-layerings are all the same with this one being the worse of them.

Can you show some photos of how it's delayering, and what the model is supposed to print like?

Also, not related to answering the question, but are you sure you need ABS? I've managed to avoid ABS entirely because I don't want to deal with fumes or enclosures. PETG is a suitable replacement for ABS in lots of applications and much easier to print with.

It has to hold under load 18650 batteries so it has to be this or Petg. I don’t currently have any and I would really rather fix the issue just for quality assurance sake. I added a photo of the latest and worse delayering in the main problem post.

Is your concern warping of the material from battery heat under load? 18650's should not be operated above 60°C or so, so I would think even PLA would be okay.

This appears to be caused by the printed part shrinking, as it gets further and further away from the heated bed.
Can you actively heat your enclosure? That should help, even though I too have managed to avoid ABS so far.

I can try to look for a heating element of some sort and try it but I feel like something else is happening here because there is a little support material right below the piece that is delayering. As for the batteries, 60 Celsius will still break down pla over time and I plan to push them to their limits.

@Fox_89: I'd still just go with PETG for this. I know it's not an answer to your question and that there should be one, but the more I see about ABS printing problems, the more I think "this is just not a material you want to be using for 3d printing unless there's no alternative". I picked up some PETG with the intent to use it for replacing broken interior car trim parts, and I'm really happy with how it prints.

Ok thanks for your help anyway. I’ll print the flatter parts with abs and get some Petg for these.

Welcome Fox_89 to the SE 3D Printing site.  Thank you for bringing your question, and I hope you contribute both questions and answers in the years ahead.
I understand that you've tried everything, so I have nothing new to suggest.
Never the less, I would suggest some possibilities, perhaps one of which you haven't yet tried:

Extrude hotter filament.  Increase the nozzle temperature.  My
printer (Pruse3D i3m3s) prints ABS at 255 degrees C.  Give the layers
a better chance to melt together.
Print slower, so that the layers have a longer time to melt together,
and they have a longer time to cool before the next layer reheats
them.
Use a cooling fan to bring the part to equilibrium more quickly.
Try a different filament.  Not all filaments have the same shrinkage.
Hatchbox has worked pretty well for me, but try another manufacturer.
Try another color, like transparent.  White can be a difficult color
because it must carry a high pigment load.  Black can carry less
pigment, and might be easier to print.  "Transparent" or "natural"
carries no pigment.
Check for anything that might increase the strain on the part at that
layer.  It could be a geometry change on the other side of the part,
since that changes the thermal profile of the whole layer.
Must it be ABS?  PETG has a higher working temperature than PLA, but will print
differently than ABS.

I'd second printing slow and near as hot as your filament can stand and still hold shapes in test runs.
Extruding thin has worked well for me in cases with ABS pull/shrinkage. I've also had luck heating up the environment my printer is in. ABS stays gummy above 105C (its Tg is around there), so I've had good luck running my deck at 105C, and either setting up my print so that parts that were likely to have problems are close to the heat element (on my Ender 3 it's the ~5cm in the center of the plate) or using other external heat (with no fan). [Note to people who might want to try external heat: ABS is flammable - stick with other methods unless you feel sure you understand the safety factors.]
ABS grinds down nicely - if it's feasible, consider making these parts thicker/adding a raft on a super hot deck, so you can print much hotter, then sanding to your desired shape.
Lastly, and least elegantly: I'm not sure if this is possible - depends on the exact project - but you might think about ways to print these parts separately (close to the hot deck) for connection post-printing. ABS is acetone-soluble, so it's pretty straight-forward to melt some spare bits, and voilà: glue.
Good luck! ABS is a pretty sweet polymer - don't give up on that project just yet!


text:
How precise do models need to be for 3D printing?
I'm not talking about making something that's outright disproportionate of course. I've been working in Blender and I've use Absolute grid Snap to snap my vertices to the grid. The problem is that it (didn't seem) to always work perfectly for centimeters, and seemed to work better for meters.
(edit: I've learned what the problem was and it was simply the placement of the vertices in side view, being at  slightly different elevations. I'm going to emphasize that the difference was very slight. It was just enough to show up in the measurements. When I switched from front view to side view I was able to adjust the elevation to the grid and that fixed the problem.)

It should be ok.

@user77232: That's not something you can say unconditionally.

Why not turn off GridSnap if your primary concern is the length of a feature, rather than the endpoints of the feature?

After some trouble shooting I realized what was wrong, and now it seems more like a non issue if anything. There's actually nothing wrong with the grid, and the vertices were snapped to it appropriately in top view. The problem was that that my vertices were not at the same elevation (in side view).  The two seemed very close to being snapped appropriately on the grid in side view which is why it wasn't immediately obvious.

It depends on what you're working on. If you're producing mechanical/functional parts (even if that just means having to connect to one another or to some non-printed part), 3 mm (0.3 cm) error is almost surely going to prevent them from working. Even 0.3 mm error might be a problem.
If you're doing standalone prints that don't have to interface with anything else, e.g. art, non-articulated figurines, etc., then it becomes just a question of what's visually acceptable, and that's a matter both of scale and of the detail level you want. For typical tabletop-RPG scale, for example, most of the acutal visual features are going to be smaller than 3 mm, so that much error is not going to work out. It might work for large busts, though.
In any case, I would recommend trying to solve the underlying problem. Either change your grid snap, or work at a larger scale and just scale down the final model.

Welcome to the SE 3D Printing site.  Your questions are also welcome, as well as your answers to your questions, and the questions of others.
I am not a Blender user.  I use CAD systems because most of what I do I want to have a certain dimensional precision.
If the problem is as simple as "The overall object is designed to be 7.345 centimeters but I want it to be 7.000 centimeters," you can fix that when you print the model.  Use the scaling feature of your slicer to scale by $(7.000/7.345)$ or $95.303\%$.  It will print as the size you want.
The problem may be deeper, though, in that you may be having trouble setting points within the model where you want them.  In that case, the snap-to-grid feature is distorting your model's appearance and geometry, and there is nothing you can do to fix it.
If it can't be fixed by scaling, I would suggest that you should either turn off the snap-to features or set up a grid that matches the granularity you actually want for your design.


text:
Vacuum storage bags?
Does anyone use "space saver" style vacuum storage bags to keep fillament dry? I picked up some Ziploc space bags, but they are larger than ideal. Would probably fit 2.5 spools. I would love a smaller version just big enough for one spool.

/wondering if buying a used cigar humidor would be over the top /

I've read people are using them, makes sense, the less air you contain, the less moisture would be in the bag. Myself, I'm using IKEA ziplock bags (and moisture absorbing sachets), they come in many sizes.

I've been using 1 gal ZipLock bags. They are just big enough to put a filament roll into. I then close the zipper almost all the way, leaving enough room to put a plastic drinking straw into, and then use the straw to draw out as much air as I can, closing the zipper the rest of the way as I pull the straw out. I then put the roll back into the original box. While a Ziplock bag won't keep all air/moisture out, it does a pretty good job. I also leave the desiccant bag in with the filament to help with any moisture which may seep in.

I have a commercially available product known as a foodsaver (TM) which removes the air from the bag and really squeezes tightly around the spool. The width of the bags I use barely takes the typical spool but it does fit with a little elbow grease.
I include a bag of desiccant in each bag to pull any residual moisture.
It's a good idea to use the cut-to-length bags on a roll, which allows you to add excess length, as you have to cut and toss away the previous seal each time you use the spool.
I too purchased the big honking bags and never built the structure I planned to use with it.
So many compromises regardless of the method used. I've since switched to Sealtite Storage Bins from Target. They have a gasket around the lid and I've increased the bag of desiccant in each one. They stack well too.


text:
Marlin endstop hit message deciphering/real position
Similar to, but different from, Marlin, end stops, and position report - possible bug?
This is roughly the same question, but I'm trying to understand the endstops hit response from Marlin.
I'm working on a prototype machine that has min and max endstops on X, Y.
How can I get the real position after hitting the max endstops? The reported position is either what I told the machine to move to, or if SW endstops are enabled, whatever the config value for max X, Y are.
When the endstops hit message comes in it provides a number after the X or Y but I can't figure out how it's related to anything in the FW config or the physical printer.
E.g.:

Bed/max sizes (X, Y) set to 500
Endstops enabled
Move w/ G0 Y250
Ymax endstop triggered ~161
Receive echo:endstops hit:  Y:0.00
M114 returns X:0.00 Y:250.00 Z:0.00 E:0.00 Count A:25147 B:25147 Z:0

So the counts are (likely) correct (CoreYX machine), they're zero after homing to minimum position, but using them to determine the physical position seems sketchy.
Now: If I continue...

Move w/ G0 X250
Receive echo:endstops hit:  X:157.31

Then

G0 Y250
Receive echo:endstops hit:  Y:-265.55

Here's the thing: those values are roughly what I expect the X, Y max values to be, except (a) they're reversed, e.g., IRL the ~Y at Ymax endstop is around 161, and Xmax endstop is around 265.
Is Marlin:

Flipping the X/Y values somehow (and inverting X, probably because I'm doing something weird to try to track this down)?
Should I instead do some CoreYX math to attempt to get the physical position based on stepper counts?

What is happening here?

Quick question, which version of Marlin are you running on your CoreXY? Old marlin or the new 2.0 branch?

@Nach0z Old; currently on 1.1.8 with an update to 1.1.9 coming quickly. We realized that the endstop response might not be doing the CoreYX math right but haven't had a chance to dig into it yet, but that could well explain it. We just don't want to dupe the Marlin math off the motor counts if we can avoid it.

@DaveNewton Last time I checked, 1.1.9 had some issues with CoreXY (too?). Just go with Marlin 2.0

@towe Thanks; alpha firmware isn't in the cards for now ;)

@towe 1.1.9 works fine for my CoreXY, what issues do you mean? Maybe that helps the OP.

@0scar I was referring to this Github issue: https://github.com/MarlinFirmware/Marlin/issues/11487
I've been using 2.0 since it came out (before moving to Klipper).

@towe I'd hardly call an unconfirmed issue a problem, this was probably some user induced fault, no other users with CoreXY printers have this problem (also this issue is closed by the developer).

@0scar Check out the code that reports the endstop hit message in 1.1.8 (haven't check 1.1.9 yet).


text:
DLP build plate adhesion
Does anyone have tips on improving build plate adhesion in DLP printers? I've heard a thin layer of resin or UV glue applied to the plate will help, but we're not sure if we leave the resin/glue wet, or cure it before we start the print. Apologies for the ignorance here, but I'm just trying to avoid gluing my build plate to the bottom of the resin vat! Any advice would be appreciated.
Update
I had a product called ProtoGlass recommended to me in another forum, that apparently works as a good build plate primer for the resin we're trying to grow (BlueCast x5). Ordering today, and I'll update further with the results.

Welcome to 3dPrinting.SE!

How about roughening the plate (with very fine grit) so as to produce more surface area "grab"?   I do not know whether this leads to other problems.

The plate on this machine (B9 Core) has a black coating (maybe anodizing, but not entirely sure). They warn against scratching the surface.

You do not need to use any glue or any other adhesion modifier to increase your build plate adhesion.
Take these steps instead:

Make sure your build plate is level
Use proper attachment layer (raft) - see 3D printing raft in resin 3D printing: what you need to know.
Increase bottom layer exposure
Make sure your resin is not cold (25+ °C works best)
Make sure your build plate is flat and even. Sometimes they come faulty from the factory. Lay it flat on the glass and see if all corners touch it evenly.
Sand your build plate
Make sure to use high quality FEP. If it get's scratched or cloudy - change it.
Make sure the tension of your FEP is right. Not too tight, not too
loose.

I have heard that adding a few pieces of masking tape to the print surface improves adhesion.

DLP printers are resin based. You can not add tape in that application.

You can still use the masking tape though. I've done it on a DLP printer before.


text:
BLTouch Probing Fails Intermittently
I just installed my (v3) BLTouch with a vanilla version of Marlin (1.1.9) on my Ender 3 and everything seems to work fine (including auto home) except the probing. It repeatedly does the first three probes (successfully) but then tries the fourth and fails. Even when disabling the axis movement (X/Y stepper motors) the issue persists, which would indicate that it is not a bad connection or physical location dependent. Any ideas on how to troubleshoot?
On second thoughts, it seems that it now fails inconsistently, so it is probably a wiring issue, although there is still the issue of it not retracting before printing and not leveling well when it does (although those issues would be more appropriate for a separate question), among other things.
<Edit: Resolved, I both replaced the BLTouch and updated my firmware, but I believe it was the latter that fixed it.>

Welcome to 3dPrinting.SE!

This is a loose wire, may be some strength is pulling the wire while moving from XX,XY,YY then you get the failure. Also happens with the temperature sensor or even the heat resistor. Keep your wires tightened to connectors.

It also fails when disabling the X and Y motors, so I'm not sure if it's a pulling as much as a poor connection.

Thanks for posting your solution, I have a brand new V3, and when through all of the cable testing, etc. I turned my grub screw 1/4 turn into the housing, and its working consistently now. I thought I was going to have to return for refund/exchange. I think I will order a backup just in case.

Is your BL Touch a v3 (likely if you've only just purchased it)? If so, make sure you're using the bugfix version of Marlin 1.1.9, which supposedly fixes the compatibility issues. I say supposedly because there's also a capacitor on the mainboard that can be removed to fix the issue, and once I removed it (and commented out the specific v3 bits in the firmware) the BLTouch performed noticeably better than when relying on the bugfix firmware alone.
Teaching Tech on YouTube has a few BLtouch Ender 3 videos, covering the changes for configuring the bugfix firmware and the removal of the capacitor.

Oh yeah, I forgot about that. Yes, it is a v3, so the updated firmware should help with the other issues but I still think it also may be a wiring issue because of the inconsistency of failure. I just ordered a replacement so I'll update accordingly once I get the new one set up with the bugfix firmware. Thanks.

I'd recommend getting ready with the bugfix firmware and the v3 settings it comes with ahead of time so that you can try it with the existing probe and wiring and be 100% sure that this wasn't the cause.

Good to see you solved the problem and took the time to share it with us! Please post your last edit as a separate answer posting to stick to the Q and A format of SE sites. Please accept your answer (after 48 hours) so that it does not pop up to the top of the queue once in a while. This also will help us in reducing the unanswered questions list.

I followed the same guides and everything works now. I believe the bugfix firmware is what resolved the issue. Unfortunately I had returned the old probe so I wasn't able to test that but I did try different wires on it and it still failed, so that leads me to believe it was a software issue.

Just leaving this note here as I have had my own BLTouch issues, maybe it will help someone else...
V4.2.2 board on an Ender 3. BLTouch V3
I was getting inconsistent failures on both home and bed level, also would drive into the bed on occasions.
I would first recommend keeping your Z stop switch connected (the BLTouch uses the five pin header on the V4 boards, not the Z stop.
I tried with extension cable and connectors, then hard wired the extension cable, also removed the pin header plastic body on the connector going into the board (as it's not the right type, and sits a bit too high) to make the cable ensure good connection to V4 board.
Correctly levelled bed, Z stop, was getting awesome prints with stock Creality firmware for Ender 3 Pro and BLTouch on v4.2.2 board (without adaptor board version).
Still random crashes into the bed and random bed level fails.
I'm racking my brains, replaced nearly all wiring, made sure good connections, changed to Marlin 2.X.X bugfix (which you load onto SD and turn the machine on).
Still random crashes into the bed and bed level fails.
So I'm now getting close to, this has to be a faulty touch surely, I've done my fair share of electronics repair being an electronics engineer by trade.
I'm looking at the touch, I see a solonoid, I checked how it works, the ferrite core looks flush with the top of the touch housing. I turn it a full turn into the touch. I'm getting less errors.
I think I finally ended up turning it about 0.5 mm to a 1 mm into the housing. All seems much better. No fails or crashes since the last tweak of the ferrite grub screw.
If the sensor is a little off on the Ender, and I hear they are, then maybe the position of the ferrite is more sensitive on these machines. That will affect the magnetic flux of the sensor.
I also found a link brief on the V3 probes and there is a section that points out a 0.3 mm gap from top of ferrite to top of probe stated, mine was flush.
I have ordered another just to be on the safe side but I think this may have helped stop my random fails.

After moving house, pulling printer down and rebuilding, I had this issue again... groan....
This time I found the issue, its firmware.
After going through 2 touch probes, rewired (again), screening touch to ground and more, still doing it.
So I got the latest marlin 2.0.9, compiled it, boom, not a single failure......
lesson learnt

I have the same setup as you and I'm encountering the exact same problems.  Leaving the z-stop switch plugged in didn't stop it from driving the nozzle into the print bed.  I'm trying out your suggestion of screwing in the core a bit more, and I also zip-tied the wires to the bltouch in case they were too loose.

I had the same problem. It seems it was definitely a loose connection on the BLTouch.  I put a wire tie around the neck of the BLTouch, just underneath the mounting feet, to secure the wire and ensure a good connection regardless of position. It has worked great so far.

I found this and remember doing something similar on my TAZ 5 when I installed a proximity sensor on it.  See BLTouch V3 on the Creality3D CR-10S Pro:

Creativity recommends connecting white and black lines to Z+ and
downloading the Creativity firmware.
The BLTouch V3.x is enough just to install the jumper cap on the
CR-10S Pro and it works well in Default(OD) and 5V Logic Mode.
(including Smart V3.0 produced by April 4th, 2019)
This solution is complete and safe. You do not need to remove the
capacity or add a pull-up resistor for the BLTouch installation in the
CR-10S Pro.
Cause of problem: When the inductive proximity sensor is removed from the Ribbon cable breakout adapter, 24V is kept at EL357N pin1
(Anode) through R8, so EL357N pin 4(Collector) is fixed LOW.
Solution: Install the Jumper cap between the Z-connector signal and  GND pin on the Ribbon cable breakout adapter.. It prevent the
EL357N pin4(Collector) to fix LOW.
How to install the jumper cap: Remove the inductive proximity sensor from the Ribbon cable breakout adapter for CR-10S PRO and
install the jumper cap as like the picture. This operation requires
caution.

※ Never install the Jumper cap between the Z-connector 24V pin and the
GND pin on the Ribbon cable breakout adapter.
CR-10S Pro Wiring:

See Schematic. Using the 5V Logic Mode without the jumper cap
installation may break BLTouch or EL357N.

Hi RoRo and welcome to SE.3DP..! Please include the info from the page in future, otherwise your answer is a link only answer, and these tend to get flagged for deletion. If (or rather, when) the link dies, then your answer won't be as much as as it could have been had the info been included within the answer. I had added the info for you this time. Many thanks.

I've been through the same sort of issues and eventually found that it was attributed by the cable and connector. Re-check or re-wire the sensor, this helped me out.

I figured as much. I ordered a replacement, so hopefully that resolves the issues.

Is it something like in this video?
Extending/retracting when NOT probing works fine, but probing fails with the pin not correctly retracting?

Then the BLtouch is defective and it should be replaced. It is not a firmware issue.

Reviving old thread...
I have same problem on Ender-3 V2 and two BLTouch sensors. So far, Oscar's idea of screwing in the T10 Torx screw on the BLTouch seems to be working. When the torx screw is screwed in you can see the tip of the probe being pushed out a bit. Evidently, there is a magnet in the BLTouch and there is some metal part on the probe that is attracted to the magnet. When the probe gets close enough to the magnet it snaps to the upper (stowed) position. The Torx screw adjusts the position of the magnet. By screwing the Torx in the magnet is closer to the probe and the probe snaps to the magnet sooner.
The BLTouch firmware can detect when the probe has been been snapped up by the magnet. Apparently, the firmware will only probe downward a limited amount. If the probe is not snapped to the magnet by the end of that travel the firmware will abort the probe. My guess is that from the factory the BLTouch is adjusted at the ragged edge of the firmware's detection travel. By screwing it in a bit it the probe stays within the firmware's travel limit.
Since I haven't disassembled either of my BLTouchs this is mostly speculative. Caveat emptor.
BTW, my printer is connected to Octoprint on Android tablet. Disconnecting the Octoprint and USB cable didn't help.


text:
Does this microstepping test result indicate need for TL smoothers?
Note: The "TL smoothers" referred to in the question title are an arrangement of 8 diodes that presumably both provide a voltage drop to address the minimum current output issue of some stepper drivers described in How Accurate Is Microstepping Really, and provide flyback protection and protection of the driver from currents induced by moving the motor in the unpowered state.
Now, on to the question:
I put together a simple test part to test Y (or X) axis microstepping accuracy:

Every 1mm in the Z direction, the face steps inward 1/80 mm (corresponding to my printer's [micro]steps per mm setting) in the Y direction and 1 mm in the X direction (to clearly show where the steps happen).
Here are the results (two runs, near-identical output):

Several of the steps are missing entirely, and it's the middle vertical surface, rather than the side two stepped-vertical surfaces, that shows a step-like texture.
Note that layers have been printed counter-clockwise, but the design with steps on both sides is to try to reduce the impact of print orientation so as not to depend on what the slicer decides to do. Print speed was 30 mm/s for outer walls, with outer walls set to be printed first so they're not affected by already-printed inner ones.
This looks to me like an indication that microstepping is not working accurately, and seems to agree partly with this article: https://hackaday.com/2016/08/29/how-accurate-is-microstepping-really/
Would TL smoothers improve this? My printer is an Ender 3, seemingly the latest revision at the time it was sold (December 2018) based on the bed and other aspects. Some threads I found suggested that this was a problem with older Ender 3s that was fixed in later revisions and that TL smoothers won't help, but it looks to me like it's not fixed.
Update: With settings adjusted for 0 jerk and 50 mm/s² acceleration in the outer walls, I got a somewhat improved result:

All steps are clearly visible, but at the reduced and more varying speed, artifacts of the extruder motor accuracy (or maybe just bowden latency) are much worse, and at the steps the "overshoot and bounce back" effect is still happening. Is this consistent with a situation where the TL smoothers I asked about could benefit?
Update 2: I've further tested with leaving acceleration at default (500 mm/s²) and just disabling "jerk", i.e. "instantaneous" change in speed. The results are at least as good as the above with slow acceleration. What strikes me most is that the "overshoot then bounce back" happens outward from the model on both edges, rather than inward on the righthand side where the (CCW moving) nozzle is turning inward. Could this indicate that there's no microstepping accuracy problem at all, and that the artifact is purely from excess extrusion as the corner is turned?
Updated pic (new one below):

The problem is related with parameters instead microsteping, a wrong calibration of the driver can result on missing steps. Since your first image we can notice that speed, temperature, retraction can create that under flow and that extra material on borders called coasting; you need to check each variable to reduce each problem because there are some. Jerk, max, acceleration, speed for z can help a lot.

I would attempt to answer your question, but I don't know what a TL Smoother.  BUT Google knew.

@cmm: Updated question with my understanding of what they are.

Which stepper driver chipsets do you use?

@0scar: My understanding from things I've seen online is that the Ender 3 uses A4988's, but I haven't verified.

I'd like to be able to award this bounty, but there are so far no answers that even try to answer the question...

@R.. This is not an easy question! Generous to set the bounty, but sometimes that attracts low quality answers. Not many people have experience with TL Smoothers and there are some mixed reported results. I have them laying around, but not the time to play with them to answer your question. I may answer it after a while though! :)

The missing/inaccurate microsteps seem to be a bug/feature of Marlin:

// Moves (or segments) with fewer steps than this will be joined with the next move
#define MIN_STEPS_PER_SEGMENT 6

I'm not sure what the logic for this was in the stock firmware, which I originally performed the tests with, but with Marlin 2.0 I was completely missing the first 5 steps on the right (positive X) side. Changing the value to 1 mostly fixed the problem, but there was also a corresponding bug/feature in Cura:

            "meshfix_maximum_deviation":
            {
                "label": "Maximum Deviation",
                "description": "The maximum deviation allowed when reducing the resolution for the Maximum Resolution setting. If you increase this, the print will be less accurate, but the g-code will be smaller. Maximum Deviation is a limit for Maximum Resolution, so if the two conflict the Maximum Deviation will always be held true.",
                "type": "float",
                "unit": "mm",
                "default_value": 0.05,
                "minimum_value": "0.001",
                "minimum_value_warning": "0.01",
                "maximum_value_warning": "0.3",
                "settable_per_mesh": true
            }

The deviation should be set less than a single microstep, so 0.0125 mm.
With both of these fixed, I've got a perfect print:

Sliced printing direction was counter-clockwise for all layers. The steps on the left side are where the slicer decided to put the layer seams (perhaps I should retry forcing it to put the seam somewhere else, or even using vase mode) so they have a little extra bulging from slight ooze during the Z move that you can clearly see from the lighting, but the steps on the right side are dimensionally near perfect.
I think I can safely say any past problems were the fault of firmware and slicing software, not anything physical/electrical/electronic.

It's worth remembering that the smaller the fraction of the step, the less torque is going to be available at that step. here is one link but there are many others that explain it as well. it looks to me like you have inconsistent friction in your system, or possibly some flex/warping of the frame. it might also be easier to see with a smaller nozzle
edit because i forgot to actually answer the question: no, by itself it does not indicate that smoothers would help. this does not mean that they wont, just that this does not look definitive to me

Instead of getting tlsmoothers just upgrade your drivers, 2209s are good, Most TMC Drivers account for flyback

I'm pretty sure they're not socketed, so effectively this is "get a different controller board". Not a bad idea, and I might do it for this and other reasons, but it doesn't really answer the question.


text:
Prusa i3 MK3S 3D printer PETG printing problems
I am using a new Prusa i3 MK3S 3D printer kit. I print lots of things using PLA and PETG.
After a week of great performance I noticed that when printing some objects with PETG filament I often encountered a problem  when there's  intense stringing, infill gaps, artifacts, the object sometimes detaches from the plate. I use the Prusa Slicer and Cura and print with the temperature 230/90 °C, speed max. 300 %.This problem occurs rather regardless of which infill methods I choose. I see this problem more often when printing models sliced with Cura. Sometimes everything goes fine, but most of the time I need to stop the print due to the model collapsing, detaching from the surface, its parts collapsing due to infill gaps. The printer sometimes makes some 'clicking, cracking' sounds when printing with PETG.  My filaments come from Fiberology.
Surprisingly, I have run the selftest, XYZ, Z calibrations and all the other ones without any errors. The wizard told me that the axes are perpendicular and it gave me congratulations. All the other tests went nearly perfect as well.
I do not encounter any problems using PLA, just with PETG. I try to maintain the filament properly (keep it away from moisture, in a closed box). Sometimes (rarely) I get crashes. The filament often builds up on the hotend and I remove it.
I do not know what to do, the build went very well and there are no errors, even though I am a new user and this is my very first 3D printer. I have searched the web and I haven't found people reporting this exact same thing.
Could You help me? What can I do to improve the quality of the prints, perhaps maintain PETG better (maybe I'm doing something wrong) and most importantly, solve the problem?

230 °C is way too cool for PETG and will result in underextrusion unless you print really slow, and poor bonding. Underextrusion in turn leads to stringing because of pressure build-up. I print PETG at 250 °C.

Thanks, nice to know. What bed temperature do you use ? The temperatures recommended by Prusa for PET-G are 230/85 *C.

I use 80 for bed.

Odd that Prusa would recommend such a low temp. What I don't find odd is that the filament vendors list it as "230-250" or similar - they're incentivized to show a low temperature that you could plausibly print at (at really low speed) because of all the fuss/FUD about PTFE degredation above 250°C.

Thanks, this solved my problem. Now I can make complicated, high quality models with PET-G without worrying about any problems.

You might try printing with Prusa's recommended settings.  They tend to be hotter and slower than I expected.
I have made several pet-G prints with the same machine you have.


text:
Do 3D printers really reach 50 micron (0.05 mm) accuracy?
I've always been wondering about the actual accuracy of 3D printing devices. When looking for the perfect machine to buy, I looked at the speed, price, filaments supported etc, but also accuracy. I once asked somebody who could give me some advice on what to look at.
One of the things I was told about was that many printers don't necessarily have that crazy precision of 0.05 mm (50 micron). Another person told me something different - he said most of those printers actually were capable of putting out 50 micron layer height. How is it really?
Another thing is that the official slicers for those machines also claim that this precision is real, for instance the PrusaSlicer v2.0.
There are many high-end, very expensive machines and even they sometimes claim their resolution is worse than 50 microns.

Ultimaker has a 20-60 micron resolution for the Z layer height depending on the used nozzle size, I've used these small layer sizes a couple of times, products come out amazing, almost looks like an injected part but takes really long to print.

It's worth noting the difference between precision and accuracy. Being able to move in ~50 micron increments doesn't necessarily mean that it will always end up within 50 microns of where it's supposed to be. If it advertises 50 micron precision but the steps are actually 48 microns on average, that means that trying to move 10cm will result in moving only 9.6cm—definitely not accurate.

There's not a simple answer to this question, or if there is, it's "no". However the situation is a lot more complicated. When printer specs cite accuracy like this, they're usually basing the claim on the nominal size of the smallest movements on each axis by one "microstep" of the stepper motors. There's a great article on Hackaday explaining the how this affects accuracy: How Accurate is Microstepping Really.
At the mechanical positioning level - putting the print head where it needs to be to extrude the material with the desired accuracy - you have at least these factors limiting your accuracy:

Microsteps are generally spaced roughly monotonically between whole steps, but do not necessarily divide the whole step into even portions. How well they do is a matter of the stepper drivers your printer's controller board uses. Generally, microsteps are 1/16 of a step (although there are drivers with 1/8, 1/32, or even 1/256, maybe others too), so if you see a rated accuracy of 0.05 mm, a whole step, which might be the minimum you can get reliable accuracy from, is likely 0.8 mm.
Stepper motors are deflected slightly - up to 2 whole steps but less than one step is more likely if they're not overloaded - under load. So are belts. How much this affects you depends on the design of the printer and how much mass each axis is moving. Direct drive extruders are much worse in this regard. Delta printers are probably best in it.

These can be mitigated somewhat, with tradeoffs, by using stepper motors with more steps per rotation, better stepper driver chips, reduction with gears, etc.
On top of that, you also have extrusion and properties of the print material limiting your accuracy:

The extruder motor is subject to the same accuracy issues as the positioning ones. If you extrude too much or too little material anywhere, you'll necessarily have accuracy issues. You can compute them based on the cross-sectional area of filament, size of extruder gear, extruder motor step and microstep size, etc.
If the filament diameter is not perfectly consistent, you'll also extrude too much or too little material.
If material is not cooled or kept warm appropriately as it's extruded (this varies by material), it will sag, warp, or curl, ending up in a different place from where you wanted it.
The more you vary the ratio between nozzle/extrusion width and layer height from an ideal ratio, the more the shape of the extruded material paths will differ from the model you're trying to print. With thick layers especially they'll become rounded rather than near-flat along the walls.

In theory, a lot of these issues probably could be mitigated a lot better than they are now just by better slicing - the logic that happens on a computer to convert the original 3D model into instructions for where to extrude material.
With all that said, you can get pretty amazing accuracy still, especially with a good or well-tuned so-so printer. On my cheap Ender 3, after dealing with some issues now and then that made glaringly obvious problems, I can get dimensional accuracy within 0.1 mm in the X and Y directions, at least for some models. So I think it's very plausible that a better, or better-tuned, printer could get 0.05 mm accuracy.

This only really addresses the precision of positioning, not of the printed part.

@SeanHoulihane The second half of the answer explicitly covers the accuracy of printing, doesn't it?  And it's trivially obvious (and axiomatic from control engineering) that it is not possible to print more accurately than you can position.  So the accuracy of movement is the limit for printing precision - printing can only ever be worse than that, not better.

Sorry, yes, you covered it (and the relevant factors), but I think your 'trivially obvious' is not at all obvious to people who want to ask about precision - and with today's technology it seems positioning is one of the smaller sources of end result error - making it a bad metric.

Then then is the tolerance of the step angle. a 5% tolerance on a motor with 1.8° per step means that the rotor can move anywhere between 1.71° and 1.89°

Nominal resolution of positioning being a "bad metric" is largely what I was getting at in this answer - it doesn't tell you whether positioning is actually that precise or accurate, nor whether other parts of printing will limit the accuracy in much larger ways.

I'd love to see a widely agreed-upon metric involving dimensional accuracy of simple and complex shapes. See also: Dmitry's answer and the example of dice, which are a good "simple shape". I actually did this with 20 mm D20s, working out some mechanical problems in my printer, and now have 20.0 mm (fluctuating between 20.0 and 19.9 on exactly one) between all opposite faces as measured by my cheap 0.1 mm caliper.

One of the things I was told about was that many printers don't necessarily have that crazy precision of 0.05 mm (50 micron). Another person told me something different - he said most of those printers actually were capable of putting out 50 micron layer height. How is it really?

Both things you've read are completely correct.
Most printers are capable of 50 micron layer heights. However, layer height does not equal "accuracy" or "precision". The layer height specification is a useless marketing term that you should ignore; layer height is to 3D printers what dynamic contrast is to monitors.
All FDM printers are inherently quite bad at producing parts with tight tolerances. The filament extrusion process introduces lots of variables that are hard to control: the diameter of the filament may vary, there is a delay between feeding filament into to the extruder and it coming out, and the gooey filament that comes out of the extruder behaves in unpredictable ways.
Nobody has figured out how to quantify "accuracy" for 3D printers in a way that correlates with the quality of the finished parts. It is impossible to tell which printer produces "better" or more accurate parts from the specification sheet of a printer.

I'd hazard a guess manufacturers can't figure out how to quantify the accuracy of their 3D printers in the same way as Google can't figure out a search of ad-free apps in Google Play. Figuring that out simply doesn't serve their interests.

@DmitryGrigoryev At least one manufacturer should be interested in figuring that out (i.e., the manufacturer that makes the most accurate printers).

Even if you make the most accurate printers, listing true accuracy in your printer's specs while everyone else lists resolution labelled as "accuracy" will put you at a disadvantage.

@DmitryGrigoryev that can be compensated for by listing both in comparison charts. With good research it's always possible to make good marketing material if you have a real measurable advantage.

A resolution (sometimes called "accuracy" for marketing purposes) of 0.05 mm means that if you produce a bunch of 10 mm dice and a bunch of 10.05 mm dice, then the 10.05 mm ones will be statistically larger. Note that dice don't have to actually be anywhere near 10 mm, nor does a random die from the 10.05 mm pile have to be larger than a random die from the 10 mm pile.
A repeatability (aka "repeat accuracy") of 0.05 mm means that in the experiment above every die from the 10.05 mm pile have to be larger than every die from the 10 mm pile. Note that your dice still don't have to be anywhere near actual 10 mm.
A precision (aka trueness) of 0.05 mm means that in the experiment above the average size of a 10 mm die should be within 9.975..10.025 mm. Note that individual dice don't have to be within that interval.
Finally, the general accuracy (as defined in ISO 5725) of 0.05 mm means that every 10 mm die should be within 9.975..10.025 mm.
To sum it up, the statement from your question is true for the "commercial accuracy", but not for the general definition of accuracy. For example here is an article comparing accuracy of 3D printers in dental applications (so we're talking high-end machines), with average accuracy ranging from 0,05 to 0,1 mm and absolute accuracy in range of 0,11 to 0,17 mm.

So you addressed the words in the question, instead of the mechanics of the 3d printer. Brilliant!

Tom's answer is correct, most printers will operate properly with a layer height resolution of 50 micron, using a 0.4mm nozzle. The resulting surface finish will probably be better than at a coarser layer setting, and at finer layer heights the print quality is likely to deteriorate.
Layer height is also likely to be fairly well defined (except for the first layers, overhangs, warping, etc), but this depends on the printer geometry.
The detail which is not so well controlled (or measured) is the squish/stretch of the molten plastic as it is extruded. This can have a significant impact on the localised surface finish (as well as dimensions of things like internal diameters).
Accuracy is maybe best assessed by the results of printing various types of test part than by a simple numeric parameter.


text:
Find OpenSCAD code from image
I have an OpenSCAD model which I am looking at in the application, code to the left and the rendering to the right.
Am trying to modify a certain piece, and have commented out all the commands that I believed were related to that piece, but there is still one subtracted cube left, i.e. somewhere in the code there is a difference block with this cube command somewhere in the 2nd part (I believe, as I cannot see any other possibility).
It would be very nice if I could just click on the image and get the software to display the corresponding commands in the code.
Is anything like that available in any tool?

To my knowledge, OpenSCAD does not have any such feature. However, a related feature might help you: the debugging aid modifier characters. By inserting %, #, !, or * before an object (including aggregate objects), you can control how it renders in relation to the whole file; this makes it possible to do "binary search" type operations to figure out where the object you're seeing is.

I know. The problem is that I have apparently spread this out over the file, so would be tedious.

It can be tedious, but those characters are the tools.  I agree that a "point to it and the code opens" feature would be great, but as yet it does not exist.


text:
Is there an easy way to split models in OpenSCAD?
I'm wondering if I can take one OpenSCAD object, and cut/splice/split it into two different objects that can then be manipulated independently?
One approach is to duplicate the object, difference it along the cut border with a 3rd object, and then difference the result with itself. This seems overly complex and I suspect I'm missing something
PS - the point of this is that I have a nicely designed part where I need to create an interlock. I want to first cut the part in half, and then create some interlock mechanism

Rather than differencing a copy of the object from itself, which is subject to numerical instability, choose a box ("cube" in OpenSCAD terminology), and intersect it with one copy of the object, then difference it from the other copy of the object. This is all easy if you use modules to encapsulate your parts, and it also works with imported STL files.
Specifically, it should look something like this:
module mycut() {
    translate([x,y,z]) cube([w,l,h]);
}

difference() {
    myobject();
    mycut();
}

translate([u,v,w])
intersection() {
    myobject();
    mycut();
}

is there any way to create poligon joining splited objects? from first cut facet to second?

like hull, but using nearest points

@eri: You could do it by linear_extrude of a projection but that's very slow and subject to nasty numerical stability issues.

i need same dimentions in 3 stl files, so rotation to XY and back is not good.

@eri: Why would 90° rotations mess that up?

Maybe. Will try

I believe numerical instability is not an issue in OpenSCAD at least in this case because the underlying library uses symbolic algebra (rational numbers) with unlimited precision. Precision only comes into play when exporting (and importing again), or when calculating non-rational functions is such cosine and sine, although results are guaranteed to be consistent (which is nice when matching parts). That said, subtracting an object from itself is probably expensive computationally, so this approach is good as it uses boxes.

@Real: I don't know the details but OpenSCAD is not exact internally. It uses a horrible mess of different types of math which one is probably better off not asking about.

See this citation: "As it turns out, OpenSCAD is using the Computational Geometry Algorithms Library (CGAL) for its CSG operations. That amazing library allows for completely generic numeric types, and the type OpenSCAD is using is some voodoo magic “exact” numeric type based on the GNU Multiple Precision Arithmetic Library (GMP)." from this page indicates exact rationals usage for unions (and I guess intersections too).

See more about CGAL here:  "CGAL produces correct results, in spite of intermediate roundoff errors. If three lines meet in one point, they will do so in CGAL as well, and if a fourth line misses this point by 1.0e-380, then it also misses it in CGAL. Situations that are sometimes tagged as "degenerate" (like a 3-D point set actually living in a 2-D plane) are properly handled by CGAL. In fancy terms, this is called the exact computation paradigm, and it ultimately relies on computing with numbers of arbitrary precision."

@Real: As I told you, OpenSCAD uses a mix of different types of geometry computations, and is getting away from CGAL because it's slow and because the exactness it offered did not actually buy you anything, due to inexactness at other layers.


text:
How to resolve Ultimaker Cura 4.0 messed up display
I'm using Ultimaker Cura on a Manjaro KDE installation with a 4K monitor and a scaling of 1.7.
All text is misaligned in the Ultimaker Cura application.
How can I make it look as it should ?

Welcome to 3dPrinting.SE! May incur an uninstall/reinstall.

You could just open an issue at the developers site, they might know exactly what is wrong or if it is a bug? If the latter, the community is grateful you found and reported it!


text:
Needle Hotend for nonplanar printing
To minimize retractions and travel when printing several objects, some slicers produce gcode for sequential deposition when each object is built in a traditional manner bottom up layer by layer before starting a new object. Of course, there are limitations caused by the hotend geometry  :
So bulky hotends don't allow for this trick to be used wen sequential pieces are closer than several centimeters. If there where hotends with minimal end effector geometry (needle like, much like drill bit on CNC) we might even do things like spiralizing contours of a single object.
This has also potential for other tricks like producing interlacing layers for better layer bonding etc. I wasn't able to find any ongoing work on minimal geometry hotends. Any links? And what might be the challenges in making one? heatblocks and heating cartridges are out of the question but nichrome wire and a fast PID heat controller might do the job.

see https://3dprinting.stackexchange.com/questions/10154/why-heater-blocks-on-hotends

A needle for 3D printing may cause problems, as discussed in the answers.  Have you considered using a hypodermic-style needle for 3D erasing?  It seems one could make an EDM (electro-discharge machining) electrode from a needle and use it for subtractive printing.  The working fluid can be pumped through the needle.

@cmm i agree a needle is perfect for delivering liquids and would probably work as an EDM electrode. I think this wouldn't work for non-conductive materials like pla but for metals this seems to be a well explored process known as EDM machining. back to needle like extruder, by needlelike i meant tall and thin. i want to explore other styles of printing like https://youtu.be/Ea4V7kb2VsY

The site is not well-suited to crowd-sourced invention, but the drawbacks to your suggestion are (I think) on topic.
The hotend has two main tasks. Accurate control of extrusion, and maintaining the desired volumetric melt rate. One factor which influences extrusion quality is the size of the melt-zone - generally, you want this to be as small as possible because rigid filament is easier to extrude/retract without ooze/stringing. Equally, the melt zone needs to be provided with a thermal mass (physical or virtual) to stabilize its temperature under extrusion.
Whilst it might be feasible to prototype your concept quite easily, it is likely to be expensive in volume - and there is no great direct advantage. So this is a concept which might enable an area of research but it doesn't look like a development objective with its own intrinsic value.

A conventional hot end needs only to be obstruction-free to the desired printing height on two adjacent sides to achieve what you want. The only other requirement is to be able to tell your slicer in what order you want your models to be printed.
For example, if your hot end is free of obstructions on the front and left sides, all that you need to do is lay out your models in a rectilinear grid, and tell your slicer to process them front-to-back, and left-to-right.
I have thought of doing this myself. By mounting my E3D V6 hot end as low as I can on its carrier, I should be able to print models up to 50mm in height, and only spaced 20mm apart. I may have to forego part-cooling, but I mainly print PETG without part-cooling, so no problems there.

Yes, using a needle to extrude will result in a smaller diameter extrusion. All that is needed is to find a one with a suitable bore size. The problem however is in generating enough hydraulic pressure, needed to extrude hot plastic through a nozzle of that size. If you can form an extruder that can, then go for it. The second problem is that the thin wall of such a nozzle won't have the same "ironing" effect that current nozzles have. From the picture referenced below you can see the nozzle hole and then a ring of metal around it. That ring flattens the filament out into the desired layer which helps with layer adhesion. With out it, the filament might not even stick to the previous layer, or the bed.

authors: الاسطي حمو قميح


text:
Importing Surface Colours along with .obj files in Fusion 360
I am currently involved in drone mapping and photogrammetry. I have taken some aerial images of a site from a drone, and have created a 3D map using DroneDeploy. I exported the 3D model from DroneDeploy as a .obj file and can view the model very well using Preview on my MacBook. However, when I import this .obj file to Fusion 360 or any other online viewing platform, I am unable to see any of the colours from the model.
How do I import this file into Fusion 360 along with all the surface colours? Do I need to convert the .obj file to some other format? If so, which formats support surface colours on Fusion?

Do you have a specific need for Fusion 360? If you just want to view an OBJ file there are better options around. Also, where does 3D printing come into it?


text:
Why does jerk have units of mm/s rather than mm/s³?
In 3D printing firmware and slicers, jerk settings are expressed in units if mm/s. This is contrary the physical definition of jerk, which is in units of mm/s³, being the second derivative of speed with respect to time (or the third derivative of position). What is the reason for this discrepancy and how does one interpret jerk in this contect?

I'm not sure what other tags would be appropriate for this question; please suggest or edit them in if you have good ideas.

The jerk setting in 3D printing G-code and firmware represents a concept similar to, but distinct from, the physical definition of jerk. Rather, it's a [limit on] instantaneous change of speed.
Mathematically, one way to make sense of this is to think that, rather than being the second derivative of speed with respect to time, this "jerk" is the entire remainder of the first-order expansion of speed with respect to time - it corresponds to the second-order term and all higher order terms. Such terms cannot be combined just as coefficients, since they all have different units corresponding to different powers of time; rather, they can be combined only with their corresponding powers of time, in which case the resulting unit is mm/s.

Confused me for a sec - I always look at the Nth derivative of position, not speed.  Just noting this in case anyone else is as poor at reading as I was.

@CarlWitthoft: Of position. I specifically said of speed.

@CarlWitthoft Speed (v) is the derivate of positon (s) over time. because of that the physical jerk = v'' = s'''

The units for jerk should be meters per second cubed or m/s3.
Meters are the basic unit for distance. The first derivative is speed, or velocity, m/s. The second derivative is acceleration, m/s2. The third derivative is jerk, m/s3.
It is rate of change in acceleration.
While seldom used, I've only heard it once concerning the Hubble Space telescope, there is a fourth derivative call jounce, m/s4.

While this expands on the physics definitions in the original question, it does not address what jerk means in 3D printing or why the units are different.

In step based motion control, the time between two steps is calculated directly from velocity. If that time is not constant then you are accelerating or decelerating based on a specified acceleration. The next time between steps is calculated from the current velocity based on the desired acceleration. However when moving 2 or 3 axes at once, this can result in very poor and slow performance when moving through complex curves composed of many small moves, because by the math one axis always needs to slow down too much if no jerk is involved. When doing motion calculations for step based systems, actual jerk m/s³ directly translates into how much velocity 'error' is acceptable in calculation of the next velocity (m/s) to allow turning lo angle corners more quickly, but without missing steps or stalling motors. This velocity error comes directly from the actual jerk between two steps and it does have physical meaning, (and the proper units). Also, low power microprocessors can do the math fast enough, which is not the case if square and cube roots get involved.