fauxsuisse Posté(e) le 8 mars 2012 Posté(e) le 8 mars 2012 Bonjour tout le monde. J'ai dans un dessin toute une série de multiligne mais je voudrais les remplacer par un autre type de multiligne mais je ne vois pas comment, une fois utilisée elle ne peut plus être modiffiée ou remplacée.
GEGEMATIC Posté(e) le 8 mars 2012 Posté(e) le 8 mars 2012 Avec autocad LT, je ne pense pas que ce soit possible.C'est possible via des commandes lisp (comme Powerclic) mais il arrive que ça fasse planter Autocad.Les multilignes ont été abandonnées par Autodesk, c'est bien domage. ----------------------------------------------------------------------Site: https://www.g-eaux.frBlog: http://g-eaux.over-blog.com
fauxsuisse Posté(e) le 8 mars 2012 Auteur Posté(e) le 8 mars 2012 Avec autocad LT, je ne pense pas que ce soit possible.C'est possible via des commandes lisp (comme Powerclic) mais il arrive que ça fasse planter Autocad.Les multilignes ont été abandonnées par Autodesk, c'est bien domage. Oups je me suis trompé, j'ai pas posté dans la bonne rubique, je ne suis pas sous LT, mis à part ça les multilignes sont toujours là sous 2012 et aussi dans la 2013
GEGEMATIC Posté(e) le 8 mars 2012 Posté(e) le 8 mars 2012 Je t'ai répondu dans Autocad 2012concernant le terme "abandonné", je voulais dire qu'aucune nouvelle fonctionnalité n'a été ajoutée depuis la V14 !il est domage qu'on ne puisse avoir des rayons de raccordement et des méthode de raccords plus précises. ----------------------------------------------------------------------Site: https://www.g-eaux.frBlog: http://g-eaux.over-blog.com
fauxsuisse Posté(e) le 8 mars 2012 Auteur Posté(e) le 8 mars 2012 Je t'ai répondu dans Autocad 2012concernant le terme "abandonné", je voulais dire qu'aucune nouvelle fonctionnalité n'a été ajoutée depuis la V14 !il est domage qu'on ne puisse avoir des rayons de raccordement et des méthode de raccords plus précises. Tout à fait d'accord avec toi B)
philsogood Posté(e) le 9 mars 2012 Posté(e) le 9 mars 2012 hello faux suissetout a fait d'accord avec vousles multilignes sont un outil très pratique et pourtant d'une lourdeur à l'utilisation sans précédent... en même temps faute d'avoir trouver mieux je continue à les utiliser (laborieusement!)++Phil Projeteur Revit Indépendant - traitement des eaux/CVC
lecrabe Posté(e) le 11 mars 2012 Posté(e) le 11 mars 2012 Hello Je confirme que les multi-lignes n'ont pas bouge "ou presque" depuis 1997 (AutoCAD R14) Par contre je crois avoir deja vu un Lisp/VLisp qui permettait de selectionner N multi-lignes pour les "tripatouiller" ... A verifier ou plutot a farfouiller !? Le Decapode (lecrabe) PS: si tu as simplement un AutoCAD LT, tu peux installer un AutoCAD ou MAP ou Autodesk Architectural Desktop ou CIVIL relativement recent (version 201x) qui tournera 30 jours ! Autodesk Expert Elite Team
bonuscad Posté(e) le 11 mars 2012 Posté(e) le 11 mars 2012 Bonjour, Ce que je peux proposer avec une version pleine est de retracer une Multiligne avec le style courant, une façon de changer sont style de ligne!...Voici (écrit rapidement) le code: (vl-load-com) (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) ) ) ) (defun c:change_mline ( / js ent ename l_pt cur_lay closed) (princ "\nSélectionner une multiligne.") (while (null (setq js (ssget "_+.:E:S" '((0 . "MLINE"))))) (princ "\nCe n'est pas une multiligne!") ) (setq ent (ssname js 0) ename (vlax-ename->vla-object ent) l_pt (l-coor2l-pt (vlax-get ename 'Coordinates) T) cur_lay (getvar "CLAYER") ) (initget "Fermée Ouverte _Closed Open") (if (eq (getkword "\nMultiligne [Fermée/Ouverte] <Ouverte>: ") "Closed") (setq closed T) ) (setvar "clayer" (vlax-get ename 'Layer)) (command "_.mline") (foreach n l_pt (command "_none" (trans n 0 1))) (if closed (command "_close") (command "")) (entdel ent) (setvar "CLAYER" cur_lay) (prin1) ) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
fauxsuisse Posté(e) le 12 mars 2012 Auteur Posté(e) le 12 mars 2012 Merci Bonuscad, C'est parfait, c'est exactement ce que je cherchais. Bonne journée et merci encore :D
lecrabe Posté(e) le 12 mars 2012 Posté(e) le 12 mars 2012 Hello J'ai farfouille dans mon stock et j'ai trouve cette routine de notre indispensable Gilles ! Le Decapode (lecrabe) PS: SVP si tu peux la tester !? ;; Pac GC - Changer le style de Multi-Lignes ... ;; http://www.cadxp.com/modules.php?op=modload&name=XForum&file=viewthread&tid=30135#pid130971 ;; Commande : CMLS (defun c:CMLS (/ *error* echo osnp slst ss styl ent) (vl-load-com) (defun *error* (msg) (or (not msg) (= msg "Fonction annulée") (princ (strcat "Erreur: " msg)) ) (setvar 'cmdecho echo) (setvar 'osmode osnp) (vla-EndUndoMark (vla-get-ActiveDocument (vlax-get-acad-object))) (princ) ) (setq echo (getvar 'cmdecho) osnp (getvar 'osmode) slst (gc:GetDictEntries (dictsearch (namedobjdict) "ACAD_MLINESTYLE")) ) (if (and (setq n -1 ss (ssget '((0 . "MLINE"))) ) (setq styl (gc:ListBox "Styles de multiligne" "Choisissez un style" (mapcar 'car slst) 0)) ) (progn (vla-StartUndoMark (vla-get-ActiveDocument (vlax-get-acad-object))) (setvar 'cmdecho 0) (setvar 'osmode 0) (while (setq ent (ssname ss (setq n (1+ n)))) (setq elst (entget ent)) (vl-cmdf "_.mline" "_style" styl) (mapcar '(lambda (x) (vl-cmdf (trans x 0 1)) ) (massoc 11 elst) ) (vl-cmdf (if (= 2 (logand 2 (cdr (assoc 71 elst)))) "_close" "" ) ) (if (setq xd (assoc -3 (entget ent '("*")))) (entmod (append (entget (entlast)) (list xd))) ) (entdel ent) ) ) ) (*error* nil) ) ;; gc:ListBox par GC ;; Boite de dialogue permettant un ou plusieurs choix dans une liste ;; ;; Arguments ;; title : le titre de la boite de dialogue (chaîne) ;; msg ; message (chaîne), "" ou nil pour aucun ;; lbls : une liste de chaînes (sans doublons) ;; flag : 0 = liste déroulante ;; 1 = liste choix unique ;; 2 = liste choix multipes ;; ;; Retour : l'option (flag = 0 ou 1) ou la liste des options (flag = 2) ;; ;; Exemple d'utilisation ;; (listbox "Présentation" "Choisir une présentation" (layoutlist) 1) (defun gc:ListBox (title msg lbls flag / tmp file dcl_id choice) (setq tmp (vl-filename-mktemp "tmp.dcl") file (open tmp "w") ) (write-line (strcat "ListBox:dialog{label=\"" title "\";") file ) (if (and msg (/= msg "")) (write-line (strcat ":text{label=\"" msg "\";}") file) ) (write-line (cond ((= 0 flag) "spacer;:popup_list{key=\"lst\";") ((= 1 flag) "spacer;:list_box{key=\"lst\";") (T "spacer;:list_box{key=\"lst\";multiple_select=true;") ) file ) (write-line "}spacer;ok_cancel;}" file) (close file) (setq dcl_id (load_dialog tmp)) (if (not (new_dialog "ListBox" dcl_id)) (exit) ) (start_list "lst") (mapcar 'add_list lbls) (end_list) (action_tile "accept" "(or (= (get_tile \"lst\") \"\") (if (= 2 flag) (progn (foreach n (gc:str2lst (get_tile \"lst\") \" \") (setq choice (cons (nth (atoi n) lbls) choice))) (setq choice (reverse choice))) (setq choice (nth (atoi (get_tile \"lst\")) lbls)))) (done_dialog)" ) (start_dialog) (unload_dialog dcl_id) (vl-file-delete tmp) choice ) ;; gc:str2lst ;; Transforme un chaine avec séparateur en liste de chaines ;; ;; Arguments ;; str : la chaine à transformer en liste ;; sep : le séparateur ;; ;; Exemples ;; (str2lst "a b c" " ") -> ("a" "b" "c") ;; (str2lst "1,2,3" ",") -> ("1" "2" "3") ;; (mapcar 'read (str2lst "1,2,3" ",")) -> (1 2 3) (defun gc:str2lst (str sep / pos) (if (setq pos (vl-string-search sep str)) (cons (substr str 1 pos) (gc:str2lst (substr str (+ (strlen sep) pos 1)) sep) ) (list str) ) ) ;; gc:GetDictEntries ;; Retourne la liste des entrées du dictionnaire ;; sous forme de paires pointées (Nom . ENAME) ;; ;; Argument : dict le dictionnaire (ENAME ou liste DXF) (defun gc:GetDictEntries (dict / result) (and (= (type dict) 'ENAME) (setq dict (entget dict))) (while (setq dict (vl-member-if (function (lambda (x) (= (car x) 3))) (cdr dict))) (setq result (cons (cons (cdar dict) (cdadr dict)) result)) ) (reverse result) ) ;; massoc ;; Retourne la liste de toutes les valeurs pour le code spécifié ;; dans une liste d'association ;; ;; Arguments ;; code : le code de groupe pour les entrées ;; alst : la liste d'association (defun massoc (code alst / pair) (if (setq alst (member (assoc code alst) alst)) (cons (cdar alst) (massoc code (cdr alst))) ) ) Autodesk Expert Elite Team
fauxsuisse Posté(e) le 12 mars 2012 Auteur Posté(e) le 12 mars 2012 Lecrabe je n'ai qu'un mot à dire,Woaww c'est plus que parfait avec se choix de multiligne que l'on peut choisir, c'est exactement ça que j'attendais. Je confirme que je ne suis pas sous LT je m'étais trompé en postant le sujet, je suis sous version pleine 2012 et MEP 2012 Merci encore pour votre travaille ça m'enlève une grosse épine du pied. :D
La Lozère Posté(e) le 21 novembre 2017 Posté(e) le 21 novembre 2017 Bonjour,J'ai un collègue qui doit transformer une 10aine de km de multilignes en une polyligne passant par l'axe. Bonjour la galère... Je comptais utiliser le bout de lisp de (gile), mais voici ce que ça me retourne:Sélectionner des objets: VVC: Internal ErrorUne idée? Sinon, j'ai essayé le code de bonuscad. Après avoir créer un style constitué d'une simple ligne, j'ai pu transformer ma multiligne dans le nouveau style.Mais j'ai 2 problèmes. 1, on ne peut modifier que multiligne par multiligne. Pas possible de faire de sélection multiple. Donc quand on en a des 10aines et des 10aines..... Et 2, une foie explosée la nouvelle multiligne, quand je fais joindre tout les morceaux de ligne, il y en a qui refuse de ce joindre. :blink: En tout cas merci à vous. PS: Toujours autant la m... ces multilignes. www.cad-is.fr Autocad Map 2021 - Covadis/Autopiste V18.0c Pisser sous la douche ne suffira pas
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