Aller au contenu

POLY 3D VERS 2D


lili2006

Messages recommandés

Je ne sais pas si c'est exactement ce que tu cherches, mais voilà un LISP qui crée un polyligne qui est la projection sur le plan XY du SCU courant de la polyligne 3d sélectionnée.

 

;;; 3D2LW -03/06/07-
;;; Crée une lwpolyligne, projection de la polyligne 3d sur le plan XY du SCU courant
(defun c:3d2lw (/ acdoc model ss poly)
 (vl-load-com)
 (setq	acdoc (vla-get-ActiveDocument (vlax-get-acad-object))
model (vla-get-ModelSpace AcDoc)
 )
 (if
   (setq ss (ssget "_:S" '((0 . "POLYLINE") (-4 . "&") (70 . 8))))
    (progn
      (vla-StartUndoMark acdoc)
      (vla-put-Elevation
 (vlax-invoke
   model
   'addLightWeightPolyline
   (apply
     'append
     (mapcar
       '(lambda	(p)
	  (setq p (trans p 0 (trans '(0 0 1) 1 0 T)))
	  (list (car p) (cadr p))
	)
       (3d-coord->pt-lst
	 (vlax-get
	   (setq poly (vlax-ename->vla-object (ssname ss 0)))
	   'Coordinates
	 )
       )
     )
   )
 )
 (caddr (trans (getvar "UCSORG") 0 (trans '(0 0 1) 1 0 T)))
      )
      (initget "Oui Non")
      (if (or (not (setq rep
		   (getkword
		     "\nEffacer la polyligne source ? [Oui/Non] : "
		   )
	    )
       )
       (= rep "Oui")
   )
 (vla-delete poly)
      )
      (vla-EndUndoMark acdoc)
    )
 )
 (princ)
)

;;; 3d-coord->pt-lst Convertit une liste de coordonnées 3D en liste de points
;;; (3d-coord->pt-lst '(1.0 2.0 3.0 4.0 5.0 6.0)) -> ((1.0 2.0 3.0) (4.0 5.0 6.0))

(defun 3d-coord->pt-lst	(lst)
 (if lst
   (cons (list (car lst) (cadr lst) (caddr lst))
  (3d-coord->pt-lst (cdddr lst))
   )
 )
) 

[Edité le 3/6/2007 par (gile)]

 

[Edité le 4/6/2007 par (gile)]

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

 

Hello Gilles

 

Si j'ai bien compris cette routine produit une polyligne 2D identique à la manipulation suivante :

 

Accrocher le XY de la Polyligne 3D pour chaque sommet en passant le paramètre .XY et donc en donnant le Z = ZERO !?

 

Le Decapode

 

 

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à tous,

 

Merci pour vos réponses rapides. En fait je souhaite récupérer un plan sous covadis et le retravailler que sous AutoCAD et je me suis rendu compte que je ne pouvais pas la décaler, voilà la raison de ma question. Est-ce possible gile avec ton lisp, je le teste de suite et t'en remercie. lecrabe, c'est une solution tout remettre à z=0 mais quand tu en as des km, bonjour le travail,....

Merci encore à tous les deux. :D

Civil 3D 2024 - COVADIS_18.2

https://www.linkedin...3%ABt-95313341/

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é