Alright this is my first major diversion. I warned you that this was coming.
Aside from working on the mobius wall design I have also been playing around designing and building ice tools like the one below for a couple years. This one uses a purchased Grivel Pick.
Recently, I had the opportunity to Beta test a software called ParetoWorks, a topology optimization software, which has led to a dramatic change in what my ice axe designs look like. In this post I am going to discuss my experience using this software and how it affected my approach to designing a new ice tool. Having gone through this process I think that this software, and software like it, will lead to a fundamental shift in how many structural design problems are approached.
ParetoWorks is a plugin for Solidworks that helps you optimize the shape of structural parts. It was created by a research group from the University of Wisconsin, Madison and overall I think it is a very slick piece of software. When I started looking at it they did offer a trial version with somewhat limited functionality. Last time I visited their website the link to the trial version was gone, but if you can dig it up and have access to Solidworks you should definitely try it out.
The software is used much like Solidworks Simulation. You can assign material properties, boundary conditions, loads, and run FEA. It doesn’t have the nice design tree layout like Solidworks Simulation but it is easy enough to find all the buttons. There are only a few basic steps required to create an optimized part using ParetoWorks: initialization, set-up boundary conditions, finite element analysis (FEA), and Optimizing. All of which are neatly categorized in their menu.
Boundary conditions are represented on your model using nice little icons representing your loads (arrows) and fixtures (black spheres for the one used below). It has a good selection of boundary conditions available, which should cover most any case you would need.
During my trial period the icons did seem to go weird when using “English” units. This might be due to my using SW2014 still. I also couldn’t find a way to edit boundary conditions, you can clear them and make a new one but an edit tool would be nice. However, Sciart has been extremely responsive so far and I would expect they will be improving things rapidly over the next year or two.
For FEA you are presented with only two options: number of elements in your mesh and symmetry. After the FEA has run you can view a stress or deflection plot and get an idea of how your initial part performs. After this we get into optimizing the initial part.
I would like to have more options regarding how the FEA is setup, mesh is created, and results are viewed. It would help make this software a viable replacement for Solidworks Sim for some users and just give the user a little more control. The intended use of the software is, however, to provide a simple interface to guide you to a more optimal design at the beginning of the design process and fewer options may be better if that is your sole intent. But as a personal preference I always prefer the tools I use to be less of a black box wherever possible.
The optimization menu is really the core of this software. This will remove material selectively, minimizing either stress in the part or deflection, until one of your constraints is reached. The available constraints being: a material volume target, a max. deflection, and max. stress. I would love to know what optimization method they use, ’cause it is blindingly fast, but I would guess they are keeping it proprietary.
There are a few more options available here than in the FEA menu. You can optimize for either maximum strength (minimizes stress in the part) or maximum stiffness. You can also specify a draw direction. This is handy as it means you won’t have any features overhanging the selected plane so you could cast the part with a split line on the plane, or machine the part knowing there won’t be any pockets that would be difficult to mill. I know that more options are in the works for optimization, so that will be cool. I really like how you can view the stress and deflection in the resulting part immediately. This gives you the opportunity to make some decisions about it’s performance and tweak your optimization or applied loads and fixtures accordingly, without doing anything to your original part. The optimized part is presented, by default, as an orange blob like that shown below.
Results can be saved out as an STL file. Which can then be imported into your part or assembly for reference. This process is a little onerous. It would be awesome if Paretoworks had a single button to import the STL into the active part as a feature. From here you then remove material from your original part using standard SW tools to create a design like that suggested by ParetoWorks. You could, potentially, simply manufacture a part based on the resultant STL file but I can’t imagine many instances where that will be practical. The typical user will likely want to tweak the output before manufacturing. Using “english” units also seemed to mess up the scale of saved STL files.
What is really interesting about topology optimization software is how it changes the design process for complex, structural parts. In my normal work flow, I would do some rough hand calc’s and sketch out a design that should work. From there I would check it’s performance using an FEA tool and modify my design to improve it based on those results. I would then repeat this process until I was happy with the result. With software like ParetoWorks you can simply start with a shape that simply captures your required boundary conditions and maximum available envelope and let it generate a part that is very close to optimal right from the start. No hand sketches or calculations required. As an example you could start with a giant blob of an ice tool and get results that might be counter-intuitive but would meet whatever criteria you put into the software, like the battle axe shown below.
I have probably run about 20 different optimization cases on my basic ice tool, playing with different FEA and optimization settings in ParetoWorks. Just to get a feel for the software. During this process I was fascinated to see that the optimization algorithm can converge to distinct local minima (I think). In this case one minimum looks like the example shown above (the normal one) with the reinforcing ribs all lying along the central plane of the ice tool, like an I-beam, making the tool symmetric. The other becomes asymmetric toward the handle, with ribs on alternating sides of the tool:
In both solutions the tool design comes out absurdly light, under 500g. (I’m not really sure which is the global min.) Either should still pass the standard strength tests (barely by my quick checks but that is the point) as a T-rated ice tool. It probably wouldn’t have the heft to even stick into ice! And it only took a couple hours to arrive at this solution. I could have spent hundreds of hours optimizing my design the traditional way and never have arrived at a comparable solution.
I should note that a single run, from when you hit go till it converges at a solution, took anywhere from 20 to 30min. for this part. Considering that this is conducting FEA with 60,000 to 80,000 nodes at each iteration and running an opto. algorithm, this seemed blindingly fast to me. I was super impressed with this having played with other optimization software.
My take away from this has been that if you are in an organization where any time is spent trying to optimize structural parts, to reduce weight or save on material costs, a tool like this could prove invaluable. It will reduce the time taken to reach a solution and produce better results than a manual approach ever could. I have read a lot of buzz around topology optimization being a great design tool for 3D printed parts, but as this design (which I am machining in my garage) shows it can be readily applied to conventional manufacturing techniques as well.
A few more hours in the garage and we will be able to see how well this actually works!