6. Top-down process
To create an FPP model from CAD model you need to follow a top-down procedure. This top-down process is mostly incorporated in the model explorer of Artist Studio. The whole procedure is divided into two parts of Artist Studio which are Patch Artist and Motion Artist. We will start with Patch Artist, which provides various modules for fiber placement.
6.1. CAD Model
6.1.1. Import part
Import the model as explained previously in “Getting started” section. Alternatively, the user can also import CAD model by clicking right on CAD model
and then select Import part
.
Artist Studio supports these formats of 3D model:
Brep Files
Iges Files
Step Files
Stl Files
After importing the CAD model you can use various tools of Ribbon bar such as changing orientation, viewing in different viewports, changing render mode and render style.
6.1.2. Export CAD model
Once the CAD model is imported in Artist Studio, the user can export the CAD model at any stage of FPP process to reconstruct or remodel using any other external software. To export the CAD model you can click right on CAD model
and then select Export CAD model
.
6.1.3. Define mount point
The mount point is a position on the CAD model that defines the center of the robot to tool mount. It is defined as the position on the tool that corresponds to the center point of the tool mounting, i.e. the center of the mounting plate on the tool’s surface.
Hint
For easier selection, it is generally recommended to use the mount point as zero coordinate value in your CAD model.
It can be selected after selecting the CAD Model root item in the tree:
Choose a coordinate system that has been defined in your CAD model in the drop-down list:
Depending on the imported CAD file, the list might be empty. In this case, please define a coordinate system as explained in detail in Create system.
The created Mount point can be displayed in Patch Artist as well as Motion Artist by setting it to visible:
6.1.4. Rename
Click right on the imported CAD model and select the
Rename
option.
Type new name for the CAD model and then click outside the text bar or press Enter.
CAD model will be saved with the new name.
6.1.5. Set system position
Note
This functionality is only applicable to SAMBA Step systems.
With the Set system position
functionality, it is possible to automatically align systems in the CAD model
with pre-defined positions of a machine. Based on the selected position (Base) and the CAD model system (System),
the appropriate mount point system is calculated and set.
Click right on the imported CAD model and select the
Set system position
option.A pop-up dialog will open:
Select the Base from the dropdown. On SAMBA Step machines the Mount frame has to be set to the values of a measured base of the machine. This can then be selected in the drop-down.
Select the corresponding CAD model system as System
Click OK button to confirm.
Once OK has been clicked, Artist Studio will calculate the correct mount system and set it as the active mount point.
6.1.6. Delete
Click right on the imported CAD model.
Click on the
Delete
button.CAD model will be deleted.
6.1.7. View model layout
A complete model layout from the model to assemblies, assembly to solids, solid to shells, shell to faces, face to wires and so on can be viewed in Artist Studio.
To view parts or subparts of the 3D model just click on the drop-down button as shown below:
It is also possible to import coordinate systems together with the CAD data which will be shown by Systems
in the layout.
6.1.8. Create system
The CAD models can be specified with their own coordinate systems (local) which will be translated according to the global coordinate system of Artist Studio. A user system can also be used as the tool’s Mount point or to define the fiber orientation. To create a system, expand the layout of the CAD model by clicking on the drop-down button.
Right click on the Systems
button and click on Create system
.
This will create a system where the user can define the coordinate system for the CAD model in its Property editor window.
Enter here the values for xyz coordinate system and choose the color depending on the requirements.
Following user defined coordinate system will be created.
6.1.9. Show or hide parts
The eye button provides the functionality to show or hide parts of the model. To hide any part just click on the green eye and click on the colorless eye to view parts.
6.1.10. Viewing and reversing normals
Every CAD model has normals. Normals influence the direction from where Picker places the layup. The orientation of the normals should be pointing outside the geometry for ideal placement of the Laminate.
Viewing normals
The easiest way to check normals is to select on Show orientation
from the ribbon bar under Render mode
group.
And then select a face or shell from the CAD model.
Reversing normals
Sometimes, there is a need to reverse the normals for generating layup of the FPP model. As shown in the image below, the orientation of the marked face is pointing inside.
For flipping the normal, select the face from the CAD model for which you want to reverse the orientation of the normal. You can also select a shell to reverse the orientation of all the faces consisted in the shell. Now, click on the Reverse
button from the property window.
The normal of the selected face will be reversed as shown below:
6.2. Shape extractions
After checking the normals, the next step to create FPP model is to extract shapes such as Surface, Boundaries, Master Curves and Points. Click on the drop-down button to define them. Shape extraction is incorporated with Selection tools for easy and multiple selections of faces or curves. Click here to know more about them in details.
6.2.1. Extract surfaces
The surface is a CAD-based entity that describes the part surface on which a layup would be generated. Right click on Shape extractions
and click on Extract surface
to extract surfaces.
This will create an empty surface where you can extract surface from the CAD model. Surfaces can be selected in two ways:
- From entity window: Right click on the empty surface and click on the
Select
option.
- From entity window: Right click on the empty surface and click on the
- From property window: Select the created surface and click on the
Select
button from Property window.
- From property window: Select the created surface and click on the
On clicking either of the Select
button, selection toolbox will appear. Use the toolbox to extract the surfaces. Before extracting the surface, select Picking type
from the Ribbon bar.
This can be done in 3 ways:
Manual Selection - Select the face by normal clicking on the face. For multi-selection, select the faces with the Shift key pressed.
- - Select one face and click on this icon. With every click, adjacent faces will be selected.
- - Select one face of the assembly and then click on this icon. It will select the whole assembly corresponding to the selected face.
Next step after selecting a surface is to click on the green tick as shown below.
6.2.2. Extract boundary
The CAD model must at least contain a boundary line enclosing the area which is supposed to be filled with layup. This is the so-called patch boundary.
The patch boundary defines the area where the patch would be placed by the manufacturing cell. However, it is not necessary to explicitly define a boundary. Patch Artist automatically extracts the boundary of a surface as a Boundary
. To explicitly extract a boundary follow these steps:
Click right on Boundaries under Shape extraction and then click on
Extract boundary
.
With the creation of boundaries, you can define areal constraints for your layup. For creating a boundary just click on the selected surface which will create a node on a surface. Whenever you make a new point by clicking on the surface, Artist Studio will join the previous point with the new one. You should make sure that the created boundary is enclosing the surface.
Using the button Select
from the Property window allows easy extraction of boundaries:
Here, you can create a boundary by simply selecting the edges of the surface depending upon the requirements.
At first, select the Picking type
from the Ribbon bar either edges or wires.
This can be done in 3 ways:
Manual Selection - Select the edge by clicking on the edge. For multi-selection select the edges with the Shift key pressed.
- - Select one edge and click on this icon. With every click, the adjacent edges will be selected.
- - Select one edge of the assembly and click on this icon. It will select the whole assembly corresponding to the selected surface.
Next step after selecting a boundary is to click on the green tick as shown below.
tip - Keep the Control key pressed for selecting more than one edge.
6.2.3. Extract curve
The orientation of the patches inside a layer is in most cases defined by a so called Master curve. One way of creating such a Master curve is by extracting a Curve from a CAD part. Follow these steps to create a Curve:
Click right on Curves
under Shape extractions and then click on Extract curve
.
To extract a Curve the option Select
is used: Simply click on the edges or wires for extraction of a Curve in the same fashion as explained above for the boundary extraction.
Selection toolbox in viewport
Selection toolbox contains tools for selecting different shapes such as surfaces, boundaries and curves. Various selection tools are shown below:
For saving the selection.
To close the selection toolbox.
Undo
Redo
Select adjacent surfaces - First select a face. Then with every click on this tool, adjacent faces will be selected from the model.
Select all connecting surfaces - This gives user more power. With one click, all faces corresponding to the selected face in one assembly will be selected.
Select adjacent edges - Here, first select an edge. Adjacent edges (making the angle less than or equal to 15°) will be selected with every click on this tool.
Select all connecting edges - Select an edge from the assembly. With one click on this button, all edges (making the angle less than or equal to 15°) will be selected.
6.2.4. Extract point
Some methods for defining a Master curve depend on a point extraction. Follow these steps to create a Point:
Click right on Points
under Shape extractions and then click on Extract point
.
To extract an existing node the option Select
is used: any CAD node can be picked.
To create a new point the option Create and select
is used.
This can be done in 3 ways:
by coordinates - Creates a point with given x, y and z coordinates.
from curve - Select a curve extraction, a system, a system axis and an extremum type. Artist Studio will find the first point on the curve that is either closest to or furthest away from the plane defined by the system and the selected axis.
from surface - Select a surface extraction, a system, a system axis and an extremum type. Artist Studio will find the first point on the surface that is either closest to or furthest away from the plane defined by the system and the selected axis.
6.3. Tape types
6.3.1. Create tape
Within this option, the user can define Width, Thickness and Areal weight of the tape. These are important for fiber layup placement on the model and these parameters will define the quality of the output. Moreover, Areal weight is required to calculate the weight of the fiber material in the Laminate.
Click right on Tape types
then click on Create tape
.
After clicking on Create tape
, enter the values for Width
, Thickness
and Areal weight
of the specific tape.
Note
All the other values will be automatically imported when loading a CATIA file.
6.3.2. Quality Parameters
The user can make changes to the quality criterion of a tape which is used for layup overlap optimization. This option provides three types of quality functions: QP, Linear and Quadratic. All functions will favor higher overlaps between patches during optimization. However, their convergence behavior is vastly different. When in doubt use the Quadratic approach.
QP - A complex physical strength based quality criterion derived from Cevotec’s research on optimal FPP layups. Only valid for Cevotec dry fiber material.
Linear - Linear interpolation between a lower and an upper limit. Overlap lengths below the defined lower limit will have the quality value of 0.0, while those above the upper limit will get the the maximum quality 1.0 assigned. Please refer to Fig. 6.1 for details. The factor b specifies the drop-off of the influence of a gap in the direction of Thickness and usually doesn’t need to be modified by the user. The Linear option is only recommended in combination with layers with two sublayers. For more sublayers please use Quadratic.
Quadratic - Similar settings as Linear but with a quadratic interpolation between lower and upper limit. Best suited for layers with more than two sublayers. See Fig. 6.1 for a comparison with the Linear quality function.
Note
The maximum overlap length between two patches is always half the patch length. This doesn’t mean, though, that the upper limit can’t be higher (but you will never be able to achieve an overall laminate quality of ~ 1.0). See also Fig. 6.1.
6.4. Patch types
Note
This part is only for Patch Artist users.
Right click on Patch types
and select Create Patch
. A patch will be created and the following parameters can be set
via the property window:
- Name
The name of the patch type. Left click the default name (here it is Patch Type 1) and type a new one to change the name.
- Tape
It shows the type of tape used. Select a Tape type via the drop-down menu.
- Length definition
Use of either constant or variable patch length. Patch lengths may be chosen to be constant across the entire laminate or varying from patch to patch. For more information on variable patch length and its use see Variable patch length. Choose from the following options in the drop-down menu:
constant
Constant patch length. All patches of this type will have the same length defined by the
Length
property.continuous
Variable patch length within a given range defined by
Length
. Patches may have any length between the defined minimum and maximum length.discrete
Note
Discrete length not yet supported.
Variable patch length with a given set of discrete patch lengths. Patches may have any length within the set specified by
Length
(e.g. 40mm, 60mm, 80mm or 92mm). No other lengths than the ones specified are allowed.
- Length
The length or range of possible lengths of the patches. Options here depend on the chosen
Length definition
. They are the following:constant
A single value
Length
. This sets the length of all patches to the value specified here.continuous
Two seperate values
Min. length
andMax. length
. They specify the allowed minimum and maximum patch length. Patches may have any length between these two values.discrete
Note
Discrete length not yet supported.
A list of allowed patch
Lengths
. Enter all allowed patch lengths in [mm] as a comma-separated list.
- Shape type
Geometry of the cutting edges of the patch. Permissible cutting geometries depend on the capabilities of your manufacturing system. You can select between the following options:
Rectangle
A simple rectangular patch with no additional settings.
Trapezoid
A trapezoidal patch with additional parameters for the angles at the front and back of the patch. The angles are relative to the patch x-axis and the direction of rotation is given by the patch normal and the right-hand rule. A 0° angle will therefore define a rectangular cutting edge. The nominal length of the patch is measured along its centerline.
The trapezoid will degenerate to a triangle if a short patch length and large angles of reversed signs are chosen.
Isosceles trapezoid
Similar to Trapezoid but front and back angle are coupled. The only parameter is the (front) angle and the back angle will automatically have the same absolute angle with reversed sign.
After creating patches, press Enter
or click outside the entry.
6.5. Machine configurations
6.5.1. Overview
Machine configurations in Artist Studio contain essential data about your production system, and are stored within the “Machine Configs” part of FPP files. This data includes Motion Artist defaults specific to each system.
While machine configurations are primarily used in Motion Artist to ensure precise robot movement generation, some configuration details also impact laminate design in Patch Artist. For example, estimating the cutting scrap rate depends on the length of a fixed gap between patches, which is needed whenever the trapezoidal angle changes.
If your main focus is laminate design in Patch Artist, creating machine configurations can initially be optional. They only need to be completed before generating machine data in Motion Artist.
6.5.2. Taught vs. generated positions
The picker follows a series of positions during operation, usually pick, camera, heating, placement start, approach, correction, target, rolling, leaving, placement end, and a final camera check. Which of these movements are actually used depends on the SAMBA system type.
Movements responsible for deposition of a patch (i.e., from approach to leaving) are generated by Motion Artist and exported in the final robot program. For more details, see Patching section. Users can add additional avoidance, approach or leaving movements, which also become a part of the robot program. In contrast, initial and final positions - like pick, camera, heating, and placement start/end (gray in the screenshot above) - are manually taught during system setup and only simulated in Motion Artist, but typically not exported.
To ensure that Motion Artist simulations align with real-world operations, and thus to enable effective collision detection and avoidance, these exact taught positions should be provided to Artist Studio as JSON files (in the ‘rob’ subfolder of the Artist Studio installation, or if needed in a custom folder, see Custom cells).
Note
For SAMBA Pro and SAMBA Step M, the heating position is not taught, and it is exported in robot programs. Its initial default value is still loaded from a JSON file.
These files are usually initially provided by Cevotec after Factory Acceptance Testing (FAT). If any positions are retaught or modified, users should update these JSON files and share them among engineers using Artist Studio. Once loaded in the Machine Configs section in Artist Studio, these default values can be adjusted as needed.
For systems with two robots, the machine configuration includes a default deposition frame, which can either be determined within the production system or manually set in Motion Artist. Note that deposit optimization may adjust this default position per patch.
6.5.3. Fields in machine-config JSON files
The following taught positions are primarily used for simulation and collision detection and are generally not included in the robot program:
pickPatchPosition: Pickup position on the conveyor belt.
cameraPosition: Position above the camera, used before and, if needed, after deposition.
heatingPosition: Position above the heating unit.
placementStartPosition: Last taught position the picker reaches before deposition (for systems made in 2024 or later).
placementEndPosition: First taught position the picker reaches after deposition (for systems made in 2024 or later).
Special positions for systems with two robots:
depositFrame: Default point of contact between the picker gripper and the positioner tool during patch placement.
worldZeroPosition: Reference position for exporting picker movements, usually matching the picker robot’s coordinate system. Taught positions are also represented relative to this position.
Special positions for systems with a rotational axis positioner:
depositAngle: Default angle of the point of contact between the picker gripper and the positioner tool during patch placement. The deposition point’s distance from the axis depends on the tool’s shape after rotation. Push-in direction is defined relative to the tool surface’s normal at this deposition point, with optional manual adjustments.
Special positions for systems with one robot:
coordinateRootPosition: Fixed offset of the picker’s root position.
worldZeroPosition: Reference point (relative to the coordinate root) for export of picker movements, often a designated table corner in 2D placement. Taught positions are also represented relative to this position.
depositFrame: Used as “Mount Frame” for calculating mount points via the “Set System Position” dialog, see Set system position. For SAMBA Step L, additionally contains the default value of the external axis to use during deposition.
Once loaded to a machine config, above positions are accessible in the Property editor window.
6.5.4. Other values in machine configs
Machine configs contain also the following parameters, which are not initially loaded from JSON files:
Trapezoid cutting gap: The length of scrap material that the cutting unit leaves each time the trapezoid angle of the patch shape changes.
Approach height: See Patching section.
Correction height: See Patching section.
Target speed: A value between 0 and 100% to adjust the speed of the gripper as it moves to the Target position. Lower speeds may improve the uniform draping of the patch on the surface.
Target acceleration: A value between 0 and 100% to adjust the deceleration of the gripper in the final part of the movement to the Target position.
Touch time: The wait time of the gripper at the Target (pushed-in) position.
Push-in depth: See Patching section.
Retraction speed: A value between 0 and 100% to adjust the speed of the gripper as it moves away from the Target position. Lower speeds may help prevent patches from being peeled away from highly curved surfaces.
Retraction acceleration: A value between 0 and 100% to adjust the acceleration of the gripper as it moves away from the Target position.
Leaving height: See Patching section.
6.5.5. Creating, modifying and resetting machine configurations
Machine configurations are saved in the FPP file.
To create a new machine configuration from a JSON file, right-click on the “Machine Configs” item in the Artist Studio tree.
Once created, you can edit the positions and values as needed. If necessary, reset the configuration to values from any JSON file for the same machine type.
6.6. Laminate: Patch
Patch Artist uses a discontinuous patch based approach to build a so-called Patch Laminate. It is the root element in this hierarchical structure. It exists only once in every project and contains all other entities.
As shown in the above figure, Layups are organized hierarchically in containers to reduce complexity. The user can view Number of stacks, layers, sub-layers, chains, patches in the Property editor window.
6.6.1. Create patch stack
The next (hierarchically) lower level is called Stack. Stack is the first branch of Laminate. The user can create any number of stacks depending on the model under Laminate. Click right on Laminate
and then click on Create patch stack
.
Stack is a collection of several (partially) overlapping layers.
6.6.2. Create patch layer
Advancing further down the hierarchy, the next lower level after Stack is layers. There can be any number of layers under one Stack. A layer describes a layup of multiple patches that can be defined by common properties. To create a layer, right click on the created stack Patch stack 1
and select Create patch layer
from the context menu.
6.6.2.1. General settings
Let us understand the Property window of Patch Layer in detail:
- Type
Shows the type of entity selected above by the user. It would be Patch layer in this case.
- Name
Shows name of the layer. The user can rename or delete by right-clicking on the layer.
- Surface
Select previously extracted surface from the drop-down menu. Note that only one type of surface could be selected under one type of layer.
- Patch type
Within this option, the user can select previously created patch types. Only one type of patch can be selected per layer.
- System
You can select a previously imported or manually created coordinate system for this layer. If you choose to keep the Default system, a system similar to the global coordinate system shown in the viewer is used. Be aware that not all methods of master or slave curve creation require a coordinate system.
- Master curve definition
The Master curve is the reference curve for the creation of Slave curves. There are multiple ways to create a Master curve. See Master curve definition for details.
- Slave curve definition
Slave curves define the orientation of the patches to be created. For this purpose, the start and end point of each patch lies (at least initially) on a Slave curve. See Slave curve definition for details.
6.6.2.2. Master curve definition
The master curve either acts by itself as a reference for the desired fiber orientation or it is used to create seed points for a subsequent slave curve generation. We will dive deeper into this topic in the following section on slave curve creation.
6.6.2.2.1. Master curve specific settings
Settings relevant to master curve creation are depicted below. Depending on the selected curve definition not all settings will be available.
- Master curve definition
Algorithm for the creation of the master curve. See next section for details.
- Curve extraction
Selection of an existing curve extraction using a drop-down list. Please refer to Extract curve for guidance on how to create a curve extraction.
- System
Some curve creation methods require a reference orientation in form of a vector. The x-axis of a coordinate system provides such a vector. Please refer to Create system for guidance on how to create a system.
- Starting point
The starting point for curve creation. Selection of an existing point extraction using a drop-down list. Please refer to Extract point for guidance on how to create a point extraction.
- Angle
An angle relative to the projection of the system x-axis onto the local surface plane at the location of the starting point. Defines the curve orientation.
- Max. master curve length
The maximum length of the curve, applied in both curve creation directions (i.e. maximum combined length will be 2x this length).
The following figure shows how the curve fiber orientation is calculated by using above settings.
6.6.2.2.2. Methods of curve creation
There are multiple ways to define your master curve. Select the one that is most suitable for the laminate design task at hand.
by extraction
Select an existing Curve extraction from the drop-down menu. There are no additional settings available. Use this method if you want your curve to follow existing edges of your model or if your design requires a complex shaped curve that can only be realized using an external CAD tool.
by plane
The curve will follow the intersection of the surface with the plane normal orthogonal to the local surface plane at the starting point. Only the
by plane
andby external plane
curve types can form closed curves.by geodesic
The curve will follow the shortest path along the surface. It can also be interpreted as a curve that is free from lateral forces when tension is applied on the curve. It is therefore commonly used in winding applications.
by direction
The curve will follow this reference orientation by locally projecting the
by external plane
Similar to
by plane
but not affected by the surface normal at the starting point. Intersects the surface with a plane that is normal to the system x-axis and runs through the starting point. Just likeby plane
, this method is able to form closed curves.
The following table shows an overview of required settings for each algorithm.
6.6.2.3. Slave curve definition
There are multiple methods to create Slave curves that can generally be divided into two groups, based on their usage of the Master curve:
6.6.2.3.1. Master curve as reference for fiber orientation
When selecting by parallel offset
, parallel offset curves are created from the Master curve. The distance between all curves will be equal, resulting in a minimal amount of gaps and overlaps in the laminate. However, in areas of high curvature (curve and/or surface) only patch start and end point are guaranteed to be exactly on the curve (this is the case for all slave curve definitions). The master only
slave curve definition is a convenience function that covers the special case of the parallel offset, where only a single curve (the master curve) is used.
Note
You will also see the option [BETA] by parallel offset
.
This denotes an experimental version of a new parallel offset algorithm that can handle certain cases better than the default one.
Note that the new algorithm’s speed and accuracy heavily depend on the mesh density of the surface.
Curve definition |
Example |
6.6.2.3.2. Master curve as base for seed points
Seed points are created along the Master curve. For each point, a curve is created with the same algorithm as described for the creation of the Master curve (by direction
, by plane
, …). In contrast to the parallel offset, the curves are usually only equidistant along the Master curve. In addition, there is a second group of curve creation algorithms that behaves similarly but uses the local curve tangent of each seed point as reference orientation. Consequently, they are named following a by relative ...
scheme.
Warning
As of Artist Studio version 1.3.34, the angle definition of the by relative plane
slave curve method slightly changed. An angle of 0° used to create a curve that is orthogonal to the master curve. To be in sync with other “relative” methods, this value is now defined to be 90°.
The table below shows examples of all curve creation methods.
Curve definition |
Example |
6.6.2.4. Create slave curves
Slave curves are the curves which are created by offsetting the Master curve with a constant offset value in order to cover the Patch zone. Click on the drop-down menu to make changes in the default settings. The user can also create Slave curves from the context menu of the created Patch layer.
- Number of sublayers
Enter the Number of sublayers for creating FPP model.
- Sublayer offset positions
Each sublayer in a Layer should be also transversally shifted against each other to increase the mechanical performance. The offset position has to be between zero and the patch width. If the number of sublayers is higher than the number of sublayer positions then curve pattern will be repeated after the number of sublayers. The default value of Sublayer offset positions changes with respect to Number of sublayers. To make changes in the default value, uncheck the default button and enter the value for Number of offset positions here.
Sublayer offset positions
Slave curves
2 (default for this geometry)
3
4
- Offset width
It is a transversal offset width of Slave curves. Select an appropriate offset width depending upon the requirements.
Offset width [mm]
Slave curves
15 (default for this geometry)
30
50
- Trim edges at turning point
Within this option, the user can switch ON or OFF trimming of edges at the turning point of Master curve. Let’s assume that Master curve is not completely covering the surface. By switching ON or OFF this option, you can observe the following changes in your geometry:
ON or OFF
Slave curves
ON
OFF
The user can also create Trim curves from the context menu of the created Patch layer.
- Curves
Click on the
Create
button to generate Slave curves on the model.
6.6.2.5. Modify curves
Within this option, the user can modify Slave curves depending on the requirements. Click on the drop-down menu to make changes.
- Patch boundary
Select the extracted boundary for defining a patch boundary. By default, Patch Artist takes surface’s boundary to define Patch boundary.
- Trimming method
Adjust patches creates intersections and removes all patches that are outside the boundary. Adjust curves trims the curves between the first and the last intersection with the boundary.
- Maximum layer width
By changing Maximum layer width, the user can increase or decrease the area covered by the patches. Its value should be greater than the width of the tape otherwise Patch Artist would not create Slave curves.
Maximum layer width [mm]
Slave curves
560 (default for this geometry)
300
50
- Minimum curve length
Minimum curve length is the value which defines the minimum length of Slave curve. Patch Artist will not create Slave curves whose length is below this value.
Minimum curve length [mm]
Slave curves
0 (default for this geometry)
560
1000
- Intersection tolerance
It is defined as a tolerance between the intersection of the extracted boundary and Slave curves.
- Boundary intersection
This button is only active if the user has selected a patch boundary. However, it is not required to calculate intersections if the boundary is at the edge of the surface. Click on the
Trim
button to modify Slave curves.
6.6.2.6. Create patches
This step will generate patches on the surface based on the Slave curves created above. Click on the drop-down menu to make changes in the default settings. The user can also create Patches from the context menu of the created Patch layer.
- Chain start position
Within this option, you can define the number of starting positions for chains. It is recommended to use 10 (default value) as Chain start position for a good quality of layup but for fast optimization and where quality doesn’t matter you can decrease this value.
- Maximum boundary overlap
It defines the allowable overlap between the patch and patch boundary. The user should enter a small value of Maximum boundary overlap to reduce scrap but small values may result into large gaps close to patch boundaries. An appropriate value for Maximum boundary overlap should be entered depending on the requirements. To generate patches outside the boundary, the user should define Curve extrapolation length for creating Slave curves outside the extracted boundary. Let’s take 60 mm as Curve extrapolation length for the example shown below. For better understanding, the bottom assembly of Gear box is hidden.
Maximum overlap factor [%]
Patches
0
50
100
- Longitudinal overlap
With this feature, the user can define the value with which patches overlap each other.
Longitudinal overlap [%]
Patches
0
25
75
- Overlap rule
By default the Longitudinal overlap specified above is used as a fixed value, which will generally result in a gap between the end of the chain’s last patch, and the end of the curve. In order to fully cover a curve exactly from the start to the end, the restrictions on gaps and overlaps can be loosened by having the chosen overlap value act as a lower or upper limit instead. Note that for open curves with even overlaps, changing the chain start position will not shift the chain.
- Curve extensions
As described in FPP basics, sometimes there is a need to extrapolate Slave curves. Here, you can decide to extend some or all of the curves.
- Max. curve deviation
Note
For variable length only
Set the maximum allowed angular deviation of the patch center line from the corresponding segment of the guide curve. Patches will be made shorter in order to fulfill this requirement. This will result in short patches where curvature of the guide curve is high and longer ones along straight segments of the curve. Setting the maximum value of 90° eliminates all effects of this criterion.
- Max. push-in depth
Note
For variable length only
Set the maximum allowed push-in depth required to create patches. To fulfill this requirement, patches will be made shorter in order to decrease the required push-in of the gripper. This will result in short patches where the underlying surface is not flat. Set this according to gripper constraints. A value larger than the maximum patch length eliminates all effects of this criterion.
- Patches
Click on
Create
button to generate Patches on the model.
6.6.2.7. Optimize layup
This part of Model tree consists of various options to optimize the layup by making changes in the default settings.
- Algorithm
Ant algorithm is an heuristic population based algorithm that uses a number of individuals (each representing a solution) that interact with each other over the specified number of iterations to find an optimum solution. However, the user can choose a high value for Nb. of iterations and Population size for a better solution but it will consume more time.
- Quality function
Select the type of quality required for the CAD model such as minimum or average.
- Population size
Enter here the number of values you want per iteration for Ant Algorithm.
- Nb. of iterations
Within this option, enter the maximum number of iterations required for optimization of layups.
- Max constant iterations
Here, enter the number of iterations you want to be performed by the selected algorithm. It is a stop criterion for optimization which means if the result of the optimization is coming out constant for the entered number of Max constant iterations then optimization algorithm will stop. Recommended number of Max constant iterations is between 10 to 50.
- Layup optimization
Click on the
Run
button for Layup optimization.
6.6.2.8. Draping
Note
New in 1.3
By default, patch creation uses a projection algorithm to approximate the shape of the patches. This approach is usually sufficient for laminates with slight out-of-plane curvature, as well as for all laminates with low requirements on the accuracy of the patch preview. As an additional step, users may drape patches, which results in a more accurate prediction, especially when working with challenging geometries.
For so called kinematic draping, the center point of each patch and its respective orientation is used to create two lines on the surface: one in patch direction and the second perpendicular to the first (the blue lines in the image below). Starting from these two orthogonal lines a mesh with equidistant segment length is propagated to the corners of the patch. Each node of the patch lies exactly on the surface.
As a consequence, draped patches will look different than their projected counterparts but their center point will always stay the same. The accuracy of the draping process is determined by the mesh discretization.
Warning
You should be aware that, although draping is more accurate than projection, it doesn’t take into account any non-geometric effects like material stiffness, slippage of the patch on the tool surface or the deformation of the gripper. All of which can cause a significant deviation from the draped geometry.
There are three reasons to perform draping on curved geometries:
It improves the prediction of the patch boundary, making it possible to judge very small gaps and overlaps between patches.
It creates a smoother representation of the patch, providing higher preview quality for product visualization.
It is a prerequisite to allow generation of rolling motion steps (see Rolling motion).
To drape a complete layer, click on the Draping Run
button
You can change the mesh size (length of one segment of the “net”). Smaller values lead to more precise draping.
For an individual patch the Is draped field indicates whether a patch is draped.
If it is not, you can click on the button next to the Is draped field to drape just this one patch.
6.6.3. Manual adjustments
You can manually move patches (see Manually adjusting positions of patches), change gripper push-in orientation for every patch, or add gripper rolling motion for patches on curved edges (see Gripper handling).
6.6.4. Patch layer duplication
To streamline laminate creation, patch layers can be duplicated. There are two duplication options:
- Full patch layer
This will copy the entire patch layer, including all sublayers, chains, and patches.
- Only settings
This option duplicates only the settings used for the creation of the slave curves and patches.
Note
If Thick laminates are enabled, excessive use of fully duplicated patch layers might result in inaccuracies in the resultant laminate. This is because thickness offsets are not considered for the duplicated layers.
6.7. Machine data
From here, we need to begin the manufacturing cell simulation. The layup generated by Patch Artist will be available directly in the Motion Artist module so that we can perform the automatic offline programming of the robots. Click on the Motion Artist tab from the green ribbon bar to begin with the robot simulation.
To simulate the manufacturing, the first step after creating the laminate is to create Machine data that can be fed into the manufacturing cell. Machine data basically contains data of robot movements. Artist Studio converts the layup selected by the user into Machine data which the manufacturing cell understands.
6.7.1. Select manufacturing cell
The first step to start with the simulation is to load the manufacturing cell. The manufacturing cell can be selected in the property window after selecting the Machine Data item in the Model Tree.
Click on the drop-down menu under Robot
entry and select the cell you wish to load. right click on Machine data
and then click on Load cell
. Then select the manufacturing cell as shown below:
Note
The available manufacturing cells depend on the used module
The appropriate cell geometry will be loaded and shown in the viewport.
6.7.2. Calculate mount point
This is an automatic way of calculating the mount point at which the CAD model should be mounted.
Note
Calculate mount point
is only recommended to be used with SAMBA Pro machines with a Stäubli TX200 positioner
and Stäubli TP80 or TX2-90L picker.
6.7.2.1. Preparations & Requirements
Prepare a notepad or form to note down both positioner joints and picker position for multiple points on the tool.
The position data will be entered into the Calculate mount point
dialog after the gathering all the necessary data
with the machine.
Before starting to work with the machine, the following should be prepared:
Picker calibration gripper (calibration spike):
Definition of at least 3 different points on the tool that are
Afterwards, the machine itself can be prepared for gathering the data by following these steps:
Mount the preforming tool to the positioner.
Remove the patch gripper and replace it with the picker calibration gripper.
Connect the teach pendant to the positioner (Stäubli TX200)
6.7.2.2. Gathering data
Move positioner
After the preparations, start by first moving the positioner:
Move positioner with tool into a position that allows accessing the point on the tool with the calibration spike
Let go of dead man’s switch on teach pendant
→ TX200 will apply its breaks and hold its position
Note down which point on the tool is to be probed
Press button on the teach pendant
Navigate to Control Panel (Systemsteuerung) and select by pressing return button:
Expand Controller status (Systemstatus) and then the sub-item Axis position (°) (Achsposition (°)):
Example view of Achsposition (°)
Note down the joint values J1 - J6 for the TX200
Move picker
Then, continue with the picker:
Warning
For machines with the Stäubli TP80 picker robot, the dead man’s switch has to kept on until after noting down the position values. This is to prevent the robot from moving slightly after turning of the drives. This will reduce the accuracy of the picked point. Other picker robot types, e.g. Stäubli TX2-90L or KUKA 6-axis robots, are unaffected by this potential issue and will apply their breaks.
Connect the teach pendant to the TP80 or switch to the teach pendant of the TP80 / TX2-90L
With the teach pendant and the mounted calibration spike, jog the picker to probe the position on the tool.
Press button on teach pendant to open the menu
Navigate to Control Panel (Systemsteuerung) and select by pressing return button:
Expand Controller status (Systemstatus) and then the sub-item Cartesian position (mm, °) (Kartesische position (mm, °)):
Example view of Kartesische Position (mm, °)
Note down the X, Y, and Z values. Rx, Ry, and Rz are not used and do not need to be noted down.
This process will have to be repeated to end up with at least three sets of values of positioner joints and picker cartesian position for each probed point.
Note
If multiple points can be measured with the same tool position, i.e. the positioner does not need to be moved, it is valid to reuse the same positioner stance and joint values.
Note
The same point can be probed multiple times but this will not lift the requirement to probe three different points on the tool.
Note
There is no limit on the number of probed points on the tool. Three points already result in accurate positioning but it can be beneficial to probe four or five points to further reduce the measurement error.
After gathering the data, continue with the next section to run the Mount point calculation in Artist Studio.
6.7.2.3. Run calculation
To calculate the mount point from the gathered data, follow these steps:
Right click on
Machine data
and selectCalculate mount point
.Enter the values of Positioner joints and Picker position for a point in the
Calculate mount point
dialog box. Under the optionCoordinate System
, select an appropriate coordinate system for your robotic tool. The default for the SAMBA Pro system isWorld coordinates
while other systems like the Manz FPP cell require selectingRobot coordinates
.Now click on the
Select
button to select points from the imported geometry.The previous action will take you to Patch Artist and allows selecting a point on the geometry. After selecting the probed point on the geometry, click on .
The selected point will be added with the joint and position data to the list of calculation points.
Repeat steps 2 to 5 until having entered all point data. In case of incorrectly entered values, these can be removed with the
Remove
button. TheRun calculation
button will turn active once at least three different points have been added.Click on
Run calculation
to calculate the mount point.
Artist Studio will calculate the optimal transformation of the tool as your new mount point. It will be created as a new system in the CAD model and selected as your current mount point.
6.7.2.4. Common issues
Failure to calculate mount point:
Double check entered values and the picked positions
Gather the joint and position data again
Inaccurate / invalid placement of tool:
Same steps as for failure to calculate (see above)
Ensure the
Tool mount vector
in the Robot settings is set to all 0 values.
Inaccurate placement:
Check by manually running the placement in automatic mode with the picker calibration tool: Perform a dry run with negative push-in values
Check the effect of simulating camera 2 as “pass”
Using a new gripper? → Check for any camera detection issues
Is the camera 2 calibration still valid?
6.7.3. Create Machine data
To create Machine data right click on Machine data
and then click on Create machine data set
as shown below:
6.7.3.1. Data Generation
A Data Generation
window will appear in which the user can select and specify the data generation logic for the data set. Depending on the type of model the user can select ‘by positioner position’ or ‘by deposit frame’.
Data generation logic: by positioner position
This mode can be used when it is desirable to move the tool as little as possible (example use case shown in the figure below). Here, only the Picker robot will make movements in order to patch the surface and the Positioner robot will hold the tool at a fixed position.
Data source
Data source
is a common option for all types of data generation logic. The user can select or deselect any stack, layer or sublayer for creating a dataset.
Positioner position
The position at which the Positioner robot will hold the tool is defined here. This position will be fixed for a particular data set. During patching, the Picker robot will make the necessary movements and the position of the Positioner robot will remain fixed.
Data generation logic: by deposit frame
By deposit frame
mode can be used when the model is 3-Dimensional and curvy in nature as shown in the figure below. The model will be attached directly to the Positioner robot. The Picker and Positioner robots will make movements simultaneously for the patching of patches on the model’s surface.
Prepreg production
The heating unit in the manufacturing cell provides sufficient heating for the resin of the tape (on the gripper) to heat up so that it can be smoothly patched on the surface of the CAD model. However, some tapes can’t be heated using this heating unit as it might get stick to the gripper. To solve this problem, Prepreg production is required. This process heats the tape externally with the Infrared rays.
To start Prepreg production check the
Add prepreg heating position
button.
Enter the value for
Heating time
for example, 0.5s to define the time for heating.
Create Data
After defining a data type mode and specifying other options of Data generation, the user can fill the dataset with the data by clicking on Create Data
button.
6.7.4. Suppressing dataset
A data set will be created which will contain the data for your simulation. However, if you want to split the laminate layup into several files then different datasets should be created for different files. To do this, right click on the layer you don’t want to be filled in the data set and click on the Suppress
option.
6.7.5. Set deposit frame
In Motion Artist to simulate the manufacturing cell, the first requirement is to set Deposit Frame where the interaction of robots - Picker and Positioner will occur. To set Deposit Frame click on the Robot settings option under Miscellaneous group and select the Patching tab.
Enter the appropriate values for X, Y, Z axis and respective Yaw, Pitch and Roll values under the Deposit Frame.
6.7.6. Status of patches
The patches filled in Data set are represented by different colors in front of their patch name. These colored icons show the status of patches in Data set which are explained as:
- This is because of two reasons:
Limit reached - This icon represents that the movement of the robot has reached its limit and cannot move further. As shown below, the fifth axes of Positioner has reached its limit i.e 120.000. This error can be corrected by optimization or by modifying the patch.
Collision - When a collision is detected in robot movements after checking the collision then turns into .
- This means the robot movements are fine but the collision is not yet checked. To correct this check the collision of the patch. If after checking the collision, it turns into then optimize or modify the patch.
- This is known for the force correction of a patch at your own risk. Sometimes, you know that the robot movements will not collide even if it is showing and you want to pass it on for patching. This can be done by by the Override collision option. This overriding of a patch is shown by .
- When a robot movement is smooth without any collision and ready for patching then it is represented by a icon.
Note
When clicking on a patch in the list, a property window of the selected patch as shown below consisted of various entities such as Type, Name, Collision state and Position will appear.
6.7.7. Collisions
The robot movements are not always smooth. Sometimes, during patching the axes of robot collide with each other or with the assembly of frame.
6.7.7.1. Detect collision
It is important to detect collisions before creating the layup. Collisions can be detected in following ways:
Complete dataset - Select the dataset and click right. Then click on
Check collisions
.One patch - Click right on the patch and select
Collisions
. From the Collisions context menu click onCheck item only
.From patch - Check from patch means that all the patches starting from the currently selected one will be checked for the collision. To detect collisions from a particular patch follow these steps:
Patches with collisions will be shown by and with no collisions by .
6.7.7.2. Display movement
To view the robot movements in slow motion for patching or to detect where the collisions are occurring follow these steps:
Right click on the patch and select
Collisions
.Then select
Display movement
from the context menu ofCollisions
.
6.7.7.3. Override collision
This is a force method to override collisions. Motion Artist is normally using a safety distance of 3 cm to avoid any collision. Override collision is recommended when you are sure enough that collision is not occurring and you want to pass it on for patching. To override collision follow these steps:
Right click on the patch and select
Collisions
.Then select
Override collision
from the context menu of Collisions.
The overridden patches will be shown as icon.
6.7.8. Optimization
The created data set may have errors due to patches having collisions or being unreachable. Artist Studio supports optimizations that aim to automatically adjust the patch deposit frame to have patches both collision-free and reachable.
6.7.8.1. Reachability Optimization
The Simple Optimization varies between ‘by positioner position’ and ‘by deposit frame’ data sets. For the latter, it tries to optimize a patch’s deposit frame by modifying the rotation around the z-axis. In contrast, when used with ‘by positioner position’ data sets, it modifies the x and y values of the deposit frame instead. Both approaches have the common goal of achieving a patch position that is:
reachable
collision-free
leads to minimal movement time from previous patch for positioner
There are three ways to optimize the patches:
Complete dataset - To optimize the complete dataset, right click on the created data set and select
Optimize movements
under the optionOptimization
to optimize all the patches in a particular dataset.One patch - For optimization of a specific patch, right click on the selected patch and click on
Optimize patch only
.From patch - To optimize all the patches starting from a specific patch, right click on the selected patch and click on
Optimize from patch
.
It is also possible to use Optimize patch only
while having multiple patches selected.
6.7.8.2. Deposit Optimization
Note
Deposit optimization has been introduced in version 1.3.23. However, it is still under active development and might end up with unexpected results or cause other related issues while optimizing a dataset. Please ensure necessary precautions are taken, e.g. save a version of the file before running the deposit optimization.
The deposit optimization has been specifically developed for a version of SAMBA PRO that is using two 6-axis robots. As a result of that, the deposit frame is no longer bound to be pointing upwards. In order to put this flexibility to good use, this type of optimization supports optimizing the deposit frame with up to 6 degrees of freedom.
The deposit optimization can be opened in the same way as the reachability optimization:
Complete data set
One patch only
From patch
See Reachability Optimization on how to use these.
Note
The type of production system used will decide whether the reachability optimization or the deposit optimization dialog will be displayed. Currently, deposit optimization is only supported for 12-axis production systems.
The deposit optimization dialog allows setting the optimization type. Currently, only the COBYLA algorithm is supported. In addition to that, both the optimization constraints and the stopping criteria can be adjusted to one’s needs:
- Maximum iterations:
Specifies how many iterations should be run before stopping/aborting the optimization
- Initial step size:
Defines the percentage to use for calculating the default step size value. A value of 50% results in the initial step size being 50% of the optimization bandwidth, i.e. 50% of the absolute difference between the maximum and minimum value of each coordinate. A minimum value of 200 and maximum value of 600 will result in an initial step size of 200 when this setting is set to 50%.
- Min / max coordinate values:
Specify the minimum and maximum values to use for each coordinate. Setting the minimum and maximum value to the same value will result in this value being fixed.
- Absolute parameter tolerance:
Optimization will stop when change of coordinates is below this value, i.e. the current step size is smaller than this value for any given coordinate (except for ones with fixed values): \({\Delta} x\)
- Relative parameter tolerance:
Optimization will stop when the gradient between two consecutive values is below the specified value: \({\Delta} x / x_i\)
- Absolute quality tolerance:
Optimization will stop when change of calculated “quality” of a patch is below this value: \({\Delta} f\)
- Relative quality tolerance:
Optimization will stop when gradient between two consecutive quality values is below specified value: \({\Delta} f / f_i\)
- Stop value:
Value that is deemed a “good solution”. The default value of 10 will result in the optimization using any deposit frame that is both reachable and collision free. It will not optimize the position for the quickest placement.
Deposit frames with a collision are penalized with a value of 1000, unreachable ones with a value of 2000. As a result of that, the optimization will prefer positions with collisions (which are easier to be adjusted manually) over unreachable ones.
The optimization can be run by clicking on Start optimization and will require some time to run. During each iteration, the patch positions are calculated and collisions are checked. In addition to the starting deposit frame, runtime of this optimization highly depends on the complexity and size of the part to produce and the cell itself.
6.7.9. Collision avoidance
Collision avoidance can be used to prevent or reduce the risk of collisions during movements of the Picker between the camera and placement position of a patch. It allows users to manually add additional avoidance points before the Approach and after the Leaving positions of the patch placement. These can then be applied to the complete dataset from the model explorer.
While multiple avoidance points can be added, the maximum number of avoidance points can be limited depending on the machine used. By default, at least two avoidance points before the patch placement and two after the patch placement, i.e. two avoidance points added via menu, are supported on all shipped machines.
Note
The Collision avoidance feature was first introduced in Artist Studio 1.3.36
6.7.9.1. Add avoidance points
Before setting the desired robot position, expand the tree of the patch of the data set to which you want to add avoidance points:
Also ensure that you are currently using Motion Artist or switch to the Motion Artist tab.
To add an avoidance point, follow these steps:
Adjust the axis values of the picker in the Ribbon bar
Right-click on Picker and choose
Add ... > Avoidance point
Wait until avoidance point is added to the patch.
Note
While adding the point, Motion Artist will check the patch for collisions. This can take some time to be processed.
As a result, in fact two avoidance movements will be added:
Every time you add an avoidance point, this extra position will be used by the Picker while moving from the camera to the approach position and while moving back from the leaving position to the camera.
6.7.9.2. Applying avoidance points to data set
Avoidance points can be added manually to any data-set patches. However, the avoidance points added to the first patch are special: they can be applied to the rest of the data set.
Warning
Any avoidance points that were added to any patch other than the first patch will be overwritten while applying the avoidance points.
To apply the avoidance point(s) of the first patch to the rest of the data set, follow these steps:
Right-click on the data set
Click on
Apply ... > Avoidance to data set
Wait until avoidance points have been added to the data set
Note
After applying the avoidance points to the data set, Motion Artist will automatically check the complete data set for collisions. This process might take a long time depending on the amount of patches in your data set.
Hint
There is no need to remove the avoidance points from all patches before applying avoidance points to the data set again. While applying the avoidance points from the first patch, Motion Artist will automatically remove first any old avoidance points.
6.7.9.3. Removing avoidance points
You can manually remove avoidance points one by one. This might make sense in some cases where this extra position is only needed while moving to the preforming tool or back from it.
This can be done by right-clicking on the Avoidance Point movement you want to delete and selecting
Delete
from the context menu.
It’s also possible to remove all avoidance points from the data set:
Delete all avoidance points from the first patch of the data set
Apply avoidance points (from the first patch) to the data set
As a result, all avoidance points will be deleted.
6.7.10. Modifying movement
To adjust robot movements follow these steps:
Right click on the movement you want to modify
Click on
Modify movement
A dialog will be opened which will allow you to change the coordinate or joint values, depending on which type of robot is used.
The Movement style
setting will allow you to also adjust the type of movement that will be executed by the robot.
Depending on the robot used, some of these movement types will be available:
Coordinates - Linear
Coordinates - PTP
Joints - Linear
Joints - PTP
Note
Depending on the used manufacturing cell, some of the movement styles might not be supported. Consult the machine documentation if unsure.
6.7.11. Change orientation
The orientation of normals of the patches is responsible for the direction of Picker robot with which it will patch on the surface of a geometry. However, the robot may not be able to patch on curvy surfaces.
For patching on curvy surfaces you need to change the orientation of the normals. To change the orientation follow these steps:
Select the patch name from the dataset for whom you want to change the orientation.
Go to Patch Artist and click on Patches from the Ribbon bar under
Picking type
group.The selected patch will be highlighted(red) in the viewport. To view the orientation of normal select
Show orientation
from the Ribbon bar underRender mode
group.Right click on the patch and select
Change orientation
.This will open a pop-up. Here, you can change the orientation of the normal.
Click on the
OK
button to save the changes.