nflow_reroute
Recalcule le tracé des fils d'un (sous-)système nflow.
📝Syntaxe
nflow_reroute(sys)
nflow_reroute(sys, width)
nflow_reroute(sys, width, height)
📥Arguments d'entrée
Paramètre Description
sys une chaîne : nom d'un modèle chargé ('modele') pour tracer les fils de son diagramme racine, ou chemin d'un sous-système ('modele/Sub', 'modele/Sub/Inner') pour tracer ceux de ce sous-système ; ou un handle numérique de modèle.
width un scalaire : largeur de la zone de tracé, en unités du diagramme. Par défaut : 4000.
height un scalaire : hauteur de la zone de tracé, en unités du diagramme. Par défaut : 4000.
📄Description

nflow_reroute calcule un nouveau tracé pour chaque connexion d'un (sous-)système et l'enregistre sur la connexion sous forme de liste de points de passage. Les tracés sont orthogonaux et contournent les blocs, du port de sortie au port d'entrée.

Les blocs ne bougent pas : appelez d'abord nflow_layout pour les disposer, puis nflow_reroute pour tracer les fils selon les nouvelles positions. La position des ports est estimée à partir du nombre de ports déclaré par chaque type de bloc.

Seul le niveau ciblé est tracé : appelez nflow_reroute sur le chemin de chaque sous-système pour le tracer aussi. Seule la géométrie des fils change, le résultat de simulation ne change donc pas.

Le modèle doit être chargé (new_system ou load_system). Un chemin de sous-système inconnu, ou un échec du tracé, provoque une erreur. Le modèle est marqué comme modifié ; utilisez save_system pour conserver les tracés.

💡Exemples
Disposer un modèle, tracer ses fils et lire le tracé enregistré.
new_system('demo');
add_block('nflow/source/sine', 'demo/S');
add_block('nflow/math/gain', 'demo/G', 'Gain', 2);
add_line('demo', 'S/1', 'G/1');
nflow_layout('demo');
nflow_reroute('demo');
f = [tempname(), '.nflow'];
save_system('demo', f);
m = jsondecode(fileread(f));
w = m.connections(1).waypoints;
[[w.x]', [w.y]']
bdclose('demo');
rmfile(f);
🔗Voir aussi
nflow_layoutadd_linesave_system
🕔Historique des versions
Version Description
1.0.0 version initiale
Modifier cette page sur GitHub