Simple Layer
Concept
La classe Layer est un successeur de la classe Matrix, qui est une collection de Block dans une structure de grille régulière 3D.
La classe Layer supprime Block de Matrix qui ne pas avoir la coordonnée 0 par les axes X ou Y et applique les transformations aux blocs restants Block qui sont connectés par leurs côtés.
Matrix
Matrix filtrée
Layer
Nous pouvons changer le type de surfaces par les axes X et Y en courbes. Le nombre de nœuds par direction circonférentielle est déterminé par le dernier nombre 0.5;;8 à la première couche radiale:
1metadata:
2 run:
3 factory: geo
4 strategy:
5 class: strategy.NoBoolean
6data:
7 class: block.Layer
8 layer: [ [ 0.5;;8, 1.5;;2 ],
9 [ 1;;2, 2;;2, 3;;2 ] ]
10 "layer_curves": [ [ line, circle_arc ],
11 [ line, line, line ] ]
12 items_do_structure_map: 1
13 items_do_quadrate_map: 1
Layer incurvé
On peut également modifier le nombre de nœuds par couche radiale/hauteur en modifiant le dernier nombre de sous-champs de la première/seconde layer:
1metadata:
2 run:
3 factory: geo
4 strategy:
5 class: strategy.NoBoolean
6data:
7 class: block.Layer
8 layer: [ [ 0.5;;8, 1.5;;4 ],
9 [ 1;;4, 2;;8, 3;;16 ] ]
10 "layer_curves": [ [ line, circle_arc ],
11 [ line, line, line ] ]
12 items_do_structure_map: 1
13 items_do_quadrate_map: 1
Layer avec un nombre différent de nœuds par couches radiales/hauteur
Nombre de layers
On peut ajouter des couches radiales en ajoutant des éléments supplémentaires dans le premier sous-champ layer:
1metadata:
2run:
3 factory: geo
4 strategy:
5 class: strategy.NoBoolean
6data:
7class: block.Layer
8layer: [ [ 0.5;;8, 1.5;;2, 2.5;;2, 4;;2, 5;;2 ],
9 [ 1;;2, 2;;2, 3;;2 ] ]
10"layer_curves": [ [ line, circle_arc, line, circle_arc, line ],
11 [ line, line, line ] ]
12items_do_structure_map: 1
13items_do_quadrate_map: 1
Multi Layer
On peut ajouter des couches de hauteur en ajoutant des éléments supplémentaires dans le deuxième sous-champ layer:
1metadata:
2run:
3 factory: geo
4 strategy:
5 class: strategy.NoBoolean
6data:
7class: block.Layer
8layer: [ [ 0.5;;8, 1.5;;2, 2.5;;2, 4;;2, 5;;2 ],
9 [ 1;;2, 2;;2, 3;;2, 6;;2, 10;;2 ] ]
10"layer_curves": [ [ line, circle_arc, line, circle_arc, line ],
11 [ line, line, line, line, line ] ]
12items_do_structure_map: 1
13items_do_quadrate_map: 1
Layer multi-hauteur
Zones
Pour spécifier des zones, il faut ajouter les champs items_zones et items_zones_map. Où items_zones est une liste de paires de noms de volume et de six surfaces, par ex. [ Volume, [ NX, X, NY, Y, NZ, Z ] ]:
Volume- nom du volume[ NX, X, NY, Y, NZ, Z ]- noms des surfaces:NX- surface pointant dans la direction opposée à l’axe XX- surface pointant dans la direction de l’axe XNY- surface pointant dans la direction opposée à l’axe YY- surface pointant dans la direction de l’axe YNZ- surface pointant dans la direction opposée à l’axe ZZ- surface pointant dans la direction de l’axe Z
items_zones_map (et tous les champs qui se terminent par _map) est un tableau d’adressage entre les éléments (blocs dans la couche) et l’index correspondant dans une liste avec des propriétés (par exemple, items_zones) et a la forme `` nombre-de-hauteur`` par nombre-de-couches radiales.
Si l’on veut attribuer des noms de zone avec l’indice 1 de items_zones ([ B, [ NX_B, X_B, NY_B, Y_B, NZ_B, Z_B ] ]) à la 3ème couche de hauteur et à la 5ème radiale la première couche peut définir 1 sur items_zones_map à l’emplacement [3, 5].
Dans cet exemple, nous définissons:
0index deitems_zonesà la couche de hauteur moyenne (3ème) par toutes les couches radiales sauf la dernière (5ème);1index deitems_zonesaux 2e et 4e couches de hauteur par toutes les couches radiales et également la dernière (5e) couche radiale dans la couche de hauteur moyenne (3e);Indice de
2deitems_zonesà la couche de hauteur inférieure (1ère) et supérieure (5e) par toutes les couches radiales.
1metadata:
2 run:
3 factory: geo
4 strategy:
5 class: strategy.NoBoolean
6data:
7 class: block.Layer
8 layer: [ [ 0.5;;8, 1.5;;2, 2.5;;2, 4;;2, 5;;2 ],
9 [ 1;;2, 2;;2, 3;;2, 6;;2, 10;;2 ] ]
10 "layer_curves": [ [ line, circle_arc, line, circle_arc, line ],
11 [ line, line, line, line, line ] ]
12 items_do_structure_map: 1
13 items_do_quadrate_map: 1
14 items_zone: [
15 [ Red, [ NX, X, NY, Y, NZ, Z ] ],
16 [ Green, [ NX, X, NY, Y, NZ, Z ] ],
17 [ Blue, [ NX, X, NY, Y, NZ, Z ] ]
18 ]
19 items_zone_map: [
20 [ 2, 2, 2, 2, 2],
21 [ 1, 1, 1, 1, 1],
22 [ 0, 0, 0, 0, 1],
23 [ 1, 1, 1, 1, 1],
24 [ 2, 2, 2, 2, 2]
25 ]
Coupe par axes X et Y du Calque avec zones : rouge - 0, vert - 1, bleu - 2
Coupe par axes X, Y et Z du Calque avec zones : rouge - 0, vert - 1, bleu - 2