VLAX-CURVE
Travailler avec toutes sortes de "courbes"
Il ne faut pas entendre (ou lire en l'occurrence) le mot COURBE au sens de "lignes avec des courbures", il s'agit dans le cas de ces fonctions VLAX de la notion "mathématique" de courbes.
En effet en mathématiques, plus précisément en géométrie, le mot "courbe", ou "ligne courbe", désigne certains sous-ensembles du plan.
Par exemple, les droites, les segments, les lignes polygonales, les cercles et les arcs sont autant de courbes.
C'est de ces courbes qu'il va être question et vous verrez que ces fonctions sont sacrément puissantes !
![]() |
Cliquez sur le nom de la fonction dans la colonne de gauche pour un accès direct dans la page |
FONCTION | MÉMENTO |
vlax-curve-getDistAtPoint | Distance depuis le départ jusqu'à un point donné |
vlax-curve-getPointAtDist | Point à une longueur donnée depuis le départ de l'objet |
vlax-curve-getStartPoint | Point de départ de l'entité |
vlax-curve-getEndPoint | Point de fin de l'entité |
vlax-curve-getClosestPointTo | Point le plus proche d'une entité |
vlax-curve-getDistAtPoint
Distance depuis le départ
jusqu'à un point donné
Syntaxe : (vlax-curve-getDistAtPoint curve-obj point)
Arguments :
curve-obj : une entité sous forme d'objet VLA.
point : un point sous forme de liste (list).
Ce point doit être situé sur l'entité curve-obj
Valeur renvoyée : une valeur sous forme de nombre réel (real) ou nil en cas d'échec.
Pour cet exemple dessinez une ligne puis tapez ce code et chargez-le :
1 2 3 4 5 6 7 8 9 | (setq entvla (vlax-ename->vla-object (car (entsel "\nChoix de l'entité\n") ) ) ) (setvar "osmode" 512) (setq pt (getpoint "\nChoix du point sur la ligne")) (setq dist (vlax-curve-getDistAtPoint entvla pt)) |
Ligne 1 : choix de l'entité et conversion en objet VLA
Ligne 2 : forcer le mode d'accrochage en "proche" pour que le point sélectionné soit sur la ligne
Ligne 3 : Choix du point (utilisez l'accrochage, le point sélectionné doit être proche de la ligne pour que l'accrochage s'effectue SUR la ligne)
Ligne 4 : création d'une variable qui va contenir la distance depuis le début de la droite jusqu'au point sélectionné.
Le sens de construction de l'objet est important car la distance est mesurée depuis le point de départ.
Je vous laisse faire des tests avec toutes sortes d'entités pour découvrir la fonction.
Dans le cas du cercle, ce qui est considéré comme Point de départ par le logiciel est le point quadrant droit (3 heures sur une montre) et la distance est mesurée dans le sens anti-horaire.
Haut de page | Retour menu VLAX Curve |
vlax-curve-getPointAtDist
Point à une longueur donnée
depuis le départ de l'objet
Exactement les mêmes types d'arguments que la fonction précédente mais la valeur renvoyée est le point situé à la longueur donnée (suivant la courbure de l'objet le cas échéant) depuis le point de départ.
Pour cet exemple dessinez une polyligne quelconque :
1 2 3 4 5 6 7 | (setq entvla (vlax-ename->vla-object (car (entsel "\nChoix de l'entité\n") ) ) ) (setq PtAtDist (vlax-curve-getpointAtDist entvla 32.12)) |
la variable PtAtDist contient les coordonnées du point situé à 32.12 du départ de l'entité.
Si la longueur donnée en argument correspond à la longueur de l'entité c'est nil qui est renvoyé.
Haut de page | Retour menu VLAX Curve |
vlax-curve-getStartPoint
Point de départ d'une entité
Cette fonction est surtout utile pour les cercles et ellipses et tous les objets fermés en général.
Syntaxe : (vlax-curve-getStartPoint curve-obj)
Argument : curve-obj : une entité sous forme d'objet VLA.
Valeur renvoyée : un point sous forme de liste (list) dont les coordonnées sont exprimées dans le système de coordonnées général.
Pour cet exemple travaillez avec des polylignes closes, cercle, ellipse, polygone...
1 2 3 4 5 6 7 | (setq entvla (vlax-ename->vla-object (car (entsel "\nChoix de l'entité\n") ) ) ) (setq Pt (vlax-curve-getStartPoint entvla)) |
vlax-curve-getEndPoint
Point final d'une entité
Identique à la fonction précédente mais comme son nom le laisse entrevoir c'est le point final qui est renvoyé.
Dans le cas d'un objet fermé, cercle, ellipse, polyligne close : les point de départ et point d'arrivée sont identiques et confondus, dès que le même objet est "ouvert" les points deviennent différents.
1 2 3 4 5 6 7 | (setq entvla (vlax-ename->vla-object (car (entsel "\nChoix de l'entité\n") ) ) ) (setq Ptarr (vlax-curve-getEndPoint entvla)) |
Haut de page | Retour menu VLAX Curve |
vlax-curve-getClosestPointTo
Projection de point sur entité (curve)
Ceci est une fonction ultra-puissante, elle permet de "calculer" un point projeté sur une entité perpendiculairement à cette dernière (curve).
c'est le point le plus proche de l'entité
Si on ne l'avait pas à disposition il faudrait faire des calculs "savants" pour déterminer le point qui correspond à cette figure :
Syntaxe : (vlax-curve-getClosestPointTo curve-obj pt [extend])
Arguments :
curve-obj : une entité sous forme d'objet VLA.
pt : un point donné sous forme de liste de trois réels (list)
point exprimé dans le SCG
[extend] : argument optionnel sous forme de T ou nil
T : l'entité est prolongée (artificiellement) pour calculer le point
nil : l'entité n'est pas prolongée et si le point est en dehors de l'entité le résultat est une extrémité de l'entité
si cet argument n'est pas renseigné il est considéré par défaut comme T
c'est pourquoi il n'est pas souvent renseigné.
Valeur renvoyée :
une valeur de point sous forme de liste de trois réels (list)
Exemple :
Haut de page | Retour menu VLAX Curve |
16 juin 2018
mise à jour 29 mars 2019