## Tuesday, 13 March 2012

### Mendel90 files

I have put the Mendel90 files on GitHub. There is the OpenScad source code plus some Python scripts that, given a machine configuration, will generate all the STL files for the printed parts,  DXF files for the sheets, SVG drill templates, a master BOM with a matrix showing where the parts are used and sub-assembly BOMs for each of the sub-assemblies.

Two standard configurations are included: Sturdy90 is the MDF version with 10mm rods that I have had running for three months. Mendel90 is an acrylic version with 8mm rods and the same build area as a Mendel that I have assembled but not run yet. The generated files for these two configurations are also on GitHub.

The directory structure is as follows: -

├───imported_stls       The pulleys and gears that I use but don't have OpenScad source for.
├───mendel                 Generated files for the Mendel90 variant.
│   ├───bom
│   ├───sheets
│   └───stls
├───Prusa_retrofit       A Z motor bracket that allows the Mendel90 x-axis to be fitted to a Prusa.
│   ├───utils                Utility modules for making objects, such as polyholes.
│   └───vitamins          Models of the non-printed parts.
└───sturdy                  Generated files for the Sturdy90 variant
├───bom
├───sheets
└───stls

The top level directory contains the build scripts. To make all the files for a machine run: -
make_machine.py machine_name

To make just the bom, sheets or stls run bom.py, sheets.py or stls.py machine_name.

To view the model of the whole machine open scad\main.scad. It will take about 8 miniutes to render but after that you can pan and zoom it at reasonable speed and changes takes less time to render.

To view a sub-assembly open the individual scad files. Set the exploded flag in config.scad to make exploded views.

scad\conf\config.scad contains constants that should be independent of machine variant, for example screw clearance hole sizes. It includes machine.scad that is generated by the build scripts to include the configuration for the specified machine variant.

Thanks to sevikkk (Vsevolod Lobko) for making the scripts work on Linux as well as Windows.

I will put the build instructions in the RepRap wiki soon. These will mainly consist of the exploded views of each of the sub-assemblies with the list of parts in it. Unfortunately OpenScad can't export images from the command line at the moment so they have to be made manually in the GUI.

On my todo list is to add scripts to make images of all the STL files, PDFs from the SVG files using inkscape and produce the BOMs in spread sheet format using OpenOffice. I also need to write a script to tile the SVG files to allow them to be printed on A4 sheets and taped together like the Darwin bed template.

I think there is an error in the bom.py script.

class BOM():
class BOM:

I hope you don't mind me pointing this out.

Thanks for the hard work, I'm planning on basing my rep-strap off some of your ideas.

1. Thanks. It isn't an error on the version of Python I am using but I agree they shouldn't to be there when there are no base classes.

Do you get an error, if so which version of Python?

2. Yep, the version of python I have installed at work threw the error.
I'll check and get back to you tomorrow.

I'll post up the version and a copy of the error.

3. Python version was 2.4

class BOM(): Invalid syntax error.

4. I am using 2.6, so they must have decided to make it legal for some reason. I suppose it mirrors a function with no arguments.

2. One question: when can I buy printed parts for the Sturdy?

3. I will print some later this week.

1. How much do you charge for sturdy printed parts. I'm not placing an order, but trying to get some prices

2. £65 GBP plus postage.

4. Thank you for your awesome work - I will definitely check this out for a the second printer we're planning to build :)

But - how come you included openscad binaries in the git-repo? I would think that anyone interested in stuff like this either already have it installed or know enough to install it themselves. I was always under the impression that including binaries in source control was a big no-no.

1. The openscad binary does not work from the command line on Windows so I had to create a wrapper openscad_cl to call it. The source for that is now also on GitHub.

Since I don't know where people have openscad installed and they are unlikely to have added it to their search path and because it needs a bleeding edge version to work anyway I included the exe.

Hopefully in the future the wrapper will get included in an openscad release and then I can remove the exe's.

5. Thanks for the great work. I am printing and cutting sheet goods as I write this! The instructions in the readme were spot on and the scripts all generated without a hitch. Thanks for the added info on how to create exploded views. It really helps as I envision how everything is going together.

6. Thanks a lot!

7. Are you going to be selling ready cut and drilled acrylic parts?

8. Yes I am looking into making the sheets. I am still investigating what the best materials and thicknesses are.

9. nophead, I was seeing your x carriage + extruder, it's a pretty nice combo, but don't you think getting it into one part only and getting the E motor lower and not hanging in the air, something like this: http://www.thingiverse.com/thing:19043

don't know if that is the best design but I think you know what I mean

10. I can's see any advantage in it being one part. I frequently swap extruders as I use different nozzle sizes for different parts and in fact that design is not one part either. The extruder consists of the motor, an aluminium block, a heatsink, a fan and an injection moulded plastic part. It is not part of the carriage.

As for hanging in the air: Yes a lower centre of gravity is good but the fact it isn't supported isn't an issue. The bracket doesn't flex and the X and Y motors are similarly hanging in the air. It is normal to only mount a motor by the screws on the front face and leaving the other faces clear helps with cooling. You can't rely on the outer dimensions being the exactly same from one manufacture to another, but you can rely on the screw positions.

I am not sure whether that type of extruder would fit on my carriage. I suspect the nozzle might be too short to reach the bed.

11. Thanks for releasing the sources and all your efforts!

I have a Mendel90 variant in the works :)

12. Some of my parts came out a bit floppy. What infill level do you recomend for the plastic parts? Thanks.

1. I have put details in the wiki: http://reprap.org/wiki/Mendel90_Build_Manual#Printed_parts

13. Fantastic! Thanks for posting the details.

14. hey nophead, great designs thx for posting... I talked to prusajr some days ago, he said unscrewing Z axis motors on a prusa mendel would help taking backlash away, and I didn't get that... do you think that is really a good idea?

1. I would have thought a loose motor would create backlash, not reduce it.

It may help to reduce wobble if your lead screws are bent but the flexible coupling should deal with that: http://hydraraptor.blogspot.com/2011/06/yet-another-prusa-z-coupling.html

15. I can't run make_machine.py on my Mac.
Here's my errors, on Python 2.6, 2.7, and 3.2 http://pastebin.com/PZ6y0zTE
I'll try on my Linux partition once I get it working again.

1. try to use the argument mendel without the capital M...

16. It wont work with Python3 because that is a different language.

It looks like it can't find the openscad executable. I included the Windows one but for Linux and Mac you will need a recent version, possibly a development snapshot, in your search path.

17. It might be a good idea to add a hashbang (#!) on the first line in your python scripts.
On Unix/Linux environments the shell does not look at the .py extension and tries to execute it as a sh-script.

#!/usr/bin/env python
on the first fixes that.

18. Wow that did it!

Went from:
-------
chas@fruitbrute ~/Documents/reprap/mendel90/m1 $./bom.py import: unable to grab mouse ': Resource temporarily unavailable @ error/xwindow.c/XSelectWindow/9007. ./bom.py: line 6: class: command not found ./bom.py: line 7: syntax error near unexpected token (' ./bom.py: line 7: ` def __init__(self):' To: ------- chas@fruitbrute ~/Documents/reprap/mendel90/m1$ ./bom.py mendel
Generating bom ... done
chas@fruitbrute ~/Documents/reprap/mendel90/m1 -- Thanks 19. does this belt twisting thing makes any sort of resistance to high speed prints, like 200mm/s and up? 20. No it doesn't require any significant force to twist if half a turn over ~400mm and its inertia is tiny compared to the carriage. 21. I found that a simple Windows batch file 'openscadc.bat' with "openscad %1 %2 %3 %4 %5" as contents works fine from the command line. 22. I've been learning about reprap so I can choose the best one to make and I was wondering, I know bushings should be made of PLA and some people say that parts close to the hot end should be made of ABS, but the other ones: pulleys, vertexes, bar clamps, etc etc... what is the best material to have a these reprap parts made of? can you give me a small explanation about parts in a printer like prusa (it's the one I'm most familiar with, but will probably work for all) what they should be made of, and how much infill and why? I think it's a big question but I would like to know that 1. I print them all in ABS apart from the bushings. I use 100% fill on the extruder block, its idler block and the small gear. 50% on the y-motor bracket, everything else is fine with 25% fill. You can make the whole machine from PLA but you have to be very careful that the extruder, x-carriage and motor brackets don't melt. You have to keep the motor current low and use a fan on the extruder. If you want to print large ABS parts then you need a heated bed at least 110C. I use a 140C bed and run my machines in a chamber at 45C. No way that they could be made from PLA. So the simple answer is if you want to print both ABS and PLA make the machine from ABS. If you only want to print PLA then you can make it from PLA, but there is no advantage other than the parts are easier to print and greener. 2. so, 25% in extruder big gear, x carriage, z couplers, x idlers and pulleys correct? (all the other stuff as well, just confirmation) 3. For the Prusa, yes. For Mendel90 I do some parts with higher infill densities, see: http://reprap.org/wiki/Mendel90_Build_Manual#Printed_parts 4. last thing, why is that some "hex" beside the infill %? what is the diference of each infill type (line, rectilinear, etc) and when to use each of those? and on the link you sent me you mention you print some parts with a 0.4mm nozzle with 0.4 mm layer heigh, I tought the layer height was recommended to not be more than 0.8*nozzle_diameter... and you said it's not for one to print some parts with a 0.4mm nozzle but doesn't the slicer software see it the same way in layer height and perimeter width? I don't know if I did the last question understandable, I was just thinking that you can use 0.5mm nozzle for lower layer heights and set ratio as you want but how does that work in practice? what values layer height and ratio should be based on nozzle diameter? 5. I use hexagonal infill on the large flat objects as I think it minimises warping. For small objects and those with high infill density Hexagonal does not work well so I use Line. The layer height limit is about 0.8 times the die swell value. With a 0.4 nozzle the ABS I use swells to about 0.54mm so 0.4 layers and 1.5 W/T gives me the maximum through put and resolution I can get from a 0.4 nozzle. I can also build the 0.4mm layer parts with a 0.5mm nozzle. The corners get a little more rounded. If I use lower layer heights but keep W/T the same the plastic is stretched more so it bridges better, but corners are rounded more than they would be using a smaller nozzle. If you keep the same filament width but lower height by increasing W/T you trade build speed for better Z resolution, but bridging is not as good. 6. hi again, I'm printing your couplers right now for prusa... I see that you said you use 75% infill for the couplers on mendel90 but 25% for prusa... is that right? if yes, why? 7. Simply because they Mendel90 ones are smaller to clear the Z brackets. 75% is probably overkill as they aren't under any tension like the Prusa ones are. 23. hey nophead, I was seeing pics on older post, your parts allow to use 2 m8 nuts per x end with springs, but I see some people not using it, using just one, I couldn't see exactly what you use on the pics I saw from mendel90, but what you think of it, is a BIG help or just "bah, whatever" 24. The anti-backlash springs and nuts are only required if your z-axis does not fall under its own weight. They only time I have needed them was on my Prusa, probably because the rods where not aligned well enough, or maybe the grease I use was too thick. I got about 0.2mm backlash without them. I haven't fitted them on on my M90. 25. nophead, I live in a place where humidity is very high... for example, there is this wardrobe that has doors that run over rails, and in raining days I think the wood absorbs water or something in a way that it gets hard to open the doors, like they add friction or something... I imagine what this kind of stuff can make to a 3d printer... I like your printer design but I'm afraid of the MDF version having this kind of problem (absorbing water making changes to its volume so prints might get wrong) and the acrylic version I'm still considering because acrylic is a bit expensive here... so what do you think I should do? 1. I have been told MDF can be stabilised by painting it with several coats of acrylic paint. I haven't tried it myself. 26. nophead, are you in process of making the mendel90 (acrylic) one? if yes how long you think you will finish it? I mean, I think I might do it but I want to know your toughts first =)... because I think you might want to get thicker sheets in the BOM or something. Also, is there any problem with 10mm rods in the acrylic version? good thing, bad thing, heavy thing, expensive thing, etc? 27. Yes I am building an acrylic version. To finish it I need to fit the belts, extruder, bed and electronics. I should get that done this week but I have never used any Reprap electronics or firmware before, so it is an adventure into the unknown for me. Yes the gantry could do with being thicker on the Acrylic version, or have an extra sheet across the top. The MDF version is a lot cheaper and much stiffer. 10mm rods are better but more expensive. There is no problem using them with acrylic but all the parts change and the sheets get a little bigger, etc. Just chose the options you want and the scripts make the parts and the BOM to match. 1. so, did you make the mendel90 acrylic? =D 2. I haven't done any more on it as I have been developing and testing a simple hot end for Mendel90 as my bought in hot ends all failed on me. 3. including makergear, j-head, arcol and Budaschnozzle? 4. I haven't tried any of those. J-head is very long so would reduce the Z travel a bit. Budaschnozzle is too wide for my carriage design. 5. makergear,75 =)

you really need to go into making EVERY single step of your machine don't you?

28. Very nice Job Chris, I would love to see one made up in sculpted acrylic panels.

I for one will be very interested in how you find the current RepRap electronics and Firmwares, Do you have a starting point? I would have to say try RAMPS 1.3/1.4 and Marlin.

What does your MDF version weigh? if you don't mind me asking.

29. I will blog the acrylic one soon. It does look a lot nicer than the MDF, and most RepRaps in fact.

I have a Sanguinololu so I will try that first with Marlin, but I agree RAMPS is a much better design electronically but overpriced. I will probably end up making a new single board design with more suitable connectors.

I didn't weigh the MDF one before I boxed it and now it is very heavy. I will weight the Acrlic one when it is finished. I think that is heaver than MDF.

30. I expect frowns from the reprap guys as all interest is focused on FDM, but going back to the original "hydraraptor" concept, is this design rigid enough to also put a milling head on it? If weight is the problem, what about mounting the motor separately and using a flexible drive, just mount the chuck on the robot? or am I fundamentally doomed with belt-driven x&y, needing the "gearing" of threaded rod to push a router through material?

31. Possibly it might do light engraving but I doubt it make a good milling machine. I learnt the hard way that milling machines need to be very stiff, which needs lead screws rather than belts.

Having said that, Forrest Higgs had some success milling plastic with a machine that wasn't very stiff where I had failed. It could be that very high speed spindles and small cutters mitigate the need for stiffness.

32. when you used the xends + x carriage in your prusa with the "retrofit" how much mm you could get on the z axis?

33. Only about 90mm but that was limited by the extruder motor hitting the frame and by the fact I used a relatively long nozzle and mounted my heated bed on 20mm pillars. I don't think this X axis is any different from the original in that respect.

That is one of the things I don't like about Mendel. I have never got the stated build height because that requires the original direct drive extruder and a flat bed. Beds and extruders have evolved to be bigger.

34. Nice job!

I already own an Orca 0.3, and that's a pretty rigid thing, but I'm definitely giving Mendel90 a try.

Currently I'm looking at acrylic, but perhaps I'll end up with MDF when I see the quotes.

35. is there a little WOW how to work with Phyton...?

i donwloaded Phyton2.6 as stated and i tried do run the programmes but it gives some errors. and as i try to get the openscad file to work it seems to mis machine.scad file

36. I updated to Python 2.7.2 from python.org recently but it should work with 2.6. What errors are you getting?

machine.scad is created by make_machine and simply has a line like this:

include

depending on which machine version you want.

1. i think i need a short tut on phyton :D i double clicked the make_machine button and something happend but cant see the machine.scad file.... im prolly doing smt wrong

i think more ppl run in to this problem... can you post a little step by step picture what t do in phyton?
double click the.py or do smt else

2. Run it from the command line. That way you will see any error messages. I.e. in the top level directory of the project type make_machine mendel. Here is an example of what happens on my machine:

W:\chris\projects\mendel90>make_machine mendel
Generating bom ... done
etc

It will take some time to make all the files.

3. i type G:\mendel90\make_machine mendel
file", line1
G:\mendel90>make_machine mendel
^
syntax error: wrong syntax

i updated to phyton 2.7.2 just to be sure

what did you mean in the reame with copy the openscad folder to your search path?

4. It means do something like this in a DOS command prompt:

Assuming OpenSCAD was installed to C:\Program Files\OpenSCAD. You can run that command each time you open a command prompt or you can edit the PATH environment variable in the Advanced System Properties so it is always set.

37. i type G:\mendel90\make_machine mendel
file", line1
G:\mendel90>make_machine mendel
^
syntax error: wrong syntax

i updated to phyton 2.7.2 just to be sure

38. It looks like you are typing the command inside python rather than DOS.
Open a DOS box and do

G:
cd \mendel90
make_machine mendel

1. haha ok dos cammand line :D took me way back
"he must be meaning the phyton command line" dork @me

its rendering right now

tnx for the help

ps windows still gave me an error at the end :the system can not find the located file or smt (translated from dutch)

2. What was the last thing it printed before the error?

39. So I fixed my previous error, and then tried to get this working again after a few weeks, now it returns this error:

python2.7 make_machine.py mendel
open: invalid option -- o

And then says all the valid options for the open command.
And then this:
Generating bom ... done
open: invalid option -- o
Again it says all the options, and then says this:
Traceback (most recent call last):
File "make_machine.py", line 17, in
make_machine(sys.argv[1])
File "make_machine.py", line 11, in make_machine
sheets(machine)
File "/Users/adriankelly/Documents/RepRap/Mendel90/sheets.py", line 55, in sheets
dxf_to_svg(dxf_name)
File "/Users/adriankelly/Documents/RepRap/Mendel90/dxf.py", line 81, in dxf_to_svg
ptList, cirList = parse_dxf(fn)
File "/Users/adriankelly/Documents/RepRap/Mendel90/dxf.py", line 7, in parse_dxf
f = open(fn)
IOError: [Errno 2] No such file or directory: 'mendel/sheets/frame_base.dxf'

40. I have no idea what the "open" command is. It should run openscad -o dummy.csg scad/bom.scad.

I could understand it if openscad said it was an invalid option. That would mean it was an old version.

41. does these prusa retrofit work with prusa z coupling (the one called "yet another prusa z coupling") or do I need to use the mendel90 smaller z couplers as well?

42. I think you will need the Mendel90 ones because the rod is closer.

43. Hi, awesome work Chris!

I'm having a problem with make_machine ... After generating the bom and frame_base_dxf.scad, the call to inkscape hangs -- I waited an hour and it still has made no progress.
=========================================
Generating bom ... done
-242.75 -225.0 242.75 225.0
inkscape -f sturdy/sheets/frame_base.svg -A sturdy/sheets/frame_base.pdf
=========================================

If I kill the inkscape process the make continues to the next step....

Using ubuntu 11.10 x64 with
Inkscape 0.48.2 r9819 (Jul 11 2011)
Python 2.7.2+

44. I don't know why that would be. I am using an earlier Windows version: 0.46 and it doesn't take any time at all to do the conversion. The openscad command is slow but inkscape is fast.

What happens if you type inkscape -f sturdy/sheets/frame_base.svg -A sturdy/sheets/frame_base.pdf to the shell?

1. If I enter the command manually it exits quickly and produces the expected pdf. I've run make_machine again and it still hangs...

45. Chris,
Thanks for your design. I build a Mendel90 with PLA. I want to use is at school (i'm a technology teacher).
I used "trespa" for the sheets.
Here is a movie [url=http://youtu.be/BI8-a4w9DPc]movie of Mendel90 at 100 mm/s[/url]

46. Does it matter where the buttresses are in the X axis (left-right)? And how far from the MDF are the rods?

47. It doesn't matter much where the buttresses are on the MDF version because it is much stiffer than acrylic. The position in the model is a compromise between being close to the vertical bar mounts and not getting in the way of screws coming from the other side so that nuts can be used, again it does not matter on the MDF version.

Which rods? To find out dimensions like that you need to add echo statements as they are all the result of many lines of expressions.

48. hey nophead, I was looking in the files, the x motor and idler brackets have those U clamps to hold the x rods and they are printed in a way so that the layers are in horizontal, the U clamps for a prusa face up so the layers are vertical when you use it... I don't know if you get it, but is that a problem? making the clamps on the x motor and idler bracket easy to break?

49. I am not sure what you mean. The force on the X bars is downwards so it is pressing the layers together. How are the Prusa brackets any different in that respect? The Prusa X-brackets are press fit rather than clamps but the layers are in the same orientation.

http://www.thingiverse.com/thing:15118 # x carriage

with an extruder assembly atop of it like this:
http://www.thingiverse.com/thing:17030 # greg's extruder w/guilder mod

Will the extruder assembly hit the back plate? -- meaning will the extruder assembly then not fit
turned about 45 degrees on said x-carriage.

Thanks,

-- Charles

51. You can't use a Prusa carriage because the X bar spacing, belt placement, etc is different.

I don't think Greg's extruder would fit. He slants the motor for some reason, which I think makes it longer. Then he mounts it diagonally to get round it being too long.

I solved all the issues with the original Wades and then designed the machine to fit round that keeping the centre of gravity low and pretty central between the three bearings.

52. Oh ok.

All standard mendel90 then.

Thanks for the clarification.

Another question, all the printed parts come out the same no mater what sheet thickness is chosen?

53. Yes the sheet thickness should not affect the printed parts. It does affect the position of the holes in the base slightly as the gantry fixing block positions move and the left and right stays change depth.

54. Hello Chris,

Let's find here http://tmonnot.free.fr/Fraisage/Ninos_Repstrap/Mendel90.htm the current state of progress from my mendel 90

I' had redrawn some of the part mainly to avoid M3 screws ( I'd rather M4 )and to gave better ajustment on M8 rods ( i'd better po print a little smaller ant to drill to 8 on a drill press to perfect diameter and perpendicularity

I manadged to print big PLA parts on my CNC mill repstrap... for the X motor bracket, 13h printing... ;-(

I wait for my 8 smooth rods. The frame will be 8 mm acrylic

I will slighly oversized X carriage width and ( +15mm ) to authorized biger extruder body. the carriage body will be dibond made cause I coul'nd managed ABS big prints

Many thanks for your great great job !!

Just one question: what the use of the 8mm holes in the botom frame just under the axes of the Z motors ??

regards

Thierry

55. The holes in the base allow the type B dual shaft motor to be used. That has round shafts, which is better for the z-couplers, but short wires. The type A motor has long wires and a single D shaped shaft.

so I printed a x end idler for mendel90, and I see that the lm8uu holders are to tight, because when I pushed a lm8uu holder in it is starting to detach some layers, I don't know how to explain that but I think you understand, is not the entire layer, just on the lm8uu holders but that kind of thing can go on and detach the entire layer, so I was thinking, wouldn't making the lm8uu holders bigger with screw to make a U clamp in it a good idea? when I see people saying to spare vitamins, yes it's good but screws are cheap and available anywhere, I would spend 10 cents just to make sure I don't need to wait another 3 hours printing another part, that might break as well

57. Compared to the Prusa version the opening is much bigger and the part is stronger, so they are not too tight when I print them.

I find the best way of inserting them is to push one end in first, slide the bearing up against the shelf and the snap the other end in. I have cracked Prusa ones, but not these.

Are you sure your machine is calibrated? If you print the cal.stl part are the nut traps a good fit?

It could be a clamp but it would add parts and printing time. Similarly some people prefer clamps on the X and Y bearings instead of zip ties.

58. when will you start selling kits? thanks

59. Yeah, kits for mendel90 are pretty hard to find, will you be selling kits any time soon?

1. I can supply printed parts at the moment. Full kits are probably a month away. The reason being I found laser cut acrylic not to be viable because the firms that cut them don't guarantee the hole sizes to be accurate enough for tapping. The one I made is fine but I can't take the risk of ordering in quantity. Also acrylic is very heavy, so shipping would be expensive.

I found that 3mm Dibond is actually stiffer than 6mm acrylic and half the weight so I will make a third prototype from that. I will also build a router to make the holes accurately.

2. Is it really possible to tab 3mm dibond?

3. I have successfully tapped it M3 for the bed pillars on Sturdy90. I will try M4, if it doesn't work I will use nuts.

60. I'm thinking about building a Mendel90 (sturdy) as my first reprap. I'm looking through the scad files trying to understand everything but, I'm a little lost. I believe that if I increase z_travel to 214, the only thing that changes is the length of the rods, height of the gantry, and the location of the holes in the mdf. Am I correct in that the printed parts stay the same?

Also is there a list of hot ends that are known to work (or not to work) with the extruder? I was leaning towards a makergear hot end. I just don't want to be putting it all together and realize that I had the wrong part printed (like this: http://mynext3dprinter.tumblr.com/post/21048107412/hot-end-bother).

Thanks.

1. Yes just the sheets and rods change when the axes are made bigger.

Not all hot ends work as they need to be long enough to reach the bed and not too wide to go through the carriage. I have a J-head on my acrylic prototype.

61. Hi

I'm new to this. Your design is impressive and generally quite easy to understand. I've got some questions though.

You say you are going to be able to supply kits of printed parts. How do I order?

I'm probably going for MDF for the frame, and would like to go a bit bigger than standard. Is is sensible to scale this up to 300x300 bed? If so what design changes would you suggest (rod sizes, pulleys, etc.).

I think the assembly would be easier if there were slots 4-6mm deep routed in the MDF base for the YZ plane upright and butresses, and in the YZ plane upright for the butresses. I can get the butress slots perfectly aligned by routing parallel to the manufactured edge of the board (accuracy better than 1mm over a length of 1.8m) before cutting the pieces out. The rout across the base for the YZ upright would be parallel to the manufactured end accurate to better than 1mm over the board width (607mm). Is this good enough?

I think the base is flat if its on a flat surface, but over 1/2 its length it is only as stiff as the MDF. Also there is nothing to stop the butresses twisting relative to each other around the Y axis. I am considering adding a pair of diagonal crossed ribs under the base, and a rib parallel to the base that attaches to the YZ upright above the cut-out from butress to butress. Do you think this is worthwhile - particularly for a larger frame?

1. You can email me at nop dot head at gmail dot com to order parts.

I think with 10mm rods it would scale to 300mm without any other changes. It would be a bit slower though as the moving mass of the bed would be 2.25 times as much and the bed heater power would go up by the same amount.

The assembly is very easy with the fixing blocks so I don't think routed channels make it any easier unless you don't have a means of drilling the holes accurately.

I found the MDF version plenty stiff enough, but I agree it does need to stand on a flat surface. I don't think you will get any benefit from additional bracing.

The 6mm acrylic version is a lot less rigid but seems fine when printing. I did consider continuing the screws for the top Z bar supports through the gantry into a flat strip on the other side so they cannot twist on that version.

2. Thanks for the feedback.

What level of heater power would it need. I was thinking of using 3mm Al a bit over size with a 304x304 sheet of FR4 on it as the actual bed (as per you blog), and heating it with a number of power resistors bolted underneath. I can adjust the number and value to get even heating and whatever power level is necessary.

I'll start out taking the speed hit. For the future I had thought about trying 2 motors with drive belts on opposite sides of the carriage and/or a bigger motor for the Y axis.

I was actually thinking about the routed slots instead of the fixing blocks, and putting screws straight into the middle of the board edge from the other side (neater, but trickier would be to use 6mm dowels). To me this looks similar to the arrangement Thierry has gone for in acrylic - but he's done it just with precise holes and no slots. He appears to have drilled and tapped holes parallel to the face of his sheets. This would need some precision. The rout doesn't have to be nearly as precise as all the screw locations. As long as all the slots are the same depth (set the stops on the router), and co-linear (have to be, as matching slots are made in one operation against the same fence in one sheet of board that is then cut to form the parts) it should be certain to align - with the faces of each sheet exactly filling the slots. The screw holes go down the centreline of the slots at fairly nominal accuracy, and the mating edge needs no preparation at all.

I've got the frame modelled, but it will be a while before I can try anything solid.

Thanks again

62. I use about 300W for 200x200x6 AL and it warms up in about 8 minutes. With 304 x 304 x3 you would need about 350W - 400W for a similar warm up time I think.

The plastic parts all have slots to allow some adjustment if the screw holes are not bang on. If you have the means to route accurately then it will make it a bit neater and stronger. Most people would find the fixing blocks and a few holes easier though.

63. How is the dibond Mendel90 coming on? Will you be selling the panels?

64. I have all the parts ready to assemble. I might get it done the weekend. The thing that is holding me up is getting to grips with reprap firmware for the acrylic one.

65. If it works well I plan to make a router to drill the panels. You can buy them cut to size, including rounded corners on line. You do have to cut out the arch and drill the holes but that is not too difficult.

66. What are you using for the base for the dibond version and can you recommend a supplier for the dibond. There seem to be a lot more online suppliers for acrylic.

67. I am using Dibond for the base as well with a sheet of Foamex underneath so the screws can protrude, or have nuts if required.

I got the sheets from cutplasticsheeting.co.uk. They got the corners wrong on one sheet and it also had scratches but they replaced it.

68. The Mendel90 is a really neat machine (the best RepRap out there, imo), especially the sturdy variant is a nice touch.
I'm in process of printing my second one (420x220x250 xyz, LM12UU, HTD-3M-15mm belts, 18mm sealed birch ply) but can't seem to get make_machine.py to work again after reinstalling Windows. Here's what i get ( http://pastebin.com/3E7wzANk ), i hope you can help me out. Thanks!

69. The Mendel90 is a really neat machine (the best RepRap out there, imo), its flexibility is extremely helpful.
I'm in process of printing my second one (420x220x250 xyz, LM12UU, HTD-3M-15mm belts, 18mm sealed birch ply) but can't seem to get make_machine.py to work again after reinstalling Windows. Here's what i get ( http://pastebin.com/3E7wzANk ), i hope you can help me out.
Thanks!

70. It looks like it can't find openscad.exe. Is it in your search path?

1. Both openscad and python are in my PATH, i checked, i can run them from anywhere. Do you think this could be related to Windows, Openscad, Python and mendel90 files being split up between two drives?

2. I can't see why it would matter. You could try copying the openscad.exe file to the current directory. I can't think what else to suggest. It tries to run openscad and says it can't find it. If it is in the path it should find it.

3. I don't know if copying the .exe somehow flipped some switches or whatever it was just fixed itself - makemachine.py is now runnig smoothly, with or without openscad in its directory.
Thanks again!

71. dude, I tried every way possible, even with the new version of slic3r I just can't slice this x carriage of mendel90 properly, those thin lines that hold the third lm8uu are to thin, they always come with no infill for the configuration I use, and if I get lower extrusion width, the parts don't get as strong as I like, so could those thin walls that connect the third lm8uu holder to the rest of the carriage be thicker? I mean, is there any need for them to be that thin?... the lm8uu holer I mean is the one that is alone in the rod, there are 2 in one rod and only one in the other, I mean that one that is alone...

72. They are thin so that they are flexible so that the bearing floats in the Y direction. They should just be two walls thick. All the parts are designed to be sliced with 0.4mm layers and 0.6mm width. Those numbers are in config.scad so you can change them ,but it may have unexpected knock on consequences.

Having played with Slic3r recently I can't recommend for things that need accurate dimensions. It messes about with hole sizes in an undocumented way that varies from one version to another. Mendel90 is designed for a slicer where the gcode matches the geometry in the STL file.

73. and skeinforge does work nice for that?

1. Yes all my parts are sliced with Skeinforge.

74. Hi
I've been collecting the parts and have printed all the plastic parts except for the x motor bracket which my Huxley gives up on after after about half way - extruder blocks! Could you supply that one part?

1. Sure,
Email me at nop dot head at gmail dot com.

75. is mendel90 having feets like this : http://tmonnot.free.fr/Fraisage/Ninos_Repstrap/Images_pieces/Mendel90.jpg a good idea?

76. I just made one from 3mm Dibond and added bars like that to make the base stiffer and allow room for screw heads underneath.

I didn't find it necessary for strength with 10mm acrylic but I worry about it getting scratched underneath so it would solve that problem.

So yes it is a good idea.

77. Hi

What's the status of the Huxley variant? I tried compiling it and it failed half way through.

1. It will have rotted a bit as haven't kept it up to date as I never completed it. It was waiting for me to sort out a suitable extruder as a Wade's is too big and heavy to be appropriate. This looks suitable so I have just bought a motor to try it out: http://www.thingiverse.com/thing:26883

78. Hi. I'm having trouble using the python script. I've never used python before but believe that I've successfully added both openscad and inkscape to the PATH file and installed python 2.7.3. After running the command prompt as admin I'm getting the following error. Any suggestions? I'm sure it's something stupid and small.

Traceback (most recent call last):
File "\make_machine.py", line 17, in
make_machine(sys.argv[1])
File "make_machine.py", line 10, in mak
e_machine
boms(machine)
File "\bom.py", line 95, in boms
File "openscad.py", line 9, in run
subprocess.call(["openscad"] + list(args), stdout = log, stderr = log)
File "C:\Python27\lib\subprocess.py", line 493, in call
return Popen(*popenargs, **kwargs).wait()
File "C:\Python27\lib\subprocess.py", line 679, in __init__
File "C:\Python27\lib\subprocess.py", line 896, in _execute_child
startupinfo)
WindowsError: [Error 2] The system cannot find the file specified
"

79. Looks like it can't find openscad.exe. What happens if you type openscad at the command prompt?

What do you get if you type PATH?

1. Looks like I fubared my path but I'm not sure why. Such a newbie.

'openscad' is not recognized as an internal or external command,
operable program or batch file.

PATH=C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program File
s (x86)\Common Files\Microsoft Shared\Windows Live;C:\Windows\system32;C:\Window
s;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Progra
m Files (x86)\Windows Live\Shared;C:\Program Files\Trend Micro\AMSP;C:\Program F

2. The path should only have directories in it, not the actual file. I.e. remove \openscad.exe and \inkscape.exe.

3. well there you go. thank you!

4. I had a problem equal to SpfedlyONE. But the problem was that I had put the path like "C:\ Program Files (x86)\OpenSCAD\" (with quotes) and for some reason Python could not find the openscad. But when a hit openscad in the command line the openscad open. I remove the quotes and then its works.

80. I am having an issue with compiling and rendering. I am getting an error "Microsoft Visual C++ Runtime Library: Runtime Error! This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information."

I have tried the latest stable and test release of OpenScad both on Windows 8 64 bit and Windows 7 32 bit with the same result.

I generated the files with Python 2.68 and 2.73 with the same result. I also tried my own custom config based on Mendel and a stock config of sturdy.

Any ideas?

1. Use F5 to view the model in colour, not F6. F6 tries to make the entire machine into one 3D object and needs to many resources to succeed.

81. Better .. but now it is all chunky looking :)

1. Looks like a graphics driver bug.

82. Thank you so much for your prompt responses. I am installing a new machine to see if it is the video issue with my main machine. I have the latest drivers.

In the meantime I am attempting to use the Blender rendering script. I have the latest Blender with it in my Windows path; however, I am getting the following errors. I am having a tough time with this ... the OpenSource gods are conspiring against my new machine :)

blender -b utils\render.blend -P utils\viz.py -- jim\stls\cable_clip_AB.stl jim
\render\cable_clip_AB.png
Traceback (most recent call last):
File "C:\Mendel90\render.py", line 34, in
render(sys.argv[1])
File "C:\Mendel90\render.py", line 30, in render
subprocess.check_output(command.split())
AttributeError: 'module' object has no attribute 'check_output'

1. That function is new in Python 2.7, are you using an older version?

83. Just reloaded latest Python 2.7. Everything in path. I also tried 32 bit and 64 bit varients of each component that offered one. Get this:

blender -b utils\render.blend -P utils\viz.py -- jim\stls\atx_long_bracket.stl
jim\render\atx_long_bracket.png
Traceback (most recent call last):
File "C:\Mendel90\render.py", line 34, in
render(sys.argv[1])
File "C:\Mendel90\render.py", line 30, in render
subprocess.check_output(command.split())
File "C:\Python27\lib\subprocess.py", line 544, in check_output
raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command '['blender', '-b', 'utils\\render.blend',
'-P', 'utils\\viz.py', '--', 'jim\\stls\\atx_long_bracket.stl', 'jim\\render\\a
tx_long_bracket.png']' returned non-zero exit status 11

1. It maybe a bug in the version of Blender you have. It works with 2.62.

84. That was it. I was using the latest version. 2.62 worked. Thanks. All that work though .. I thought it would render the whole machine :) read the readme closer and it is just the parts .....

85. I am building right along with a MDF version. So far so good. I think I flipped a switch somewhere in the SCAD. No sheet goods render when I do the main.scad? Is there a setting that would account for this?

1. I can't think of anything that would do that. Look for an error message when you compile. If you set bom = 0 in config.scad it will stop it outputting the bom making errors easier to see.

86. Hi Chris,

After reading the comment I opt for a Sturdy but I would like to build it with 8mm Rods and LM8UU (which are more easy to buy). Or is there a reason why You use the stuiffer rods with the stiffer frame design?

When I change

Z_bearings = LM10UU;
Y_bearings = LM10UU;
X_bearings = LM10UU;

to ...LM8UU, will the printed part geometries be changed to allow the use of LM8UUs and 8mm rods?

Cheers, Ralf

1. I originally switched to 10mm because of the sag I got in the middle of my Prusa X axis. On reflection I think that was mainly due to the belt tension line being way above the rods so bending them like a bow.

It also seems in keeping with the stiffness of the frame, especially if you wan't to try milling PCBs or light engraving. Something I have been meaning to try but never got round to it.

Yes you can change the bearing definitions and everything else will change to match. I have one machine with 10mm Z rods and 8mm X & Y as the Z rods take the force of the X acceleration.

2. Yup, worked.

87. Oh, and any chance to get the STL files in any decent CAD format? I would like to be able to play with them imn SolidWorks or Creo. STLs are such a PITA in those systems.

Cheers, Ralf

Sorry if my first post was double sent.

1. No I don't have a way of making files for those systems. I have heard FreeCad might be able to read openscad files but I doubt it would handle this project and the process would probably lose the parametric relationships.

2. Hi,

such a pity. I tried Freecad but as any other solution it can't convert STL to Iges/STEP/... You must be a genius to be able to "program" such complex features in OpenScad.

Cheers, Ralf

3. Not really. I spent a career writing software in many languages so describing 3D objects with a simple scripting language comes easily to me.

4. That's the difference: I'm a mechanical engineer, I'm more used to "sculpting" than to "programming".

Still switching every 5mins between the Acrylic and the Wooden version.

5. I have one of each of course and much prefer Dibond for the frame as it is lighter and has better dimensional stability. If you use MDF make sure you seal it against moisture otherwise it expands and contracts with the weather. Acrylic has a high thermal expansion coefficient so probably better to have the Z limit switch at the bottom.

6. Last questions: For a building volume of 20 x 20 x 20 cm I would have to input a Z travel of approx. 250 to get the clearance from the hotend, right?

And why are X and Y travel on the dibond version 200 opposed to the 214 (coming from the heatbed???) of the sturdy?

7. No the travel is the build volume. The length of the JHead MK4 is taken into account. If you use a longer hot end, for example the E3D one, you either need to add it to the model or make the travel that much longer.

The PCB bed outside dimension is 214mm but only 200mm of it has heating elements so I reduced the travel of the Dibond version to make the panels cheaper. I think I couldn't shrink the MDF one as there wouldn't be room for the power supply due to the panels being thicker.

I'm from south america and got very impressed with your design. I'm going to make the switch from eventorbot to mendel90 but I want to make slights modifications.
- I have installed Python 2.7.
- I do have installed openscad.
my path looks like this ...

C:\Mendel90>path
PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32

Well when beeing in
C:\mendel90 I type make_machine m90v001 I get the error that comman "make_machine" is not recognized.
if I type make_machine.py m90v001 I get the error "usage: make_machine [mendel|sturdy|your_machine]"
after reading some post above I tired with...
if I type make_machine mendel I get the error that the command "make_machine" is not recognized.
if I type make_machine.py mendel I get the error "usage: make_machine [mendel|sturdy|your_machine]"
The openscad I think is recognized because if at command prompt I type openscad, the GUI of openscad appears.

So making a resume,
1) I can not run the make_machine command without the the py extension....
2) I noticed that in the up directory c\mendel90 there is no make_machine.pyc (is that an error ?)

My op.system is Windows 7.
Please can you give a little help ?

1. I think the problem is the file association for .py is set up to run python but it only passes the first argument instead of all of them. That is easy to change on XP but I don't know how to do it on Win7.

Try python make_machine.py mendel

2. It's working...thanks a lot.
I'm going to post my results with this new proyect !!!!
best regards.

3. Sorry, one more question: