Sélectionner une sous-entité
NENTSEL
Par exemple une entité particulière dans un bloc, un attribut de bloc, une entité dans une XREF ou un segment de polyligne 3D.
Syntaxe | (nentsel "message") |
Argument | Un message (optionnel) qui apparaîtra sur la ligne de commande. Si le message est omis, c'est la phrase par défaut qui sera affichée : Choix des objets ... |
Valeur retournée | Une liste (list) de la définition du sous-élément |
Lorsque l'entité sélectionnée par (nentsel) n'a pas de sous-entité comme un bloc ou une polyligne 3D par exemple la valeur renvoyée est la même qu'avec une sélection par (entsel).
Si au contraire l'entité est complexe (polyligne3D, bloc), (nentsel) renvoie le nom de la sous-entité, vertex si polyligne 3D, attrib si bloc avec attribut.
Pour mémoire, la lwpolyligne (polyligne 2D allégée) est considérée par AutoCAD comme une seule entité et de ce fait ne contient pas de sous-entités.
Lorsque l'entité sélectionnée fait partie d'un bloc, en dehors de la notion d'attributs (nentsel) renvoie une liste de quatre éléments,
Le premier est le nom de la sous-entité (ename)
Le deuxième est le point cliqué pour la sélectionner, ce point n'est pas obligatoirement sur l'objet.
Le troisième est une matrice de transformation de l'objet (combinaison des différentes transformations subies à chaque insertion)
Et enfin le quatrième est le nom de l'entité principale, si le bloc est imbriqué (bloc dans un autre bloc), le quatrième élément est la liste des entités imbriquées.
La matrice de transformation :
Les trois premières colonnes sont pour l'échelle et la rotation |
NENTSELP
La fonction (nentselp) est quasi-identique à (nentsel)
La seule différence est que cette fonction n'a pas besoin obligatoirement d'une sélection à l'écran de la part de l'utilisateur.
Syntaxe | (nentselp "message" "pt") |
Argument | Un message (optionnel) qui apparaîtra sur la ligne de commande. Si message est omis, c'est la phrase par défaut qui sera affichée : Choix des objets ... pt un point sous forme de liste (list) ce qui permet de sélectionner l'entité sans faire appel à une saisie par l'utilisateur. |
Valeur retournée | Une liste (list) de la définition du sous-élément |
Explications sur la liste renvoyée :
Le premier est le nom de la sous-entité (ename)
Le deuxième est le point de sélection.
Le troisième est une matrice de transformation de l'objet (combinaison des différentes transformations subies à chaque insertion)
Et enfin le quatrième est le nom de l'entité principale, si le bloc est imbriqué (bloc dans un autre bloc), le quatrième élément est la liste des entités imbriquées.
Outre l'argument message facultatif, (nentselp) accepte un point de sélection comme argument facultatif pour qu'un objet soit sélectionné sans entrée utilisateur.
La fonction (nentselp) renvoie une matrice de transformation 4x4 au format suivant :
Les trois premières colonnes de la matrice spécifient l'échelle et la rotation.
La quatrième colonne est un vecteur de translation.
Les fonctions qui utilisent une matrice de ce type, considèrent un point comme un vecteur de colonne de dimension 4.
Le point est exprimé en coordonnées homogènes, le quatrième élément du vecteur de point correspondant à un facteur d'échelle normalement défini à
1.0.
La valeur nominale de la dernière ligne de la matrice, à savoir le vecteur
[M30 M31 M32 M33], est égale à [0 0 0 1] , elle est ignorée par les fonctions utilisant ce format de matrice.
D'après cette convention, lorsqu'une transformation est appliquée à un point, cela revient à effectuer la multiplication matricielle suivante :
Cette multiplication définit chaque coordonnée du point, comme suit:
X' = XM00 + YM01 + YM02 + M03 ( 1.0)
Y' = XM10 + YM11 + YM12 + M13 ( 1.0)
Z' = XM20 + YM21 + YM22 + M23 ( 1.0)
Comme le montrent ces équations, le facteur d'échelle et la dernière
ligne de la matrice n'ont aucun effet et sont ignorés.
retour au menu "Sélection des entités"
12 octobre 2017,
mise à jour le 23 décembre 2017,
mise à jour le 08 janvier 2018.