27 Décembre 2024 : "Node Edtitor Plus" By Mo_te (English)
Nouvelle Version d'Elephant! Version PDF (12 pages)VF By Phiro
Améliorations de L'Elephant classique!
Nouvelle Version d'Elephant! Version PDF (12 pages)VF By Phiro
Améliorations de L'Elephant classique!
AJout by Bemfarmer pour le Node Editor Plus
Vo
Here are a few rough notes documenting NodeeditorPlus, which could be added to the Documentation pdf.
I find it very difficult to write understandable documentation, and so tend to write in a verbose manner.
NodeeditorPlus documentation (rough notes 1/2/2025):
The General submenu is a collection of Multitype nodes.
The 4 types are described in MO's documentation pdf.
Input data is combined by Bundle node, or Concat node. The node is set to one of the four Types, (modes).
Each input slot receives data that is an array of elements corresponding to the mode.
Many input slots may be added to these nodes.
The difference between the Output of these two nodes is describe as follows:
In pointarray mode, the difference between Bundle and Concat is in the order in which the inputs are combined in the Output.
Concat (concatenate) takes a pointarray (input1), and adds (appends) a second pointarray (input2), and places the combined array into the output. (Additional inputs are also appended.)
Bundle takes the first point of the first pointarray (input1) and then the first point of the second pointarray (input2) and places them into the output array - and so on. So you can create e.g. points on different curves, bundle them and draw new curves across the base curves. (abstracted from Karsten, 2019)
An alternate explanation, considers the input data to be in a spreadsheet or matrix layout, where each cell contains an Element. Each node input is a "Row" array of Elements.
Concat outputs row1, followed by row2, ..., rowLast. This output is a concatenated array.
Bundle outputs the "Columns" (slices). row1_Element1, row2_Element1, ..., rowLast_Element1, then row1_Element2, row2_Element2, ..., rowLast_Element2,then, ...row1_LastElement, row2_LastElement,..., rowLast_LastElement. The output is an array.
Documentation on the Notes node:
Ctrl+Enter Set the text entries, or else they disappear.
Notes node can also be used as a title to the node assemblage, and brief documentation.
Text node can have text of point coordinates typed in, and then the node will output the point data.
For example, for x1 = 0.00, y1 = 0.39, z1 = -0.20, for the first row, type in 0.00 0.39 -0.20,
In the following pattern (do NOT type the text xi yi zi):
x1 y1 z1
x2 y2 z2
x3 y3 z3
etc
The pointarray output can be fed to the Interpolate node and/or the ConvertPts node, to display points, interpolated points, or curves.
Add another canvas:
Alt+New
- Brian
ps
I did some testing of the swRotary node, in 3 of the modes.
It appears to function well.
I did manage to lock up the swRotary node, (somehow), in pointarray node, when only one input was hooked up, with switch set to a blank input.
I find it very difficult to write understandable documentation, and so tend to write in a verbose manner.
NodeeditorPlus documentation (rough notes 1/2/2025):
The General submenu is a collection of Multitype nodes.
The 4 types are described in MO's documentation pdf.
Input data is combined by Bundle node, or Concat node. The node is set to one of the four Types, (modes).
Each input slot receives data that is an array of elements corresponding to the mode.
Many input slots may be added to these nodes.
The difference between the Output of these two nodes is describe as follows:
In pointarray mode, the difference between Bundle and Concat is in the order in which the inputs are combined in the Output.
Concat (concatenate) takes a pointarray (input1), and adds (appends) a second pointarray (input2), and places the combined array into the output. (Additional inputs are also appended.)
Bundle takes the first point of the first pointarray (input1) and then the first point of the second pointarray (input2) and places them into the output array - and so on. So you can create e.g. points on different curves, bundle them and draw new curves across the base curves. (abstracted from Karsten, 2019)
An alternate explanation, considers the input data to be in a spreadsheet or matrix layout, where each cell contains an Element. Each node input is a "Row" array of Elements.
Concat outputs row1, followed by row2, ..., rowLast. This output is a concatenated array.
Bundle outputs the "Columns" (slices). row1_Element1, row2_Element1, ..., rowLast_Element1, then row1_Element2, row2_Element2, ..., rowLast_Element2,then, ...row1_LastElement, row2_LastElement,..., rowLast_LastElement. The output is an array.
Documentation on the Notes node:
Ctrl+Enter Set the text entries, or else they disappear.
Notes node can also be used as a title to the node assemblage, and brief documentation.
Text node can have text of point coordinates typed in, and then the node will output the point data.
For example, for x1 = 0.00, y1 = 0.39, z1 = -0.20, for the first row, type in 0.00 0.39 -0.20,
In the following pattern (do NOT type the text xi yi zi):
x1 y1 z1
x2 y2 z2
x3 y3 z3
etc
The pointarray output can be fed to the Interpolate node and/or the ConvertPts node, to display points, interpolated points, or curves.
Add another canvas:
Alt+New
- Brian
ps
I did some testing of the swRotary node, in 3 of the modes.
It appears to function well.
I did manage to lock up the swRotary node, (somehow), in pointarray node, when only one input was hooked up, with switch set to a blank input.
VF
Voici quelques notes brutes sur NodeeditorPlus, qui pourraient être ajoutées à la documentation pdf.
Je trouve qu'il est très difficile d'écrire une documentation compréhensible, et j'ai donc tendance à écrire de manière verbeuse.
Documentation de NodeeditorPlus (notes brutes 1/2/2025) :
Le sous-menu General est une collection de noeuds Multitype.
Les 4 types sont décrits dans la documentation pdf de MO_TE.
Les données d'entrée sont combinées par le nœud Bundle ou Concat. Le nœud est défini sur l'un des quatre types (modes).
Chaque emplacement d'entrée reçoit des données sous la forme d'un tableau d'éléments correspondant au mode.
De nombreux emplacements d'entrée peuvent être ajoutés à ces nœuds.
La différence entre la sortie de ces deux nœuds est décrite comme suit :
En mode tableau de points, la différence entre Bundle et Concat réside dans l'ordre dans lequel les entrées sont combinées dans la sortie.
Concat (concaténer) prend un tableau de points (input1), ajoute (appends) un second tableau de points (input2) et place le tableau combiné dans la sortie. (Des entrées supplémentaires sont également ajoutées.)
Bundle prend le premier point du premier tableau de points (input1), puis le premier point du deuxième tableau de points (input2) et les place dans le tableau de sortie - et ainsi de suite. Vous pouvez donc créer, par exemple, des points sur différentes courbes, les regrouper et tracer de nouvelles courbes à travers les courbes de base. (extrait de Karsten, 2019)
Une autre explication consiste à considérer que les données d'entrée se présentent sous la forme d'une feuille de calcul ou d'une matrice, où chaque cellule contient un élément. Chaque nœud en entrée est un tableau « Row » (colonne) d'éléments.
Concat produit row1, suivi de row2, ..., rowLast. Cette sortie est un tableau concaténé.
Bundle produit les « colonnes » (tranches). row1_Element1, row2_Element1, ..., rowLast_Element1, puis row1_Element2, row2_Element2, ..., rowLast_Element2,puis, ...row1_LastElement, row2_LastElement, ..., rowLast_LastElement. La sortie est un tableau.
Documentation sur le nœud Notes :
Ctrl+Entrée Définir les entrées de texte, sinon elles disparaissent.
Le nœud Notes peut également servir de titre à l'assemblage de nœuds et de documentation succincte.
Le nœud Texte peut contenir un texte de coordonnées de points, puis le nœud émettra les données du point.
Par exemple, pour x1 = 0,00, y1 = 0,39, z1 = -0,20, pour la première ligne, tapez 0,00 0,39 -0,20,
Dans le modèle suivant (ne pas taper le texte xi yi zi) :
x1 y1 z1
x2 y2 z2
x3 y3 z3
etc.
La sortie du tableau de points peut être transmise au nœud Interpolate et/ou au nœud ConvertPts, pour afficher des points, des points interpolés ou des courbes.
Ajouter un autre canevas :
Alt+Nouveau
- Brian
ps
J'ai testé le nœud swRotary dans 3 des modes.
Il semble bien fonctionner.
J'ai réussi à bloquer le nœud swRotary (d'une manière ou d'une autre), dans le nœud pointarray, lorsqu'une seule entrée était branchée, avec le commutateur réglé sur une entrée vierge.
Je trouve qu'il est très difficile d'écrire une documentation compréhensible, et j'ai donc tendance à écrire de manière verbeuse.
Documentation de NodeeditorPlus (notes brutes 1/2/2025) :
Le sous-menu General est une collection de noeuds Multitype.
Les 4 types sont décrits dans la documentation pdf de MO_TE.
Les données d'entrée sont combinées par le nœud Bundle ou Concat. Le nœud est défini sur l'un des quatre types (modes).
Chaque emplacement d'entrée reçoit des données sous la forme d'un tableau d'éléments correspondant au mode.
De nombreux emplacements d'entrée peuvent être ajoutés à ces nœuds.
La différence entre la sortie de ces deux nœuds est décrite comme suit :
En mode tableau de points, la différence entre Bundle et Concat réside dans l'ordre dans lequel les entrées sont combinées dans la sortie.
Concat (concaténer) prend un tableau de points (input1), ajoute (appends) un second tableau de points (input2) et place le tableau combiné dans la sortie. (Des entrées supplémentaires sont également ajoutées.)
Bundle prend le premier point du premier tableau de points (input1), puis le premier point du deuxième tableau de points (input2) et les place dans le tableau de sortie - et ainsi de suite. Vous pouvez donc créer, par exemple, des points sur différentes courbes, les regrouper et tracer de nouvelles courbes à travers les courbes de base. (extrait de Karsten, 2019)
Une autre explication consiste à considérer que les données d'entrée se présentent sous la forme d'une feuille de calcul ou d'une matrice, où chaque cellule contient un élément. Chaque nœud en entrée est un tableau « Row » (colonne) d'éléments.
Concat produit row1, suivi de row2, ..., rowLast. Cette sortie est un tableau concaténé.
Bundle produit les « colonnes » (tranches). row1_Element1, row2_Element1, ..., rowLast_Element1, puis row1_Element2, row2_Element2, ..., rowLast_Element2,puis, ...row1_LastElement, row2_LastElement, ..., rowLast_LastElement. La sortie est un tableau.
Documentation sur le nœud Notes :
Ctrl+Entrée Définir les entrées de texte, sinon elles disparaissent.
Le nœud Notes peut également servir de titre à l'assemblage de nœuds et de documentation succincte.
Le nœud Texte peut contenir un texte de coordonnées de points, puis le nœud émettra les données du point.
Par exemple, pour x1 = 0,00, y1 = 0,39, z1 = -0,20, pour la première ligne, tapez 0,00 0,39 -0,20,
Dans le modèle suivant (ne pas taper le texte xi yi zi) :
x1 y1 z1
x2 y2 z2
x3 y3 z3
etc.
La sortie du tableau de points peut être transmise au nœud Interpolate et/ou au nœud ConvertPts, pour afficher des points, des points interpolés ou des courbes.
Ajouter un autre canevas :
Alt+Nouveau
- Brian
ps
J'ai testé le nœud swRotary dans 3 des modes.
Il semble bien fonctionner.
J'ai réussi à bloquer le nœud swRotary (d'une manière ou d'une autre), dans le nœud pointarray, lorsqu'une seule entrée était branchée, avec le commutateur réglé sur une entrée vierge.
Biblio ELEPHANT Library
De très nombreux exemples (Les Schémas sont donnés) by James Hargraves
Seule contraintes pour tout voir: un accompte chez Instagram (free et même pas besoin de "Phone" ;)
Seule contraintes pour tout voir: un accompte chez Instagram (free et même pas besoin de "Phone" ;)
Many examples (Schematics are given) by James Hargraves
Only constraints to see everything: an Instagram account (free and not even need "Phone" ;)
Only constraints to see everything: an Instagram account (free and not even need "Phone" ;)
Amélioration de l'Editeur par RJPope Original
Septembre 2024 Cliquer le "+" Amélioré le 8 Octobre! By TO_ME |
|
|
Changements cosmétiques pour l'editeur ! (RJPope)
Modifications cosmétiques de Nodeedit pour Moment d'inspiration 1.0 rc4a, Max Smirnov Copyright (C) 2019
Alors que le NodeEditor est merveilleux et que je l'utilise beaucoup, il y a quelques petits soucis que je pensais pouvoir réduire ou éliminer. Le fait que je ne connaisse pas Javascript ou tout autre langage OO et que mes connaissances en matière de codage portent sur des langages de type Basic datant d'il y a 50 ans ne me semblait pas une bonne raison pour ne pas essayer.
Menu connexe :
1. Le menu est trop grand pour tenir sur l'écran de mon ordinateur portable et il est donc difficile d'accéder aux parties inférieures. J'ai dû agrandir l'écran et cliquer en haut de l'écran pour pouvoir accéder aux éléments les plus bas du menu. Solution : réduire les bordures du menu et la taille du texte dans index.html.
2. Si l'on éloigne la souris du menu, ne serait-ce que d'un pixel, le menu disparaît. Il n'est pas facile de remonter à un niveau supérieur et de redescendre pour trouver un élément. Ce phénomène, associé au point 1, est assez irritant. Solution : supprimer la fermeture du menu dans l'écouteur de l'événement mouseout. dans Main.js.
3. En résolvant le problème 2. J'ai créé un autre problème avec Paste qui ne fonctionnait pas bien car l'élément de menu existait toujours. Solution : fermer le menu avant de faire le collage dans Main.js.
4. L'ordre des sous-éléments du menu était dans un ordre « tel que codé ». Ce qui signifie une recherche supplémentaire pour trouver un élément. Solution : trier les sous-éléments dans main.js et aussi dans ext.nodelist.js. Le niveau supérieur est laissé tel quel. Changer son ordre a créé toute une série de problèmes.
5. Le macro-élément dans le menu se plante toujours. Mais l'élément macro du menu de gauche fonctionne. Solution : prendre le code du menu latéral gauche (ext.nodelist.js) et l'utiliser dans le menu RMB dans main.js. Maintenant les macros fonctionnent bien.
Autre :
6. Si je faisais glisser un ou plusieurs nœuds vers une nouvelle position et que ma souris dépassait le bord de la fenêtre, les nœuds étaient déplacés à l'extrême gauche en haut, bien en dehors de l'écran, et il fallait beaucoup de défilement pour les récupérer. Solution : Le code vérifiait si le graphique existait, mais ce qui était vraiment nécessaire, c'était de vérifier si la souris se trouvait ou non à l'intérieur des limites du graphique. Si elle était à l'extérieur, elle récupérait les coordonnées d'une autre fenêtre. dans main.js.
7. J'ai réduit la taille du texte dans le panneau des propriétés. Bien que cela ne soit pas nécessaire, cela facilite l'utilisation de 3 panneaux ou plus ouverts en même temps. (index.html).
8. J'ai ajouté quelques couleurs supplémentaires dans la liste des couleurs de node. dans main.js.
9. J'ai ajouté une entrée supplémentaire au node Union. Il n'en avait qu'une et j'ajoutais toujours une seconde entrée pour réaliser une union. Aucun autre noeud n'a été modifié.
A venir :
10. Le panneau de saisie de texte dans le nœud TextPts perd son focus beaucoup trop facilement, ce qui peut rendre l'édition difficile. Je préférerais cliquer en dehors de la zone d'édition lorsque l'édition est terminée. Je n'ai pas encore trouvé de moyen de le faire.
Pour ce faire, j'ai ajouté quelques fonctions de traçage. Cela s'est avéré particulièrement utile pour le point 6. Les prototypes sont laissés au cas où quelqu'un d'autre voudrait les utiliser pour quelque chose. Code de recherche pour trace... J'en ai créé deux car je ne savais pas comment en créer un seul qui fonctionne partout. Veuillez noter que le répertoire cible est codé en dur et devra être modifié. Je n'ai pas encore trouvé comment le coder automatiquement....
Aucune des structures de données sous-jacentes n'a été modifiée. Tous mes anciens fichiers .nod se chargent correctement.
J'espère que tous ceux qui utilisent l'éditeur de nœuds trouveront ces petits changements cosmétiques utiles.
Alors que le NodeEditor est merveilleux et que je l'utilise beaucoup, il y a quelques petits soucis que je pensais pouvoir réduire ou éliminer. Le fait que je ne connaisse pas Javascript ou tout autre langage OO et que mes connaissances en matière de codage portent sur des langages de type Basic datant d'il y a 50 ans ne me semblait pas une bonne raison pour ne pas essayer.
Menu connexe :
1. Le menu est trop grand pour tenir sur l'écran de mon ordinateur portable et il est donc difficile d'accéder aux parties inférieures. J'ai dû agrandir l'écran et cliquer en haut de l'écran pour pouvoir accéder aux éléments les plus bas du menu. Solution : réduire les bordures du menu et la taille du texte dans index.html.
2. Si l'on éloigne la souris du menu, ne serait-ce que d'un pixel, le menu disparaît. Il n'est pas facile de remonter à un niveau supérieur et de redescendre pour trouver un élément. Ce phénomène, associé au point 1, est assez irritant. Solution : supprimer la fermeture du menu dans l'écouteur de l'événement mouseout. dans Main.js.
3. En résolvant le problème 2. J'ai créé un autre problème avec Paste qui ne fonctionnait pas bien car l'élément de menu existait toujours. Solution : fermer le menu avant de faire le collage dans Main.js.
4. L'ordre des sous-éléments du menu était dans un ordre « tel que codé ». Ce qui signifie une recherche supplémentaire pour trouver un élément. Solution : trier les sous-éléments dans main.js et aussi dans ext.nodelist.js. Le niveau supérieur est laissé tel quel. Changer son ordre a créé toute une série de problèmes.
5. Le macro-élément dans le menu se plante toujours. Mais l'élément macro du menu de gauche fonctionne. Solution : prendre le code du menu latéral gauche (ext.nodelist.js) et l'utiliser dans le menu RMB dans main.js. Maintenant les macros fonctionnent bien.
Autre :
6. Si je faisais glisser un ou plusieurs nœuds vers une nouvelle position et que ma souris dépassait le bord de la fenêtre, les nœuds étaient déplacés à l'extrême gauche en haut, bien en dehors de l'écran, et il fallait beaucoup de défilement pour les récupérer. Solution : Le code vérifiait si le graphique existait, mais ce qui était vraiment nécessaire, c'était de vérifier si la souris se trouvait ou non à l'intérieur des limites du graphique. Si elle était à l'extérieur, elle récupérait les coordonnées d'une autre fenêtre. dans main.js.
7. J'ai réduit la taille du texte dans le panneau des propriétés. Bien que cela ne soit pas nécessaire, cela facilite l'utilisation de 3 panneaux ou plus ouverts en même temps. (index.html).
8. J'ai ajouté quelques couleurs supplémentaires dans la liste des couleurs de node. dans main.js.
9. J'ai ajouté une entrée supplémentaire au node Union. Il n'en avait qu'une et j'ajoutais toujours une seconde entrée pour réaliser une union. Aucun autre noeud n'a été modifié.
A venir :
10. Le panneau de saisie de texte dans le nœud TextPts perd son focus beaucoup trop facilement, ce qui peut rendre l'édition difficile. Je préférerais cliquer en dehors de la zone d'édition lorsque l'édition est terminée. Je n'ai pas encore trouvé de moyen de le faire.
Pour ce faire, j'ai ajouté quelques fonctions de traçage. Cela s'est avéré particulièrement utile pour le point 6. Les prototypes sont laissés au cas où quelqu'un d'autre voudrait les utiliser pour quelque chose. Code de recherche pour trace... J'en ai créé deux car je ne savais pas comment en créer un seul qui fonctionne partout. Veuillez noter que le répertoire cible est codé en dur et devra être modifié. Je n'ai pas encore trouvé comment le coder automatiquement....
Aucune des structures de données sous-jacentes n'a été modifiée. Tous mes anciens fichiers .nod se chargent correctement.
J'espère que tous ceux qui utilisent l'éditeur de nœuds trouveront ces petits changements cosmétiques utiles.
Les Nœuds de Base |
Basic Nodes |
Les Nœuds d'Extension |
Extension's Nodes |
WIP
|
PatternSelArray ArrayShuffler ArrayFlipper ArrayLogger
idxSelect idxReplace shiftDublicate reMap ReMap2 BundleArray
reRange FlipNumArray ArraySort Gate Stream2Array
idxSelect idxReplace shiftDublicate reMap ReMap2 BundleArray
reRange FlipNumArray ArraySort Gate Stream2Array
WIP
|
LoopInit LoopSart LoopEnd
WIP
|
Centroid mPath_Array GetCrvSFrame splitPts pointExt RotatePts2 Point RandomPts
WIP
|
moiscript.weebly.com/objects2.html#lsystemSelectedExt BrepNameSubObjects Extract ScaleUVW RandomObj
TrimObj IntersectObjMP SeparateObj SeparateObj2 ExtractEdges ExtractPts
RemoveDupCrv SetStyle ObjtoArray2 SelectEdges
Clone4 ImgSampler PerlinNoise Voronoi Delaunay Lsystem
TrimObj IntersectObjMP SeparateObj SeparateObj2 ExtractEdges ExtractPts
RemoveDupCrv SetStyle ObjtoArray2 SelectEdges
Clone4 ImgSampler PerlinNoise Voronoi Delaunay Lsystem
Vector AddVector SubstrVector DotProduct CrossProduct VecAngle
LinebyVec MovebyVec RotateVec ColorVec VecMagn PointDist
Line2Vec Vecby2pts ScaleVector FramebyVecs
LinebyVec MovebyVec RotateVec ColorVec VecMagn PointDist
Line2Vec Vecby2pts ScaleVector FramebyVecs
Deux nouveaux Nœuds Congés, Chanfreins by Mo_TE a utiliser avec Elephant (Editeur de Nœuds)
Dézipper et mettre les deux fichiers ci-contre ChamferCurve.js et FilletCurve.js dans le répertoire \Moi\nodeeditor\nodes\extensions |
|