What could be causing this spotty extrusion?

I´ve seen this in my Prusa due two parameters that may vary your results depending on climate if your printer has not a temperature chamber or having a mechanical issue too.

Lack of extrusion is due a cold filament which it can't reach the melting temperature due a fast extrusion feed; I mean in normal conditions we can print @70 mm/s with 195 °C but on wet or colder days is not possible so I need to slow down the speed (feed rate) with 10 % less than normal to get @60 mm/s or less until get a good flow with out modifying the G-code. If I try to print faster on normal conditions I will get the same lack of material due 195 °C is a low temperature (this is an example).

If I set the temperature 200 °C or 210 °C I will get a better flow and also print faster than @80 mm/s (not affected too much on climate on 100 % feed rate).

For first layer I´m using an speed of 40 mm/s to allow a good adhesion and Z height 90 % of layer height (0.22 typically or 0.18).

Mechanical side: The extruder is not feeding all the filament due a missing pression on the traction gear (filament slip).


Marlin: Why is the extruder stepper jerking?

The setting that makes these small retractions is LIN_ADVANCE.
It is found in Configuration_adv.h and is disabled in the vanilla configuration.
I, on the other hand, is using one of the 46 example configurations that has this feature enabled. It shall be said that most of them them has the value 0 set to this, which means that it has no effect.
To disable the effect of this feature, send G-code M900 K0 to the printer.
More info at marlinfw.org
More info at 3dmakerengineering.com
M900 - If it works, the feature is enabled
Test pattern generator to tune LIN_ADVANCE


Air printing/jamming midway through raft creation

Your symptom sounds like heat creep might be stopping the extrusion.  See if this discussion helps you troubleshoot: Understanding all the ways to avoid heat creep
Note: decreasing speed and increasing temperature makes heat creep worse.
Your picture of filament shows what people with Bowden extruders describe as typical of heat creep.  The Bowden tube isolates the filament drive motor from the temperature of the extruder.  On well put together Bowden tube extruder, there is no place for softened filament to bunch up. So, heat creep occurs when the melted filament goes up the region of the heat break in the heat sink.  Thus, to determine heat creep one needs to ask, "Is the expanded part of the filament extending into the heatsink.


This type of gear is known as a "herringbone" gear. A traditional straight-cut gear is strong, but can cause more vibration as each tooth engages and disengages. A helical gear (slanted tooth) reduces that vibration as the tooth engagement is more uniform. However the angle of the teeth causes a sideways force that may be undesired. A herringbone tooth design effectively cancels the sideways forces but gets the uniform tooth engagement.

A search for "herringbone" on Thingiverse comes up with many gears of this type.

Regarding the quality, if you are not happy with the results of your own design, that's OK - gears are shockingly complex, and people make careers of gear design! However, if you have a good CAD model that just isn't printing well, it's not likely a bad STL.

An STL from a different source is likely to have similar quality with the same slicer/printer setup. You might be able to improve print quality of your design by changing settings on your slicer or adjusting your printer. I'd suggest asking a question with your current setup and specific print quality issues.


Is this re-Arm controller actually 24 V capable?

Given that the capacitor near the input is quite clearly marked 35 V, a 36 V rating seems questionable.

The (buck) regulator used on the (genuine version of the) board is the AOZ1282CI which supports up to 36 V input. This is probably where they got the 36 V rating from, but obviously the 35 V-rated capacitors drop the input voltage down below this.

Schematics for the board are available on the RepRap wiki and show that the input voltage only feeds into the regulator. I see no reason why this board couldn't handle 24 V input, as this is well within the rating of both the regulator and the capacitors.


Extruder motor making a knocking sound, nozzle is not clogged

A knocking or clicking sound does not imply you have a problem, it implies that you could have a problem; it can be the characteristic of the extruder.

My own designed 2.85 mm filament, 1:4 speed reducing belt driven extruders make clicking sounds while extruding (independent of the layer height), I have verified that no steps are lost and the printer extrudes exactly the requested amount of filament (2.85 mm filament requires a lot more pressure for the same nozzle size, the noise is coming from inside of the metal Bulldog housing, not the stepper adjacent, it is not stepper nor filament skipping noise).

A clicking sound in combination with gears losing position as you describe (or filament skipping back) does mean that the pressure in the nozzle is too big for the extruder to push it through. If the gears loose position, this means that the stepper is not powerful enough to push it through, this means that more current or a more powerful stepper is required (the latter option is due to the design of the extruder not possible). If the filament skips back while the gears are in place the tension/grip to the filament needs to be increased.

In troubleshooting this problem it is best to increase the current to the stepper close to the upper side of the specifications of the stepper and see if the knocking sounds disappear. This should not be a problem for such a priced and tested extruder system, i.e. considering the reputation and quality of E3D this extruder must work out of the box unless you have received damaged components.


Is cutting the arm off the Z-axis switch a good idea?

While I haven't seen this on a Z axis for a printer personally, there is no reason it wouldn't work, and would improve your repeatability in theory. Removing the arm on the switch is taking away the lever. Going back to simple machine mechanics, the lever gives you a larger range of motion in which the button could be triggered, with the tradeoff that you get a larger target to hit. How much of an improvement depends on the exact switch, where the button is compared to the axis of the switch, and how long the switch is.

My Shapeoko 3 CNC router has a switch for all three end stops that do not have arms, and my Original Prusa i3 mk2 has switches without lever arms on X and Y axis endstops, so there is is no reason it won't work for your i3 Z axis, you just need to make sure you can accurately hit the small button on the switch.


Cura 2.4 missing "split object into parts"

I don't think this feature was implemented at all with Cura v2.x.

As the developers say on the v2.1 release, "Cura has been completely reengineered".

Finding proper changelog documentation appears to be pretty hard because they have not posted any actual changelogs except the "user friendly viewable" changelogs which only list additions of new features but don't display what everything they changed between each version of their application.

Here is the most complete changelog I could find. I do not see any mention of this feature. https://ultimaker.com/en/products/cura-software/release-notes

Going through the Cura 2 manual or the Cura 2.1 FAQ, also does not mention this feature.
https://ultimaker.com/en/resources/20406-installation-cura-2-1

Furthermore, searching around for version 2 "split objects" lead to forum posts of people suggesting to use some other software to achieve this specific task. If you decide to go this route, I recommend Meshmixer from Autodesk to manipulate your models and then export to STL and import them to Cura either as a whole new position set up or separate model files where you can change them there as you need to (meshmixer allows for object repositioning around a defined build plate so you can just import the whole assembly into cura and then print).

It might also be worth to put in a feature request on the UM forums.


Many printing resins are inherently brittle.
Brittle is a property of the material - so of the used printing resin.
Look at the first seconds of this video - Punished Props Academy drops an SLA/DLP printed dagger on the ground from about 1 meter and it shatters, despite having been carefully post cured and washed and everything. To mitigate that trouble they did a cast of the item with a different resin.
However, the exact brittle behavior of the print is inherently linked to the exact formulation and thus the exact brand and type of resin used.
Some are less brittle than others - and outright flexible.
You might need to test around, but there are flexible resins. This german essay contains pictures and even a video of a super flexible printing resin. Just an example: One such rubbery resin is Formlabs Flexible 80A, and Matterhackers has a range of different flexible resins. Google does show other brands too by googling "SLA Resin Flexible"

I am not affiliated with Formlabs, Matterhackers, or Techstage.de


How do I get my Wanhao Duplicator 6 / Maker Ultimate to lower bed at end of print?

In your ending script add the line below and change Z200.0 to your max Z height.  This will rapid to the given value using absolute coordinates.  I added G90 in case G91 was previously set so it did not do a relative move.  I'm not positive if G91 is modal in printer firmwares or not but the G90 should not hurt anything.

G90 G0 Z200.0


How should I connect a separated 5 V source to an Arduino connected to a RAMPS board

I would not recommend changing Arduino powering.
You can either do as you say and power Arduino by giving it regulated 5V to Vin, but then the ATMEGA2560 still will be powered through the 5V voltage regulator. The voltage regulator (NCP1117ST50T3G) needs to be supplied with 6.5V to give out regulated 5V. So you will be powering the Arduino with some 4V, which might work, but it will be less reliable. But it is electrically safe.
Second option is to power Arduino through it's 5V pin. That is less safe, because the voltage regulator might have an over output-over-voltage-protection that will to load or short-circuit the 5V until it is 5.000V.
Regarding TMC2209. I have not seen any documentation that has any opinion on what order it shall be powered up and down.


Your printer probably has an issue with binding in the lower region (binding means extra friction possibly causing the Z stepper to skip steps). Disconnect the lead screw an manually move the X gantry up and down. If there is binding, you need to find why this happens, with the unfortunate design of the Ender, many people experience issues when the rollers on both posts are not correctly installed.


I read this question a few months ago, and thought I knew what you wanted.  Re-reading it now confuses me a little.
But, I think you may be asking for a large, flat surface with a spiral in it, like the tightening mechanism in a 3-jaw chuck.  In effect, are you using the large cylinder as a worm gear to drive four gears which ride on it?
I thought you wanted more general bevel gears, and today I found a package in OpenSCAD that looks quite good.  it is found at: https://github.com/dpellegr/PolyGear
If this is the answer you were looking for, great.  If not, please comment here and I will delete this answer.


There are some different criteria that we should use to select a switch type:

Precision / repeatability: does the switch trigger at the same place every time? How much spread is there in the trigger position? Do environmental changes or machine setting changes affect the trigger position?
Contact distance: does the switch register with enough clearance to its hard-stop that the homing axis can stop before colliding with something?
Noise-rejection: does the switch ONLY trigger when it is supposed to?

It's important to ask, how much switch precision do we actually need? A typical 3d printer drivetrain using a microstepping stepper motor can only accurately position the moving load within +/- one 1/16th microstep (even if using finer microstepping than that) due to error-inducing effects like friction torque and magnetic detent angle error. That's around +/-0.01mm for most printers. The homing switch only needs to be as precise as the motor's positioning! Nothing is gained by having, say, 0.001mm precision endstops.

This precision of +/-0.01mm is achievable for all types of endstop switches, with proper switch selection and configuration.

Then there are three "standard" switching types in use in consumer/hobbyist 3d printers:

Mechanical switches, typically dual NO/NC limit switches, which either pull up or pull down a signal pin by connecting an electrical circuit when triggered
Optical switches, which use transistors to detect when an obstacle ("flag") is blocking the window between the emitter and sensor
Hall effect switches, which use transistors to detect when a magnetic field exceeds a particular field strength cutoff

Mechanical Switches

Precision/repeatability depends on the switch quality, length of lever arm attached (longer increases contact distance but is worse for precision), and impact speed of the carriage with the switch. It's possible to have a good mechanical switch or a bad mechanical switch. This is typically a reasonable default choice because it is simple and cheap.

A small mechanical switch with a short lever arm (or the lever arm removed) will generally achieve the required +/-0.01mm switching precision. Very cheap switches, high contact speeds, and long lever arms may provide inadequate resolution for Z homing or probing, but will still be adequate for low-precision X and Y homing purposes.

Where mechanical switches tend to cause issues is in noise rejection. Different controller boards use different ways of wiring the switch: some use two wires and only send a signal when triggered. When not triggered, the signal wire is left floating or weakly pulled up by the microcontroller, while attached to a long wire that acts as an antenna to pick up EM noise. It is VERY common for heater or stepper wiring to emit nasty EMR due to the PWM current control. Two-wire endstop cables should always be run away from stepper and heater wiring. Shielding and twisting the conductors is a good idea too.

A more robust approach is to use three-wire switches that actively pull the signal line high or low depending on the switch position. These will tend to reject noise better.

Very cheap mechanical switches may fail within the life of the printer. However, most limit switches are rated for millions of cycles, which is unlikely to occur over any normal printer's lifespan.

Mechanical switches are easy to align and easy to trigger by hand during troubleshooting.

Optical Switches

These rely on a flag blocking a window between a light emitter and a detector. This is non-contact and can be quite reliable, but introduces some challenges. The exact trigger position (and thus precision) may depend on ambient light levels in the room, because the sensor is monitoring for light to decrease below a specific intensity. So it may be very repeatable/precise in the short term but have some drift if the sensor moves in and out of the sun through the day.

Switching tends to be more consistent and reliable if the flag enters the window from the side, rather than the top.

Optical switches will actively pull the signal line high or low, and thus have good electrical noise rejection.

Hall Effect Switches

These measure the intensity of the nearby magnetic field and trigger when it exceeds a certain amount in a certain polarity. This is highly precise/repeatable (better than +/-0.01mm) and extremely resistant to noise and environmental conditions. (Unless your printer is next to something that emits large magnetic fields, anyway.)

The hall switches I've seen have an adjustable trim pot to tune the trigger distance. That's a nice feature when trying to manually calibrate a Delta or a Z-bed for first layer height.

The primary downside to hall switches is that they need a magnet to trigger the switch. This can be difficult to trigger by hand during troubleshooting, and requires attaching a magnet somewhere on the moving carriage. Glue works fine... but don't glue the magnet in place backwards!


Add a laser module to Reprap Guru Prusa i3

By connecting to the D9 output header (see RAMPS 1.4 shield schematic below) you only have 2 wires that represent a scheduled load and ground. You actually need to connect the positive (red) lead to the power supply 12 V and the negative (black) lead to the ground. The third wire (usually a different color) needs to be connected to the actual D9 in your example; note that this one is connected to the MOSFET! And as such not readily available, it is far more easy to use an other free pin.

Just use the PWM pin (attached to the MOSFET) of the print cooling fan (that schedules the MOSFET), you can then schedule the laser power with G-code M106, e.g. M106 S127 to select half the power (S255 would be max power). Alternatively, and probably a much better solution is that you can use any free (but exposed) pin of your microprocessor; you can set the value of that pin using G-code M42.

  M42 switches a general purpose I/O pin. Use M42 Px Sy to set pin x to value y, when omitting Px the LEDPIN will be used.

The only electrical wiring you need to do is to attach a wire (solder or connect to a header) to bundle that with a power and ground wire and route that to the laser module.

Note that the PWM pins of the Mega are numbered D2 through D13. Also, D44, D45 and D46 are also PWM capable. Checking the RAMPS 1.4 (the board/shield of the Reprap Guru) pinout, you will see that D8, D9 and D10 are used for the MOSFETs (and as such not easily available and would require soldering). E.g. D2 and D3 are used by the X max/min endstops (note that most printers don't use an X-max, so pin D2 may be free on your machine).

For your purpose, any of the following pins can be used: D2, D4-7, D1112-13 and D44-46.

Best option would be the D11 pin (on second thoughts, D4 might be a much better option as the timer associated with PWM on pin D11 is internally used in Marlin for generating interrupts); it has a pin you can connect to the SERVO header pin.

The image shows the location of the pins:

An example to connect a laser module is seen in this image:


Heated bed - what are the benefits? Why use one?

Heatbeds have two purposes:

Increase surface energy of the print bed to improve bonding strength of the first layer (particularly important when using surfaces like PEI or Kapton)
Keep the bottom few millimeters of the print hot enough to provide a warp-free foundation for the rest of the print.

The bit about surface energy is straightforward. Most materials are stickier when hot than cold. In comparison, pure mechanical-bonding bed surfaces like fibrous painter's tape and perfboard don't particularly benefit from bed heat.

Warping is a bit more complicated. The basic cause of warping is when the previous layer is allowed to cool and thermally contract before the next layer is deposited. When you stick hot, expanded material on top of cold, contracted material, large shear stresses are generated when the fresh material cools and contracts. Those inter-layer shear stresses then accumulate over many layers into large-scale bending stresses that try to lift the edges of the print off the bed.

So, to prevent warping, we should minimize the amount that the previous layer is allowed to cool before the next layer goes down. But we DO need it to cool solid so the print doesn't sag in a mushy mess. This is a balancing act: cooling the plastic solid without over-cooling it. The optimal temperature for the print is right around the glass point of the plastic: this is the temperature at which the plastic becomes fully solid and thermal contraction stresses start to accumulate.

The extruder pumps more heat into the print as it deposits molten plastic and radiates a little bit of heat. So we want to set the heatbed temp a little bit below the glass point to ensure the print is able to cool solid. Now, this gets a bit difficult, because everyone's print bed temperature sensor is different. What matters is bed surface temp. Many people have to set their bed temp quite a bit higher than the actual surface temp. It's just something you have to calibrate via print results. The exact filament glass point (Tg) also depends on the blend.

ABS: Tg is around 105C, optimal bed temp 95C in a warm, low-airflow environment
PLA: Tg is around 55C, optimal bed temp is 55C in a cool, high-airflow environment because PLA holds heat and is slow to cool compared to other filaments
PETG: Tg is around 70C, optimal bed temp is 60-70C with mild airflow
Nylon doesn't really work with these rules because it's semi-crystalline, meaning it "freezes" far above its Tg and thus starts accumulating warping stress at fairly high temps... advice varies wildly, from printing cold to 120C bed
PC: Tg is around 150C, optimal bed temp is 130C

There are other schools of thought, for example printing the first layer onto a surface much hotter than Tg for good adhesion, and then dropping the bed temp to a value somewhat below Tg to allow the print to solidify. That works fine too.

But, with all that said, it's important to understand that the heatbed only keeps the bottom of the print warm. A centimeter up from the build plate, the print is typically much closer to ambient temp than it is to the bed temp. Heated build chambers are thus much more effective for large prints. But heatbeds are still quite effective, because they allow building a strong, warp-free foundation that resists warping stresses induced by the cooler zones higher up in the print.


If anything, combing and coasting allow to mitigate problems that are printer and filament specific, rather than dependent on particular STL models.

Combing helps - as you imply in your question - with materials prone to oozing (e.g. PETG)

Coasting is particularly good for printers with a bowden extruders and low jerk/retraction speeds.  This is because in bowden extruders there is a lot of filament compressed between the teeth of the extruder servo and the nozzle, and that pressure doesn't instantly disappears when the printer stop "pushing" (i.e.: turning the extruder servo).

I believe there are firmware implementations where coasting is also used when approaching sharp corners.  This is to mitigate the problem of "blobs" forming there.  The mechanics of this are similar to those explained above: the pressure within the extruder cannot be instantly relieved and coasting accounts for that.  The only difference being that - because of the micro-scale of the problem - even non-bowden printers are prone to corner blobs.

In my experience (I look forward to other answers to "compare notes") there are very few reasons not to use combing.  The only risk with it is that it increases the risk of the nozzle crashing into the print and destroying it.  It sound dramatic, but it is in practice it requires everything to work against you: a big blob on the previous layer, the nozzle passing exactly there, poor bed adhesion... for me that has proved problematic only when printing miniatures with a 0.2 mm nozzle and 0.05 mm layer height (on a cheap printer).

There is of course a (usually very small) time penalty in combing, as it typically requires the nozzle to travel longer paths.

In my experience (again: YMMV, I look forward to more answers!) the limitations of coasting are related to the way it is implemented.  For example, a given coasting setting may work great for getting rid of oozing, but will create under-extrusion in other parts of the print, as the calculations performed within the firmware may be spot-on for linear motion but inaccurate for corners, or vice-versa.

I believe this is the reason while some popular slicers (like cura) have this setting hidden under "experimental".


What are the safest temperatures to heat different filaments to?

Polycarbonate is heat-resistant up to ~120C. Above this temperature it will gradually become flexible and may irreversibly bend. It will not generate any toxic fumes all the way up to ignition temperature (630C), because it's fumes are not considered harmful. Note though, that with your temperature limit you may not be able to print with polycarbonate, or only do so at a very low speed.
According to the sheets of commercially available printable plastics, PC has the highest printing temperature and heat resistance among them, seconded by nylon. This refers to the FDM printers only. SLS printers may be able to use other materials, even metals like aluminum or titanium, so if you really wish to get temperature-resistant prints, you may look for workshops that have SLS printers and ask them.


What are some good safety tips for a 3D printing beginner?

Technically, you should never leave your printer running unattended. Printer fires are rare, but it can happen, especially with cheap printers with poor quality control. Personally, I would just make sure that there is a fire alarm near by, so you'd be alerted if there was a fire.
Also, the fumes concern is valid in the sense that you don't want to sleep in the same room as your 3D printer. The following article points out that if you are spending time in the same room without proper ventilation you'd benefit from potentially using an enclosure with a HEPA filter. Also, the article points out that using PLA may be a safer choice than other materials such as ABS or Polycarbonate when it comes to harmful particles: https://3dinsider.com/3d-printer-fumes/


Is there any public and reasonably accurate 3D scan from a Cray-2 computer?

LMGTFY, etc. etc.   Depends on the amount of detail you want.  A cheap starter: here, or here or irrational fruit


how to split a 40" model into 5 parts to print seperate

You've got several options:

Generate full-size STL, cut via software later

If you just have an STL, you can use software such as Meshmixer to modify it. In this case, a plain plane cut would suffice.

Modifiy the design file

A better way is to go into the design file (in your case fusion) and modify it there. In your case, it's rather easy:

add a construction plane

choose the right constraints, e.g. an angle to the XZ plane or a distance to the XY plane

choose the model

Edit > split model
choose the construction plane you made

rinse and repeat

If you want to get rid of parts that became superfluous after this, use the remove option, not the delete option, as the later tries to make sure that the object never was made in the workflow.


No extrusion, but manual extrusion works

I think that you have the incorrect diameter specified (e.g. 2.85 mm instead of 1.75 mm) in your slicer; this also appears from a calculation, see below. Note that you can calculate from extruded volume entering the hotend, or deposited volume. For the first you could calculate the line width of the deposited line and verify that with the settings; from the second you can verify if the volume for the extruded filament equals filament volume based on extruded filament going into the hotend for an assumed line width. Do note that (certainly for first layers!) modifiers may be in place. This is merely to get a ballpark feeling for the chosen filament diameter.

If you look at the first move from:

G0 F3600 X-7.753 Y4.378 Z0.3

to:

G1 F1800 X-8.127 Y3.918 E0.01115

You can calculate the travelled distance $ s = \sqrt{{\Delta X}^2+{\Delta Y}^2} = 0.59\ mm$. Also, from these moves you can see that $0.01115\ mm$ of filament enters the extruder $(E)$.

The deposited volume ($V_{extruded_filament}$) of the printed line  equals the cross sectional area $\times$ length of the deposited filament path. Area could be defined as taken from e.g. the Slic3r reference manual to be:

Basically (as we apply conservation of mass) the filament volume $(V_{filament})$ entering the hotend need to be the same as the extruded filament volume $(V_{extruded_filament})$ leaving the nozzle; so $ A_{filament}\times E = A_{extruded\ filament}\times s $.

This latter equation can be solved for $w$ by filling out the known parameters. From this calculation follows that for $1.75\ mm$ filament you get a calculated line width of about $0.22\ mm$, and respectively for $2.85\ mm$ filament you get $0.46\ mm$ line widths.

As the nozzle diameter has not been specified in the question, but most commonly used nozzle diameter often is $0.4\ mm$, and modifiers for the first layer are at play to print thicker lines; you most probably have the have the wrong filament diameter set if you have a $1.75\ mm$ extruder setup. Basically it under-extrudes.


Localized underextrusion usually means you're oozing material somewhere it wasn't supposed to go. Since you have Marlin 2.0, linear advance might help solve that, and in general right retraction amount is important and turning off combing may be needed (combing over infill allows material to ooze).

Also there are reported bugs in Marlin 2.0 such as  https://github.com/MarlinFirmware/Marlin/issues/15473 that might be related, though I would think you'd not be using junction deviation since it's supposedly incompatible with deltas.


Carbon fiber instead of smooth steel rods?

Steel is the best material for a linear rod when you have a fixed cross-section. It will have the least flex of any rod (aside from some exotic metals) of the same size.

Carbon fiber's material properties might seem superior at first sight, but the stiffness is very anisotropic -- it's very stiff along the grain and not very stiff across the grain. So multi-axis stresses like bending aren't necessarily going to perform up to the theoretical specs. Carbon fiber has exceptional stiffness-to-weight ratio, but the stiffness-per-area isn't necessarily superior in this application.

People do occasionally use carbon fiber for linear rods/rails, but only in much larger sizes than 8 mm. Think >25 mm.

And that's really the problem here. 8 mm diameter at 550 mm long is well outside what's reasonable for bending stiffness. Bending deflection increases with the CUBE of length, and this is simply far too long for the size of rod. The general rule of thumb for precision motion applications is length < 25*diameter. That's a conservative rule, but it's the right ballpark. You really shouldn't be going over 200-250 mm or so with an 8 mm rod.


Can the `render` function be used to speed up rendering?

First a disclaimer: I am far from an expert on the subject, I'm just a regular Joe who happens to use OpenSCAD and have done some experimentation with it.  I believe the answer below to be correct, but I will be very grateful if errors or misconceptions were brought to my attention in the comments. :)

  I have read that sometimes the function render is useful to speed up overall rendering.  Is this correct, or have I misunderstood?

I'm unaware if it is possible to use render() to speed up the "overall rendering", but I'm rather confident that the intended purpose of render() is to simplify the in-memory representation of the model and thus the responsiveness of the preview window, rather than speed-up its final rendering.

  How does this work?

In order to understand how this work, one has to understand how Constructive Solid Geometry (CSG) works.

The entire premise of CSG is that using boolean operations between primitive solid shapes, it is possible to represent complex shapes.

However, while the human operator may see subtractive operations like difference and intersection as something that makes the model smaller in volume and thus possibly easier to handle, the computer sees each and every operation as adding geometry and complexity to the part, as the following image aptly illustrates:

When manipulating the model in the CAD viewer, OpenSCAD is in the preview mode and all that "invisible geometry" needs to be processed for each adjustment of the viewport. It is easy to reach a level at which the OpenSCAD viewer will become jittery or unresponsive.

What the render() function does, is telling OpenSCAD to compute the mesh resulting from the boolean operations enclosed in the render() call, and use that single mesh instead of the underlying boolean-combined primitives when handling the model in the viewer.  Meshes are what is normally used in the render mode of OpenSCAD (F6) rather than in the preview one, but here their advantage is not better visual quality, but the fact that OpenSCAD needs to handle a lot less geometry.

  In what circumstances can I apply it?

You can apply it any time you like, really, but it is a trade-off: a model that uses the render() function internally, will take longer to display its initial preview (because generating the mesh is an expensive operation) but it will behave very well in the viewer.  Conversely, a large model that does not leverage render() will be jittery to handle in the viewer, but it will render to screen in a fraction of the time.  It has to be noted that OpenSCAD make heavy use of caching, so the first preview is the one that will take the longest, while successive ones may be a lot faster.

For reference, the code at the bottom of this answer (which generates the image above) behaved like this:

With render(): 15s for the preview, 1m29s more for the proper rendering (TOTAL: 1m44s).
Without render(): 0s for the preview, 1m45s more for the proper rendering (TOTAL: 1m45s).

I don't know if the fact that the totals resemble each other is a coincidence peculiar to my model or a general rule of thumb (the render() function effectively creating part of the final rendering during preview), but you are free to play with the code and if you find out a pattern, please leave a comment.

In the following code, you may need to increase the grid size to 20x20 if you want to see the difference in responsiveness between vanilla code and render() function.

Also remember to close and reopen OpenSCAD between tests, in order to flush the cache.

$fn = 30;

module shape() {
    render() difference() {
        sphere();
        cylinder(r=0.3, h=3, center=true);
        rotate([90, 0, 0]) cylinder(r=0.3, h=3, center=true);
        rotate([0, 90, 0]) cylinder(r=0.3, h=3, center=true);
        rotate([45, 0, 0]) cylinder(r=0.3, h=3, center=true);
        rotate([-45, 0, 0]) cylinder(r=0.3, h=3, center=true);
        rotate([0, 45, 0]) cylinder(r=0.3, h=3, center=true);
        rotate([0, -45, 0]) cylinder(r=0.3, h=3, center=true);
        rotate([90, 0, 45]) cylinder(r=0.3, h=3, center=true);
        rotate([90, 0, -45]) cylinder(r=0.3, h=3, center=true);
    }
}

module line(x, y) {
    translate([x * 2, y, 0]) shape();
    if (x > 0) line(x - 1, y);
}

module grid(x, y) {
    line(x, y * 2);
    if (y > 0) grid(x, y - 1);
}

grid(3, 3);


Printer extrudes too little filament at beginning and end of extrusion

I think there's a retraction issue(had the same issue). You need to change retraction and check whether there are any improvements. Some times different filament types need slight filament setting calibration.


Recommend simple software to create calibration print for table leveling

You are probably looking for something like this:

Note this is for large beds (300 x 300 mm), so you would have to X, Y scale this in your slicer.

This is a simple part that is very easily generated with OpenSCAD 3D design software (very good modeller if you are familiar with software coding), but could easily been designed in any other tool.

Another leveling and centering print that is created with OpenSCAD is this, and could be a start for you to create your own design:

Note that the file with the design is located in the "files" section.

Edit:
Some code for OpenSCAD made within 5 minutes (I don't type fast so it could have been faster if I did not use the constants, but if you go OpenSCAD, making parametric designs is almost a must ;) ):

// Set constants as you like
width = 30;
depth = 30;
layer_height = 0.2;
first_layer_height = 0.2;
nr_of_layers = 2;
box_size = 180;

// Calculated parameters
height = first_layer_height + (nr_of_layers - 1) * layer_height;

// Draw the test object
translate([-width/2, -depth/2,0]){
  // Draw the center square
  cube(size = [width, depth, height], center = false);
  // Draw the corner squares
  for (x=[-1:2:1]){
    for (y=[-1:2:1]){
      translate([x * (box_size-width)/2, y * (box_size-depth)/2, 0])
        cube(size = [width, depth, height], center = false);
    }
  }
}

Rendered figure:


I've found that a double-walled base seems to give better results than trying to make the base very thick. Any imperfections in the print, or cracking caused by removing the print can lead to leaks - but if there is layer/infill/layer, the result seems to turn out better for me.

Vase mode can be effective (although won't be easy to combine with the above unless you slice your model in several parts), and I've had success whilst using 100% vase mode for vases to hold water. This demonstrates that a single wall thickness is sufficient to achieve a watertight print.


Anet A6 - First time assembled, won't turn on

Welcome to 3d Printing!
as this is a first day of the printer there could be a list of items...

First thing first: disconnect all peripherals, so we can test mainboard.

Before connecting PSU we can connect mainboard via usb and see if it starts (I will probably use a power bank in that case to avoid burning USB (worse case scenario)).
Then you can use cura or another host program to connect to the printer and validate firmware. If the printer is not recognized we can reflash the firmware using provided app or ArduinoIDE .

If all looks good we can check PSU.

please check output voltage from power supply unit (shall be 12V) (on the terminals, there is a small voltage regulator on the lefthand side)
then double check polarity
connect power to mainboard
check if we have same voltage on mainboard terminals
then check if we have 12v on the fan terminal (40 * 10 fan shall run all the time on the hotend)

if that is done and we have power provided to the mainboard then we need to check for 5V that powers the arduino mega2560 (that could indicate a faulty power regulator)

Select one of the available sockets and measure voltage on VCC and GND pins. If we have 5V then we can connect pheriperials one by one, always switching off PSU and disconnecting USB.

If one of the underlying components is faulty then you will see straight after powering the mainboard.

image source


Infill failure when printing larger prints

I have seen this a lot with people I have helped out in the past. sally infill  or the lack of and weakness in the print is due to an extrusion issue. it looks like you are under extruding. this is why you do not see this in smaller prints. In the larger print you are giving the print head enough time to screw up. You need to look at the tension of the filament on the extruder to make sure it isn't skipping. You also need to do a estep calibration on the extruder. I usually extrude 100mm of filament and measure it to see if it is short. if it is short then it is under extruding and doing a larger print and printing a larger area will reveal short comings in extruder infill.


I have seen this a lot of times on my tronXY-X1 with an e3d-v6 via Bowden tube. It is not related to retraction but a different settin: Your first layer is set too thin or not leveled to the right height.

Having the first layer too thin, means that with a tiny error, the calculated correct extrusion becomes either a massive overextrusion or a barely sticking underextrusion. For example, the repeatability of the probing is the biggest error source. A well calibrated probing might varry about 0.05 mm between extremes, so would be written as (layer thickness)+-0.025 mm. On a 0.1 mm layer, that is a 25 % over- or underextrusion; overextrusion of that degree is well known to create such ripples.

Setting it to 0.2 mm for the first layer in Cura, Slic3r and PrusaSlic3r (look in your advanced settings!) did eliminate such rippling for me. My understanding is, that the extra distance gives the filament better ability to flow and stick on this first layer. Also, remember to set your line width to ca. 10 % wider than the nozzle - 0.45 mm is my typical setting.


I found two issues:

While cutting the cables to size, I made the cable for the z-axis too short.
In Cura the y height reset to 100mm rather than the 240mm I had earlier specified.  I assume the G-code I used was sliced with the wrong settings.


This looks like a shift rather than a twist.

Looking closely at the "+" opening, it doesn't look as much twisted as it looks as if the top and bottom halves are sheared, with the top half shifted slightly right and the bottom shifted slightly left.  The horizontal part of the plus seems aligned on the left and right halves.

When you press-fit the keycaps, you will "average" the displacement forces and the keycap will twist.

I am suspicious of a backlash problem in the X axis (left to right).  Perhaps the belt isn't tight enough, or some part shifts differently.  It could be in the rails, the belt, a loose drive pulley, the hot end being slightly loose on the carriage, or any uncontrolled movement.  It could be a high-friction x-axis which causes spring wind-up in the drive system.

I recommend carefully examining the printer for any excess friction or movement, and taking action to fix that first before tweaking the model to compensate for what can not be fixed.

If it is a twist, use more cooling.

If the photos have misled me, and the vertical "+" shaft if actually twisting, you may need to use higher cooling.  The drag of the filament as the head traces the perimeter can create a torque on the shaft, and if the plastic is not sufficiently cooled it could be dragged around.  I consider this more of a theoretical problem than a real one, and have not yet seen it in practice.

This is a beautiful design

This is a wonderful application of 3D printing.  With a multi-material printer it would be tempting to label the keys similar to old-style multi-shot keycaps.


It appears that there isn't an "out-of-the-box" solution to your request, but luck is with you. Someone with your board and objective has posted what appears to be a reasonable modification:

http://www.instructables.com/id/Add-a-Cooling-Fan-to-your-Rep-Rap-Sanguinololu/


There are a few methods to simplify your workflow.  Two solutions are outlined below and both feature a documented API you can use to further customize your workflow.

OctoPrint was mentioned by other users.  OctoPrint will allow you to configure your printer, print profiles and upload STLs for printing from a web interface.  You can configure profiles, slicers and slicer profiles for OctoPrint to use to complete your workflow.

Astroprint offers cloud slicing services in addition to features allowing you to manage printers and print profiles.


Clogging due to heat creep: buy new cooler or new hotend?

To fight heat creep, you must understand why this is happening.

Heat creeps up the hotend assembly as a result of incorrect settings or hardware setup causing the filament to prematurely soften and swell.

It is important to reduce the heat travelling upwards in the first place rather than fighting the result. Too high print temperatures are an obvious culprit, but also print speed and retraction length are important. These need to be dialed in in perfect harmony.

Even when you buy a complete new hotend or parts for the hotend, incorrect settings may lead to the same results. It is known that all-metal hotends (due to the lacking of a thermal barrier PTFE liner in the heat break shielding the filament of excessive heat input) are more susceptible to encounter heat creep and should generally be avoided by less experienced makers.

Whether or not you should buy new parts depends on the current extruder, your ability to fix it (and the willingness to put in more effort to try) and the knowledge to install new parts and find the correct settings for optimal printing. There is no unambiguous answer to this question.


Is there a more efficient methods of removing support in a model?

There's a lot that can be done to improve the removability of supports, and much of this is not widely known/published.
One big wrong default in Cura that contributes to problems with support is Limit Support Retractions, which defaults to on. This causes heavy stringing between components of the support structure that should be separate, and poor layer adhesion between layers of the support and between layers of whatever is printed right after the support (!!), making support more brittle and difficult to remove in clean chunks. This setting should be turned off.
I find Enable Support Brim is also useful. Its nominal purpose is to make supports adhere to the bed better, but it also gives them more of a solid bottom so that the structure is rigid and admits snapping off as a chunk.
A nonzero Support Wall Line Count (it's zero by default for zigzag and most support patterns, but one by default for support tree and others) can make chunks of support easier to remove by making them more rigid.
Connect Support Lines (also called zig_zaggify_infill) helps with rigidity too, and with reducing time wasted on retractions once you turn off Limit Support Retractions.
Aside from these less-well-known tunables, the obvious ones are Support Z Distance and Support X/Y Distance, especially Z. You can increase this slightly from the default to make supports easier to remove, but it will hurt the quality of the surface just above the support (making it less flat, more stringy like a bridge). And the biggest one of all is Support Angle. Generally increase it as high as you can go, after doing some test prints to determine the maximum overhang angle you can print without support. This will save material and make it easier to remove what supports remain.
Finally, aside from support options, you want to make sure you don't have underlying print problems causing oozing, bulging, or other dimensional-accuracy/extrusion-accuracy issues. This is because any material that is printed or expands into the wrong place will, if it's adjacent to support material, bond to the support material and make it hard to remove.


False "Object does not fit into print volume" warning from OctoPrint

That's the purging that Slic3r PE adds, the broad line of filament at the edge of the sheet. That is outside the official print volume, which triggers this error.

The G-Code generated by Slic3r PE at the start of the file contains the following lines:

G1 Y-3.0 F1000.0 ; go outside print area
G92 E0.0
G1 X60.0 E9.0  F1000.0 ; intro line
M73 Q0 S174
M73 P0 R173
G1 X100.0 E12.5  F1000.0 ; intro line
G92 E0.0

You can see that it explicitly goes to -3 on the Y axis, and then extrudes two times on a line along the X axis.

The model size detection is labeled as beta in the settings dialog. It's not very reliable at detecting stuff like this purging line outside the boundaries.


How can I learn to create models for 3D printing?

The answer to your question is yes, there are tutorials to help you create better models. Unfortunately, the back-story to the answer is beyond the scope of StackExchange.

Don't limit yourself to Blender, especially if you are attempting to create non-organic (engineering-type) models. Blender is great for curves and bulges and bumps (and animation, and so much else) but not so great for parametric modeling. Meshmixer is a useful program, but more organic than engineering.

Consider to search for OpenSCAD, Fusion 360, TinkerCAD, but also use terms such as "parametric 3d modeling software" to find a wider range of solutions to your quest.  The above programs are free, there are too many paid programs to list even a small number.

Oh, yeah, stay away from SketchUp for any 3d print modeling. So many failure modes result from models created with that program.


Nozzle heats up past the setpoint and increases

This is not an easy one to solve, the firmware of the printer should be keeping the printer at a certain temperature depending on the temperature setting and the current value. If the firmware is not able to keep the temperature at the requested level, but goes beyond that level, that could be considered "strange". As it measures the temperature (and reports it on your display) it must know that it is over the limit and thus should not power the hotend.

In this process there are a few possible candidates for you to look at:

Check for a faulty MOSFET (sort of an electronic switch) on your controller board (is it leaking current to the hotend?).
Check and or update the current settings for the PID values (settings for the control loop of the hotend). The PID values control the overshoot of the temperature. E.g. is this is very large overshoot? When incorrectly configured the temperature can get higher, but normally should never increase to infinity, are you sure it keeps rising? The determination of the new values is called PID tuning. Important commands (that need to be send over a USB connected printer with a 3D printer terminal application like Repetier Host, OctoPrint or Pronterface):

The M503 G-code command shows the current settings (somewhere in the heap of all settings).
The M303 G-code command can determine the values.

Reflash the firmware
Replace the printer controller board

You could replace the thermistor and the heater cartridge (just to be sure, most definitely not the problem, but they are really cheap to replace). The thermistor works as it reports the temperature, and the heater element doesn't get powered by itself.

As suggested below the most likely candidate for your problem is the MOSFET. These are pretty easy to replace (depending on your board) or replaceable by an external MOSFET module (if you happen to have one lying around).


How to carve a hollow cylinder along the curved surface in Fusion 360

If you want it to be engraved, then sketch out the sound wave on the center plane. When you go to extrude, click "extrude from", and then click "from object". Click on the plane you want to extrude from, and then 2xtrude however for you would like to. Another way to do this would be to project the sketch onto the surface, and then extrude the projection.


Using auto-bed leveling, do I need to initiate G29 before every print?

No, it is not necessary to call G29 before every print to "auto level the bed" 1) provided that:

the bed surface has not changed (e.g. large load or force has been exerted on the build platform, leveling screws are accidentally adjusted, etc.),
the carriage of the hotend is stable (some printers, e.g. the cantilever type, or single side Z lead screw driven printers are more prone to an unstable or level axis), and
the scanned surface geometry is saved in the controller board memory.

There are several solutions to solve this. You could manually run the G29 command once in a while storing the scanned surface with an M500 command  to save the mesh to the EEPROM (memory) of the controller board (this can be done from the printer controller display for Marlin operated printers, an interface like a terminal or a print server application, or from pre-stored .g/G-code files on an SD card). If you use the SD-card, note that it is possible to auto-launch G-code files from the root of the SD-card upon inserting.
Do note to remove the G29 command in the start code of the slicer. The G29 command needs to be replaced with M420 S1 for Marlin firmware operated printers. This command will load the saved mesh at the start of the print from memory. This is especially useful when using a large amount of probing points (e.g. a large bed mesh using a 10 x 10 mesh of 100 probing points, to ensure the mesh is up-to-date, once in a while initiate the scanning sequence to store an updated mesh).

1) Please note that auto-bed leveling might be confusingly indicating that some magic leveling of the build platform/surface itself is taking place (this is also possible in Marlin when there are multiple Z steppers and lead screws used), but, that is not actually what is meant with this phrasing. The process of the auto-bed leveling actually scans the surface of the build surface and compensates the height of the print head/nozzle during a predefined printing height (usually 10 mm, set in the firmware or through G-code: M420 Z10 ; Gradually reduce compensation until Z=10), during this printing process the nozzle gradually be less and less compensated.


Increasing rigidity of curved, long, thin parts

The flexibility of 3d plastics has a lot to do with the additives manufacturers use.  The same base material with additive X may have very different properties than the one with additive Y.

That said, generally speaking PLA is known to be more rigid (and brittle) than ABS, but less strong.  So: you have a fair chance at giving it a go with PLA, albeit you my end up with a more delicate object in the end.

There is a well known youtube channel, whose author has performed a lot of quasi-scientific testing on common brands of filament (PLA and not) where you can get an idea of the relative rigidity of the filaments.  You can find the table with the results here (look for the "bend test" columns).

However the very firs thing that came to mind when reading your post, is that you could simply swap pins and holes by putting the holding pins on the arm, and the holes on the globe instead.  This would allow you to preserve your design and to have longer pins.

Things you could try when it comes to printing (unless you are already doing them):

Print the arm flat so that the layers stretch from pole to pole uninterrupted.
Print with near solid infill (solid infill can be problematic if your extrusion calibration is not perfect), like 95% and cubic infill (for more uniform properties along the full length of the axis.

Finally, you could try to anneal the arm in your kitchen oven.  This process works by warming the part until it becomes pliable and then letting it cool very slowly.  The end result is that the molecules arrange themselves in a more "crystal-like" way and the part becomes stronger and more rigid.  Beware that annealing changes your part dimensions so you should definitively do some experiments with a test cube and find out the direction and percentage of the shrinking before going "all out" on the arm.


Owning an Anet A8 I confirm that the connectors are not rated for the amount of current that pass through them. You do not need a new bed unless the heat element has burned through (but that is pretty uncommon, it usually is the connector). This burning of the bed connectors is a very well known problem of the Anet A8 printers; these connectors are just not rated for the current and the movement of the bed. It is best not to use a connector at all! And yes, the Anet A8 default printer firmware does not have any build in protection for thermal runaway! It is always advised to immediately flash another firmware, e.g. Marlin firmware.

The best repair is to get some high quality silicone AWG 14/16 wires and solder these directly onto the back of the pins of the connector. Also crimp forks to the other end to connect the wires correctly to the printer board.

What I did was cutting up the connector to leave only the 2 middle pins (for connecting the bed thermistor, which does not use much power) and soldered the red wire to the left 2 pins and the black to the right 2 pins. You can do that at the back side of the socket where the pins make an angle.


Issues with direct g-code transmission via serial port

Mine is a wild guess, but judging from:

echo:Unknown command: "starto"
ok
echo:Unknown command: "SD init failstartuthor"
ok
echo:Unknown command: " (none, default config)50.00 Z2.50 E2rBy00.00 Y0.00 Z0.00echo"
ok
echo:Unknown command: "Unknown command"
ok
echo:Unknown command: " "starto"own comm"
ok
echo:Unknown command: "aximum XY jerk (mm/s),  Z=maximum Z jerk (mm/s),  E=maximum E jerk (mm/s)echo"
ok
echo:Unknown command: "PID settings"
ok

It looks like you may be looping back the output of your printer as an input to itself.  I am very suspicious of your line: tail -f /dev/ttyACM0 & as that seems to indicate your are trying to perform other actions in the same terminal window after you started to monitor the serial connection.

If this is the case, you should definitively open the monitor in a separate terminal (tail -f /dev/ttyACM0) and feed the input in a different one (note that yo must not use the final &).

Finally, you probably want to use cat >> /dev/ttyACM0 instead of cat > /dev/ttyACM0 as you want to append your commands without truncating the existing stream.


Creating a 3D modelled "mold over" an imported object

Instead of using FreeCAD, I would import the mesh data into a vertex-based 3D modeling software, such as blender.
After stitching the model in any areas where you still have gaps, you remove any vertex belonging to areas you do not want to use for the mask. This leaves you with pretty much a skin-tight base for your mask. Select all the remaining surfaces and scale S them in all directions in regards to the origin so you create a little airgap 5% extra (1.05) should create enough space to sit somewhat comfortably, but you might prefer a little more. As a stand-in for the face, I use this approximation of a forehead...

Next, we thicken that surface using the modifier menu: Select the Solidify modifier and set a thickness that looks good to you and that might be printable. Then make sure it pushes away from where your face is. Also make sure the Offset is at 1 or -1 to ensure that it does not stick out from the face-scan surface to the back!

Now you got a perfect base to model on the outside of using the sculpt features while retaining the inner surface! Do yourself a favor though: print at least part of this model as a test fit and adjust the mask as needed.


Printer homes to Z stop-switch, but presses on heat bed during printing

The correlation between the endstop switch  -- or sensor -- and the surface of the bed is not known a priori .  In your case, there are two possibilities.  I'd say the more likely is that your g-code generator is not setting the Z-height offset from the bed correctly.   The other is that your bed is tilted, so proper Z-home at one corner does not match the entire bed.

Try this:  first manually move the extruder head to all four corners and adjust the bed screws until the separation is identical at all times.   Then let your gcode start up -- and don't worry if the extruder depresses the bed during homing, as that doesn't matter.  See where the extruder is once the print starts.  Adjust the endstop switch up or down to compensate until the print head when printing is just off the surface and the first layer adheres well.

If all that doesn't work, then you may have the wrong printer profile settings in your slicing softwqre.


Is my 5A polyfuse on my RAMPS board bad?

As @Mikhail Z commented, it does sound like the fuse may be bad.

The first thing to do is put an ohmmeter across the fuse (with power off!) -- if you get high resistance the fuse is definitely bad. However, if you get low resistance that does not prove the fuse is good -- see @Tom's comments below re. polyfuses in particular, and how to disconnect from the rest of the circuit.

If you don't get lucky testing a fuse in-line, remove it and put the ohmmeter on it in isolation. Whether good or bad, it's good to put in a fuse-holder or socket, so you never have to de-solder the fuse again.

Some boards use auto-resetting fuses or circuit breakers, which might have more complicated ways of failing (you can always replace the part to be sure). I personally avoid auto-resetting for anything that supplies heaters; if there's a problem I want to intervene rather than letting it try again endlessly.

Since the heaters and the motors are both down, it's a good bet it's the fuse or something very early (that is, "near" the power supply). If it were a single motor or single heater, then the output control (typically a solid-state relay, or perhaps the logic controlling it) would be a better bet. Though unlikely, it's possible for two or more such controls to fail at once, so don't rule that out completely.

Let us know what you discover.


What modifications do I need to make to Marlin if I completely replace the heated bed assembly?

Dimensions if they differ, maybe endstop offsets and possibly a different thermistor type.


Getting started with converted STL to DXF

I figured it out. Need to go: Network -> conversion to surface

Then we get a surface that is already easy to work with.


Is there a way to convert a file to .dwg?

I found this site and tested it a moment ago. I uploaded a simple .STL file (crystal) and had to register as a user (free, unremarkable) in order to perform the conversion.

http://www.cadforum.cz/catalog_en/stl2dwg.asp

The downloaded file was in .DWG format and opened without a problem in AutoCAD 2013 as a 3d object.

Note the placement of the pivot point in Meshmixer (first image) and the corresponding location in AutoCAD.


If you own a Raspberry Pi , you may first want to try Klipper firmware. This firmware does the heavy lifting on the RPi itself and sends commands to the printer board via USB.

My Ender 3 pro works much better with this firmware.


Prusa i3 MK3S Z axis moving down in calibration wizard

Answer taken from OP's comment

the issue has been resolved (the PINDA probe was too high)


Wanhao Duplicator 6 / Monoprice Maker Ultimate thread pitch or number of steps?

If you navigate to e.g. the Marlin printer firmware configuration file for the Wanhao Duplicator 6 you will find that the steps per mm are defined as:

/**
 * Default Axis Steps Per Unit (steps/mm)
 * Override with M92
 *                                      X, Y, Z, E0 [, E1[, E2...]]
 */
#define DEFAULT_AXIS_STEPS_PER_UNIT   { 80.0395, 80.0395, 400.48, 99.1 }

Sidenote, somebody who posted this has diligently tried to tune their machine, this should read:

#define DEFAULT_AXIS_STEPS_PER_UNIT   { 80., 80., 400., 100. }

From these values you can tune your own if needed.

Now we do the math with the following assumptions:

400 steps per mm,
standard 200 steps per revolution stepper motor (1.8°) and
assuming that your board uses 1/16 µ-steps

Dividing the physical stepper steps per revolution by the firmware steps per millimeter we can calculate how much the nut advanced in a single revolution, i.e. 200/(400/16) = 200/25 = 8 millimeter. The nut therefor advanced 8 mm per complete revolution of the stepper. This means you will most probably have Tr8x8(P2) lead screws.

Do note that there are online calculators that can help you out doing the math for you, e.g. this RepRap calculator page.


With the information provided my thought is that your layers are underexposed for their thickness. Each layer is just barely bonding to the layer above it. After being pulled on by layers below eventually one of the layers fails. This is especially likely to happen on a thin part of the print any may need more support if it is followed by wider layers. But I would suggest trying to increase your exposure time first.
option two: it could be your FEP if that has seen too much use it may be time to replace it.
calibrating a resin 3D printer


Anet A8 with Marlin firmware: Auto Home is crashing into bed

You should un-comment the following line to get rid of the Probing failed error message:

// #define MIN_SOFTWARE_ENDSTOP_Z // Line # 0907 Commented

to

#define MIN_SOFTWARE_ENDSTOP_Z

You have basically disabled the use of the minimum Z endstop, while in fact you are using one, the difference is that it is a sensor now, not a mechanical switch.

Please note the distance of the sensor to the bed, it looks as though it is pretty far away. Before sending an auto home command, it is better to test the endstop triggering beforehand; an external application (e.g. Pronterface, Repetier-Host, OctoPrint, etc.), USB cable and a laptop/computer can be used to send G-code commands through the terminal of the external application. Code M119 will output the endstop trigger status to the terminal.


I've exported 3D models from the game, can I print them?

No. Such figures are generally covered by copyright, which means that nobody but the copyright holder is allowed to (re-)produce copies of the work. Copyright also covers personal use. In the US there are limited fair use exceptions but they do not apply here.

The only way to do this legally is if it is specifically authorized in a license or if you get permission.


Very messy prints with lots of fuzz on edges

I figured out the problem. I reduced printing speed and printing temperature and the print came out decent. Still some issues but worlds better then before. I will try a few more settings to determine exactly what was the actual Issue. I will also try what @Fernando Baltazar recommended and update here what exactly changed the printing quality.


Magicavoxel supports export as .obj, natively or with the right plugin.

While .stl is the standard for 3d-printing exchanges, as it contains a "1-unit" length,(typically that corresponds to 1 mm), .obj is also accepted by most slicers.

To get to MagicaVoxel's native export, look in the lower right corner, click export and see this pop up:

Press the top-left OBJ option and you get a save position window where you can store it. Then open it with your slicer and choose a scale - most .obj files do not contain a scale as the format does not contain a unit measure by default like .stl and has to be given one.


These lines could be caused by a mechanical issue with the printer; it looks as if the positioning is not up to par.

This can be related to loose belts of the X-axis and Y-axis, or play in your system, e.g. look at the rollers of the carriage.

I've experienced an issue with play between the idler mounts and the smooth linear rods on a cheap 3D printer kit myself, but that is not the case here. Just added to explain where play may come from.


How to 3D Print 5-pointed star object that doesn't have flat bottom and hole in the middle?

Typical FDM desktop 3D printers might struggle with this model as it requires you to either print large overhangs and use support structure (when printed laying down), or lacks a natural flat bottom surface to get good print adhesion (when printed upright). A couple of suggestions:

Some FDM printers are great at printing support, and some even allow you to print dissolvable support structure. If you find one of these, you are home safe.
You could split the model in two, print those parts separately, and then glue them together afterwards. This is quite common for complex models, and allows you to print your model on even basic FDM printers. Tom's answer illustrates this well.

There are naturally other 3D printer technologies too (SLA, resin etc.), but I have no practical experience with these myself, and leave it up to others to give you a good answer regarding these.


For 3d printing this is not very relevant. The triangles only exist in the File read by the slicer. And there are file-formats that can describe rods without the need to use triangles.

If you create a model in a format that uses triangles than just use enough of them to get your model described fully. (millions of very small triangles) That is probably a waste on part where it has less details, but that just makes the file a bit bigger.

The problem of best print quality doesn't end there.

The slicer looks at the triangfles and creates a 2d image of the intersection of the triangles with the layer hight. It then creates g_COde paths along the lines in this 2d image for every Layer. Using triangles to describe the model will only give small line segments for these 2d slices. Therefore the G-Code creates will only have straight line movements (G0, G1).

With a format that can describe curves, the slicer could end up with circles and arcs on the 2d slice and could then use G2 and G3 moves. And if the Firmware of your printer understands these commands you would get the best possible quality with rather small model files.


Where to find "Heat deflection temperature" , "Impact resistance Charpy" and "Tensile strength" for a specific brand Filament PLA?

Unless the Manufacturer offers them, you have to extrapolate from other brands. Most PLAs are very close and hit within 10% of one another.


MINTEMP BED Fixed error when running consecutive print

The bed minimum temperature is defined in your configuration file, e.g.:
#define BED_MINTEMP        5

If the error is displayed, it means that the measured temperature drops below this level.

What I am noticing is that upon finishing the first print

This could hint to a faulty heatbed connector where the connection is lost because the bed moves to the end positions (hard to say without seeing the end G-code).
Basically, you could have a connection to bed thermistor that is intermittently failing, or a bad bed thermistor. If connection is lost the temperature defaults to 0 °C or a lower setting.


How often should I replace the glue layers on the bed?

Depends on the glue and on your tolerance for messy undersides on your prints. It's fairly common for some of the glue to come off with the print. Or you may have marks from scrapers or rafts. Do you want to touch up that spot and have some artifacts on the bottom of the next print, or clean and redo the bed to get everything flat?

Gluestick is pretty easy to wash and reapply. It can also be freshened up with a gentle spray of water, smeared flat, and redried, or more gluestick added on top. It will really come down to your preferred workflow.


You can get a model for nearly everything McMaster-Carr sells from their website.

M4 Hex Head Screw - https://www.mcmaster.com/#91280a140/=15dmpx8

M4 Nut - https://www.mcmaster.com/#90592a090/=15dmqjy

The options to download models are to the right of the drawings.

NOTE: the site does prohibit use of these models for direct printing.

  You shall not use a CAD model to engage in 3D printing or other
  fabrication of the object depicted in the CAD model for any other
  purpose. You shall not otherwise redistribute or make available the
  CAD models (or any design drawings or prototypes that incorporate
  them) to any third parties, including third parties in the business of
  selling products similar to the products sold by us.


How to eliminate stringing and regulate flow rate?

Stringing can be fought by increasing the retraction length, but 6.5 mm (the default in Ultimaker Cura) is already pretty much. Please do note that too much retraction can lead to sucking air into the nozzle, which can lead to air pockets/holes.

Basically there are 3 mechanisms that are in play:

Retraction
Temperature
Speed

You have tried changing multiple parameters already. You may have better luck in reducing the temperature of the nozzle even further, start with a decrease of 5 °C. All that is left to do is increasing the travel speed.

There are many stringing test prints to print to fine tune stringing.


POM filament not sticking to the build plate?

Great material but very hard to print as it does not stick easy to the build plate as it has a low friction coefficient to grip onto the heated bed. Also, the material sets quite fast, once the filament leaves the nozzle, it soon hardens so you need to be careful with retraction and Z-hop (leaving small peaks that will be hit later by the nozzle knocking over your print).

My experience with printing this material is based on printing with an Ultimaker 3 Extended (on glass) using a modified material profile (based on Nylon). It is printed at 240 °C (+5 °C for the first layer), no usage of the part cooling fan (if you do use cooling, the layers will not adhere well), a heated bed temperature of 80 °C, and a slow printing speed of 40 mm/s (20 mm/s for the first and second layer).

Ultimaker 3 Extended with printed POM bearing:

First thing I learned is to use quite large brim's (the image above shows a rather small one for this short bearing, for the longer bearings the brim size was more than doubled, e.g. 20 mm), brims enlarge the surface area so that there is more material that grabs hold of the heated bed. Also ensure to get it to stick long enough is heating the bed to 80 °C after smearing ABS juice (ABS dissolved in acetone) and spraying a PVA based spray over the dried ABS juice layer (3DLAC has been used, but other hairsprays or even gluesticks may work as well, as long as there is PVA in it). The temperature of 80 °C is chosen as this is the temperature where my PVA spray has the most tack/sticky-ness.

Other solutions like heating the bed up to 110 °C using 3DLAC or specifically designed sprays for higher temperature like e.g. Dimafix did not work well for me.

Note that complete infill may also give problems as filling out the whole surface area sometimes creates excess material that curls up, which is an easy target to be hit by the nozzle on the next layer.

This image shows an example of using the printed customized igus® POM bearing that is as long as the mount height:

Collection of POM printed bearings:

Another application of POM bearings:

CoreXY hot end carriage


Print contaminated by chips of previous filament colors

My bet is your extruder knurls are scratching the filament. If it happens for specific filament then probably it doesn't keep its diameter. It means you can avoid these grains by using better filament.

If it happens always then you could do 3 things

reduce stress on the spring which pushes filament to extruder gear
make extruder gear less sharp
eventually change the great itself


How thick does an aluminum print bed need to be

Main factors that control the process of the print bed selection are

weight: too thick plate increases inertial force, limiting maximum acceleration/jerk (decreased print speed)
stiffness: too thin plate will warp when heated or bend during calibration (decreased print quality/printer reliability)

For table sizes around 400x400mm I would think of 4mm plate, but it still can warp if heated unevenly.

Sometimes it makes sense to use a sandwich-type table: lower level is MDF, cork panel for heat insulation and thin (1.5-2mm) aluminum heated bed on top.


How to avoid warping when using supports

If I am iterpreting your picture correctly, what you are referring to as "cracking and warping" is simply the irregularities of the plastic where it rested on (and partially bonded with) the support material.

Unluckily, apart from upgrading to a dual extruder printer (and use water-soluble filament for the support) or switching printing technology entirely (e.g.: using a sintering printer) you can only mitigate the problem, but the defects will remain, and will require post-processing to be rectified.

So, in no particular order, here's a list of the most common way to tackle this:

Use a slicer that allows you to place support only where strictly needed.  I have never used it myself as I am a FLOSS enthusiast, but - at the time of writing - among the mainstream ones only Simplify 3D offers this feature.
If your slicers does not support that, tweak your support material settings.  In Cura (and for my printer/filament) - for example - it helps using "support interfaces" and leaving quite a XY gap between model and support.
Instead of printing your model in one go, print it in multiple parts that you can then glue or assemble together.  For example: the spaceship you took pictures of could be printed without any support at all if you were to cut it in half (back and front of the ship, the cylinder connecting cockpit and wings also cut in two).
Use a material that can be chemically smoothed.  Traditionally that would be ABS + acetone vapour, both of them cheap and toxic, but more recently it polysmooth has hit the market with a safer (and way more expensive) system.  This approach will also improve the look and finish of the rest of the print (as also the layer marks will be smoothed out).

Again though... support material marks are sort of part of the game, when using FDM technology, so you should expect some sanding in most prints that required support.


Missing print steps in e-waste 3d printer

Firstly, the X-axis should not be attached to the Y-axis.
Secondly, with respect to the Z-axis not being moved by the X-axis, it sounds like the X-axis stepper either:

is dead, or;
does not have sufficient power to move.

I would suggest removing the Z-axis from the X-axis CD carriage, in order to reduce the mass and therefore the power required to move it, and test the X-axis in isolation. If it moves left and right correctly, then it is not dead (obviously). If it does not move, then try adjusting (increasing) the current to the stepper motor, by adjusting the EasyDriver (assuming that you are using an EasyDriver stepper motor controller):

If it still does not move, then replace the stepper (or the whole X-axis CD-ROM drive, which is probably easier).
Then replace the Z-axis and test the X-axis movement again. If it does not move then the stepper does not have sufficient power, or strength, to move the mass of the Z-axis and, again, will probably require increasing the current to it, by adjusting the EasyDriver (as above):

If that does not help, then it will probably need need replacing.

If it does move, then you've fixed it.

Addendum
Having re-read your question, you state that the X-axis stepper motor works fine. So, it could be that the mechanism to which the stepper motor is attached is broken (teeth, gears, etc.) and not moving the CD carriage correctly. Again, remove the Z-axis and check the mechanics of the X-axis.
If they are damaged, then you will probably need to replace the CD-ROM drive that was used for the X-axis.


Can parts that have warped (after being printed) be un-warped?

PLA stays a thermoplastic in printed shape. And as you saw when unpacking your things, tropical heat and force are enough to get a lasting deformation. Other people had PLA prints ruined from having them sit in the car, I had seen deformation on a purple print I had let sit in the sun on an edge.
This also means that the reverse is true: under load to shape the part and some heat you can try to unbend parts. A hairdryer air of about 60-80 °C, which is more than enough to make PLA formable.


I'm assuming you actually want to build Cura, rather than simply install Cura. If you instead want to install Cura, you can try sudo apt-get install cura-engine

The following instructions were tested on my own Debian 8 (Jessie) distribution; they should be mostly, if not entirely, the same, for Ubuntu. Note that I did not follow the exact steps as described on the github/Ultimaker/CuraEngine README.

Before we begin, let's make a build directory and do everything in there.

mkdir ~/Downloads/curabuild
cd ~/Downloads/curabuild

The instructions will be broken into

1. Install dependencies

Some or all of these may already be installed on your computer. To be sure, we install them anyways:

sudo apt-get install git curl libtool dh-autoreconf cmake python3-setuptools python3-dev python3-sip sip-dev

2. Install protobuf

Clone and enter the protobuf git repository:

git clone https://github.com/google/protobuf
cd protobuf

Build and install for C++:

./autogen.sh
./configure
make # this will take some time
sudo make install

Install for Python 3:

cd python
sudo python3 setup.py install

3. Install libArcus

Clone and enter the libArcus repository:

cd ../..
git clone https://github.com/Ultimaker/libArcus
cd libArcus

Build and install

cmake .
make
sudo make install

4. Install CuraEngine

Clone and enter repository:

cd ..
git clone https://github.com/Ultimaker/CuraEngine
cd CuraEngine

Build and install

cmake .
make # grab a cup of coffee
sudo make install

5. Celebrate!

If all went well, you're done! You can now use the Cura engine via CuraEngine. Enjoy.


There are several programs that could serve as a console to connect to a printer, put let's start somewhere: the USB connection.
Connection with USB
When connecting the printer via USB for the first time, we will get a notification that some unknown item is connected. If we use windows we can learn what device it decided we now have via the device manager (Windows Key then typing in manager and Enter). It should be a COM Port as this picture shows.

In this case, we have connected to COM4. To change the COM port, we can do so via a Rightclick->properties, then the connection settings and advanced. In the new window, we can change the COM port number to anything from 1 to 256, but it is recommended to keep the number somewhat low.
Make sure you run the printer's power supply and the connection via USB, as you can't use motor control commands if you have the power supply for the printer off.
Using the COM-port
Now, we need a program that can use the COM port to connect to the printer. There are, as said, several out there. One such is Repetier Host, which comes with slicer and a good graphical interface. Another is Ultimaker Cura, which has the same capacities but lacks logging of all the commands exchanged. Because many are familiar with it as a slicer, I will look at it first. As a third option, I will take a look at Pronterface.
CAVEAT: Only one program that actively uses the COM port may be running at the same time, as the first program accessing it will claim all uses for the COM port till it is shut down.
Ultimaker Cura
After launching Ultimaker Cura, choose your printer. many printers are available as presets by now, so just import the printer you use or make a custom profile. At the moment the latest version of Cura is 4.1.0, and will look like this:

After switching to Monitor, it will automatically connect to the Printer via the COM port, in my case 4.

Once more we test the connection via Home  and then use the Send G-Code prompt, confirming lines via Enter.

Repetier Host
After running Repetier Host the first time, you need to configure your printer. Ctrl+P opens the config window for the printer. We need to know the Baud Rate of our printer, so I looked up the documentation of my Ender3, which told me 115200 is the right setting. Most printers seem to run on this setting. The other tabs decide the speeds, extruder number and limits and the bed shape. The rest isn't needed for this. My settings for the Ender3 are these:

Ok, we made our settings and saved via OK.
Now, we press the Connect button on the left side of the menu:

It should change to the blue Disconnect button and display other parts of the print now, showing that we have connected. Note that at the bottom of the screen a log is filled with all the commands and exchanges.

On the right side, we now can choose the Tab Manual Control

Before sending any commands, it is a good idea to press the Home  button. This also serves as an extra test to see if the printer is connected correctly. Now we can use the Prompt G-Code to send our commands. The commands will be put into the log below.

Pronterface
This is the first time that I used Pronterface. The first thing to do after downloading the Printrun package and running the Pronterface application, is to press Port, then set the right Baudrate (115200 seems to work for many machines) and press connect.

The GUI will saturate and the right log will show lots of things tested in connection. Note that in the lower right of the GUI, there is a temperature curve log, which can be very handy for troubleshooting, as it shows the change over a little time.

Below the log, we find the input for commands, and if we send a command, we get a log entry of it:


How are infill paths connect to form an efficient path that respect the object's geometry?

The answer to this is pretty much basic algebra: The software tackles the problem by using a set of functions that generate the infill pattern for ALL the build volume, then discard anything outside the shells. Which is determined by algebra:
Basics
Outline Function
Assume the outline of the body is a function $O(l)$ that has a parameter $l$ for its length. This function can be calculated into XY coordinates, giving us $y\mapsto O^{xy}(x)$, that is parameterized after $x$, and should give us the values of $y$ for a closed function $O(l)$.
Infill Functions
Now, let's generate a function for infill pattern. Let's make it easy for us and use a diagonals pattern: $I_n(x)=x+n\times d$
where $d$ is a fixed parameter for "distance to last line" and $n\in\mathbb Z$ is the number of the line with 0 passing the origin.
Comparation: Outline=Infill
Now basic algebra! Let the computer solve for each $n$ the term $O(x)=I_n(x)$. The result should be (in the best case) paired points, all on the linear function $I_n(x)$. Sort these points by their correlating $n$ value first, then the $x$ values.
Dealing with the results
Let's assume we have some banana shape and our solutions for n=0 are like this: $P_{i=1 \to 4}=\{\{1,1\},\{2,2\},\{3,3\},\{4,4\}\}$
Modeling starter
On the most simple cases, we hope to only have paired results - the outline is closed and thus each line passing it has to cut it in multiples of two. Because we don't allow geometry to be below $\{0,0\}$, the line in this example will pass into the body at the first solution of these points and pass out of it at the second and so on. Generally: It moves in at odd and exits at even i. So our infill lines in the example need to connect $\{1,1\} \to \{2,2\}$ and $\{3,3\} \to \{4,4\}$.
Enhancing the Modeling
checking for tangents
Now, we might have an odd number of points that solve O(x)=In(x) for a given n. Let's assume $P_{i=1 \to 5}=\{1,1\},\{2,2\},\{3,3\},\{4,4\},\{5,5\}$.
Now we need to be careful as one of these points is guaranteed to be a point in which $I_n(x)$ is a tangent at of $O(x)$. So, we need to know the first differential of $O(x)$ in the points, which is the tangent at $O(x)$. But we don't need to solve all the points: We know the first should enter and the last exit the body, so we need (for most cases) to only solve this for the points $P_i$ with $i=2 \to i_{max-1}$. When $O'(x)=I_n(x)$, we got a tangent and remove this point from the list of points to connect with infill lines.
Because we could have several tangents in a set of points, this check has to be done for all sets of points to eliminate these points.
Also, I used the "usually" there by intent: there are cases where the first or last point is a tangent, and because it is easier to cose, we should run the elimination process over all  $P_1 \to P_{max}$!
The new, reduced set of points will be a paired list: $Q_{i=1 \to 4}=\{1,1\},\{2,2\},\{4,4\},\{5,5\}$. The Infil connects $Q_1 \to Q_2$ and $Q_3\to Q_4$.
Turning Points into vectors
Now, we have our points $Q_1$ and $Q_2$ (or any other pair of $n \land n+1$, where n is an element of the odd numbers), both on $I_{n=0}(x)$. How to connect? Easy! $I{n=0}$ is a function, most likely a linear one. Along this line has to be our connecting line from $Q_1\to Q_2$, so the movement we have to plot is the function of our pattern between the points. For a simple, linear pattern this would be:
$L_1=\frac{I(x)}{|I(x)|} \times |\vec{Q_2}-\vec{Q_1}|+\vec{Q1}$
Optimisation
Sorting properly
Now, we have a set of Lines $L_n$, where, as established in the last paragraph, n is an odd number declaring it has the lower-end $Q_n$, and the upper-end $Q_{n+1}$. How do we sort these lines smartly so we have the least movement? Let's take a look at our lists:

The list of Pi, which contains all tangential points and end points. Not very helpful.
The reduced list of $Q_{n}$, which contains all the start and end points; it is sorted in a way that odd numbers are starts, and even ends.
The list of $L_n$ with i always being an odd number, that contains the movement paths (=lines) from each $Q_{n}$ to its corresponding $Q_{n+1}$

Shortest movement between prints?
Now, let's do some math again: What is the closest $Q_{a}$ to the $Q_{n+1}$ we did end at after doing the $L_n$ movement? Well, first of all, we need to make sure we don't get back to already moved paths so let's make a new list $R_{i}$, which contains all the $Q_{i}$ we have not yet moved to.
So what is the closest $R_{i}$ to the end point of the path $L_e$ we just moved? Well, easy! Solve $min|R_i-L_e|$ with i being all the odd numbers in the list of $R_{i}$ and $L_e$ the point where the printhead was sent to at the end of the last movement
fewest direction changes?
Always moving just the shortest distance might create a large number of direction changes. So it might be a good idea to keep the point-lists sorted by the parameter n of the function $l_n(x)$ that created the points in the first place, and run down that list from minimum n that generated points (which can be below 0) to the maximum n that generated points.
optimizing direction changes & movement paths
Now, we have 2 approaches that pretty much only follow the pattern. However, we might make our average movement paths more efficient by using a simple trick:
Up to now, all our line functions $l_n(x)$ had the same vector and just a different starting point to one another. So all the starts were on one side of the body, all the ends on the opposite. With a very simple trick on the infill function we can generate a group of functions that alternate the sides of the end-points between each line, jsut by adding an inverse element:
$L_n(x)=-1^n\times l_n(x)$
Now, after all the movements with the same $n$ are done, check for the closest starting point (which should be on the same side, but is not necessary the neighboring line), and go down that line fully, eradicating these points from the list of remaining points $R_{i}$. Once back on the side we started first at, we look for the closest unused point again, run down that line, rinse and repeat.


Minimum Solid Figure traced by a Delta 3D Printer

I think you misunderstand. It's the nozzle width and extruder step size, not the axis step sizes, that limit detail. Positioning resolution on a typical printer is on the order of 0.01 mm, but nozzle size is at least 0.1 mm and typically 0.4 mm. Also, lack of perfect rigidity in the mechanical parts will produce gradually increasing error as you try to go smaller and smaller in detail. So, it really makes no difference to the achievable detail whether the printer is a Cartesian or a Delta.


Sketchup is notorious for creating non-manifold models for 3D printing. The first recommendation would be to consider using a different resource for your models. I'm not a big fan of TinkerCAD, but it is similar in operation to many features of Sketchup. I've used it on a couple occasions where it was the fastest simplest way to create a particular model.

There are other programs that are more complex in the learning curve. Meshmixer is good for more organic shapes, although it will perform reasonably well for engineering-type models such as yours.

Blender is a great piece of free software with an extremely steep learning curve, but again, better suited to organics.

I'm quite a fan of OpenSCAD which is script/text based and quite well suited to creating engineering-type models, especially if you need parametric modeling. The model you have in your pictures would be an easy build, perhaps twenty minutes creation time, a few dozen lines of text. I see two cylinders, some boolean subtraction and some radial primitives. If the code is clean (easy to do), the result is a manifold object.

On the even more challenging level, there are programs such as SolidWorks but the learning curve there is steep too. In the same ballpark would be Autodesk Fusion 360, for which a free hobbyist version exists.

Of course, with all of the above, there are YouTube tutorials to assist your learning process.

More to the point, one can use an online 3D model repair service. I've attempted to use a couple with mixed results.

Netfabb is a commonly recommended online repair service. I've not used that one, or if I have, the results were poor. A bad model (your example) will likely fail with most services.

I've used MakePrintable in the past as well. Again, a bad model will fail and Sketchup is the culprit here.

You can use Meshmixer in Analysis mode to find the errors and use Auto Repair All, but the results aren't going to be pretty!


You are suffering from what is called "heat creep". Molten filament is creeping up the heat break and into the bowden tube, where it is causing a jam. You need to install a proper radiator block that is cooled by a fan, not just a lump of wood as a "cold end". The cold end is not just a connector, its primary purpose is to act as a cooler. A hot end on its own is not enough. You also need a cold end. Here is my extruder disassembled (fan omitted). The radiator block is the red item.


When you slice an STL of a heat tower, you need to tell the slicer that you need a different temperature at a certain level and maintain that new temperature until another change is requested.

The way I usually do it is by using a post processing script in Ulltimaker Cura, but you can do it yourself quite easily by changing the G-code file manually.

To get it to work in Ultimaker Cura is to:

open a heat tower STL model onto the virtual build plate,
choose the correct print settings, e.g. fan speed, print speed, layer thickness, etc.,
now navigate from the main top menu bar Extensions -> Post Processing -> Modify G-Code,
select Add a script and choose ChangeAtZ,
you now are presented with an option (called Trigger) that you can change options at either a certain Height or at a certain Layer No. number, you decide what you want to use based on the model and layersize used, but height can be chosen safely when you know the height changes in the heat tower model
set a certain height at which you want to change the print properties by specifying a height in option Change Height,
now put a checkmark in Change Extruder 1 Temp (be sure that the box Behavior is set to Keep value so that it maintains this value until you specify otherwise, else it is only valid for a single layer),
a new input box will be presented to you where you can enter the value of the extruder,
repeat this adding of "changes at certain height" e.i. instances of ChangeAtZ until you have specified all the temperatures for all the levels
now slice the model (if not done automatically) and save the G-code file for printing.

If you look into the generated G-code file (the snippet below is taken from a G-code file for an Ultimaker 3) you will see that the post processing script will add extra lines in your G-code file. E.g. the following snippet shows you 2 changes of temperature, one at 5 mm (extruder 1 @ 250 °C), the other at 10 mm (extruder 1 @ 245 °C):

...
;LAYER:48
G0 X93.4 Y132.161 Z5
;ChangeAtZ V5.1.1: executed at 5.00 mm
M117 Printing... ch@  5.0
M104 S250.000000 T0
...
...
;LAYER:98
G0 X93.4 Y132.35 Z10
;ChangeAtZ V5.1.1: executed at 10.00 mm
M117 Printing... ch@ 10.0
M104 S245.000000 T0
...

The bottom line is that the extruder needs to be instructed to be heated or cooled to a new temperature. This is also something you could have inserted yourself manually by adding the codes M104 SXXX.000000 T0 at specific levels where XXX is the extruder temperature you need for that level.

Basically this describes how to print the heat tower calibration prints, not the selection of the settings (e.g. extruder temperature) to use for your prints. When you created the print file you are ready to print the tower and observe the quality of printing. You can look at the print and visually inspect the temperature giving you the best aesthetic performance, the best overhang performance, the best "filling" performance, highest speed, etc. It is you that decides what is best for your application. Alternatively you could print some coupon tests and see which are structurally the best. Please note that additional towers for different settings like layer height, print part cooling and print speed to may be necessary to optimize the print process.

Sidemark, I prefer the use of parametric models (e.g. in OpenSCAD) over the STL models found on the internet, this way I can embed the exact printer setting in the tower for reference. See e.g. this answer.


Are any 3D printed materials biocompatible (safe for implantation in the human body)?

Perhaps more than biocompatible, which generally refers to a material that does not illicit a harmful inflammatory response inside the body, you should be looking at bioresorbable materials, which are materials that dissolve inside the body after a certain time period without needing mechanical removal.

As an example, FDA approved poly (lactic acid) is available in pellet form from Corbion (formerly PURAC biomaterials) and can be extruded into 1.75mm filament for use with any desktop 3D printer (https://www.sciencedirect.com/science/article/pii/S2214860416301385). Similarly, researchers have used poly (caprolactone) to 3D print scaffolds with using a stratasys FDM machine (https://onlinelibrary.wiley.com/doi/pdf/10.1002/1097-4636(200105)55:2%3C203::AID-JBM1007%3E3.0.CO;2-7).


How to automate printing of multiple parts continuously?

The only thing I can think of off hand is an old mod for the early MakerBot machines. It first was released for the Thing-O'-Matic I believe, but is compatible with Replicator 1 machines (and its knock-offs). Here's the Thingiverse page, but look up Automatic Build Plate.

Essentially, you can use the Replicator G slicing program and there is a setting for "ABP" or Automatic Build Plate. This will basically tell the ABP to run its routine after the controller receives the response that the printing program is done and roll the finished part off the edge of the build plate, then start the same program over again.

Drawbacks:

I don't think it's easily compatible with newer machines/slicers. But, it's open source
Pretty sure you have to use Replicator G, which is outdated now and may make your machine sound like it's going to fall apart (I know from experience)

Going off of @Pete's answer about solenoids. It reminded me that someone integrated a solenoid "ejector" (aka Boxing Glove) for their machine.

Update (06/08/2016):

Forgot to mention that if you choose to create your own "Boxing Glove" or conveyor belt, some software such as Octo-Pi and Repetier-Host allow plugins. So, you could interface with your hardware via customized code and integrate the functionality directly into the slicing application for the full closed loop operation.


Which outdoor filaments for unheated beds?

PETG is good for your project.
You can also print transparent ABS on unheated bed with ABS juice.I tried transparent ABS in outside environment and it work fine.I live in India where outdoor temperature reach to 45C in summer.It is easy to print small parts.ABS juice may or may not work with large parts depending on your ambient room temperature.Ambient room temp should be above 30C for ABS on unheated bed.I suggest you to use a enclosure for printer if you are in cold area.