Saturday 28 June 2008

From illusion to creation

A few days ago I spent a frustrating evening trying to create this test shape in ArtOfIllusion: -

No matter what I did, I could not get a manifold object that could be exported as an STL file. Eventually I reduced the problem to the fact that AOI cannot do a simple boolean subtraction of two rectangular cubes correctly.



The result looks OK but it is non manifold, I think some of the triangles are the wrong way round.



Fixing
it with the Solid Editor produces this: -

So AOI is not really usable for engineering. It is open source, so theoretically I could fix it myself, but life is too short to fix my own bugs, let alone other peoples. I posted a bug report and moved on.

Speaking to one of my colleagues who does mechanical design for a living, it would seem that professional tools are much easier to use and you don't have to worry about operations on coincident faces, etc. He recommended CoCreate Modeling Personal Edition, which is free for non professional use. It is limited to 60 parts in one design and can only save designs in its own proprietary format, but it can export STL and VRML. It is Windows only and needs an internet connection every three days. It is however, very easy to use. I had a quick look at Google Sketchup and Blender but they did not seem as easy.

The way you model in CoCreate is that you start by drawing in 2D on Workplanes. Workplanes can be arbitrary, but generally are created on a face of the part you are building. The 2D drawing tool is called CoPilot. It shows lots of hints when lines are parallel or line up with things already drawn, and shows dimensions to nearby features. This makes it very easy to create 2D geometry with precise dimensions, or geometrical alignments. You can also draw construction lines to help you line things up.

When you have a 2D profile on a Workplane you can then Extrude it or Turn it to make a solid. This is similar to AOI, except that the 2D drawing in AOI is very primitive and it is hard to get exact dimensions. As well as adding material you can remove it with familiar machine operations like Mill, Bore, Punch, Stamp, Section and Shell. These would all take multiple steps in AOI. CoCreate also has the boolean operations: Unite, Intersect and Subtract, but whereas you have to do almost everything in AOI with booleans, I have not needed to use them so far in CoCreate.

Once you have your basic 3D form it is very easy to add chamfers, fillets, blends, etc, and surprisingly it is also easy to remove them again.

Nothing I have done so far, (including filling a hole with a cylinder of the same dimensions), has managed to create a non manifold shape. It is very quick and easy to make practical objects. Here are a couple of parts I modeled for my experimental z-axis as they appear on screen: -



I have no idea how I could have created these in AOI.

20 comments:

  1. As you described cocreate, I was thinking of ptc pro/desktop that I got free (year 2000 edition) they gave it away as a loss leader for their full blown kit. It is nonetheless a very capable professional tool. I was wondering where I would get a more up to date version on the same basis - and you have found it !

    ReplyDelete
  2. If you feel too limited by the tool, you might want to take another peek at Blender. It may not ultimately be the tool you want, but it does have some things that might be useful to you:

    1. Lots of tutorials and open source community to answer questions. I suspect if you followed 3 or 4 tutorials, you'd be able to the create models you illustrated relatively easily.

    2. Uses python scripting language (You used python for some of your development? Or am I misremembering) If you can describe a shape in code, you might be able to generalize it into a script.

    3. Once you get over initial learning curve, modeling moves very quickly.

    Of course, it is a fairly bulky product (RepRap does not really need all the rendering or game engine features.)

    I've used Blender now for about 3 years.. probably 100 hours of actual time using it. It took me about 15 minutes to make approximate models of the images you had on your site. I believe when I tried a year or two ago, I was able to find and use python export scripts for STL and VRML.

    ReplyDelete
  3. Hi beaglefury,
    1. Yes but the point is I didn't need any tutorials to use CoCreate. I have never used any 3D tools before AOI, and I could not have done anything with that without Adrian's guide.
    2. Interesting, AOI uses Java, CoCreate seems to use LISP, SketchUp uses Ruby and Blender use Python.

    3. Is Blender suitable for engineering? I.e. is it good at dimensioning? I think it was one of the free tools the RepRap team looked at before I joined them, and AOI was selected as the one to use, but I don't remember why.

    ReplyDelete
  4. I cant express how tristful that the reprap is shifting away from free softwares to propriatery ones.
    In electric design kicad->eagle, and now from aoi to something else (cocreate).

    I know that linux is lacking these softwares, and I understand also that the reprap developers dont have the resource to help those development, but this process is sad anyway.

    ReplyDelete
  5. I'm glad that I'm not the only one who has seen bugs in the boolean ops in AoI. For a long time I thought that it was my Slice and Dice software that was causing the problem. Indeed, there are bugs in Slice and Dice. I'd had a nagging feeling, however, that AoI was adding to the fun when I first discovered that they were getting the normal vectors to their STL triangles backwards from time to time.

    Oh well.

    I went to the CoCreate link and took a look. I wanted to find out how much a proper licensed copy of their package cost and discovered that the website is remarkable opaque to inquiries about the cost. Has anybody discovered how much it actually costs? Got a link?

    ReplyDelete
  6. I have not used blender much for engineering. Take a look at http://www.allanbrito.com/2007/05/02/3d-dimension-lines-with-blender-and-caliper/ -- I think this is what you were asking for?

    I know that dimensional features have been added to the rendering engine to solve rendering issues that require specific dimensions, but I do not think these would help for technical schematic diagrams (They are used for refraction, fogging, etc. in rendering.)

    I agree in terms of being able to jump right in though -- blender user interface is not very intuitive; it takes a while to get used to it.

    ReplyDelete
  7. BeagleFury, it maybe sad to move away from open source, but if there is nothing out there that can do the job, why spend too much time on it? IMHO it's much better to spend your time making things, rather than working out how to battle with a package that is not up to the job. A virtual machine would run coCreate under Linux without issue and it's free for personal use, so open to all. If I were RepRep I'd be contacting the makers of CoCreate and see if they could do a deal (maybe even a RepRap version ;-) I'm sure they would love what you guys are doing.

    Great work as always NopHead, a genuine pleasure watching this unfold.

    ReplyDelete
  8. Umm.. anonymous seem to imply that Blender (or AOI) would not work for RepRap. AOI works, but there may be bugs for certain modeling techniques.. As far as I am aware, the only problem with Blender and modeling for RepRap is the initial learning curve of how to model in it. Is there something else I don't know about?

    Note, I found a way to get dimensional information directly.. you can get edge length, edge angles, and face area for selected parts on any mesh. I am still not sure exactly what would be needed to do 'engineering' work. Is there something to illustrate more clearly what is needed?

    ReplyDelete
  9. I would love to stick with open source tools but CoCreate is probably between 5 and 10 times more productive than AOI. For example to put four holes in something with AOI you have to create a cylinder to represent the drill then copy it three times. Position each of the four either by typing the coordinates or snapping to a grid. Do four boolean subtractions yielding the final result and three useless intermediaries. I would then have to hide all the cylinders and intermediaries to see the result. I would have to apply a texture and give it a new name. If I didn't want it to slow to a crawl with more than a few booleans I would have to convert it to a triangle mesh, losing accuracy.

    In contrast, with CoCreate I would create a workplane on the surface and draw four circles. It would show me the centre coordinates and how far they were apart, etc, so very easy to line up in say a rectangle or a line without having to type anything. Intelligent snap points. I then just punch them all in one single operation. The part I am working on is modified in situ so no intermediates to deal with. The result is immediately visible.

    I suspect this is exactly the same reason Zach gave up on Kicad and used Eagle. Better to produce results than live to ideals.

    ReplyDelete
  10. Maybe we could try out Wings3d.com or blender.org.

    However all of these are for mesh modelling:-(

    Cocreate is windows only. Couldnt find a cad software (which is usable for the simple tasks) for linux/windows.

    Maybe as reprap gains popularity there will be one person who will crack this nut.

    ReplyDelete
  11. Khiraly: use of proprietary software is only a problem if it lock the project into using it too, or being dependant on closed source libraries.

    Any tool that can spit out an open format, such as STL, is fine because we can read and modify it with open sourced tools if we do not wish to use commercial or 'free' but not 'open' alternatives.

    Using a free, but broken tool will not help the project.

    ReplyDelete
  12. This might be a silly question at this point, and moot since coCreate seems to address your concerns, but did you happen to try BRL-CAD (http://brlcad.org/)

    It seems to target exactly the type of modeling needed in RepRap -- CAD and engineering, rather than artistic rendering (AoI and blender)

    It does have this disclaimer in the docs for STL export:

    "In fact, when it comes to converting from BRL-CAD, the widely accepted Stereo
    Lithography Tessellation Language (STL) format offers a crude path to convert BRL-CAD
    objects to virtually any commercial CAD system. The user is reminded, however, that such
    forced conversions can sometimes produce geometry of such poor quality (e.g., low-resolution or
    lossy output formats) or poor performance characteristics (e.g., large or computationally
    intensive output files) that completely rebuilding a model from scratch might be a preferable
    alternative."

    ReplyDelete
  13. Hmm.. never mind on that last one. I tried out BRL-CAD, and either I'm really missing something, or it is not very intuitive or easy to use.

    ReplyDelete
  14. Yes I downloaded it and it looks like it might be very powerful but I have no idea how you use it. Some RTFM required I think!

    It might be worth looking at further though because functionality and productivity are more important in the long run than the initial learning curve.

    ReplyDelete
  15. I reproduced your error with AOI, it seems to be a problem with the STL export plug-in. If you export it as an OBJ and then view with MeshLab the normals all are fine.

    CoCreate PE does a good job of modeling objects, though I fear RepRap may be a bit too commercial as more of them are built. CoCreate PE doesn't seem to have any way to import STL files either, which is a big problem.

    Blender is a nightmare to learn, the interface is very unintuitive.

    ReplyDelete
  16. I looked at it a bit more, there are degenerate triangles, the normals are OK, but two of them are straight lines, the apex is on the base... that can be fixed in AOI by deleting the offending lines and then closing the hole, but then you need to move the vertex so it doesn't overlap the edges. So the bug is in the CSG code.

    ReplyDelete
  17. Nophead, et al,

    I gave Cocreate a try, based on your positive report. Although I didn't find it very intuitive at first, I was eventually able to make some "sane" parts. (Though I don't yet know how to check the .stl for sanity.) IMHO, the first training Webinar, was well worth watching. Esp. to learn about some user-editable settings that default to (IMHO) not the most new-user-friendly behaviors.
    Short version: All the free CAD tools seem hard to learn; this one has its warts, but I was able to create parts, and create a reasonable drawing, showing dimensions for (non-reprap) machining.

    I'll probably post my impressions on Cocreate PE on the RepRap 3D design tools forum: http://forums.reprap.org/list.php?80

    Thanks again for mentioning the Cocreate PE CAD alternative.

    -- Larry
    ursine at gma1l d0t c0m

    ReplyDelete
  18. Hi Larry,
    You can check the part for sanity in CoCreate and so far everything I have exported as STL appears sane insofar as I can read it into AOI, convert it to GTS and build it.

    I haven't been able to see the Webinars because the download page does not accept the user name and password I registered with. I haven't had any problems using it though (I occasionally use the help which is very good) but I would be interested in what user settings you find make it easier.

    Chris

    ReplyDelete
  19. Chris,

    Thanks for your follow-up. (And now I know a more conventional name to associate with "Nophead.")

    Q: In order to reprap a part, which axis should be pointing up?
    Or how is orientation (re vertical) best treated for part design from Cocreate to reprapping?
    (I'm getting a bit ahead of myself here, since I don't yet have a cartBot or extruder, though I'm beginning on the latter.)

    I think I can shed some light on your inability to watch the webinars -- though you're probably past needing them:
    The webinar registration is COMPLETELY SEPARATE from the registration for the download (and also separate from the forums.) You can register for the webinars using any email/password you want (including the same unes you used in any other PTC reg.) -- But you must register for those separately, even if you already registered for the app. download.
    If this seems needlessly complicated and unintuitive, you're not alone! (I don't think the PTC folks understand how many people don't understand this -- and get turned off....)

    One of my "getting-started" problems with co-create was that I found it very hard to "catch" the center of a circle, at first. Drove me nuts trying to line up features. (First part is a coupling from the GM3 output to the extruder screw -- simplified from your design {no hex pocket} since my mill is manual only -- and worn acme screws, though I have a nice DRO.)

    -- Larry

    ReplyDelete
  20. Larry,
    I think if you draw on the default workplane that is a plan looking from above. I.e. Z is coming out of the screen. When it goes into AOI the front view is also looking down onto the part. I.e. both CoCreate and AOI have Z coming out of the screen and Y up the screen. The machine has Z-vertical of course and Y front to back.

    Chris

    ReplyDelete