A suite of tools for geometric analysis of metal castings, based on the work of William Warriner (paper references tbd). The code is licensed under the MIT license, with the exception of some of the external libraries, which have their own licenses. Please see below.
The general concept is the integration of various image processing algorithms and a solidification FDM solver to identify points of interest in casting solid models. Many tools exist to generate what we call solidification fields, i.e. how long it takes each point to solidify, or what temperature they are at any given point in time. What does not exist, until now, is a way to identify the points that have the greatest impact on cost. This software seeks to assist engineers by annotating where they should focus their attention to produce more robust casting designs.
The code was written in version R2018a
and is not guaranteed to work for any previous version.
For now, examine the code in the examples
subdirectory. To install, ensure all of the subfolders are on the MATLAB PATH
(you can use the extend_search_path.m
script for this).
You will also need various libraries available on the MATLAB File Exchange, all of which must be on the MATLAB PATH
. The libraries are included with the source and do not need to be downloaded. The libraries are not subject to the license of this repository. If you intend to use any of the libraries, they are subject to their own licenses.
Various MATLAB toolboxes are also required, which are detailed in the sources section.
- Feeders (geometry-based)
- Undercuts
- Non-slide cores (soluble cores in investment casting)
- Thin-wall (cavity and die/mold)
- Parting perimeter information
- Waterfall (geometry-based)
Added on 28 Nov 2018 is an orientation plotting tool. The tool plots casting orientation objectives on two hemispherical projections. The tool allows selection of objective, visualizing objective-specific minima, pareto front points, and single quantile thresholding. A button is available to generate a visualization of the orientation of the casting. Three sample data sets are available, and can be visualized by calling plot_sample_data()
in the examples/optimization_demo/sample_data
folder. Each data set has 1656 decision variable sets and 11 objectives for each. The data was generated using a mesh count of 8e7
, and took about 400 hours of CPU time per data set. The data was not generated by any optimization method, but rather by brute force. It is believed that a direct search (i.e. by pareto_search()
in R2018b) would be faster. It is possible to generate data sets for your own geometries, but would require some work. If you are interested in going down that route, please contact me.
See here.
- CDF Quantiles (matlab_quantiles, UNLICENSE)
- Mesh voxelization (Mesh_voxelization, BSD)
- A suite of minimal bounding objects (MinBoundSuite, BSD)
- Perceptually uniform colormaps (perceptually_uniform_colormaps, custom license)
- PrettyAxes3DMatlab (PrettyAxes3DMatlab, UNLICENSE)
- stlwrite - write ASCII or Binary STL files (stlwrite, BSD)
- subtightplot (subtightplot, BSD)
- vtkwrite : Exports various 2D/3D data to ParaView in VTK file format (vtkwrite, MIT)
- Image Processing Toolbox
- Statistics and Machine Learning Toolbox
- Mapping Toolbox (orientation optimization only)
base_plate.stl
is casting by catia from GrabCad by user RiBKa aTIKAsteering_column_mount.stl
is Steering Column Mount from GrabCad by user Christian Melebearing_block.stl
is a 3D implementation of a 2D drawing from Directional Solidification of Steel Castings, R Wlodawer, Pergamon Press, Oxford, UK, 1966. ISBN: 9781483149110. Available from Amazonbottle.stl
,ring.stl
,sphere.stl
,wedge.stl
are all my own creations and subject to the terms of the license of this repository.
- Improvements to orientation optimization tool
- Simple graphical user interface for analysis
- Improved documentation
- Example visualizations