This paper presents a method to generate self-supporting lattice structures in a topology optimization (TO) framework. Our method is composed of two phases, which are the TO-based subdivision and the TO-based simplification. Starting from a lattice structure with self-supporting lattice unit cells in a coarse resolution, a subdivision method is proposed to adaptively generate the lattice structure based on the density-based topology optimization framework. The subdivision operators are well-designed to preserve self-supporting property on struts, and a filtering approach is proposed to avoid overhanging nodes. To remove redundant struts on the lattice structures generated by subdivision, a simplification method is developed to satisfy the required volume while a self-supporting constraint is incorporated to ensure the manufacturability of the resultant structures. Our method has been tested on both 2D and 3D examples. Experimental tests demonstrate that our method can effectively generate self-supporting lattice structures with stronger mechanical strength.
Here we provide the Matlab codes for 2D self-supporting lattice structure generation. The code can be run on a laptop computer.
First, you just need to run [V,E,A,L,xPhys,cList,vList] = topOLattice_subdivision(nelx,nely,volfrac,bBlackWhite,ItMax) to generate an initial structure, and the result will be stored as 2d_subdivision.mat.
Then you need to run [A, xPhys, L, V, E, cList, vList, sList] = topOLattice_simplification (nelx, nely, ItMax, volfrac) to get the final structure.
Both optimization problems are solved by the method of moving asymptotes (MMA). For the code, you can write email to the authors of the paper "The method of moving asymptotes—a new method for structural optimization ".
Weiming Wang([email protected])
Dongwei Feng([email protected])
Charlie C.L. Wang ([email protected])