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 : 

Décaler une polyligne en conservant les 2 extrémités

4 RÉPONSES 4
RÉSOLU
Répondre
Message 1 sur 5
Anonymous
887 Visites, 4 Réponses

Décaler une polyligne en conservant les 2 extrémités

Bonjour à tous,

Je travaille actuellement sur un projet de pose de câbles. Sur le plan, je me retrouve avec x câbles superposés, mon client me demande donc de décaler chaque polyligne afin d'éviter la superposition. C'est là que j'ai besoin de votre aide, je cherche un moyen (lisp, astuce, routine...) pour décaler ma polyligne, mais en conservant les points de départ et de fin de celle-ci. Contrainte supplémentaire, je ne peux pas utiliser de multilignes, et chaque polyligne doit être sur un calque différent.

Merci d'avance pour votre aide.

Bonne journée

4 RÉPONSES 4
Message 2 sur 5
_gile
en réponse à: Anonymous

Salut,

 

Comme je n'ai ni le temps ni l'envie de refaire ce que fait très bien la commande DECALER, je te propose une solution 'a posteriori'. On sélection d'abord la polyligne source, puis toutes les polyligne devant avoir les mêmes point de départ et de fin que la polyligne source.

 

(defun c:test (/ pl el ss sp ep i)
  (and
    (setq pl (car (entsel "\nPolyligne source: ")))
    (setq el (entget pl))
    (= (cdr (assoc 0 el)) "LWPOLYLINE")
    (setq ss (ssget '((0 . "LWPOLYLINE"))))
    (setq sp (assoc 10 el)
	  ep (assoc 10 (reverse el))
    )
    (repeat (setq i (sslength ss))
      (setq el (reverse (entget (ssname ss (setq i (1- i)))))
	    el (reverse (subst ep (assoc 10 el) el))
      )
      (entmod (subst sp (assoc 10 el) el))
    )
  )
  (princ)
)


Gilles Chanteau
Programmation AutoCAD LISP/.NET
GileCAD
GitHub

Message 3 sur 5
Anonymous
en réponse à: _gile

 Merci pour votre réponse, et désolée pour le doublon, je souhaitais juste optimiser mes chances, je le préciserais la prochaine fois.

 

Après avoir testé, c'est exactement ce que je souhaitais.

 

Merci beaucoup,

 

Encore une fois désolée pour le doublon

 

Message 4 sur 5
_gile
en réponse à: Anonymous

Il s'agit d'une routine LISP qui définit une commande nommée TEST.

 

Il est possible de changer le nom de la commande en remplaçant : c:test par le nouveau nom mais en conservant le préfixe c: (par exemple c:toto pour une commande nommée TOTO).

 

Pour charger un LISP (versions pleines uniquement) voir ce sujet.

 

Une fois le LISP chargé dans le dessin, lancer la commande, sélectionner la polyligne source, puis les polylignes à traiter. 



Gilles Chanteau
Programmation AutoCAD LISP/.NET
GileCAD
GitHub

Message 5 sur 5
braudpat
en réponse à: _gile

 

Hello Gilles

 

1) Merci pour la routine ! ... Je vais l'utiliser ...

 

2) J'imagine que la version qui traiterait AUSSI les Polylignes "splinees et courbees" n'est pas simple !! 

 

3) Sans parler d'une version qui s'occuperait des 3DPolys ("splinees" ou Non) !!!

 

Regards, 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


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