Comment peut-on ajouter automatiquement des sommets (vertex) à une polyligne existante sur AutoCAD, à un intervalle régulier défini (par exemple, tous les 5 mètres) ? Les commandes natives comme MESURER ou DIVISER insèrent des points ou des blocs, mais ne modifient pas directement la géométrie de la polyligne en y ajoutant de nouveaux sommets.
Pour ajouter des sommets à une polyligne à un intervalle constant, la méthode la plus efficace et automatisée est d’utiliser une routine AutoLISP. Les méthodes manuelles natives sont utiles pour des ajouts ponctuels mais inadaptées à cette tâche répétitive.
Méthode 1 : Utilisation d’une routine AutoLISP (Recommandée)
Cette solution utilise un code LISP qui parcourt la polyligne sélectionnée et y insère des sommets à la distance spécifiée. L’avantage majeur est que l’objet reste une seule et unique polyligne et conserve ses données étendues (XData) ou objets de données (OD).
Étape 1 : Créer le fichier LISP
- Ouvrez un éditeur de texte simple (comme le Bloc-notes).
- Copiez-collez l’intégralité du code ci-dessous.
- Enregistrez le fichier avec une extension
.lsp, par exempleAddVtx2Dist.lsp.
(vl-load-com)
(defun add_vtx (obj add_pt ent_name / bulg)
(vla-addVertex
obj
(1+ (fix add_pt))
(vlax-make-variant
(vlax-safearray-fill
(vlax-make-safearray vlax-vbdouble (cons 0 1))
(list
(car (trans (vlax-curve-getpointatparam obj add_pt) 0 ent_name))
(cadr (trans (vlax-curve-getpointatparam obj add_pt) 0 ent_name))
)
)
)
)
(setq bulg (vla-GetBulge obj (fix add_pt)))
(vla-SetBulge obj
(fix add_pt)
(/ (sin (/ (* 4 (atan bulg) (- add_pt (fix add_pt))) 4))
(cos (/ (* 4 (atan bulg) (- add_pt (fix add_pt))) 4))
)
)
(vla-SetBulge obj
(1+ (fix add_pt))
(/ (sin (/ (* 4 (atan bulg) (- (1+ (fix add_pt)) add_pt)) 4))
(cos (/ (* 4 (atan bulg) (- (1+ (fix add_pt)) add_pt)) 4))
)
)
(vla-update obj)
)
(defun c:AddVtx2Dist ( / js AcDoc Space interval n obj ename v_length)
(princ "\nSélectionnez une polyligne.")
(setq js (ssget '((0 . "LWPOLYLINE"))))
(cond
(js
(setq
AcDoc (vla-get-ActiveDocument (vlax-get-acad-object))
Space (if (= 1 (getvar "CVPORT"))
(vla-get-PaperSpace AcDoc)
(vla-get-ModelSpace AcDoc)
)
)
(initget 6)
(setq interval (getdist "\nAjouter un sommet tous les <1.0>?: "))
(if (not interval) (setq interval 1.0))
(repeat (setq n (sslength js))
(setq
obj (ssname js (setq n (1- n)))
ename (vlax-ename->vla-object obj)
v_length 0.0
)
(while (< v_length (vlax-curve-getDistAtParam ename (vlax-curve-getEndParam ename)))
(if (not (equal (fix (vlax-curve-getEndParam ename)) v_length 1E-13))
(progn
(add_vtx ename (vlax-curve-getParamAtDist ename v_length) obj)
(setq v_length (+ interval v_length))
)
(setq v_length (+ interval v_length))
)
)
)
)
)
(prin1)
)
Étape 2 : Charger la routine dans AutoCAD
- Tapez la commande
APPLOAD(ouCHARGAPP) dans la barre de commande d’AutoCAD. - Naviguez jusqu’à votre fichier
AddVtx2Dist.lspet cliquez sur « Charger ». - Pour un chargement automatique à chaque démarrage, ajoutez-le à la « Mallette de démarrage ».
Étape 3 : Exécuter la commande
- Tapez la commande
ADDVTX2DISTdans la barre de commande et validez. - Suivez les instructions : sélectionnez la polyligne à modifier.
- Entrez la distance souhaitée entre chaque nouveau sommet.
La routine modifiera la polyligne en ajoutant les sommets requis.
Méthode 2 : Ajout manuel de sommets (pour des ajouts ponctuels)
Pour ajouter un ou quelques sommets manuellement, sans contrainte de distance régulière, les outils d’édition par poignées (grips) sont très efficaces.
-
Via le menu contextuel des poignées :
- Sélectionnez la polyligne.
- Survolez une poignée (un carré bleu) sur un segment où vous souhaitez ajouter un sommet, sans cliquer.
- Un menu contextuel apparaît : choisissez « Ajouter un sommet ».
- Cliquez pour positionner le nouveau sommet.
-
Via le raccourci clavier CTRL :
- Sélectionnez la polyligne.
- Cliquez sur une poignée pour la rendre « chaude » (rouge).
- Appuyez une fois sur la touche
CTRLet relâchez-la. Le curseur se transforme pour indiquer l’ajout de sommet. - Cliquez pour placer le nouveau sommet. Vous pouvez continuer à en ajouter.
Point de vigilance : Si vous maintenez la touche CTRL enfoncée au lieu de la relâcher, vous ne créerez pas un sommet mais une copie de la polyligne à partir de la poignée sélectionnée.