- Title: Matlab scripts for Voxelization and One-dimensional Lattice structures for industrial components using Function Representation - Authors: 1) Antonio Bacciaglia, Department of Industrial Engineering (DIN) –University of Bologna, Viale del Risorgimento 2, Bologna, Italy, 0000-0002-4384-6300 2) Alfredo Liverani, Department of Industrial Engineering (DIN) –University of Bologna, Viale del Risorgimento 2, Bologna, Italy, 0000-0002-3255-9381 3) Alessandro Ceruti, Department of Industrial Engineering (DIN) –University of Bologna, Viale del Risorgimento 2, Bologna, Italy, 0000-0001-7947-3932 - Abstract: These scripts present an efficient method for designing struct-and-node lattice structures for industrial applications. Traditional computer-aided design tools struggle with lattice structures due to the high complexity and many facets typical of digital models, necessitating alternatives. An approach based on function representation is usually adopted for triply periodic minimal surface lattices but not for strut-and-node lattices, which are the topic of this study. The proposed method defines the base unit cell geometry using function representation primitives and operations, followed by triangulation and spatial replication for both uniform and graded lattices. Unlike conventional techniques, this method eliminates the need for boundary representations of lattice structure models, leading to more efficient data handling. The results of this research have broad implications for developing lightweight 3D components optimized for additive manufacturing. The approach is intended for industrial applications where designing complicated geometries quickly and efficiently is necessary to achieve lightweight components. - Licence: Creative Commons: Attribuzione 4.0(CC BY 4.0) - Structure of shared data: The folder contains six files, 5 Matlab scripts and one Python script: [N,M] = singleCellwireframe(length,type,origin) is a Matlab function that creates the [Nx3] and [Mx2] matrices knowing the type (unit cell topology, as string), length of the strut, and origin point of the lattice structure ([1x3] point coordinates); cylinderImplicit = solidCylinderImplicit(A, B, r) is a Matlab function that outputs the FRep as a function handle of a cylinder that connects the points A and B given as [1x3] array. The cylinder has a radius of r; [output_file] = Boolean_intersection(file1,file2) is a Matlab function used to perform the boolean intersection operation between two STL files (file1 and file2). This function is connected with Python to use the Boolean_intersect.py function, based on the trimesh module. [gradingDirection, gradingFunction] = gradingDefinition(type_grading) is a Matlab function that defines the Mathematical grade scaling function to be applied to the lattice structure knowing the type of grading the user wants. Three type of grading are available at the moment: scalar, no grading and Mathematical grading (exponential, polynomial and sinusoidal). The output variables are the grading direction vector [1x3] and a function handle that describes the Mathematical function of the grading. [fv_full] = gradingComputation(type_grading,gradingDirection,gradingFunction,fv_full,bbox) applies the grading according to the grading direction, the type of grading and the grading function. The grading is applied to the vertices of the surface triangulation saved in fv_full, which bounding box dimensions are saved in bbox. - Year: 2025 - Version 2.0: the gradingDefinition and gradingComputation functions are added in this new version to model graded lattices. - Doi: https://doi.org/10.6092/unibo/amsacta/8368 - Corresponding author: Alessandro Ceruti, email: alessandro.ceruti@unibo.it - Software version: Based on Matlab 2024b and Python 3