Aller au contenu

Visualiser le sens d'une polyligne


zebulon_

Messages recommandés

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

  • Upvote 1

C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme)

C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Les fèches sont dessinées avec grvecs et disparaissent après un redess ou une fonction de zoom quelconque.

 

C'est un peu ce que fait la fonction Covadis COVAPOLYSENS

Pas mal pour ceux qui ne l'on pas.

 

http://pix.toile-libre.org/upload/thumb/1449731176.png

Aide au téléchargement du cadastre dgfip-download-helper
Insertion de photos géolocalisées exif https://www.dropbox.com/s/gkf6o9ac2hxen97/exifscr.zip?dl=0
Script correction BUG SPDC V2, propriétaire département 21 et 22 : https://greasyfork.org/scripts/442400-spdcv2/code/SPDCV2.user.js

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

Pas besoin de Covadis pour inverser les sens d'une polyligne,

La commande PEDIT avec son option I comme Inverser le fait en natif.

 

Amicalement

 

Bonjour,

 

ou un clic droit après avoir sélectionné une polyligne. On a un menu contextuel, avec l'option "polyligne", à partir duquel on retrouve les options les plus utiles de la commande PEDIT, notamment l'inversion, comme l'indique très justement didier.

 

C'est un peu ce que fait la fonction Covadis COVAPOLYSENS

Pas mal pour ceux qui ne l'on pas.

Je savais bien que je réinventais l'eau chaude, mais je n'ai pas Covadis et je n'ai rien trouvé sur un autocad de base. Personnellement, j'en ai eu besoin pour du ferraillage : des aciers un peu compliqués avec des variations, représentés chacun par 2 polylignes épaisses (le plus grand acier et le plus petit). Tête en l'air, j'ai dessiné le plus petit acier dans un sens et le plus grand dans l'autre. Forcément, la variation des longueurs de chaque segment était fausse ! D'où l'importance de voir le sens de la polyligne et être sûr que tous les aciers de la même famille ont été construits dans le même sens.

 

Amicalement

Vincent

C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme)

C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

Pas besoin de Covadis pour inverser les sens d'une polyligne,

La commande PEDIT avec son option I comme Inverser le fait en natif.

 

Amicalement

 

Ça dépend de la version d'autocad. Sur ma 2009 je n'ai pas cette possibilité.

Aide au téléchargement du cadastre dgfip-download-helper
Insertion de photos géolocalisées exif https://www.dropbox.com/s/gkf6o9ac2hxen97/exifscr.zip?dl=0
Script correction BUG SPDC V2, propriétaire département 21 et 22 : https://greasyfork.org/scripts/442400-spdcv2/code/SPDCV2.user.js

Lien vers le commentaire
Partager sur d’autres sites

Ça dépend de la version d'autocad. Sur ma 2009 je n'ai pas cette possibilité.

 

Bonjour,

 

Je suis sûr que c'est possible au moins à partir de la version 2011. Mais il semblerais que ce soit aussi possible avec la 2009, à condition d'avoir installé le "Bonus Pack1"...

 

Voir ce lien

 

Amicalement

Vincent

C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme)

C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...

Bonjour,

 

(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)
)

 

j'ai corrigé une boulette. Cela ne marchait bien qu'en scu général. En effet grvecs dessine ses segments en scu local alors que les fonctions vlax-curve renvoient des coordonnées en scu général.

Il y a bien un paramètre [trans] dans grvecs, mais je n'ai pas su comment l'utiliser et je suis passé par une fonction (trans PT 0 1)

 

Amicalement

Vincent

  • Upvote 1

C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme)

C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)

Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité