# Design of Fiber-Composite/Metal-Hybrid Structures Made by Multi-Stage Coreless Filament Winding
## 2 Materials and Methods
### CFW Design Procedure  
The design of a CFW structure mainly focuses on the fiber net form-finding, including the winding and hooking syntax, since it determines the structural performance together with the material parameter. The hooking syntax is a list that enumerates the hooking conditions for each winding step for each anchor [44]. Because it is not economical to compute and evaluate all permutations of the fiber net and the winding plan, the strategy followed in this study was to reduce the design space as best as possible based on an initial design approach. For this, several geometrical-, structural- and fabrication-orientated conditions can be utilized, which must be defined in accordance with the application scenario of the component and fabrication setup. The predefined methods allow the analysis of the winding object to evaluate permutations based on such criteria. Checking the wrapping angles at each node allows evaluating if there are too strong fiber diversions reducing strength (acute angle), or if there is not enough curvature causing fibers to lose contact with the anchors (flat angle). A windability test checks if all the segments along the winding path can be deposited from one or more source points without being blocked by previously placed fiber segments. This is important because CFW does not currently allow fibers to be threaded through. In addition, it is possible to check whether a graph is Eulerian, i.e., whether it has a path that starts and ends at the same node and passes all edges once [50]. This is often desirable in CFW, although multiples greater than one are also relevant. For example, it may happen that a structure must be wound not once but twice to fulfill this criterion (Figure 2). The design process follows a linear procedure with multiple iterations if necessary:  
1. Definition of boundary conditions, such as build volume, mass budget, load inductions points, anchor geometry, load cases, center of gravity, and second moments of inertia;
2. Topology optimization (based on voxels or frameworks) to identify the load path for all relevant load cases;
3. Translation of this initial design into a simplified graph (nodes, control points, and edges);
4. Framework analysis to estimate the material distribution for each edge;
5. Creation of the winding syntax and separation in sub syntaxes and bridges;
6. Definition of the anchor orientation and creation of the hooking syntax;
7. Final check if the structure meets the requirements and can be fabricated. The needed parameters in the first step can be derived from the application of the component. Steps two and three can be done externally based on voxels and then imported via an adapter (self.import_all_from_csv, see Table 1), or it can be performed internally using a framework representation of the component. For this, the build volume (self.find_box) is randomly filled with points that have a minimum distance to each other (self.add_random_points). A graph (Figure 5f) is then created based on adjustable criteria, such as the maximum number of connections or maximum edge length (self.connect_nearby_nodes, self.connect_nodes_by_distance). Subsequently, paths are determined between the load induction and bearing points for each load case (self.walk). Locations with points that are traversed more often than others represent a part of the force flow and are preserved. After all possible pairs of points have been investigated with sufficient iterations, the paths are superimposed and analyzed by a framework analysis (self.find_edge_load). In step three, less loaded connections are then gradually removed (self.remove_edge), while the remaining control points and node positions are varied slightly (self.move_node) until the iteration reaches an optimum. After the nodes, control points, and graph are set (Figure 5a), the framework analysis (Figure 5b) in step four can also be used to refine the position of control points and nodes or to remove unused sections of the fiber net. In step five, the winding syntax is designed.