Bonjour, quelques fois, le sens d'une polyligne est importante, mais comment faire pour le visualiser simplement ? Je n'ai rien trouvé de transcendant, j'ai sans doute mal cherché... J'ai essayé de pondre quelque chose de mon cru qui dessine des petites flèches le long de la polyligne pour en indiquer son sens. Les fèches sont dessinées avec grvecs et disparaissent après un redess ou une fonction de zoom quelconque. (defun c:sensobj (/ e obj L TF NBPAS PAS PK sensobj_fl)
(vl-load-com)
(defun sensobj_fl (PK / PT PM fder PTDERIV PT1 PT2)
(setq PT (vlax-curve-getpointatdist obj PK))
(setq PM (vlax-curve-GetParamAtPoint obj PT))
(setq fder (vlax-curve-getfirstderiv obj PM))
(setq PTDERIV (mapcar '+ PT fder))
(setq PT1 (polar PT (+ (angle PT PTDERIV) (* 3 (/ pi 4))) TF))
(setq PT2 (polar PT (- (angle PT PTDERIV) (* 3 (/ pi 4))) TF))
;; les points sont à mettre en SCU local pour grvecs
(grvecs (mapcar '(lambda (ELEM) (trans ELEM 0 1)) (list PT1 PT PT PT2)))
)
(if (setq e (entsel))
(progn
(setq obj (vlax-ename->vla-object (car e)))
(if (vlax-property-available-p obj 'Length)
(progn
(setq L (vla-get-length obj))
(setq TF (/ (getvar "VIEWSIZE") 50.0))
(setq NBPAS (+ (fix (/ L TF)) 1))
(setq PAS (/ L NBPAS))
(setq PK 0)
(while (< PK L)
(sensobj_fl PK)
(setq PK (+ PK PAS))
)
(sensobj_fl L)
)
(alert "Longueur non disponible")
)
)
)
(princ)
)
Amicalement Vincent