commandline remeshing and simplifying tools I'm currently trying to remesh and simplify some protein structure models (very large) to reduce the file size of the STLs I need to print from.

The raw file before manipulation is ~4.9GB.

I'm currently attempting this on my home PC (16GB Ram, AMD FX9590, dual RX480s - so no slouch by any stretch) but I'm currently watching the progress (which isn't fast), and the RAM usage is worryingly close to 16GB now, with about 40% of the calculation still to go.

I'm using MeshLab's Quadratic Edge Collapse Decimation, to drop down by about 60% since there are a lot of redundance internal vertices etc and the print will already be quite difficult even with a small number of faces.

If my PC ends up not being able to handle this, does anyone know of any good commandline tools for Unix that I could use on one of my servers to handle remeshing and simplification, where I have considerably more ram and CPU power available.

First post on this SE, so apologies if this belongs somewhere different.

Netfabb came up in a number of suggestions that I found. Take a look at 3D Printing Under Arch Linux, which offers a number of solutions for Linux, including:

OpenSCAD
FreeCAD
Blender
NetFabb
Slic3r

Netfabb

Taking the section on Netfabb:

  netfabb Private will provide you with a fully-loaded tool-box to do all this and much more:

  fix complicated file errors
  make late design changes
  combine parts into one
  hollow out solid parts into a shell
  smooth the mesh to improve surfaces
  reduce file size

Installing it:

  netfabb is not at official repository so you must install it from AUR
  using yaourt

$ yaourt netfabb-basic
$ netfabb-basic

However, it is unclear as to whether there is a cmd line interface. It could be worth reading Problem in Netfabb Command Line execution and in particular the documentation on Automating Netfabb - although this seems to suggest that command line functionality is only available to users with Ultimate subscription and not Basic:

From Reducing Size of STL file to upload to shapeways, this post (#10) states:

  You can also decimate the model in Netfabb easily - Right click > Level of Detail > Choose something like 50%... or more or less depending on the level of detail needed.

Although, this isn't available in Basic subscription, or so says post #12.

Meshmixer

I also came across this, non-command line option.

From How to Reduce the File Size of .STL and .OBJ 3D Models

  For example, you can give the free 3D modeling program Meshmixer a try. Choose the ‘Select’ tool from the menu on the right, then double-click on your model (this will select your entire mesh). Then click on the ‘Edit…’ option and select ‘Reduce’.

  You can now reduce the polygon count using several options. The best working choice is to use the percentage tool. It will immediately tell you by how much percent your file size (and polygon count) has been reduced.

Available for Windows and OSX.

From Reducing Size of STL file to upload to shapeways, this post (#8) states:

  The meshlab tutorial is exactly what you want to do - the options described help preserve the overall geometry of the model while reducing the poly count. Start with a target of 150,000 polys and work up until the desired detail is retained, bearing in mind the printability I mentioned above.

Also, by way of Quora, How do I reduce the size of an STL file? Does it affect the CAD coordinates for 3D printing?, I also found this Meshmixer tutorial: Easy Guide on How to Repair Your .STL Files. Under the section Problem 4: File Size is too Large for 3D Printing are the following steps:

  The last problem that you may stumble upon, particularly as your
  objects get larger and their complexity increases, is that the
  resulting .stl file size is too large for your 3D printer or 3D
  printing service of choice. Third party printing services like
  i.materialise or Shapeways  have upload limits so you may have to
  change the size of your file (100 MB limit at imaterialise and 64 MB for
  Shapeways). It’s important to reduce the mesh without sacrificing the
  quality, which I should say at the outset is best done at the initial
  export from your CAD software to minimise any distortion. My number one quick
  tip is to make sure in the export settings that your saving in
  ‘Binary’ format, not ‘ASCII’ –  it’s a significantly more compact file
  format for .stl’s without losing quality). However if it’s not an
  option, Meshmixer can be really useful to quickly reduce file size and
  visualise how this will affect the quality of your surfaces.

  For this example I’m going to return to the leaf from Problem 1, which
  as a .stl file is 30.757 MB – pretty large for such a small design and
  definitely over the limit for someone’s email if I wanted to send it.
  So let’s look at how we can get this under 10 MB.

  Select the entire model by pressing Ctrl + A on your keyboard to select all.
  Go to Edit>Reduce to bring up the options to reduce the mesh. Essentially the file size of a .stl is directly related to the number
  of polygons (triangles) that make up all of the surfaces. We will use
  the Reduce tool to reduce the quantity of polygons, therefore reducing
  file size.
  The menu will give you a range of options to reduce the size of your file. The simplest is to use the default Percentage option,
  allowing you to determine the final file size you want rather than
  needing to know exactly how many triangles will be used to make up the
  file. In this case I have calculated that in order to get my original
  .stl file below 10 MB, I need a reduction of 70 % or more. As you
  adjust the values, you will get a preview of what your model will look
  like, allowing you to control how much reduction you employ before the
  model becomes too distorted and ‘pixelated.’

  Once you’re happy and have accepted the changes, you can click on the Export button or go to File>Export to save this new reduced .stl
  file. As you can see in the comparison below, there is almost no
  perceptible difference in the quality of the 30.757 MB file compared
  with the final reduced version at 9.362 MB. I have simply increased the
  size of the triangles, minimising the quantity needed to create the
  same volume. Your regular 3D printer, or even a highly accurate SLS
  printer will never even know the difference in a change like this.
  It’s only if you really go crazy with the file reduction that you
  might start to notice them in your final print (and in fact many of
  the low-poly models which are popular on Pinshape can be produced
  using this technique – start with a detailed .stl of the object you
  want, and then just keep reducing the number of triangles!).

Blender

From Reducing Size of STL file to upload to shapeways, this post (#8) states:

  Another option is to import the model into Blender, then use the Remesh or Decimate modifiers. Blender can be tough to get into initially but there are plenty of introduction tutorials on YouTube to help.

Blender does offer a Command Line Interface (CLI), see Command Line Arguments:

Usage: blender [args …] [file] [args …]

However, there doesn't appear to be an option for Remesh or Decimate. Although take a look at Is it possible to decimate or remesh via the CLI?:

  You can specify a Python script to run, see the Python Options section of the documentation you linked. In this script, you can import the model, add the modifiers, apply them and export the result.

Related - Is it possible to automatically simplify geometry in blender without losing object shape?, which has this comment:

  Is there a way to execute this modifier from command line and export the result?

which then leads to Can modifiers be computed and applied from the command line?

  You'd have to use bpy.ops.object.modifier_apply, e.g.

import bpy

for obj in bpy.context.scene.objects:
    bpy.context.scene.objects.active = obj
    count = 1
    length = len(obj.modifiers)
    while obj.modifiers:
        name = obj.modifiers[0].name
        print("%s: Applying %s (%d/%d)" % (obj, name, count, length))
        bpy.ops.object.modifier_apply(modifier=name)
        count += 1
print("All done.")

  For info on how to to run the above, see here.

Meshlab

Seeing as you are already using Meshlab, it might be worth reading Executing meshlab from commandline reduce faces of a mesh iteratively (awesomebytes/reduce_faces.py)

#!/usr/bin/env python

import sys
import os
import subprocess

# Script taken from doing the needed operation
# (Filters > Remeshing, Simplification and Reconstruction >
# Quadric Edge Collapse Decimation, with parameters:
# 0.9 percentage reduction (10%), 0.3 Quality threshold (70%)
# Target number of faces is ignored with those parameters
# conserving face normals, planar simplification and
# post-simplimfication cleaning)
# And going to Filter > Show current filter script
filter_script_mlx = """<!DOCTYPE FilterScript>
<FilterScript>
 <filter name="Quadric Edge Collapse Decimation">
  <Param type="RichInt" value="1448" name="TargetFaceNum"/>
  <Param type="RichFloat" value="0.9" name="TargetPerc"/>
  <Param type="RichFloat" value="0.3" name="QualityThr"/>
  <Param type="RichBool" value="false" name="PreserveBoundary"/>
  <Param type="RichFloat" value="1" name="BoundaryWeight"/>
  <Param type="RichBool" value="true" name="PreserveNormal"/>
  <Param type="RichBool" value="false" name="PreserveTopology"/>
  <Param type="RichBool" value="false" name="OptimalPlacement"/>
  <Param type="RichBool" value="true" name="PlanarQuadric"/>
  <Param type="RichBool" value="false" name="QualityWeight"/>
  <Param type="RichBool" value="true" name="AutoClean"/>
  <Param type="RichBool" value="false" name="Selected"/>
 </filter>
</FilterScript>
"""

def create_tmp_filter_file(filename='filter_file_tmp.mlx'):
    with open('/tmp/' + filename, 'w') as f:
        f.write(filter_script_mlx)
    return '/tmp/' + filename

def reduce_faces(in_file, out_file,
                 filter_script_path=create_tmp_filter_file()):
    # Add input mesh
    command = "meshlabserver -i " + in_file
    # Add the filter script
    command += " -s " + filter_script_path
    # Add the output filename and output flags
    command += " -o " + out_file + " -om vn fn"
    # Execute command
    print "Going to execute: " + command
    output = subprocess.check_output(command, shell=True)
    last_line = output.splitlines()[-1]
    print
    print "Done:"
    print in_file + " > " + out_file + ": " + last_line

if __name__ == '__main__':
    if len(sys.argv) < 3:
        print "Usage:"
        print sys.argv[0] + " /path/to/input_mesh num_iterations"
        print "For example, reduce 10 times:"
        print sys.argv[0] + " /home/myuser/mymesh.dae 10"
        exit(0)

    in_mesh = sys.argv[1]
    filename = in_mesh.split('/')[-1]
    num_iterations = int(sys.argv[2])

    folder_name = filename.replace('.', '_')
    tmp_folder_name = '/tmp/' + folder_name + '_meshes/'

    print "Input mesh: " + in_mesh + " (filename: " + filename + ")"
    print "Num iterations: " + str(num_iterations)
    print "Output folder: " + tmp_folder_name
    try:
        os.mkdir(tmp_folder_name)
    except OSError as e:
        print >> sys.stderr, "Exception creating folder for meshes: " + str(e)
        exit(0)
    for it in range(1, num_iterations):
        if it == 1:
            out_mesh = tmp_folder_name + folder_name + "_it" + str(it) + ".dae"
            reduce_faces(in_mesh, out_mesh)
        else:
            out_mesh = tmp_folder_name + folder_name + "_it" + str(it) + ".dae"
            reduce_faces(last_out_mesh, out_mesh)
        last_out_mesh = out_mesh

    print
print "Done reducing, find the files at: " + tmp_folder_name

Also

  here are some updates for python 3.6.2: https://gist.github.com/tylerlindell/7435ca2261e7c404ccc1241f18e483aa


How to debond cyanoacrylate glue from pla I have used cyanoacrylate glue aka superglue to bond PLA. I have created several electronics enclosures. (Definitely the most time-consuming part of the project.)

Now my question is which debonder/solvent can I use to separate the pieces again without destroying the PLA parts?

Wikipedia proposes the following:

nitromethane
dimethyl sulfoxide,
methylene chloride,
gamma-Butyrolactone.

Acetone

Acetone will dissolve cynoacrylate (superglue) and should weaken it enough to be able to separate the parts.
A readily available cheap source of acetone is nail varnish remover (just make sure you don't buy the acetone free version!).
Give the pieces a soak in nail varnish remover for 10-20 minutes and they should come apart with some prying.
Acetone does not dissolve PLA, so the PLA parts should be undamaged. If you were to try this on ABS parts however, they would begin to dissolve.


Marlin error Rx_buffer not declared in scope After one successful preview of compile, the upload returns error

rx_buffer not defined in this scope.

How do I fix this?

The line defining SERIAL_PORT in MarlinSerial.h should read:

#define SERIAL_PORT 0

To [mis-]quote this answer from RepRap:'rx_buffer' was not declared in this scope (the emphasis is mine):

#define SERIAL_PORT 4

  This is the serial port on the controller, not the serial port on your
  computer. 0 through 3 are valid options on a controller with a atmel
  2560.

  Unless you are doing something like serial over bluetooth or
  deliberately not using the USB port you should not change this from 0

The same error is reported on the Arduino forums, 'rx_buffer' was not declared in this scope:

  Have redone over 5 times and always getting " 'rx_buffer' was not
  declared in this scope ".

  Now I tried Factory marlin and same "
  'rx_buffer' was not declared in this scope " . Dont know what to do - I'm
  so lost.

  ...

#define SERIAL_PORT 4     //before was 0

  Nothing else


Upgrade Ender 3 with Diamond Hotend As I want to print with multiple colors I plan to upgrade my Ender 3 with the diamond hotend.

So far I found all information I need, except what power supply I need for my RUMBA board.

Can I use the default Ender 3 power supply or do I need an additional power supply or wires?

Parts I am going to order:

1x Lite6 Heatsink
3x Diamond Universal mount
1x 12 V 40 W 6 mm x 20 mm Cartridge Heater Reprap For 3D Printer
1x Thermistor 100K 1 % NTC Temperature Sensor Line for 3D Printer
1x Fan 50x50x15 mm 12 V 125 mA
1x Diamond Hotend Insulator
1x Nema17 stepper motor 48 mm 1.8° 42BYGHW804 1.2 A 5.5 kg•cm
3x MK8/9 Dual Extruder Feed Device Part For 3D Printer 1.75 mm Filament
3x Bowden tube 1 m with fitting 4/2 mm (for 1.75 mm filament)
1x RUMBA 3D printer controller board
6x StepStick DRV8825 Stepper Motor Driver

The RUMBA boards run up to 36 V, so reusing the (24 V) power supply from your printer should be fine. As the 2 extra steppers do not take much extra power (note you are ordering only 1!), your supply should be sufficient. Note that a 12 V heater cartridge is not going to work on a 24 V board (you'll get a massive overshoot and probably over-temperature warnings and printer shutdowns).


Paper as build surface - how will that work? I have a Creality Ender 3 that needs a build surface (both the build-tak sticker and the removable stiff backer). My dad has been pestering me to try using paper as a disposable surface. I am hesitant to do so for concerns regarding fires and degrading the bottom of the print. Has anyone here tried this and what were the results?

Blue masking tape is a common bed surface, especially for unheated beds. It is effectively an adhesive applied to a paper, although I suspect the paper is treated in some manner to serve as a barrier to paint, as the blue tape is sold as paint masking tape.

A sheet of ordinary paper isn't likely to catch fire, as the bed temperature will not reach combustion temperature for paper (more than 230 °C), but you still have to have the means of providing adhesion of the paper to the bed.

A thick enough weight of paper may provide sufficient rigidity to provide for a stable print surface, if the perimeter is well secured and uniformly (smoothly) attached.

You'll have to experiment with various types of paper surfaces as well, as some may be treated (calendared) during manufacturing, which could affect the results.

Blue tape is your best bet if you want disposable. Also if you use care in removal, it is not a single use bed covering.


Where or who could I hire to assemble a 3d printer that came in a kit for me? I planning on getting a resin 3d printer kit, and I don't want to take any risks building it myself.  Where, or who, could I hire a professional capable of constructing a 3D printer kit? They don't necessarily have to specialize in constructing 3d printers, I just need someone qualified with the mechanical and technical skills for the job.

If you have a makerspace in your area, you'll likely find individuals with reasonable mechanical skills suitable for simple kit assembly. Most kits are engineered to be reasonable assembly, not rocket surgery. Makers are by nature capable of construction, often from raw materials, and kits are typically not particularly challenging comparatively speaking.

Resin 3D printers are also simple in construction, as the component count is less than that of an FDM printer, or quite close in count. SLA designs involve laser modules, mirrors and alignment, while DLP designs involve light projection and light masking. Both designs involve vats and movement mechanics.

Even if you do not have a makerspace local to you, consider to contact one that might be nearer than farther away, as those spaces may have leads for you to locate a suitable victim/candidate.

Our local library makerspace often farms out contacts to me or other makers with the necessary skills to meet a patron's requirements.


How to set Home Offsets and Manual Home definitions in Marlin correctly? I am using an Ender 3 and I have just upgraded to the Hero Me Gen 5 fan duct adapter. This has shifted the nozzle position. I also flashed some new Marlin 2 firmware and in the Hero Me manual it says to uncomment and change #define MANUAL_Y_HOME_POS -9 to suit this change in nozzle position.
This has, however, not given me the right results. It did not center my prints but actually let the Y-axis grind upon going to Y235. Additionally, I noticed, that my printer must have been off-center from the beginning, because the X position of the nozzle has not changed due to the installation, but the printer homes to a point 5 mm inside the bed perimeters.
So, if my printers endstops dictate an original home position of 3 mm inside the bed area for X and 15 mm outside the bed area for Y, how do I set this up correctly in Marlin 2?
I think the relevant parts are
// The size of the print bed
#define X_BED_SIZE 235
#define Y_BED_SIZE 235

// Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS 5
#define Y_MIN_POS -15
#define Z_MIN_POS 0
#define X_MAX_POS 250
#define Y_MAX_POS 240
#define Z_MAX_POS 230
...
// Manually set the home position. Leave these undefined for automatic settings.
// For DELTA this is the top-center of the Cartesian print volume.
//#define MANUAL_X_HOME_POS 0
//#define MANUAL_Y_HOME_POS -9
//#define MANUAL_Z_HOME_POS 0

This is my idea, I would let the manual home pos be commented out as I do not know what it does. However, I also want the software endstops to correcly work as to not let the printer destroy it aaaaand my BLTouch to probe the bed and not the air or my bed clips using UBL when doing 3-point probing. Would this be correct? Where do I have to look to let the printer consider my bed clips(only 10 mm on both ends of the y-axis side of the bed)?

Normally you wouldn't use the MANUAL_xyz_HOME_POS at all.
Home your machine.
Use a caliper or ruler to measure the distance between the nozzle and the edges of the print bed in both the X and Y direction.
If the nozzle was off the bed in both directions, input these measurements as negative X_MIN_POS and Y_MIN_POS values.
If it was over the bed in either of those directions, you'll need to input them as positive positions.
That should result in your nozzle to be exactly on the edge of the bed after a
G28 X Y
G1 X0 Y0

movement.


File from Blender is different in Shapeways's preview I am trying to print a model I designed in Blender on Shapeways.

The object has a hole in it:

But when I upload it to Shapeways as a STL file, fixed the sizes, but the hole is filled up in the preview window for the object in Shapeways:

What could cause this? Will the model print properly?

(I cannot share the model here).

Double-check that your model is solid (i.e. watertight). Holes in the mesh, or (as other's mentioned in the comments) or problems with thickness can cause those issues. You can use Netfabb's Cloud Services, or download the free version of their app. There are other model repair services, too.


What is a good strategy for removing 3d prints from an UNheated Glass bed? I have a LARGE piece of glass (36"x26") that I will soon be printing on using my newly build MPCNC machine.  It is capable of printing about 34"x34"x10".

Anyway, I have had GREAT success printing on heated glass that is sprayed lightly with hairspray using PLA and being able to EASILY remove my prints after the glass has cooled.  I attribute this to the slight expansion and contraction that occurs when glass is heated and cooled.  This would weaken the cohesion of the PLA print to the glass.

I have another posting where I asked how to heat this LARGE glass bed.  However, there weren't any feasable (inexpensive and easy) solutions to heat the glass.  So, now with cold glass, what are some good strategies for removing large 3d printed objects without breaking them or the glass?

Because you will be printing on unheated glass, you will be using some form of adhesive material. If you use an off-the-shelf glue stick, you will likely find it is water soluble. If the bed is removable, immersing it in warm water for a relaxing soak will provide easier model removal.

I don't have experience with various tapes, so will avoid recommendations regarding masking tapes or similar material.

Thermal cycling will also provide release. Not a heat gun, as that will break the glass, but a hair dryer applied to the underside near the model, then cooling. Repeat until it releases.

I have used the Fleks3D print plate on my Flux Delta printer in the past, and it releases "like magic" but I don't think they make monster sheets of your printer size. I had also purchased a pair of 20" square Fleks3D plates for a similarly sized printer that never materialized. I'd be happy to sell you the pair, but I think they are too small for your full plate.

It has been said that one can use sand-blasted acrylic, which I believe is the construction of the aforementioned Fleks3D plates. If you have access to 1/8" or 3mm acrylic and can apply a uniform blast of abrasive, you may be able to construct your own easy-release build plate.

It is practical to consider to use a raft for your large builds. Rafts are useful for small items, to provide a greater bonding surface and avoid release, but it also provides a "wedging" location for your release tool. You can more easily slice away the middle of the raft and deal with a thinner layer after the model is completely freed.

EDIT ADD: If the bed is not removable, one can build a dam around the model with clay to hold the water for dissolving the glue.


Monoprice Select IIIP Plus - Best speed settings and speeding up prints How do I speed up prints for the Monoprice Select IIIP Plus printer?

The manual shows [Cura] examples of:

Print speed: 50mm/s
Travel Speed: 80mm/s
Bottom Layer Speed: 20mm/s
Infill Speed: 50mm/s
Outer shell speed: 15mm/s
Inner shell speed: 30mm/s

However, this doesn’t line up with their advertisements online of a 150mm/s printing speed.

Are there better settings to use, especially ones which can speed up printing time? Or are there any other measures which I can take in order to reduce printing time in general?

In my experience a print speed of 50-70mm/s is ideal. Even if you set the speed to 150mm/s the print head still changes directions often and rarely will have enough time to accelerate from 0->150 before changing direction again.

Some more effective ways of speeding up prints is to adjust

Layer height
Infill percentage (15-25% for regular prints, more if they need to be more sound)
Supports
Number of shells, etc


What setting is this defect caused by? I am attempting to print the Benchy boat but every attempt so far has been unsuccessful. The print has a sort of slope/blob on the nose of the boat, which emerges after the first 30 layers.

Here you can see the front of the boat already arching up:

I have tried decreasing speed to 40 mm/s but the issue remains.

Printer: Geetech Prusa I3 Pro B

XY Accelleration: 1000 mm/s2

XY Jerk: 20 mm/s

Retraction Accelleration: 2000 mm/s2

Extruder Jerk: 5 mm/s

Printing Speed: 50 mm/s

Travel Speed: 120 mm/s

Layer Height: 0.1 mm

Infill: 60% (Lines)

Material: PLA, 200 °C, 1.75mm filament, retraction enabled.

Looks like curling from to much being extruded and no cooling I had the same problem added part cooling and problem was gone


Is it possible extrude faces along normals individually in OpenSCAD? For the geometry I am making, I want to extrude each face individually along its normal.

This is a standard procedure in 3D modeling software like Blender; see Example 3 here.

Is this possible in OpenSCAD?

Extruding faces is only possible on 2D polygons. From a 3D object you cannot capture the face and extrude it. To extrude "faces" you would need to define the shape of the face and extend it in the third dimension of your choice. This way a 3D shape is created that could be concatenated (joined using e.g. union) to the original shape. For the extrusion, the function linear_extrude is available:

linear_extrude(height = fanwidth, center = true, convexity = 10, twist = -fanrot, slices = 20, scale = 1.0, $fn = 16) {...}


Marlin 1.1.x on Ender 3 changing PREHEAT_1_FAN_SPEED has no effect? I dont want the part cooling fan on during preheat, especially when I'm only heating the bed, it is just unnecessarily loud and serves no purpose at that time.

However when I set PREHEAT_1_FAN_SPEED to 0 it has no effect, the fan still spins at full speed as soon as I preheat either the hotend or the bed.

So why is this setting not working and how do I fix this?

I am using the latest version of Marlin.

The only one that is defined is the one that I am editing and it is the one that appears on line ~1260 of the stock configuration.h

#define PREHEAT_1_FAN_SPEED 0 // Value from 0 to 255

And this is the grep result of searching the entire firmware folder:

Apparently, I forgot a critical step:

While I have completely reconfigured the LCD menus, setup custom 25-point mesh leveling, changed a bunch of other numerical values, and flashed the firmware dozens of times, certain values will never be updated unless you remember to initialize the EEPROM after the flash!

Honestly I kinda wish they would make it all or nothing but I guess there is limited space so particular things take priority.


Opening .STL to scale in Print Studio (Dremel) New to 3D printing so sorry if this is a simple/basic question.  I've done a ton of Googling but can't seem to find the answer...

When I download a .STL file and open it in Print Studio, it opens as a HUGE object - much larger than you would ever want it.  How to I get the file to open at scale to how the designer wanted it.  For instance the following file from Thingaverse has specific size but I'm unsure of how to print it at that exact size.  I'm assuming that the info is able to be stored somewhere in the .STL file.

http://www.thingiverse.com/make:181631

The STL file format does not provide any way to provide the units of measurement for an object. The majority of FDM printers use millimeters so most people export objects with the assumption the values in the STL file are in millimeters.

As you found out that's not always true. The second most common assumption is to export in inches.

Most of the slicers I've used provide a scaling option if you can't edit the STL file yourself. Some will even offer to do the inches to mm conversion for you. Scale to suit when you print or use a 3d editor. I've gotten specific sizes by creating a temporary cube the size I wanted and scaling the object using the cube as a reference.


How do I wire an AC SSR with RAMPs 1.4? I was advised that it would be possible to use an AC SSR to wire up a Mains Based heat bed.  Any idea how one would do this with a RAMPs 1.4 board; Also, what do I hook a heated bed of this sort into?

If you take a kettle lead with a wall plug and cut off the other end, it will expose 3 wires: earth, live and neutral. These are color coded depending on your country, usually earth is green (possibly with yellow stripes), neutral is blue, black, grey or white and live is brown, red or black.

The SSR should have 4 terminals: 2 terminals for the switched load (which are interchangeable) and 2 terminals that connect to your electronics, which should be marked negative and positive. These terminals should connect to the negative/positive heated bed output of your electronics. The terminals of the SSR should be clearly marked, and you can verify which terminal is what from the SSR's datasheet.

Typically, your heated bed will have two wires for power (which are interchangeable). One of the wires should be connected to neutral. The other wire should go to one of the load terminals of the SSR, while the other load terminal of the SSR should connect to the live wire. It is also acceptable to do it the other way around (neutral to the SSR and live directly to the bed) but this is slightly less neat.

Finally, and this step is extremely important, the earth wire of the plug has a protective function: should something fail, metal parts of your printer may become electrified, and shock you when you touch them. To prevent it, you should electrically connect exposed metal parts of your printer (such as the frame, heated bed plate, power supply case, etc...) to earth. This provides a path for the current to flow (and trip the protective RCD breaker) should something go wrong.

I would further recommend that you protect your heated bed (particularly if it is a high power model) with a bimetallic thermal switch. These are available in a variety of ratings, and will switch the power to your heated bed off when it goes over a certain temperature. This switch should be wired between the relay and the heated bed, and be mounted on the heated bed so it makes good thermal contact. If you plan to print with the heated bed at 110C, you might get a 120C or 130C thermal switch.

As mains voltage can be deadly, you should take appropriate precautions: never work on the printer while it is plugged in, cover any connections (in particular, make sure you buy or print a cover for the SSR's terminals and wrap solder joints in heat shrink or electrical tape) and always treat wires coming out of the SSR as live (even if it is switched off, some current can still flow).


Does CuraEngine get some advantage slicing cylinders to move the head back to the center twice on each layer? To date I have used RepG and Repetier with CuraEngine to do my slicing.  In various instances when printing a layer of a cylinder it will start in the middle and head out toward either side.  Then it moves the nozzle back to the center and prints toward the other side.

Knowledge of TSP suggests the print would go a lot quicker if the travel operation back to the middle were omitted.  Here is an example.

By that I mean that to fill the layer of a cylinder from one edge, across the middle to the edge on the right.

My question is why is this done?   What advantage does printing it in two passes have over printing it in one pass?

I have seen this behavior a lot in CuraEngine slices. Mostly older versions of the slicer. Not sure if they actually improved it.
You could see this a lot in long and complicated forms. I also don't like this. Not only for unnecessary moves, but also for imperfections due the start in the middle. Sometimes you can tell where the filling started and which segments were printed separately.

I think it comes down to several issues here:
1.) Starting from the middle saves a move at the beginning of the fill. It probably starts the fill where is stopped printing the perimeter. If the change you want would be implemented, a move after the fill printing would become necessary to start at the right position. So therefore the benefit of faster printing might be gone already.

2.) For the sclicer implementation it is hard to do. The algorithm that computes the print moves for the fill just knows the start point (end position of last perimeter line) and the points that define the area. It does not know if the area is round or square or shaped like a "C" or like a "Y". Usually the slicers have a preferred direction that changes with every layer. This way the fill lines of different layers cross each other and that probably increases stability.
I have seen slices where the fill started several times in "C" shaped prints.
Also if you think about the "Y" shape. If you start at the bottom then you can print horizontal lines and fill the form until you reach the split. Now you have to decide which arm to print fist. And then you have to do the other arm separately.
As you can see a perfect way to fill all possible shapes in one go is impossible.
And defining an algorithm that can fill any shape with only knowing the outline is already hard. I assume the solution has to do with splitting a form into segments and to then fill each segment after the other. Even your example form has probably more sections than only the two obvious ones.

What could be done would be to "optimize" the sequence used to fill the segments. Basically adding a computing step that checks if by introducing a move to the best starting point the fill of the segments could be done in one move.

Again that is probably rather hard to do, but CuraEngine and other slicers are open source, so if you or somebody else would like to invest some time to get this feature that would be great!


Creality v1.1.5 board replacement UP1 Chip While I was having fun with my ender I burn out UP1 Chip.

Does anyone know which chip is that (I can't see because of burnt) and where can I order it?

Image: Damaged chip

It's an MP1584 chip.
Guys on Reddit helped me out.

link


How to build a metal-based 3D printer? I have a hypothetical question. From which parts can I build a metal-based 3D printer and can I buy those parts somewhere?

I think this depends on what you are trying to accomplish with the 3D printer.

I have seen people online build metal 3D printers from a robot arm and a welder this would probably be the simplest design and build but robot arms that can weld are expensive.

I have also seen that someone at MIT build a glass 3D printer by building a small kiln with a hole at the bottom and moving it around like a normal extrusion printer. This method might work for a metal printer as well if you could get the temperatures right. This might be cheap enough a hobbyist could do it as well because you just need the same parts as a normal FDM 3d printer just able to more more weight.
But with the same parts you could also do lost pla casting and that would be a simpler approach with a better end product.

But probably what you would be really interested in building would be a laser sintering 3D printer. Where a layer of powder is put down and then a laser melts part of the powered to join it to the model. For this the main thing you need would be the laser. I don't know a lot about how these printer work but the laser would need to be able to melt metal so I would think it would need to be very powerful and that would make it very expensive.


Prusa i3 mk3 step skipping and layer shifting After approx. a year of more or less problem-free printing (40 days print time) with Prusa i3 mk3 kit, we started to suffer the random layer shifting on Y axis.

We inspected all the motor connectors are properly inserted in the mainboard and the wires are intact.
We ensured all the pulleys' screws on the x/y motor shafts are very tight and secure to be sure the pulleys don't slip.
We inspected the belts and pulleys, there is no mechanical problem like dust blobs, filament residues, etc.
We tightened the belts to be hard enough to show the expected support|belt status value (under 280) after self test is performed.
We switched off the crash detection feature.
We fully cleaned/re-lubricated the Y axis linear bearings and the rods to be sure there is no dirt causing any friction.
We tightened the nuts on the U holders fixing the bearings to the bed (hard enough not to squeeze the bearings so they can freely move on the rods).
We bought Japan PNY LM8UU bearings and replaced the original ones on Y axis (suspecting they are worn out).

Nothing of these helped fully:

Some steps improved the quality (like only one random skip in print).
Some steps degraded the quality (like additional step skips in previously flawless X axis).

Since the issues started, we had 4 hour reference design to be printed again and again using the same setup/filament etc. It became reference because its print started to exhibit the skips. We refused to slow down the print or perform any other workarounds, because we wanted to make the printer great again ;-)

What else should have been done to revert back to flawless prints without random X/Y step skipping and thus layer shifting?

Long story short: Try to replace the stock power supply.

We connected UPS between the printer supply and the wall outlet and the skips reduced to one/two per print.
We replaced the supply with random old used Mean Well SP-320 (zero care about the power panic feature, just plain 24V connected) and voilà: reference design passed.
Also few more complex designs after supply switch are still flawless, so we hope that was the problem and it's fixed now.
This Q&A post is to help others to skip the major frustration and save some time.


Can a model change size when using a different filament type? I printed a case for my phone, a Motorola G4 Plus. I found the model of the casing on Thingiverse

I just downloaded the model, used Meshmixer to check for issues, after that, opened Simplify3d and saved it for printing using an SD Card. The printed size of the model was smaller than expected.

The model designer, says in the description that he used flexible filament. Is it possible than if I change to that filament, the model result is completely different?

Print result - phone casing:

No, choosing a different filament type will not result in a different size (unless you use PLA that foams on extrusion, it increases size but then again all other dimensions would not fit either as it expands uniformly). The overall dimensions are defined by the coordinates in the G-code file which is based on the geometry of the model. If the printed model has dimensions that differ in the region of centimeters (like shown in your images) a different filament type will not change the size. Differences in the order of fractions of a millimeter are possible.

Probably the size has accidentally changed while loading the model in one of the tools prior to slicing to G-code.

Sidenote; there are techniques to anneal PLA after printing, you will then observe changes in the size of the part you printed, but I don't think you have annealed the print. From the link above:

  On average, you’ll see PLA shrinkage of about 5% and growth of about 2% along the relevant axes. If this shrinkage and growth is going to be a problem, you can compensate for it beforehand during the design and printing processes.


Repetier Host stops sending commands to printer when switching Windows user I'm running Repetier Host v1.6.1 with Repetier Firmware v0.92.9.  My computer is running Windows 7 Pro SP1, 64-bit.

If I set a print going via USB then switch to another user (note: I do not log out), then the pinter's display shows that the command buffer drops from 16 to 0 until it stops printing altogether.  If I switch back to the user that is running Repetier Host then the buffer fills up again and the print job resumes.

Before I updated Repetier Host this didn't happen, I could leave it running while I switched users and the job would run just fine.  I'm not sure why this behaviour has changed, but is there any way to get it to run properly under a background user?

Is it possible that in updating Repetier you inadvertently installed it for a single user rather than for everyone? If so, that might account for its stopping when the user is changed.


How much work would be converting Prusa firmware/software for CNC use? I have an option to purchase a hobby multi-purpose device (lathe/mill/drill/grinder/cutter) which is manually controlled, but easily converted for driving by stepper motors (all 3 axis are controlled by turning knobs that can be replaced by gears, with convenient mount to couple each to a stepper motor). I have the right motors and can easily obtain drivers for them.

That is the way to overcome the worst problem of converting Prusa to CNC: the flimsy mechanics not able to withstand stress and vibrations of machining. Then I can connect the drivers to the 3 axis of Prusa's electronics, optionally connect some driver of the spindle to the extruder output (or just control it manually), and it seems the hardware side of the device is done.

The problem is the rest - adapting the software. RepRap family of 3D printers being open source means their software and hardware can be adapted. It's only a matter of how hard it is.

Does anyone have any experience in that direction? What would such conversion involve? Just recalibration to the new gear/leadscrew ratios, or something more involved, like editing the sources to get rid of all the temperature safeguards and the likes?

Disclaimer
Questions about other machines is still in kind of a grey area right now 06/2016 and your question is, in my opinion, a bit too broad. However, I think it's a great topic to perhaps help direct the scope of this community.
The lowdown

3D printers, CNC Mills, CNC Lathes, CNC Routers, and Lasers are all very different! There are certainly areas where each of these may overlap, but the methodology is very different overall.
Software is not always interchangeable across machines (even within the same machine type) due to hardware requirements/communication.
Hardware is not always interchangeable across machines (even within the same machine type) due to design/scope of the purpose of the machine.

Things to consider
(In a nut-shell)
3D Printers
Hardware

Minimal speed/torque requirements compared to subtractive machine tools.
Good designs focus on temperature control via enclosures and/or electronics.
(Typically) uses heat block/nozzle/stepper motor to control material size/flow.

Software

Emphasis on "plug-n-play" UI/UX
Conceptually easier to generate tool paths. STL's provide outlines and software fills in the blanks like a coloring book.
Focus is on understanding material properties and temperature variability.

Common Variability

Material quality/shape
Environment temperature

CNC Mills/Routers/Lathes
Hardware

Maximum speed/torque requirements.
Good designs focus on rigid designs and handling harmonics.
Tighter tolerance components to ensure mechanical repeatability.
Relies on cutting tool size/shape to control material size/flow.

Software

Requires more manual input (typically) to account for where its tool is located. The mathematics heavily depend on accurate dimensions for the cutting tools, otherwise you could damage your part or the machine.
Good software allows many different "canned" tool paths for efficiency, tool types, and achieving desired surface finish.
Focus is on variability in cutting tool and speeds/feeds (as recommended by cutting tool suppliers for materials)

Common Variability

Material shape/hardness
Cutting tool shape/hardness
Cutting tool path

Lasers
Hardware

Minimal speed/torque requirements.
Good designs focus on consistent beam quality and spot focus, which is relative to constant power.
Uses focusing lens (sets spot size) to control material size.

Software

Emphasis on "plug-n-play" UI/UX and interoperability.
Dimensions are easier to achieve as less variability in the process compared to 3D printing/machining.
Focus is on laser power (typically for material type and depth).

Common Variability

Laser type
Spot size
Power supply

Summary
Overall there are many, very different variables to consider between these technologies. I only focused on variables you might see out of a hobbyist-style machine and if you've operated any of these you'll know that there are many more variables that pop up for any of these machines.
So, do not expect such a plug-n-play solution as each machine requires quality construction of its hardware, the ability to handle the variability of the process in its software, and, above all, an operator that understands the correlation and balance of these components.
All of that being said, there are some machines that seem to be tailored to this such as the machine by Diyouware and ZMorph (No affiliation, just examples). However, notice that they have created their own software to meet a lot of these communication requirements.
Update
I forgot to mention the fact that a kink in creating a interchangeable machine is the control interface. The controller converts the "software speak" into an easily parsed series of functions (typically G-Code) for the small computer to process its predetermined hardware processes. Ie, The slicer or CAM software determines that a layer of a circle be 3D printed, milled, routered, or lasered, so the controller should G02I2 which could parse to (For all intents and purposes in javascript, not a practical language) CWCircularInterpolation(2,null,null,null,null,null) and run as:
function CWCircularInterpolation(i,j,k,x,y,z){
 //Some code to take current position and command to create a canned circle path
}

The point is that the software needs to handle the conditions and constraints of a different machining process and provide a well-equipped machine with the right commands. There are a lot of different things to consider in attempting to combine these machining techniques into a single machine and get quality results.


Handing OpenSCAD module parameters derived from other variables I'm new to OpenSCAD, but I can only get default parameters working for simple values.

I'm wondering if there is any way to achieve the following, where I have some parameters available to the module caller but by default they are derived from other parameters.

I had expected this to work - I thought the compiler to be able to resolve these variables in-scope during compilation since everything here is deterministic - so perhaps I'm just missing some syntax? If not, is there some better way to achieve this?

module clasp(length=20,
             pin_radius=5,
             mouth = pin_radius * 0.9,
             inner_radius = pin_radius + 0.25,
             outer_radius = inner_radius * 1.4,
             ) {
  ... do the work ...
}

Unfortunately this approach leaves mount/inner/outer all undef.

This seems to be a limitation of the language. One workaround that's only moderately ugly is, in the body of the module:

mouth = is_undef(mouth) ? pin_radius * 0.9 : mouth;

etc. If you'll only be using the file via a use directive in other files, another approach is file-scope variables. These can be overridden when the module is called, just like module parameters, and they do not provide or take values for/from the calling file's file-scope variable namespace.


Filament is not stuck That's my first 3d printer. I'm using Repetier Host as the brand recomends, and set all the configuration as the recommended one. I decided to print one STL file but the result is not the best one.
That's what I was trying to print:

and that's what I've got.

Here you have a video of the impression. it is a G2S pro rostock mini

From the video it is very clear there is a major problem with bed adhesion.

It also looks like you are printing on bare metal (aluminium?) which I never saw anybody doing. I must admit I don't know it is impossible or simply very rare, but the first thing I would try in your case is covering the bed in painter's tape and wipe it with some alcohol.  This is a surefire method to get good adhesion with PLA, which - from the temperatures shown in the video I assume is what you are using.

If you haven't tried this before, you should know that:

some brands of tape work well even without being wiped with alcohol
you may need to readjust your nozzle height after having applied the tape

Unless you have already done this, I would also suggest to print some test cubes and possibly some stress tests as your first prints, in order to check that the basics (extrusion rate, dimensional accuracy...) are working correctly, as well as getting familiar with the limitats of your printer.


How can I export a Materialise Magics Project as a STL file? I created a new project in Materialise Magics, added a few parts (different STLs), moved them around in certain positions and now I want to export this project into another STL, containing my recent work.

The export menu seems to be all grey, like this function is not available. Do I have to do some repairing first or something similar? Or Magics needs other software in order to export a Magics Project to a STL file?

Instead of using save project as or export click save part as, this defaults to an STL file.


First layer Z-offset in G-code In slicer G-code is it possible to set the probe Z offset for the first layer only?
For my stock E3 plate I find -4.125 mm best however for glass I need to go to -4.175 mm for the first layer to get better adhesion. So it's a manual process every time. Any way to tell the slicer do the first layer at -4.175 mm and next ones at -4.125 mm?

I don't understand the reasoning behind a first layer having a different offset from the following layers, but, You can manually add a re-definition of the current height after the first layer, suppose your first layer is 0.2 mm, you just need to tell the printer to move to a slightly higher next layer to redefine this as a different Z-offset.

From a G-code file find the start of the second layer:G0 F600 X141.541 Y109.467 Z0.37
Modify this to:G0 F600 X141.541 Y109.467 Z0.42
Now insert the following command:G92 X0.37

Now it is like you have changed the Z-offset.
The reason for not using M206 is that is applied onto current offsets, if you accidentally save setting to memory after printing, it stores this offset. You can use M206, but use it carefully. A re-definition of the Z level is never stored, the next G28 erases the effect, so does repowering the motors.


Lines appearing during ironing I'm new to 3D printing, but have been having relative success with the Ender 5 Pro and Cura.

I'm making some coasters and using the ironing feature to smooth out the top layer. This is mostly working great, but there are lines left on the surface, consistent between identical prints. They appear to be seams between different ironed areas. They form when one continuously ironed area finishes, the nozzle leaves that area, then an adjacent area is ironed later, forming a seam between them.

I'm using the default ironing settings, on only the top layer. I have no clue what settings might be causing this, or if this is an avoidable issue.

Any ideas from more experienced printers?

There's a couple of Cura settings that can help, that I know of:

In the 'Travel' section, change "Combing Mode" to "not in skin". Combing means it tries to move the head over areas that have already been printed. This is a good thing most of the time, but if it does it while it's ironing, it will make an annoying line. (I am not sure why this isn't automatically turned off for the ironing pass, but it seems it isn't.)
After enabling ironing, an option "Ironing Pattern" appears. Try changing this to "concentric." This produces a different pattern, which you may or may not like, but it seems less susceptible to those kinds of lines appearing.

Here are some other settings that might help. I'm suggesting these on the assumption that some of the lines are caused by the print head travelling over the ironed surface, which is what it looks like to me from your photo. I got them from this Cura documentation page, but it doesn't mention ironing, so I can't be completely sure whether they will affect the ironing step.

"Avoid printed parts when travelling" - this might help a bit more than just turning off combing, since it will try to go around the printed areas instead of just cutting across them. Apparently you have to enable combing for this to work.
"Z hop when retracted" and "Z hop only over printed parts." This should make it lift the print head up when it can't avoid crossing the printed part. It may be that you have to enable retraction, combing, and/or "Avoid printed parts when travelling" for these to appear.


How do I give 3D-printed parts in ABS a shiny smooth finish? The surfaces of my printed parts using ABS plastic look rough and uneven.

What methods can I use to achieve a smoother finish for my for 3D-printed objects?

Acetone can be used to smooth ABS.

The left has been smoothed by an acetone bath and the right is the original model. (Image credit: Andrew Sink)

Take note: acetone is dangerous to breathe in, so work in a well ventilated area. It is also flammable.

Warm acetone vapour bath using stove

This method involves suspending the model in a glass jar of boiling acetone that is heated up by a pot of boiling water.

Attach the model to the lid of the jar with some string, keep the string short, so the model is close to the lid.
Put a few centimetres of water in a pot
Place a rag at the bottom of the pot (to keep the jar stable).
Place the glass jar in the pot, on top of the rag.
Place the pot on the stove and heat to 110°C.
When the acetone is boiling place the dangling model into the jar.
After a few seconds, remove the model.

See here for a step-by-step guide with pictures.

Warm acetone vapour bath using printer bed

This method elevating the model in a glass jar of acetone that is heated up by the printer's heatbed.

Find a non-soluble object that the 3D model can stand on.
Put a teaspoon of acetone in jar.
Place the jar on the heatbed and heat to 110°C.
Place the stand into the jar.
Place the model on the stand, the stand should not let the acetone touch the model.
After a few minutes, remove the model.

See here for an example.


How to interpret various thermal-related filament properties? When picking filament for specialty, high temperature applications, multiple parameters are provided, but it is not clear to me when which to use.
The most common parameters provided are:

Vicat softening temperature
heat deflection temperature

Assuming I'm designing a part to be used in high temperature environments, when should I use each parameter?
For example, Polymaker has

Material
Vicat soft. temp. (°C)
HDT (1.8 Mpa) (°C)

PolyLite PC
119.5
106.6

PC-ABS
135
106.4

PolyLite ABS
103.9
98.2

PA6-CF
N/A
173

CoPA
180
69

https://eu.polymaker.com/Downloads/TDS/PolyLite_PC_TDS_V5.pdf
https://polymaker.com/Downloads/TDS/Polymaker_PC_ABS_TDS_V5.pdf
https://polymaker.com/Downloads/TDS/PolyMide_PA6_CF_TDS_V5.pdf
https://eu.polymaker.com/Downloads/TDS/PolyLite_ABS_TDS_V5.pdf
https://eu.polymaker.com/Downloads/TDS/PolyMide_CoPA_TDS_V5.pdf

This depends on application.
Definitions:
Vicat softening point. Vicat softening temperature or Vicat hardness is the determination of the softening point for materials that have no definite melting point, such as plastics. It is taken as the temperature at which the specimen is penetrated to a depth of 1 mm by a flat-ended needle with a 1 mm² circular or square cross-section. [However, it seems force on needle should be included.]
The heat deflection temperature (HDT) or heat distortion temperature (HDT, HDTUL, or DTUL) is the temperature at which a polymer or plastic sample deforms under a specified load. This property of a given plastic material is applied in many aspects of product design, engineering and manufacture of products using thermoplastic components. [Again, to be meaningful, the forces need to be specified.]
Basically, Vicat softening temperature involves ability to be cut, while heat deflection temperature involves distortion from an evenly distributed force. Thus, use the parameters based on whether sharp uneven forces or a distributed force is most important to your application. This can also be worded Vicat is for maintaining shape, HDT is for maintaining load bearing properties. In other words, Vicat is for uneven loading on the print, which can change the shape. The most extreme is a sharp load. HDT is for the print to support an evenly distributed load.  Many applications may be in between the two.  What complicates the issue is 3D prints are ususally printed with a fill rather than being printed solid.
Appendix
Standards to determine Vicat softening point include ASTM D 1525 and ISO 306, which are largely equivalent.
The heat distortion temperature is determined by the following test procedure outlined in ASTM D648. The test specimen is loaded in three-point bending in the edgewise direction. The outer fiber stress used for testing is either 0.455 MPa or 1.82 MPa, and the temperature is increased at 2 °C/min until the specimen deflects 0.25 mm. This is similar to the test procedure defined in the ISO 75 standard.
Limitations that are associated with the determination of the HDT is that the sample is not thermally isotropic and, in thick samples in particular, will contain a temperature gradient. The HDT of a particular material can also be very sensitive to stress experienced by the component which is dependent on the component’s dimensions. The selected deflection of 0.25 mm (which is 0.2 % additional strain) is selected arbitrarily and has no particular physical significance.


Auto bed leveling with BL Touch sensor crashing to bed I'm new to 3d printing and I recently bought a Geeetech Prusa i3 Pro B along with a BL Touch (3D touch) sensor to do auto bed leveling.

I printed the sensor holder, mounted it and the sensor to the extruder carriage and uploaded a configured Marlin firmware to the printer. It worked great for about 6 times and now, it crashes on the bed on the two points on the right of the bed.

I tried manually leveling the bed thinking that the nozzle was touching the bed plate before the sensor's needle could, but that's not the case. Even with the bed manually leveled, when using G29 (Auto Bed Leveling code), the Z-axis carriage crashes into the bed.

What can I do/check?

As it turns out, my Z-axis carriage mount to the X-axis was bent, causing the nozzle to touch the bed before the proble could get a chance to detect anything. Manually bending it back to the correct angle solved the problem.


Real life stepper speed I am wondering about the speed that my steppers should achieve in regular operation and what the determining factors are, from theoretical hardware facts/limits to software limitations that can influence performance.

I do know about the basic properties of stepper motors such as the torque relation with speed, which I read some while ago from this source (for anyont stumbling into this question later):
https://www.geckodrive.com/gecko/images/cms_files/Step%20Motor%20Basics%20Guide.pdf

So far Wikipedia (https://en.wikipedia.org/wiki/Stepper_motor) easily turns up the following statements with regard to my question:

  Thus when controlled by an L/R drive, the maximum speed of a stepper
  motor is limited by its inductance since at some speed, the voltage U
  will be changing faster than the current I can keep up.

and  for chopper drivers:

  This requires additional electronics to sense winding currents, and
  control the switching, but it allows stepper motors to be driven with
  higher torque at higher speeds than L/R drives

Obviously the amount of steps/revelation will change the speed, too

However, all this does not help me to determine what the real life speed of my stepper should be. Additional firmware parameters clutter up my (beginner's) brain even more (and I haven't had a too deep dive into that yet).
In general I understand that the frequency we use to send the steps to the stepper is the main determining factor, also 'reduced' by microstepping, if applied. We cannot keep the current up as much as needed due to timing/inductive/electronic properties of the motors, so we lose torque or finally steps. A higher voltage helps to bring the current up faster, so the steepness of the current increase can also limit the maximum applicable frequency. The frequency itself is given from the controller board to the motor driver, hence is set in firmware.

All in all, apart from what makes sense to utilize in a 3D printer setup, what are the determining factors of the stepper speeds that can be realized and how to they transform into real life values for our printers? Also I'd be interested in how the determining factors influence the reliability and print quality regardless of the mechanical difficulties that arise with print-speed.

/edit:
I found these to exist on electroncs SE:
https://electronics.stackexchange.com/questions/71270/maximum-speed-of-stepper-motor
https://electronics.stackexchange.com/questions/129064/slow-down-stepper-motors-speed-using-stepper-driver-drv-8825

However, I think the question here is relevant and specific enough for 3D printing to exist here alongside.

The four main motor speed limits in a 3d printer are:

Firmware step generation frequency limits
Firmware motion planner effects
Loss of torque and precision due to motor coil inductance and back-EMF effects
Mid-band resonance

Step generation rate limits will depend on the firmware and controller board used. There is a significant range, particularly when 32bit firmwares and RTOS-based platforms like MachineKit are compared to 8bit firmwares running on Atmega AVRs. Some examples:

Marlin on a 16 MHz 8bit Atmega can only run the stepper interrupt at 10,000 hz without bogging down the processor and blocking other critical algorithms (like motion planning). It can fire step rates up to 40,000 hz by pulsing the step line two or four times per interrupt, which effectively drops the microstep level in software and runs the motors rougher/louder.
Repetier on the same Atmega can run the stepper interrupt at 12,000 hz, because it is optimized more for execution speed than Marlin.
Repetier on an 84 MHz 32bit ARM Cortex-M3 can run the stepper interrupt at 80,000 Hz.

These limits typically only affect actual stepper speed when relatively fine microstepping is used. Consider an example based on a very typical Marlin printer configuration. Microstepping of at least 1/4 is strongly recommended to avoid resonance issues, so let's start with 1/16 stepping. This allows quad-stepping to effectively output 1/4-steps. Starting with finer microstepping will drop our top speed, and coarser microstepping will be louder and may encounter resonance, so this is a good starting point. Then asssume a typical 32mm-per-rev pulley on a 1.8 degree (200 steps/rev) stepper motor. This system has a resolution of 200*16/32= 100 steps/mm. At 40,000 Hz total stepping rate (quad-stepping at 10,000 Hz) we can theoretically travel at 400 mm/s before hitting Marlin's hard cap. That's probably going to be a higher RPM than we want to run the motor anyway, so it's not a very impactful limit.

In comparison, if we started at 1/128 stepping (such as with the THB6128 driver chip) our top speed with 8bit Marlin would be 50 mm/s. That's quite slow.

Firmware motion planners can further limits motor speed by ramping up and down to traverse turns and corners. If the model geometry has lots of sharp turns, the target speeds commanded by the gcode are likely to never actually be reached. Only long, straight line paths will have enough ramping time to hit the speed target. You can see this yourself by printing a very small model at a variety of feedrates and timing the actual print duration: at a certain point, increases in the commanded speed will make no difference on actual print times.

Another constraint some firmwares enforce is requiring the ability to safely decelerate to a stop within the length of all the motion commands in the planner queue. This allows the printer to gracefully handle a sudden loss of input, such as as if the host computer stops transmitting USB commands, or if the SD card experiences a series of read errors. If the printer just abruptly stops from full speed when it runs out of commands, it is likely to lose position and ruin the print. Whereas if it can decelerate to a safe stopping speed, it may be able to resume after the command stream resumes.

In terms of actual motor behavior, the inductance and back-EMF introduce significant limits because they decrease motor torque at higher RPMs. This produces a torque/RPM curve that drops off at higher speeds:

http://www.geckodrive.com/support/step-motor-basics.html

Note in the picture that there is a flat "constant current" region on the left side at low speeds. This is the range where the chopping driver is limiting coil current. On the right side of the curve, current is not able to reach the target before it must be switched back off for the next step. That reduces field strength and thus torque.

There are two separate effects to consider here:

Motor coils are inductors, which means there is a first-order lag between applied voltage and coil current. A standard bipolar stepper motor with a microstepping driver must raise the coil current from zero to max or from max to zero every full step (eg every sixteen 1/16th microsteps). At high step rates, there is not enough time to fully charge the coil to its max current before the next step requires dropping the current back down. Without developing full coil current on each step, torque is lost.
Every motor is also a generator, and spinning the rotor generates back-EMF voltage within the motor coils. That voltage waveform gets overlaid on top of the drive voltage waveform with a phase shift dependent on the rotor position relative to the coil energization position. In simple terms, this voltage attempts to brake the motor: it always does whatever will slow the motor down. This means it opposes the applied drive voltage when the motor is applying forward torque, or assists the applied drive voltage when the motor is applying brake torque.

For a practical discussion of speed limits, we can simplify the situation by assuming back-EMF voltage opposes the drive voltage applied to the coils. This means there is less effective voltage raising/lowering coil current, and it takes longer for the current to change, and less coil current is developed than would be the case without back-emf. This further depresses the torque/RPM curve of the motor. And when the back-EMF voltage is around the same magnitude as the drive voltage, significant motor instability can result because of complex feedback effects between rotor position and effective coil voltage.

You can play with these effects using different motor configurations and speeds for a few popular 3D printer stepper drivers using my stepper driver simulator: https://github.com/rcarlyle/StepperSim

In closed-loop applications with position feedback and high-end drivers that can damp various instability modes, it may be ok to run the stepper all the way down the torque curve at very high RPMs. In more typical open-loop 3D printer applications, it's generally best to stick to the low-RPM part of the torque curve before inductance and back-EMF really take over the motor behavior. Losing too much torque can easily mean skipping steps and losing position, ruining the print.

Another important effect for steppers is mid-band resonance. This is not a normal mechanical resonance, but actually an electromechanical resonance effect. It's quite complicated, but the short explanation is that a stepper has an intrinsic 90-degree phase shift between position and torque, and when speeds rise to a point where coil inductance introduces an additional 90-degree phase shift between coil current and applied voltage, the electromechanical system has a highly-unstable 180-degree phase lag and thus creates a negative feedback loop. This can rapidly drop motor torque until the motor loses synchronicity with the driver's applied voltage and stalls.

Mid-band resonance only occurs when coil current is limited by inductance. It cannot occur in the constant-current drive range because there is not enough phase lag between applied voltage and coil current.

http://www.geckodrive.com/support/step-motor-basics.html

Unfortunately, measured torque curves available from manufacturers almost never show resonance zones, because the curves are produced by loading motors with friction-brakes that damp any kind of resonance effect from building. Whereas a 3D printer drivetrain load is almost entirely inertial (accelerating a mass) which is much more prone to resonance.

High-end drivers can automatically detect and damp mid-band resonance, but typical low-cost 3D printer drivers do not have this capability.

It is generally prudent to avoid entering an RPM range where mid-band resonance may occur. This is easily accomplished by sticking to the left side of the torque curve, in the constant-current operating region. This ensures high torque and good stability.

For a concrete example, consider the popular Kysan 1124090 stepper with a 24v power supply.

https://ultimachine.com/content/kysan-1124090-nema-17-stepper-motor

To maintain high torque and avoid mid-band resonance, we would want to keep the RPM to about 400 or less. For the same 32mm-per-rev pulley mentioned above, that would limit speeds to around 200-240 mm/s. Higher speeds are possible, but may encounter reliability issues.

This speed, of course, assumes a 24v PSU is used, to match the measured torque curve: a 12v PSU would have a significantly lower top speed before inductance starts to limit coil current, around half as fast. Higher supply voltage greatly increases the top effective speed for the motor.

Again, you can easily simulate this effect (using https://github.com/rcarlyle/StepperSim). This simulator output chart shows how inductance and back-EMF are keeping coil current from reaching the target:

For practical drivetrain design, a motor/driver simulator is really the best tool in the toolbox for finding the point where performance will start to degrade due to inability to hit current targets. It's simply too complex to apply simple equations or rules of thumb with any accuracy. These electrical effects and the firmware step generation limits are likely to be the two main restrictions on motor speed for most printers.

Of course, how fast you can melt plastic will tend to limit printing speeds significantly below the true motor speed limits, but that's a different discussion. For the moment, we can simply say that top motor speed tends to be unimportant for print moves in typical Cartesian printers. However, there are a few instances where they are likely to drive printer performance:

Linear Deltas, where carriages may need to run several times faster than the effector for certain move directions
Geared extruders with high reduction ratio (eg much over 5:1) for high retraction speeds
Short-pitch lead screws (or all-thread) that need high rotation speeds to achieve moderate linear speeds


Three-phase stepper motors? Can I use three-phase stepper motors with pololu style stepper drivers? If not, what kind of drivers support three-phase motors?

Three phase stepper motors are superior in several ways: see this advertising literature.  Unfortunately for using this with simple stepper drivers, they have an extra coil of wire that simple drivers have no way to control.  Two phase motors have two isolated coils, while three phase motors have three coils connected in a star configuration.

Texas Instruments offers this design suggestion for using three-phase motors: TI White Paper.  Ultimately, it is driven by three synchronized PWM signals connected to three H-bridges, each driving one of the three motor wires.  One could build a board with a micro-controller that accepted step and direction pulses and output the three-phase drive.  At that level, you could substitute the micro-control-plus-H-bridge board for the Pololu-style driver in an existing 3D printer framework.  You would need to configure the steps-per-mm correctly for the new drive system.

If you did this, and the sales literature is correct, you should get quieter operation with higher torque.  How that would affect operation would depend on the torque of the motor, the rotating mass of the motor, and the gearing or belt drive you use.

Like two-phase motors, high torque at high speed requires driving the motor with a voltage much higher than the "specified" steady-state motor voltage.


Extruding a (wall?) in Fusion 360? I have a model that has walls with a volume of 0.00mm that I want to extrude so I can 3D Print it.

I was unable to convert it into a normal body in order to extrude it.

In addition I was unable to figure out what kind of body type this is, here a picture.

And here a Picture of the Model.

How can I extrude these walls?

I think the command you're looking for is "Thicken". Recent versions of Fusion360 have moved this around, but now it should appear under the Create Panel when you're in the the Model mode (see the image below for details). A detailed description and short screencast on the Autodesk website here.


How can I insulate my thermistor? I have had many problems with my heat shrink for the thermostat on my Anet A8 melting from the heat block.

Is there a way I can insulate my wires from heat but still have enough room to put the thermistor into the block?

You can use kapton tape, small PTFE tube, or silicone tape. I use PTFE on my delta printer (I do have a silicone tape wrapped around my heat block, but that's to help with keeping the heat in the block, not for eletrical insulation (although it would work for that)). These will all handle the temperatures of your heat block fairly well.


How to easily get rid of rafts and support structures? My printed parts consist rafts, supports and other extraneous filament when printing with ABS or PLA.

What are efficient general techniques of removing them?

The best way to get rid of them is to change the design of the printed object to make them unnecessary.

Instead of printing the one part with support material, the piece can be split into two or more parts which can be printed without support material and assembled after the printing.

Given that this is not always fully possible, a convenient way to get rid of additional structures is to use a different fillament for them that can be removed easily. This list of printing materials includes Polyvinyl Acetate (PVA), which is water soluble. You can wash the support material away given that your actual printign material is not water soluble. Here's a quote from the website (emphasize mine):

  PVA (Polyvinyl Acetate) filament prints translucent with a slightly yellow tint and is primarily used as a 3D printing support material because it is water-soluble, meaning that it will dissolve when exposed to water (and so MUST be kept dry prior to use). PVA is most often used with 3D printers capable of dual extrusion: one extruder printing a primary material (such as ABS or PLA) and the other printing this dissolvable filament to provide support for overhanging features. PVA 3D printer filament is available in 1.75mm and 3mm.


3D printing using OctoPrint on Linux Ubuntu desktop I'm trying to set up OctoPrint on my Linux Ubuntu 16.04 desktop to work with my Micro3D printer. The printer works fine on Mac and Windows:

I've installed OctoPrint with the M3D Fio Plugin Manager. I can see the files in ~/.octoprint/ fine and I can even turn the printer fan on/off, move the extruder, etc. through OctoPrint:

But when I press the blue "Print button", there is no response. Also the files in the "upload" section are greyed out. Must I download a slicing program or something? I'm new with 3D printing in general but not with Linux. Grateful for help!

I just discovered that OctoPrint only reads .gcode files for printing (apparently, unless you have a slicing software embedded in it), so I installed Slic3r separately, and ran

./slic3r mystlfile.stl

to generate a .gcode file (in the executable directory).

Then I uploaded the .gcode file to OctoPrint and things got moving.


3D printing forum community Is there any forum where expert designers can help beginners like me?

I am starting to design a panel for my car, and I am having some difficulties with finding a modeling program and using it.

See DesignSpark - DS Mechanical is good, free and fun to use.


Unable to hit hot end temperature with part cooler on I'm unable to use the parts cooler I printed. Every time I turn it on, the hot end temp drops too low, and for some reason the PID can't seem to get it back up:

This is a test to simulate the issue. The first drop is the fan kicking on, then the last bump is me turning the fan off. It's almost as if the set point drops when the fan kicks in. Any ideas? The PID is tuned (I ran the autotune) and works well without the fan on. This is a RepRap Guru Prusa clone.

This effect you describe is a commonly known problem that occurs when the print part cooling fan is not correctly positioned, i.e. if it blows air directly onto the nozzle or heater block and is best solved by printing an alternative part cooling fan duct. Alternatively you could insulate the heater block with some insulation cotton or silicone socks that fit over the heater block.


Printing coarse threads I have a makerbot, and am using their slicer program. The part I am printing has an extremely coarse thread, 5 threads per inch with a 2 mm thread height. The thread face is at a 30 degree angle (15 degrees of overhang)

I have printed external threads like this without issue and without support material before for various gardening tools (a flow straightener for example). I'm now trying to print an internal threaded part however the rest of the part needs to have support. I've played with the settings in the makerbot software but can't find a combination that will acomplish  my goal.

I'm looking for an idea, a setting, or an alternate way of printing the threads without support,  but still have supports for the other sections of the part that I know do need them.

Perhaps there is an alternate software that can do something like this, or is best practice to modify the part to have  weak structural elements to support the extremely overhanging sections that I'll then break off afterwards and print the part with no supports?

There are some software tools that let you manually design support structures so you can target the areas that need them, and avoid others.

For example, Meshmixer can be used to add supports into your STL. I believe you still use a separate slicer.

Some slicers also have the ability to manually add support. I have found that CraftWare and Simplify3D have this kind of feature.


z-axis hard to move in some areas - what could be faults, how to improve? I have a z-axis which follows schematically the same principle as the makerbot one's (threaded rod and two leading rods with linear ball bearings carrying a level). It is from an old experimental lab doing physics or chemistry.

The axis move gorgeously about 5 cm, but then it get's stuck on either sides of this way. Both driving threaded rod and the leading rods seem perfectly fine and should be able to allow for further movement. This is as far as I can see by eye.

Where should I look to find further issues and how could I improve the performance? Do I need to take the construction apart?

X stage binding like this is almost always caused by parallelism issues with the rods and/or screw. The two-rod-plus-screw arrangement is quite over-constrained and thus requires good alignment to move smoothly.

Some basic troubleshooting steps:

Make sure the screw is not constrained at both ends. It is very difficult to manufacture a screw that is perfectly straight and then mount it so precisely that it can rotate with zero runout. Screws in light-duty linear motion applications should be allowed to "wobble" freely so any bend or runout doesn't apply side-load forces to the Z stage. This can be accomplished by putting a misalignment-tolerant coupler (like an Oldham coupler) on the driven end, and/or leaving the non-driven end free without any support bearing. A motor mount with a small amount of compliance (like a rubber stepper damper) can help when the screw is captive to the motor.
Lubricate the screw and bearings and make sure everything is clean and in good condition.
Allow the Z carriage to self-align the rods and screw. The proper technique for this will depend on the Z stage, but the basic idea is to loosen the rod and screw mounts on either end, run the Z carriage back and forth a few times to push the rods into position, and then only re-tighten the top and bottom hardware when the carriage is at that end. It may also be necessary to loosen the screw nut and bearings on the carriage to get everything aligned properly and smooth-running, but that does not enforce parallelism like loosening the rod and screw mounts, so is really a secondary step. It may be necessary to leave some "float" in one rod or the bearings on one rod (with gravity preloading out any resultant slop) if the hardware has major alignment issues.
If the stage still binds after doing the above, it may be necessary to check if the linear hardware is bent (such as by rolling rods on a flat table) or use a file or Dremel to loosen up the mounts or whatever feature is causing the misalignment.


Marlin keeps restarting when I push the LCD controller button I am new here and also new for the 3D printers world.  I have built a 3D printer myself. Everything seems okay, but, when I install Marlin firmware I can't use the printer.
While my printer is connected to my power supply (12 V; 30 A) and when I push the button on the screen for selecting the menu items, Marlin is restarting.
But, when I connect my computer with USB and power supply together, Its working fine
I am using RobotDyn Arduino Mega 2560, RobotDyn Graphic LCD controller, RobotDyn DRV8825
Any help will be highly appreciated.

If the trouble was just a short between 5 V and ground, the board probably would restart whenever you pushed the button, with all kind of power sources.
The fact that the Arduino restarts only when powered from RAMPS makes me wonder another cause for this problem.
It's well known that most of Arduino clones don't have a good voltage regulator onboard. This causes trouble when you power Arduino from RAMPS, because RAMPS sends 12 V to Arduino through Arduino's Vin pin, and this 12 V goes to Arduino's voltage regulator, which should reduce it to the 5 V used by ATMega MCU.
The question is, probably the Arduino's onboard voltage is running almost at its capacity and, when you press the button, the extra processing load or the redrawing of the display makes Arduino reset.
The solution would be disconnect diode D1 in RAMPS, and power Arduino from USB, or feeding 5V directly to Arduino's 5 V pin (not Vin).
A third option (more complex) would be feed about 7 V to Arduino barrel power-connector. This lower voltage would reduce the task of Arduino's onboard regulator. My 3D-printer uses an Arduino clone, but, as I discovered about this problem before building it, I've never powered it from RAMPS. I dessoldered D1 on RAMPS and, since the first day, Arduino was powered from USB, or from a DC-DC buck converter that reduces 12 V to 7.2 V.


How should you run PTFE (Teflon) Tubes? I bought a modern machine, and it comes with PTFE tubes.  I need to relocate the spool, so I bought some longer PTFE tubes.  I bent the tub by hand, and my first test run actually had too much friction, so the extruder was unable to pull the filament through the tube.  I cut it a few inches and it seems to be fine.
What are the rules of thumb that one should use when redesigning a filament path though a PTFE tube?  For example, these are some things I can think of based on how I would teach someone about running wires in a high- or low- voltage commercial application (with or without conduit):

Bend radius.
Number of bends.
Length of tube.
Diameter of tube relevant to diameter of filament (link).
Expected friction coefficient (teflon appears to be slick, but will still have some friction)
How to secure the slippery tube (clips, zip ties, glue, etc.).
How much compression is too much for the tube (ie zip ties)?

Constriction
PTFE-Tubes usually have enough stiffness to not require additional support and constriction from anything but the two end fittings and the stiffness the filament in them provides. In fact, they make great guides for cable management to the heater block! You might want to add some constricting clamps on very long tubes. To do so, zip ties and cable guide clamps are common. Don't make them too tight as they shall not cut into the tube!
You also shouldn't constrict them too tight: A bend diameter of about 12 cm is where I would pull the line for 1.75 mm PLA: anything lower and you might get problems. For 2.85 or 3 mm filament, you should use a somewhat larger diameter - I have seen good flow with about 20 cm bends. A very simple test can be done: Fix one end, load filament, pull at the other end while holding the second fixture close to the planned position. If you have an easy way, you're good.
Length
Length is tricky: you should not be too long, as that could add too much friction, but on a direct drive or when you pull filament from a dry box, there's little to no length limit on the tube through which you pull, there's only a maximum length you can push through effectively.
Diameter
The diameter of a tube on the pushing end of the extruder motor should be somewhat snug: 1.9 and 2 mm inner diameter are common for 1.75 mm filament, and 2.85 mm does work well in a 3 mm tube. 3 mm filament needs about 3.25 mm inner diameter. As a rule of thumb: add 0.15 to 0.25 mm to the diameter of the filament and get the closest available diameter to that.
On the pulling end of the extruder, a larger size can be used. Though don't go too large, like 10 mm ID, as at some point, as you might experience backlash and rattling in the tube, resulting in noise, and for very hygroscopic filaments (PVA or Nylon), the extra air in such a large tube could reduce the effect of printing from a dry box:

3.25 mm works well for both 2.85 and 3 mm and might still work for 1.75 mm filament on the intake side (Thank you for the insight FarO!)
a 4 mm ID on the intake-side can still work for 1.75 mm and mitigate extrusion problems on a Bowden-extruder (thanks @0scar)

In either case, you have to keep in mind the bending radii - don't overconstrain! Also, remember that you need to have a fitting coupling on the delivering and the receiving end.


AnyCubic Chiron shifting in Y axis I have an AnyCubic Chiron, and sometimes the bed doesn't move correctly.  This causes the prints to shift and ruins the print.

I've spent a lot of time watching it, and noticed that when this happens, the belt stops moving for a short period of time, and then a "thunk" and it continues printing, with the slight from when the bed wasn't moving.

I've captured a video that demonstrates this.  You can see it get stuck about 22 seconds into the video.

It's a new machine, and printed fine for the first 5 or so prints, and then this problem started happening.  Now almost every print fails.

Things I've checked:

Belt tension seems fine.
Belt is not slipping.
The bed moves smoothly back and forth, no binding, nothing in the way.
When it's failing, it doesn't seem to be because the head is stuck on the print.
The screws attaching the pulley to the shaft are tight.
The same G-code file that used to print successfully now fails, and not in the same spot every time. Doesn't seem to be related to what I'm printing.

I'm not sure where to go from here.  Is this a bad stepper?

AnyCubic Support suggested I swap two of the motor drivers (X and Y) and after I did that, the problem disappeared.  I've had a half dozen good prints in a row now, no problems at all.

The drivers are inside the computer module - had to flip over the printer, take off the cover and pry out the top two modules and put them back in swapped.  Not difficult, but probably worth getting advice from AnyCubic before going ahead and doing it yourself unless you're comfortable with this sort of thing.


Efficient packing of models with chains I have a model where several solids are linked with chains. The original design contains a lot of empty space.

I am looking for software, which can automatically move the solids and fold the chains such that the total build volume gets smaller (total build volume is a major cost driver on shapeways.com). Obviously, the topology of the design must not change, i.e., it should be possible to return the model to the original state without breaking chains.

I tried Blender - Rigid Body Physics, but that has stability issues.

This is relatively easy to do in any CAD/mesh software.  For example, if you load import the model into Meshmixer, you can select a given solid and N links of chain connected to it (using "expand selection to groups" or similar to be safe). Then use the "Separate" command to allow you to move/rotate that subset on its own. All you have to do is make sure the two chain links at the point of rotation remain disjunct.
Once you've moved everything around, just SelectAll and export.


New Build. Hotend Overheating. Not Printing Yet My build with the Hypercube Evolution continues with a replacement BIQI KFB2.0 board. I am not at the printing stage yet. This is due to my latest problem.
The kit contains a “no-name” hotend, complete with round finned heatsink and nozzle. Looks a bit like a V5 J Head Hot End.
Everything is wired up. A 24 V power supply is being used. The printer is connected to Pronterface via USB. Using Pronterface, I set the hotend temperature to 70 °C. The KFB2.0 board lights a bright red LED when power is being sent to the hotend (and/or the heated bed). On initial heating, the red LED is on until the hotend temperature reaches around 65 °C and then turns off. The temperature continues to climb to around 120 to 125 °C, then starts falling. At 69/70 °C the red LED comes on again for about two seconds, the temperature continues to climb after the red LED is off to around 86 °C. It then cycles around the 69/70 to 86 °C position.
I have removed the thermistor to check its resistance. Reads greater than 100 kΩ. When in situ in the hotend, it was reading around 85 k&ohm, but a bit of Kapton tape sorted that. I was now reading 100 k&ohm with the thermistor in place. I then used Pronterface to set the temperature again. This time with a multimeter hooked up to the hotend terminals on the board. It confirmed that the bright red LED was sending 24 V and nothing when not on, so the hotend is recording a temperature increase from around 65 to 125 °C with no power. But, I now got something different when the temperature fell back to 69/70 °C. The red LED flickered for about two seconds and the multimeter showed readings fluctuating between 0.1 and 4.2 V. From this point the hotend kept the correct temperature, even after I had removed the multimeter.
Has anybody any idea why the temperature is going so high and what can I do to fix it?

3.9 ohms is a 12V heater.  It won't work on 24V.


Monoprice printer: no files found on SD card My monoprice printer was working; I then tried to format the SD card on a Mac, then it stopped working. I have now tried three different SD cards after formatting on a Windows PC, and still nothing works. Are there supposed to be files on the SD card itself like some kind of root files?

I've no idea why 3D printers don't like SD cards formatted by operating system utilities, but they don't. Use SD Memory Card Formatter to format your memory cards. Unfortunately, you have probably lost any data that was on the original SD card.

The SD cards that are supplied with 3D printers typically contain documentation, test files, and device drivers. However, these files do not need to be present for the correct operation of the printer. All that is needed is a correctly-formatted SD card containing the G-code files that you want to print.


Temperature settings not changing in Cura I seem to have got Cura into a state where changing the material has no effect on the settings. I am a beginner with Cura, and I would like to understand what I've done wrong, and how I can undo it.

More details:

My part is meant to be printed in PETG, but I first did some test prints in PLA to get all the non-material related settings right (e.g. infill, top/bottom pattern, etc.). When I changed the material from "PLA" to "PETG", it gave me a popup saying that I had changed these settings and asking me if I wanted to keep or discard the changes - I selected keep. I'm pretty sure that temperature, fan speed etc. weren't on that list of changes, otherwise I would have pressed discard.

However, the temperature, fan speed etc. also didn't change, they all stayed at their appropriate values for PLA. This effect seems to be permanent - they stay at their PLA values even if I select 'Settings -> Profile -> Discard current changes' from the menu, or if I select the 'Draft' or 'High' profiles, which I haven't yet used.

I noticed also that if I go to 'Manage Profiles', I find that all three profiles include settings for the material, including a 200 degree printing temperature and a 60 degree bed temperature. I guess that these are overriding the settings associated with the material. I guess that these settings are not supposed to be in the profiles, so I want to understand how they got there and whether/how I should remove them.

It's possible that I did manually change those temperature settings for some previous print - but I wouldn't have expected that to have such a permanent effect.

You're right in that the profile overrides the material. Cura's overriding precedence is as follows, where higher numbers override the lower numbers:

Cura's base defaults.
Printer specific settings.
Adjustments to the printer made in the Machine Settings dialogue.
Nozzle profiles.
Material profiles.
Quality levels (aka built-in profiles).
Custom profiles.
Settings not yet saved to a profile.

In the Cura GUI, once a setting has been saved to a profile, there is no way to really get it out again. You can only create a new profile and copy over all of your overrides.

However for the temperature you can still click on the little fx button next to the setting. This will restore the link from the setting to inherit again from different settings. In the case of printing temperature, the material profile actually adjusts the "Default Printing Temperature" setting. Clicking the fx button makes it go back to "use the Default Printing Temperature" so that your material's temperature is used again.

The same does not go for fan speed, sadly.

The Cura developers are planning to remove the fx button and replace it with a button to remove a setting override from a custom profile. That would fix your problem. It's not implemented yet though.

Source: Am Cura developer.


Can snap-fit connector be designed for 3D Printing? I am new to 3D Printing. We currently have to design in process that I want to finish. The design consists of two parts (top and bottom), the top and bottom that need to snap fit into each other. The arrangement should be similar to the one used in many electronics, for example, the cordless phones in the picture below.

My question is, can such clips be done with 3D printing? Will they last (be used 5 to 20 times) and does the material used for 3D printing make a difference? Is there a material that is particularly good for such snap-fit connectors?

Note that my design will only be a prototype and eventually we would be creating a mold for our product.

yes
You can totally print snap-fit connectors for 3D printing, but you need to keep some things in mind. I assume that since you have looked at these connectors, you have a good idea about the matter, but I nevertheless suggest Angus (MakersMuse) discussion locking devices at the beginning of a tutorial Video on designing buckles.
Your tabs thickness will need to be at least one line width wide at the most narrow point to be printable at all.
Print-Orientation
Another thing besides thickness is orientation. For the strongest tabs, you might want to print the tabs like a C for maximum part strength. Just modeling the part with the tabs, it should print in this orientation then:

This way the bending is not applying stress against layer boundaries but 90° to them, giving even force on each layer. This means that you will need to print parts in awkward orientations just for the tabs usually. You will need lots of support.
You can certainly print in a less awkward position at the expense of strength of the tab, acknowledging that "this is a prototype, we can show you that it closes perfectly like this, though due to FDM limitations we might break the tabs opening it again. So we'll be careful."
prototype-variation of model
Snaples tabs
It might be however easier to print the tabs flat and without the hooks, allowing to do a fitting test, but not a snap-connection. Your benefit is, that you won't have to watch for print orientation, but it won't be locking. Make sure to work with workflow and put the modifications for easy printing/not-locking at the end. Alterations to the general design should come all before this point. Then turn off these steps to create the model that is sent to machining for the mold.
Modular intermediate design
If you need to have working, strong tabs AND a good print, it can pay off to print separate parts that combine into a single piece with a little glue. Maybe the C-clamp is actually a thin bar that is put into the back plate and glued into place or secured with a little friction weld.