Annonces
En raison d'une maintenance programmée, la communauté Autodesk sera inaccessible à partir de 22h PDT le 16 octobre pendant environ 1 heure. Nous vous remercions de votre patience pendant cette période.
Communauté
AutoCAD – tous produits - Français
Bienvenue sur les forums AutoCAD d’Autodesk. Partagez vos connaissances, posez des questions, et explorez les sujets AutoCAD populaires.
annuler
Affichage des résultats de 
Afficher  uniquement  | Rechercher plutôt 
Vouliez-vous dire : 

AutoCAD : Tracer des polylignes parallèles en une seule fois/tracer un faisceau de polylignes

23 RÉPONSES 23
RÉSOLU
Répondre
Message 1 sur 24
Bur_dessin
1002 Visites, 23 Réponses

AutoCAD : Tracer des polylignes parallèles en une seule fois/tracer un faisceau de polylignes

Bonjour,

 

Je voudrais pouvoir tracer plusieurs polylignes comme s'il s'agissait d'une seule polyligne.

 

Le but est de pouvoir tracer des câbles électriques en VRD :

 

Minsier_0-1700811512715.png

Ici j'ai utilisé l'option décaler mais ce n'est pas pratique.

 

Merci à tous !


Le titre du sujet a été modifié par un modérateur pour faciliter la recherche. Titre original:
Tracer des polylignes parallèles en une seule fois/tracer un faisceau de polylignes

 

23 RÉPONSES 23
Message 2 sur 24
ВeekeeCZ
en réponse à: Bur_dessin

Explore the built-in MLINE command. 

 

Or THIS lisp from Lee Mac.

Message 3 sur 24
rebcao
en réponse à: ВeekeeCZ

Bonjour,

 

Merci, mais ce serait plus sympa de répondre en français étant sur un Forum Francophone...

 

Christian


Formateur Indépendant, Consultant, AutoCAD, AutoCAD LT, REVIT MEP, INVENTOR -
www.rebcao.fr

Christian REB

Message 4 sur 24
Bur_dessin
en réponse à: ВeekeeCZ

Merci à vous.

 

Par contre j'ai oublié de préciser que je suis sur Autocad LT 2024.

 

Donc ça ne fonctionne pas 😞

Message 5 sur 24
braudpat
en réponse à: Bur_dessin

Hello

 

OUI j utilise sur ACAD / ACAD MAP / etc 201X-202X la routine "MPL216"

(moins sophistiquee que celle de Lee-Mac)  jointe ...

Et je viens de la tester sur ACAD LT 2024 : elle ne fonctionne pas !

 

En fait il nous faudrait un Pro du Lisp/VLisp sur CE probleme ACAD LT 2024 !?

 

Bye, Patrice (The Old French EE Froggy)

Patrice ( Supporting Troops ) - Autodesk Expert Elite
If you are happy with my answer please mark "Accept as Solution" and if very happy please give me a Kudos (Felicitations) - Thanks

Patrice BRAUD

EESignature


Message 6 sur 24
patrick.emin
en réponse à: rebcao

@rebcao cette discussion avait été commencée (par erreur) sur le forum anglophone, puis déplacée ici.


Patrick Emin animateur de la communauté francophone


Vous avez trouvé un message utile? Alors donnez un "J'aime" à ce message!
Votre question a eu une réponse satisfaisante? Voulez vous avoir l'amabilité de cliquer sur le bouton
 APPROUVER LA SOLUTION  en bas de la réponse qui apporte une solution?
Signez notre Livre d'Or
Message 7 sur 24
rebcao
en réponse à: braudpat

Hello,

 

C'est normal, puisque la notion de LIGNE MULTIPLE, commande : _MLINE    n'existe toujours pas dans les versions LT !

 

Christian


Formateur Indépendant, Consultant, AutoCAD, AutoCAD LT, REVIT MEP, INVENTOR -
www.rebcao.fr

Christian REB

Message 8 sur 24
rebcao
en réponse à: patrick.emin

OK, je te remercie. 

 

Christian


Formateur Indépendant, Consultant, AutoCAD, AutoCAD LT, REVIT MEP, INVENTOR -
www.rebcao.fr

Christian REB

Message 9 sur 24
rebcao
en réponse à: braudpat

Finalement, il sert à quoi ce LISP puisque visiblement la commande _MLINE fait déjà le JOB ?

 

Pas le tien mais celui de Lee MAC proposé par ВeekeeCZ

 

Mais pour l'instant ça ne fonctionnera pas avec le LTs.

 

Christian


Formateur Indépendant, Consultant, AutoCAD, AutoCAD LT, REVIT MEP, INVENTOR -
www.rebcao.fr

Christian REB

Message 10 sur 24
ВeekeeCZ
en réponse à: Bur_dessin


@Bur_dessin  a écrit :

Merci à vous.

 

Par contre j'ai oublié de préciser que je suis sur Autocad LT 2024.

 

Donc ça ne fonctionne pas 😞


 

Ok, then you can't use MLINE.

Have you tried Lee's LISP? LISP support was newly added to LT 2024, so it should work.

Message 11 sur 24
rebcao
en réponse à: ВeekeeCZ

NON, la commande _MLINE n'existe pas dans les versions LT !

 

Christian


Formateur Indépendant, Consultant, AutoCAD, AutoCAD LT, REVIT MEP, INVENTOR -
www.rebcao.fr

Christian REB

Message 12 sur 24
braudpat
en réponse à: rebcao

Hello @rebcao 

 

ZUT je suis un VIEUX NUL, j avais completement oublie que les MLINEs n existent pas dans ACAD LT 20XX !!

 

Donc "mon" MPL216 ne peut pas marcher non plus !

 

Bon WE, Bye, Patrice

 

Patrice ( Supporting Troops ) - Autodesk Expert Elite
If you are happy with my answer please mark "Accept as Solution" and if very happy please give me a Kudos (Felicitations) - Thanks

Patrice BRAUD

EESignature


Message 13 sur 24
O_Eckmann
en réponse à: Bur_dessin

Bonjour @Bur_dessin ,

 

En m'inspirant du code fourni dans cette discussion, j'ai élaboré ce code qui devrait fonctionner sur LT 2024.

 

(vl-load-com)
;; RJP » 2020-01-22
(defun _drawpolyline (lsInfo bKeepBase / oEntLast oPoly oVlaPoly dOffset sLayer sLineType iColor bKeepBase)
  (setq oEntLast (entlast))
  (vl-cmdf "_.pline")
  (while (> (getvar 'cmdactive) 0) (command "\\"))
  (if (not (equal oEntLast (setq oPoly (entlast))))
    (progn
      (setq oVlaPoly (vlax-ename->vla-object oPoly))
      (setq I 0)
      (repeat (length lsInfo)
	(setq oInfo (nth I lsInfo))
	(setq I (1+ I))
	(setq dOffset   (car oInfo)
	      sLayer    (cadr oInfo)
	      sLineType (caddr oInfo)
	      iColor    (cadddr oInfo)
	)
	; décalage
	(setq lsOffsetedCurve (vlax-invoke oVlaPoly 'offset dOffset))
	(setq J 0)
	(repeat (length lsOffsetedCurve)
	  (setq oVlaCurve (nth J lsOffsetedCurve))
	  (setq J 0)
	  (vla-put-layer    oVlaCurve sLayer)
	  (vla-put-color    oVlaCurve iColor)
	  (vla-put-linetype oVlaCurve sLineType)
	)        
      )
      (if (not bKeepBase) (entdel oPoly))
    )
  )
  T
)

; Parallèle Polyligne générique
(defun C:PPL ( / iNbPoly sChoix dOffset sLayer sLineType iColor lsOffset bKeepBase)
  (initget 7)
  (setq iNbPoly (getint "\nNombre de ligne parallèle : "))
  (initget 7)
  (setq dOffset (getdist "\nEcart entre les lignes : "))
  (initget 1 "Centre Gauche Droit")
  (setq sChoix (getkword "\nCôté de décalage [Centre/Gauche/Droit] : "))
  
  (setq sLayer    (getvar "CLAYER"))
  (setq iColor    (getvar "CECOLOR"))
  (cond ((= iColor "BYLAYER") (setq iColor 256))
	((= iColor "BYBLOCK") (setq iColor 0))
  )
  (setq sLineType (getvar "CELTYPE"))
  (setq bKeepBase T  lsOffset nil)

  (cond
    ((= sChoix "Droit")
     (setq I 1)
     (repeat (1- iNbPoly)
       (setq lsOffset (append lsOffset (list (list (* dOffset I) sLayer sLineType iColor))))
       (setq I (1+ I))
     )
    )
    ((= sChoix "Gauche")
     (setq I 1)
     (repeat (1- iNbPoly)
       (setq lsOffset (append lsOffset (list (list (* dOffset I -1.0) sLayer sLineType iColor))))
       (setq I (1+ I))
     )
    )
    ((= sChoix "Centre")
     (setq dNbOffset (* 0.5 iNbPoly))
     (if (= dNbOffset (fix dNbOffset))
       (progn
	 (setq I 0)
     	 (repeat (fix dNbOffset)
           (setq lsOffset (append lsOffset (list (list (+ (*  0.5 dOffset) (* dOffset I)) sLayer sLineType iColor))))
           (setq lsOffset (append lsOffset (list (list (- (* -0.5 dOffset) (* dOffset I)) sLayer sLineType iColor))))
           (setq I (1+ I))
         )
	 (setq bKeepBase nil)
       )
       (progn
	 (setq I 1)
     	 (repeat (fix dNbOffset)
           (setq lsOffset (append lsOffset (list (list (* dOffset I)      sLayer sLineType iColor))))
           (setq lsOffset (append lsOffset (list (list (* dOffset I -1.0) sLayer sLineType iColor))))
           (setq I (1+ I))
         )
       )
     )	
    )
  )
  (while (_drawpolyline lsOffset bKeepBase))
)

; 3 polylignes parallèles décalées de valeur spécifique, dans des calques différents,
; avec des couleurs et type de lignes différents
; (les calques et types de ligne doivent exister dans le dessin)
(defun c:PPLEDF3 nil
  (while (_drawpolyline
	   (list (list  0.2 "EDF" "Axes"      4) ;décalage 0.2 à droite, calque EDF, type de ligne Axes, couleur 4
		 (list  0.4 "EDF" "Axes"      5) ;décalage 0.4 à droite, calque EDF, type de ligne Axes, couleur 5
		 (list -0.3 "EDF" "ByLayer" 256) ;décalage 0.3 à gauche, calque EDF, type de ligne Ducalque, couleur Ducalque
	   )
	   nil					 ; ne conserve pas la polyligne dessinée
	 )
  )
  (princ)
)

 

Le principe c'est d'utiliser la commande polyligne pour dessiner une polyligne, puis d'appliquer un décalage et de changer le calque, la couleur et le type de ligne à l'entité décalée.

Il y a une fonction PPL qui dessine X polylignes décalées de la valeur souhaité, mais en conservant le calque, couleur et type de ligne de l'entité de base

Et un exemple de fonction PPLEDF3 dans lequel on définit la liste des décalages, calque, couleur et type de ligne pour chacun d'eux

 

On pourrait aller plus loin avec un fichier de paramétrage qui stockerait les modèles voir un dialogue pour définir cette bibliothèque.

Olivier Eckmann

EESignature

Message 14 sur 24
braudpat
en réponse à: O_Eckmann

Hello @O_Eckmann   et  @Bur_dessin 

 

La routine de Olivier est Tip-Top, je viens de la tester sur ACAD LT 2024 !

 

Mais il faut ajouter une ligne au debut de la routine  :

(vl-load-com) 

Sinon elle ne fonctionnera pas !

 

Bye, Patrice

 

Patrice ( Supporting Troops ) - Autodesk Expert Elite
If you are happy with my answer please mark "Accept as Solution" and if very happy please give me a Kudos (Felicitations) - Thanks

Patrice BRAUD

EESignature


Message 15 sur 24
O_Eckmann
en réponse à: braudpat

Hello @braudpat ,

 

Je viens de faire la modif dans le code et le lisp.

Comme cette ligne est chargée automatiquement au démarrage de tous mes AutoCAD, je ne pense jamais à la rajouter 🤗

 

Olivier

Olivier Eckmann

EESignature

Message 16 sur 24
Bur_dessin
en réponse à: O_Eckmann

Bonjour,

 

Merci de votre réponse.

 

J'ai réussi à faire ceci grâce à votre Lisp :

Minsier_0-1701070869250.png

Par contre je ne saisis pas comment changer les types de lignes ou les couleurs.

 

Je n'ai que les mêmes lignes copiées.

 

Merci à vous

Message 17 sur 24
Bur_dessin
en réponse à: O_Eckmann

En fait avec le PPLEDF3 je n'obtiens que ceci :

 

Minsier_0-1701071421088.png

 

Merci

Message 18 sur 24
rebcao
en réponse à: O_Eckmann

Hello Olivier, @O_Eckmann 

 

Par curiosité j'avais testé avec une LT 2024 et ça fonctionne parfaitement... 

 

Mais comme toujours lorsque l'on propose une solution il y a toujours la petite question !  Est-ce que ... !!!

 

Effectivement le principe de la MULTI LIGNE c'est de pouvoir définir l'espacement différent entre chaque ligne.

 

Ce qui serait TOP c'est de pouvoir gérer le calque directement pour chaque ligne.

 

Christian 


Formateur Indépendant, Consultant, AutoCAD, AutoCAD LT, REVIT MEP, INVENTOR -
www.rebcao.fr

Christian REB

Message 19 sur 24
O_Eckmann
en réponse à: rebcao

Bonjour,

 

Le problème, c'est que si on demande les décalages, calques... à chaque lancement de la commande, ça devient lourd.

C'est pour cela que j'ai écrit une commande générique qui prend en charge une liste de paramètres pour pouvoir créer n'importe quoi.

La commande PPL, est générique pour créer des polylignes parallèles, toutes de même espacement, toutes avec les propriétés coutantes.

La commande PPLEDF3 étaient juste un exemple de ce que l'on peut faire si on a toujours le même modèle. On peut créer sa propre commande LISP en dupliquant le code et en mettant autant de lignes que l'on souhaite de décalage. 

(list  0.4 "EDF" "Axes"      5)

 

Dans la fin de mon message je parlais d'une évolution qui permettrait de stocker ces modèles dans un fichier de paramétrage, voir un dialogue qui permette de créer cette bibliothèque de modèle.

Dans ce cas, on crée une nouvelle commande qui demanderait juste le nom du modèle et qui dessinerait tout comme il faut.

 

Mais on peut imaginer une commande qui reprenne ton idée et demande les valeurs de chaque décalage et le calque afin de reconstruire la pseudo multiligne à chaque fois. 

 

 

Olivier

Olivier Eckmann

EESignature

Message 20 sur 24
Bur_dessin
en réponse à: O_Eckmann

Ok,

 

N'ayant jamais programmé dans Autocad, je me contenterai de votre lisp envoyé, ça m'aide déjà pas mal.

 

Je gère les calques des polylignes en copiant les propriétés d'autres lignes références, c'est déjà plus rapide que de faire des décalages.

 

Merci

Vous n'avez pas trouvé ce que vous recherchiez ? Posez une question à la communauté ou partagez vos connaissances.

Publier dans les forums  

Autodesk Design & Make Report