Gueguette Posté(e) le 9 novembre 2006 Partager Posté(e) le 9 novembre 2006 Bonjour,je souhate extraire les propriétés de polyligne 3D, surtout la position en X, Y et Z des noeuds.Avec les blocs cela fonctionne très bien, mais comment faire avec des pllylignes.Merci d'avance Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 9 novembre 2006 Partager Posté(e) le 9 novembre 2006 Salut, Peut tu préciser, extraire vers où ? la fenêtre de texte, un fichier texte, un fichier Excel ? Pour avoir les coordonnées d'une poly 3D dans la fenêtre de texte, charge ce petit LISP et tape 3dpoly2lst à la ligne de commande. (defun 3dpoly_pts (ent / pt pts) (while (setq pt (cdr (assoc 10 (entget (entnext ent))))) (setq ent (entnext ent) pts (cons pt pts) ) ) (reverse pts) ) (defun c:3dpoly2lst(/ ss) (if (setq ss (ssget "_:S:E" '((0 . "POLYLINE") (-4 . "&") (70 . 8)))) (mapcar 'print (3dpoly_pts (ssname ss 0))) ) (textscr) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
Gueguette Posté(e) le 9 novembre 2006 Auteur Partager Posté(e) le 9 novembre 2006 Merci.c'est vers un fichier excel que je souhaiterais faire l'extraction. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Gueguette Posté(e) le 9 novembre 2006 Auteur Partager Posté(e) le 9 novembre 2006 Merci, cela fonctionne très bien.Bonne journéeGueguette Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 9 novembre 2006 Partager Posté(e) le 9 novembre 2006 Re, Pour une extraction vers un fichier Excel : (defun c:3dpoly2Xl (/ ss file ent pts) (if (and (setq ss (ssget "_:S:E" '((0 . "POLYLINE") (-4 . "&") (70 . 8)))) (setq file (getfiled "Choisir ou créer un fichier" "" "xls" 1)) ) (progn (setq ent (ssname ss 0) desc (open file "a") ) (while (setq pt (cdr (assoc 10 (entget (entnext ent))))) (setq ent (entnext ent) pts (cons pt pts) ) ) (princ "X\tY\tZ\n" desc) (repeat (setq n (length pts)) (setq n (1- n)) (mapcar '(lambda (x) (princ x desc) (nth n pts))) (princ "\n" desc) ) (close desc) ) ) (princ) ) PS : si tu veux mettre les coordonnées de plusieurs polylignes dans le même fichier à la question "bla-bla.xls existe déjà. Voulez vous le remplacer ?" réponds "oui" et les coordonnées de la nouvelle polyligne seront rajoutées à la suite.[Edité le 9/11/2006 par (gile)] [Edité le 9/11/2006 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant