I am starting a project for my post-grad studies. I am using a Kinect to scan and generate accurate models of patients with scoliosis. Those models will be used to generate parts for ergonomic wheelchairs. I am having trouble, though, on the transformation of meshes into solids that I can easily edit. Is there a cheap and easy solution for that? some of the programs that claim to be able to do that cost outrageous 500 dollars!!! I need help :C
Have you checked with your university bookstore? They may have site licenses for free (to you) or low cost modeling software. There’s also this, not sure what the limitations are.
I know Rhino can do this, but it’s a bit outside my expertise. It may require some massaging of the data, especially if the mesh is non-convex, but it should be doable. Also of concern is whether the mesh data is in a compatible format, but that’s just data conversion and should be trivial. You still need to pay attention if you don’t want weird results, of course.
Rhino3D is a bit expensive, as is most modelling software. Searching around, there are some Blender scripts floating around that claim to convert meshes to solids, but I recommend heavily vetting them before actually using them in production.
Do note that, in a computer context, “solid” isn’t particularly well defined. “Solid” just means “whatever data structures this CAD program uses to model physical space”. There’s no specific data format that means “solid”, it’s not as well defined as, e.g., a “convex hull”. The exact metadata depends on a lot of things – some will have material data (e.g. per-vertex density and various interpolation functions to compute it at a specific point in the solid) and others will more simply use things like “half-edges” just to help manipulate it.
All of them are basically fancy ways of pretending a mesh is solid in various ways, in the end they’re usually still shells with some metadata. I’ve implemented constructive solid geometry, and I guarantee you that the “solid” part doesn’t amount to much. It’s a shell, if you “split it in half” to “see what’s inside”, it’s a clever way of generating vertices along a plane. Certainly not even a CAD program treats a “solid” as a literal point cloud of every point in a given region (one common method is Parasolids, which is patented).
To this end, you’re basically just looking for a CAD program. The “mesh to solid” thing doesn’t mean much. If you don’t need material data or physical simulation, and just need to edit the shape, you can probably get by with a simple modeling program like Blender. If you do need that stuff, you can try to dig up user scripts for Blender, but I heavily recommend a professional program like SolidWorks or Rhino3D. Yes, they’re expensive, but as yoyodyne mentions, there should be ways to get it cheaper for educational research purposes. That or you’ll have to roll the research expenses covered by your next grant.
And by “method” I mean “underlying program” (kernel). I think it’s actually copyrighted since it’s not a process. Either way, a hell of a lot of software is built on top of it.
Jragon, whoa. Yes. I am actually using Rhino right now. I can export the meshes into rhino. they look closed and neat. I can even scale them… but no trimming, cutting, subtracting, etc etc etc. Program I am using to generate the files can make a few formats: OBJ, PLY, STL and VRML. Is any of those better for my needs?
I actually use Rhino for a few years now. It is my favourite 3D modelling program. And the Mac version is free and is working surprisingly well!
I will check with my uni and knock at some doors to see if I can convert the files I need.
Thanks, guys
“Really expensive” is relative. In the mechanical parametric CAD world, SolidWorks is arguably the least expensive of genuinely capable parametric solid modeling codes. Codes like NX and Pro/ENGINEER that are used for large scale assemblies cost several times more.
STL files are generally how scanned geometry is imported, but as these are faceted files they cannot be readily converted into parametric features. I once worked on a system that was an attempt to convert STLs into geometric primitives via finite volume filling i.e. the system functioned as a sort of three dimensional tangram solver, except without the explicit finite geometry constraints. As anyone who has worked with arbitrary geometry creation or reconstruction (i.e. handwriting or facial recognition) knows, this is a fantastically difficult problem. If your STL file forms a fully enclosed quilt you can stitch it together into a NURBS surface and from there into a solid shape, but again this is going to give you an arbitrary shape (we call them “potatoes” with an irregular unsmooth surface. There are smoothing algorithms which can be generically applied to this surface to create a smooth surface, but they still aren’t going to provide consistent geometric measurements.
To the o.p., this begs several questions:
[ul]
[li]Into what CAD system do you intend to import the scanned geometry for use in creating parts?[/li][li]How do you plan to model the construction geometry of the chairs, e.g. dumb faceted solids, monolithic constructs of geometric primitives, parametric features, et cetera? Is your intent for the construction geometry to complement the form of the scanned geometry exactly?[/li][li]Are you trying to automagically dereference the scanned geometry to adjust the construction geometry for the ergonomic parts you are producing?[/li][li]How do you intend to “generate parts” from your construction geometry, e.g. normal forming and welding processes, casting, 3D printing, et cetera?[/li][/ul]
If the goal is physical ergonomic shape useful for fitting wheelchair parts to, you are probably better of taking the coarse output geometry and fitting it to a parametric human anatomical model rather than attempting to make one-off shapes, especially in the case that adjustments for body form need to be made. This allows the body to be placed in the range of anatomical conditions (e.g. sitting, crouching, leaning, et cetera) as it will be when the parts are actually used. Of course, that begs for access to such models which are generally proprietary, or creating your own from the existing literature (not difficult for a relatively simple model, but again, you’ll need some kind of parametric modeling software. Although I haven’t used it in several years and it has an initially steep learning curve, Blender actually has most if not all of the features that you need for this. However, it is not going to be suited to producing geometry output for creating engineering drawings or models. It does have a module that supports 3D printing formats; I can’t speak to how good it is. But it would certainly be possible to export primitive or facet geometry from Blender into a mechanical CAD program for reference to create actual engineering models or drawings.
I will create horizontal sections of the scan, outline them and use those outlines to cut layers of foam. Those layers will be then glued together, generating the ergonomic parts I need.
I can use the second file now to cut out 15 layers of foam, pile them up, glue them up and my back will fit onto them like a glove.
Notice that I was not sitting straight on the chair. This shows that the scanning is quite precise!
I realized that this could be used also for amputees: I can scan the missing limb, the stump, process those files together by mirroring the scanned limb and hollowing the stump and send then the resulting file (inverted limb - stump) to a 3D printing facility. No dipping limbs on cast, no complex molds! Only a 1-minute scan and 30 minutes of work behind the computer.
How do I slice this mesh into several horizontal slices (just like I did on the sample) automatically? It would be sweet to send the scan to a program and get those slices without the hassle of processing the file. Is that even possible? Could I maybe write a script to do that stuff? The problem with that, I think, is that the number of slices will vary quite a lot depending on the size of the scan…
I would be quite careful as to your choice in software. Getting your proto to work is one thing, a detail like inserting a soft liner inside or outside of your initial model is quite another.
If you can, try defining the possible modifications, insertions, tolerances, etc that you can think of, and run over to a bunch of engineers, they will give you an idea of what you can do with different cad programs (as well as a headache).
I work with both mesh and parasolid modelers, notably solidworks, and if one thing is absolutely sure it’s that importing mesh (or surface) models is is enormous pain somewhere. All of these cad programs have importers that do magic with the easy stuff, leaving you more or less with the “bad” 2% that will take 100% of the time that you don’t have. So the less “importing” you do the better, I mean it.
Solidworks, Solidedge, ProE, Inventor are have a reasonable learning curve, and you may have access to a student license, these companys tend to incite students to use their programs. You will still need a few months or so of good training.
CATIA, and some others have ergonomic anatomical modeling tools, as has been mentioned above, both in static and dynamic modeling, but these are massive programs with very steep learning curves, and prices in accordance to the aviation and automotive industry.
Another idea that pops up is the CNC tools that the woodworking industry is using these days. Since these machines rout out sculpted panels in 3D, they must use some rockhard input methodology, some of it is modeled directly of course, but many of these guys are pretty good, both on the machine, and on the computer.
AutoCAD has FREE education licenses. You can get any program, any of them, full versions, for free for three years. Solidworks has education pricing every once in awhile, but, the deal is not as good as AutoDesk.
As someone who owned a 3D printer, and spent a fair amount of time with many 3D modeling packages, go with the more professional ones. This will really come into play if you try to CNC the object, in any way shape or form. AutoCAD has a steeper learning curve but it’s an engineering program and the benefits payout almost immediately. Plus, the people who designed the program know that the objects created will go into production in some form or the other so they make sure that the object is 100%. A lot of those free programs can work, and then you have to rework, etc. They are built for ease of use and not the levl of accuracy required for a production level 3D model.
Well, I won’t use a 3-axis CNC machine because of the cost. The idea is to make the process of converting a 3D scan into a Backrest.
I already know how to use AutoCad, but I am afraid the full version will be too expensive for this project. The idea is, again, to reduce costs - I can make the scan in 30 seconds - try to beat that with a ruller! . The scan is sliced into 2 CM intervals and those intervals are cut from 2cm thick foam pieces. I am testing a software called Skanect for the scanning process and it seems to be remarkably accurate.
I will check on the CNC tools. Might be what I need. Thing is that I am using now Rhinoceros for the meshes. It works ok but is not so practical. Takes a tad of time to slice up the meshes the way I need. is there a way to write a script that does this slicing with a hit of a button?
123D Make, as a matter of fact, has a variety of automated tools for dissecting a model into “slices,” with various export options, intended for making physical objects that one can assemble. It’s free.
It doesn’t really matter since you’re dealing with a scanned mesh, but for future reference, if you want a standardized format for solid, parametric data–use IGES. All serious CAD programs (including Solidworks) will output to IGES, and all serious CAM (CNC) programs (I’ve used Sprutcam) will import it. It has many advantages over STL and other triangle-based formats.