philsogood Posté(e) le 23 décembre 2015 Posté(e) le 23 décembre 2015 hellosujet déjà evoqué sur le forum mais je souahiterai savoir si quelqu'un sait comment rémédier à ce problème :j'ai des multilignes sur un fichier avec un nom définices ML sont incorrectes (elles devraient avoir un type de lignes AXES en leur milieu)comment redefinir ces ML sans créer un nouveau style et re tracer toutes les ML existantes?ci dessous le psot ou une discussion avait commencée (sans que le solution ne soit apparue)http://cadxp.com/topic/20119-modifier-une-multiligne/@+Phil Projeteur Revit Indépendant - traitement des eaux/CVC
GEGEMATIC Posté(e) le 23 décembre 2015 Posté(e) le 23 décembre 2015 salut,tu ne peux pas modifier un style de multilignes existant dont il existe des occurrences dans le dessin.il est à noter que ni Microstation ni DraftSight ne le permettent ...Ma solution, avec PowerClic:changer les styles de multiligne à modifier par un autre,il n'y a plus d’occurrence,on modifie le style,puis on restaure le style modifié avec PowerClic. c'est pas génial, je reconnais ...Gégé ----------------------------------------------------------------------Site: https://www.g-eaux.frBlog: http://g-eaux.over-blog.com
bonuscad Posté(e) le 23 décembre 2015 Posté(e) le 23 décembre 2015 Bonjour, J'ai essayé vite fait un code pour redefinir les MLINE sélectionnées avec le style courant. (en fait elles sont retracées...) Je l'ai pas testé en profondeur, donc méfiance.Ce qui m'a surpris c'est que je n'ai pas trouvé où est l'option fermée en activeX, donc j'ai traité celle-ci avec les code DXF. Voilà pour le brouillon à essayer. (defun l-coor2l-pt (lst flag / ) (if lst (cons (list (car lst) (cadr lst) (if flag (+ (if (vlax-property-available-p ename 'Elevation) (vlax-get ename 'Elevation) 0.0) (caddr lst)) (if (vlax-property-available-p ename 'Elevation) (vlax-get ename 'Elevation) 0.0) ) ) (l-coor2l-pt (if flag (cdddr lst) (cddr lst)) flag) ) ) ) (vl-load-com) (defun c:redef_mline ( / jsml AcDoc Space UCS save_ucs WCS nbr ent_name ename l_pt id_obj) (setq jsml (ssget '((0 . "MLINE"))) ) (cond (jsml (setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object)) Space (if (eq (getvar "CVPORT") 1) (vla-get-PaperSpace AcDoc) (vla-get-ModelSpace AcDoc) ) UCS (vla-get-UserCoordinateSystems AcDoc) save_ucs (vla-add UCS (vlax-3d-point '(0.0 0.0 0.0)) (vlax-3d-point (getvar "UCSXDIR")) (vlax-3d-point (getvar "UCSYDIR")) "CURRENT_UCS" ) ) (vla-put-Origin save_ucs (vlax-3d-point (getvar "UCSORG"))) (vla-StartUndoMark AcDoc) (setq WCS (vla-add UCS (vlax-3d-Point '(0.0 0.0 0.0)) (vlax-3d-Point '(1.0 0.0 0.0)) (vlax-3d-Point '(0.0 1.0 0.0)) "TEMP_WCS")) (vla-put-activeUCS AcDoc WCS) (repeat (setq nbr (sslength jsml)) (setq ent_name (ssname jsml (setq nbr (1- nbr))) drap (assoc 71 (entget ent_name)) ename (vlax-ename->vla-object ent_name) id_obj (vla-get-ObjectName ename) ) (cond ((eq id_obj "AcDbMline") (setq l_pt (l-coor2l-pt (vlax-get ename 'Coordinates) T)) (setq nw_ml (vlax-invoke Space 'AddMline (apply 'append l_pt))) (vla-put-Layer nw_ml (vla-get-Layer ename)) (entmod (subst drap (assoc 71 (entget (entlast))) (entget (entlast)))) (vla-delete ename) ) ) ) (and save_ucs (vla-put-activeUCS AcDoc save_ucs)) (and WCS (vla-delete WCS) (setq WCS nil)) (vla-EndUndoMark AcDoc) ) ) (prin1) ) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
philsogood Posté(e) le 23 décembre 2015 Auteur Posté(e) le 23 décembre 2015 hello Merci bonuscad pour ce coup de pouceje viens de tester le lisp et je ne comprends pas tout :comment le lisp fait-il pour recharger ma polyligne? il va chercher dans le fichier AutoCAD.mln?l'échelle de mes multiligne est supprimé lors de la manipulation mise à part ce problème d'échelle, je ne vois aucune différence entre avant et après... :/ Phil Projeteur Revit Indépendant - traitement des eaux/CVC
bonuscad Posté(e) le 24 décembre 2015 Posté(e) le 24 décembre 2015 je ne vois aucune différence entre avant et après... :/ C'est que le style COURANT de multiligne est le même que celle des multiligne que tu essayes de changer... l'échelle de mes multiligne est supprimé lors de la manipulation Effectivement les propriétés que je "pompe" ne concerne que le calque.Si cela convient, je pense qu'on pourra étendre facilement aux propriétés forcée d'échelle de type de ligne, de couleur, d'épaisseur de ligne, de type de ligne. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
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