barbichette Posté(e) le 8 mars 2022 Posté(e) le 8 mars 2022 Bonjour, J'ai récupéré ce lisp qui me permet de transformer une Multiligne en Polyligne. Ca marche super bien sauf que cela n'agit qu'une seule multiligne à la fois. comment pourrais-je modificer ce lisp pour qu'il prenne en compte une sélection de ML ? ;;--------------=={ Multilines to LWPolylines }==-------------;; ;; ;; ;; Converts a selection of Multiline (MLINE) objects into ;; ;; LWPolylines. ;; ;;------------------------------------------------------------;; ;; Author: Lee Mac, Copyright © 2012 - www.lee-mac.com ;; ;;------------------------------------------------------------;; ;; Version 1.1 - 10-06-2012 ;; ;;------------------------------------------------------------;; (defun c:ml2pl ( / *error* doc el en i s1 s2 val var ) (defun *error* ( msg ) (if val (mapcar 'setvar var val)) (if doc (LM:endundo doc)) (if (not (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")) (princ (strcat "\nError: " msg)) ) (princ) ) (setq doc (vla-get-activedocument (vlax-get-acad-object)) var '("CMDECHO" "PEDITACCEPT" "QAFLAGS") val (mapcar 'getvar var) ) (if (setq s1 (ssget "_:L" '((0 . "MLINE")))) (progn (LM:startundo doc) (mapcar 'setvar var '(0 1 0)) (repeat (setq i (sslength s1)) (setq en (ssname s1 (setq i (1- i))) el (entlast) s2 (ssadd) ) (command "_.explode" en) (while (setq el (entnext el)) (ssadd el s2) ) (command "_.pedit" "_M" s2 "" "_J" "" "") (setq s2 nil) ) (mapcar 'setvar var val) (LM:endundo doc) ) ) (princ) ) (defun LM:startundo ( doc ) (LM:endundo doc) (vla-startundomark doc) ) (defun LM:endundo ( doc ) (while (= 8 (logand 8 (getvar 'undoctl))) (vla-endundomark doc) ) ) (vl-load-com) (princ) ***********************Rien ne sert de courrir, il faut partir à point.
Luna Posté(e) le 8 mars 2022 Posté(e) le 8 mars 2022 Coucou, Alors j'ai du mal à comprendre ton problème car le programme semble déjà prendre en compte plusieurs Multilignes... Il travail déjà avec un jeu de sélection : (setq s1 (ssget "_:L" '((0 . "MLINE")))) Donc je vois difficilement quoi faire de plus...car le "_:L" correspondant à la méthode de sélection, signifie que tu peux choisir autant d'objets que tu souhaites, avec n'importe qu'elle système de sélection à partir du moment que les objets ne sont pas sur un calque verrouillé... Donc en l'état, je dirais que ton programme fonctionne déjà selon ta demande ! Bisous, Luna
barbichette Posté(e) le 9 mars 2022 Auteur Posté(e) le 9 mars 2022 En fait c'est moi qui suit trop con.... Je n'ai pas attribué la bonne macro au bon bouton... ***********************Rien ne sert de courrir, il faut partir à point.
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