joris25 Posté(e) le 8 mars 2013 Posté(e) le 8 mars 2013 Bonjour à tous, j'aimerai savoir si il existe un lisp qui me permettrait de forcer les couleurs de tous les objets sélectionnés en fonction de la couleur du calque dans lequel se trouve l'objet exemple une ligne dans le calque "mur" de couleur ducalque deviendrait cyan (car le calque mur a la couleur cyan) Merci d'avance à toutes les pointures du lisp présents sur ce site
jeff66 Posté(e) le 9 mars 2013 Posté(e) le 9 mars 2013 Bonjour Joris25,Voici un petit bout de code.Cordialement.Coul-Ducalque.lsp Formateur sur AutoCAD et REVIT Architecture: jf-brigaud.com
lecrabe Posté(e) le 9 mars 2013 Posté(e) le 9 mars 2013 Hello NON Sorry, le progr Lisp fourni ne fait pas ce qui est demande ! Je crois me souvenir que Bryce avait deja fourni ce genre de programme (A verifier !?) Car ainsi avec la couleur forcee sur chaque objet (qui sont en mode DuCalque) lors de l'extraction des objets, on obtient la "bonne" couleur ! D'ailleurs SVP j'aimerais bien ce genre de prog avec la meme possibilite pour les Types de lignes, Epaisseurs de traits ... Merci d'avance, lecrabe Autodesk Expert Elite Team
bryce Posté(e) le 9 mars 2013 Posté(e) le 9 mars 2013 Bonjour, Je ne pensais pas qu'un simple crustacé pouvait avoir une aussi bonne mémoire ! :P En fait j'avais effectivement déjà posté un lisp de ce genre, mais pour les types de ligne: (defun c:FORCETP (/ acdoc layers *error* lay ss obj layobj i counter) ; Attribue à chaque objet sélectionné le type de ligne du calque de l'objet. (vl-load-com) (setq acdoc (vla-get-ActiveDocument (vlax-get-acad-object)) layers (vla-get-Layers acdoc) ) (defun *error* (msg) (vla-endundomark acdoc) (and msg (or (member (strcase msg) '("FUNCTION CANCELLED" "QUIT / EXIT ABORT" "FONCTION ANNULEE" "QUITTER / SORTIR ABANDON")) (princ (strcat "\nErreur : " msg)) ) ) (princ) ) (vla-startundomark acdoc) (if (or (setq ss (cadr (ssgetfirst))) (setq ss (ssget)) ) (progn (setq i 0 counter 0) (repeat (sslength ss) (setq obj (vlax-ename->vla-object (ssname ss i)) layobj (vla-item layers (vla-get-layer obj)) ) (if (= (vla-get-lock layobj) :vlax-false) (progn (vla-put-linetype obj (vla-get-linetype layobj)) (setq counter (1+ counter)) ) ) (setq i (1+ i)) ) (princ (strcat "\n" (itoa counter) " objets modifiés !")) (princ) ) );if selection (*error* nil) ) (princ "\nCommande à utiliser: FORCETP") (princ) Il suffit de l'adapter un peu pour faire la même chose avec la couleur: (defun c:FORCECOLOR (/ acdoc layers *error* lay ss obj layobj i counter) ; Attribue à chaque objet sélectionné la couleur du calque de l'objet. (vl-load-com) (setq acdoc (vla-get-ActiveDocument (vlax-get-acad-object)) layers (vla-get-Layers acdoc) ) (defun *error* (msg) (vla-endundomark acdoc) (and msg (or (member (strcase msg) '("FUNCTION CANCELLED" "QUIT / EXIT ABORT" "FONCTION ANNULEE" "QUITTER / SORTIR ABANDON")) (princ (strcat "\nErreur : " msg)) ) ) (princ) ) (vla-startundomark acdoc) (if (or (setq ss (cadr (ssgetfirst))) (setq ss (ssget)) ) (progn (setq i 0 counter 0) (repeat (sslength ss) (setq obj (vlax-ename->vla-object (ssname ss i)) layobj (vla-item layers (vla-get-layer obj)) ) (if (= (vla-get-lock layobj) :vlax-false) (progn (vla-put-color obj (vla-get-color layobj)) (setq counter (1+ counter)) ) ) (setq i (1+ i)) ) (princ (strcat "\n" (itoa counter) " objets modifiés !")) (princ) ) );if selection (*error* nil) ) (princ "\nCommande à utiliser: FORCECOLOR") (princ) J'espère juste qu'il y a une très bonne raison pour faire ce genre de choses... :unsure: Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
joris25 Posté(e) le 9 mars 2013 Auteur Posté(e) le 9 mars 2013 les gars vous êtes vraiment des bêtes...je pose une question un vendredi soir a minuit et le lendemain samedi j'ai deja la réponse sublime ce site et surtout ceux qui font ce qu'il est ma raison pour faire cette demande : ma boite (geometre topographe) possede un lisp qui calcul les superficies des polylignes en fonction des couleurs forcees .. mais chaque polyligne est dans un calque bien precis u coup jai une vingtaine de calque different a remettre en couleur force pour repondre à l'attente du programme...etc.. un grand merci à vous depuis que je parcours ce site la nuit (j'ai une petite fille de deux mois donc mon sommeil en ce moment :o etc...) j'arrete pas de ramener a mon bureau des lisp et je passe pour un génie merci au crabe à didier à Gile etc... RESPECT
joris25 Posté(e) le 9 mars 2013 Auteur Posté(e) le 9 mars 2013 et à BRYCE aussi :huh: le lisp fonctionne nickel
bryce Posté(e) le 9 mars 2013 Posté(e) le 9 mars 2013 D'ailleurs SVP j'aimerais bien ce genre de prog avec la meme possibilite pour les Types de lignes, Epaisseurs de traits ... Voici une version qui combine couleur et/ou type de ligne et/ou épaisseur : (defun c:FPROP ( / acdoc layers *error* ss propslist i counter lay ) ; Force les propriétés des objets sélectionnés (couleur, type de ligne, épaisseur de tracé) selon les propriétés de leur calque. ; Bryce, 03/2013 (vl-load-com) (setq acdoc (vla-get-ActiveDocument (vlax-get-acad-object)) layers (vla-get-Layers acdoc) ) (defun *error* (msg) (vla-EndUndoMark acdoc) (and msg (or (member (strcase msg) '("FUNCTION CANCELLED" "QUIT / EXIT ABORT" "FONCTION ANNULEE" "QUITTER / SORTIR ABANDON")) (princ (strcat "\nErreur : " msg)) ) ) (if ss (vla-Delete ss)) (princ) ) (vla-StartUndoMark acdoc) (or (setq ss (cadr (ssgetfirst))) (setq ss (ssget "_:L")) ) (if ss (mapcar '(lambda ( prop str ) (initget "Oui Non") (if (= (getkword (strcat "Forcer " str " des objets ? [Oui/Non] <N> : ")) "Oui") (setq propslist (cons prop propslist)) ) ) (list 'TrueColor 'Linetype 'Lineweight) (list "la couleur" "le type de ligne" "l'épaisseur de tracé") ) ) (if (and ss propslist) (progn (setq ss (vla-get-ActiveSelectionSet acdoc) i 0 counter 0 ) (vlax-for obj ss (setq lay (vla-Item layers (vla-get-Layer obj)) ) (mapcar '(lambda (prop) (vlax-put-property obj prop (vlax-get-property lay prop)) ) propslist ) (setq counter (1+ counter)) (setq i (1+ i)) ) (princ (strcat "\n" (itoa counter) " objets modifiés !")) (princ) ) (princ "\nAucun objet modifié !") );if selection (*error* nil) ) (princ "\nCommande à utiliser: FPROP") (princ) Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
jeff66 Posté(e) le 9 mars 2013 Posté(e) le 9 mars 2013 Bonsoir,Je n’avais pas compris le sens de la question de Joris25. C’est vrai que c’est parfois pénible d’avoir comme propriété « Ducalque » plutôt que la valeur réelle. Bryce ton LISP est génial il va me rendre de grands services, respect.Cordialement. Formateur sur AutoCAD et REVIT Architecture: jf-brigaud.com
sbosarl Posté(e) le 11 mars 2013 Posté(e) le 11 mars 2013 Salut, je reste sans voix Un formateur qui propose de forcer les couleurs, pourtant ta premier réponse semblais indique le contraire Tu me diras: je vient bien de voir un élève en formation . Ne jurer que par des bloc dynamique à 5 ou 6 paramètres ainsi qu’ avec forçage couleurs et lignes
lecrabe Posté(e) le 11 mars 2013 Posté(e) le 11 mars 2013 Hello *** 0 - MERCI beaucoup Bryce *** Comme je l'ai deja dit, j'utilise parfois ce genre de progr pour diverses raisons : *** 1 - Extraction *** Car ainsi avec la propriete forcee sur chaque objet (qui sont en mode DuCalque)lors de l'extraction des objets, on obtient la "bonne" couleur / type de ligne / epaisseur dans les fichiers XLS, MDB, CSV et les tableaux AutoCAD ... *** 2 - Export ves d'autres formats CAO/SIG *** Car ainsi j'ai directement la vraie propriete de couleur, type de ligne, epaisseur AutoCAD dans ces formats NON-DWG/DXF ... De facon generale, je realise ce genre de manipulation sur des calques ou justement, on n'a AUCUNE entite avec une propriete FORCEE ! Mais j'imagine qu'il peut y avoir d'autres raisons !? lecrabe Autodesk Expert Elite Team
lili2006 Posté(e) le 11 mars 2013 Posté(e) le 11 mars 2013 Bonjour à toutes et tous, Quelle est la différence avec les propriétés "ducalque" ? C'est uniquement pour : ? lors de l'extraction des objets, on obtient la "bonne" couleur / type de ligne / epaisseur dans les fichiers XLS, MDB, CSV et les tableaux AutoCAD ... Merci d'avance, Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
lecrabe Posté(e) le 11 mars 2013 Posté(e) le 11 mars 2013 Hello Lilian Par exemple quand tu regardes ulterieurement un XLS, MDB, CSV d'Extraction et que tu as "partout" (ou presque) ce n'est pas tres parlant !? lecrabe Autodesk Expert Elite Team
lili2006 Posté(e) le 11 mars 2013 Posté(e) le 11 mars 2013 Re, En effet,...C'est donc juste une question d'affichage ? (Comme dans la palette des propriétés ?) Ce qui me gène un peu là dedans c'est qu'on ne sait plus si telle couleur ou tel type de lignes correspond bien au calque,...En effet, si les entités ont étés forcées, comment le sais ton alors ? Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
lecrabe Posté(e) le 11 mars 2013 Posté(e) le 11 mars 2013 Hello En general quand je force les proprietes, je ne garde pas le DWG en question ! C juste pour avoir une extraction avec des proprietes "plus explicites" et/ou un export vers d'autres formats CAO/SIG avec idem ... Comme je l'ai signale, en general je ne fais pas passer cette routine sur des calques ou JUSTEMENT il y a des proprietes forcees ... lecrabe Autodesk Expert Elite Team
lili2006 Posté(e) le 11 mars 2013 Posté(e) le 11 mars 2013 Re, Merci Patrice pour ta réponse, je ne fais pas passer cette routine sur des calques ou JUSTEMENT il y a des proprietes forcees . Et ça, tu le vérifies "simplement" (et efficacement !!) de quelle manière ? Merci encore, Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
lecrabe Posté(e) le 11 mars 2013 Posté(e) le 11 mars 2013 Hello Lilian Humour : cette question est "disqualifiante" pour un Pro comme toi !? Tu dois plaisanter ce matin, car en selectionnant tout ce qui est visible devant soi ... Tu verifies sur les 3 ascenseurs des proprietes qu'ils ont TOUS TOUJOURS en mode ! Manipulation a realiser avec la case de dialogue des proprietes DESACTIVEE ! lecrabe Autodesk Expert Elite Team
lili2006 Posté(e) le 11 mars 2013 Posté(e) le 11 mars 2013 Re, Oui bien sur, mais comment tu gères ça ensuite,...!!!???? Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
lili2006 Posté(e) le 11 mars 2013 Posté(e) le 11 mars 2013 Re, Manipulation a realiser avec la case de dialogue des proprietes DESACTIVEE ! Heu,...c'est à dire ? Merci d'avance, Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
lecrabe Posté(e) le 11 mars 2013 Posté(e) le 11 mars 2013 Hello Toujours DESACTIVER la case de dialogue des proprietes lorsque l'on fait une GROSSE selection (pour verifier les proprietes de couleur, types de ligne, epaisseurs) sinon AutoCAD perd un temps FOU a tenter de trouver des proprietes COMMUNES aux entites selectionnees ... Ne pas oublier que dans les OPTIONS / Selection - Depuis la version 2012 il y a un nouveau parametre : nombre maximum d'objets selectionnes , valeur par defaut = 25000 Humour : pour le 1er Avril, tu mets ce parametre a UN ou DEUX par exemple c tres amusant de voir qq'un tenter de travailler avec cette limite ... lecrabe Autodesk Expert Elite Team
lili2006 Posté(e) le 11 mars 2013 Posté(e) le 11 mars 2013 Re, Toujours DESACTIVER la case de dialogue des proprietes lorsque l'on fait Comment fais ton ? Et ou lis tu les infos de sélection alors ? Pas sur d'avoir tout compris moi,... Merci encore, Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
-Olivier- Posté(e) le 11 mars 2013 Posté(e) le 11 mars 2013 Bonjour Lecrabe, Ne pas oublier que dans les OPTIONS / Selection - Depuis la version 2012 il y a un nouveau parametre : nombre maximum d'objets selectionnes , valeur par defaut = 25000 Merci pour l'info. Je suis encore sur la 2011 mais certain de mes collègues ont des versions supérueres. As-tu le nom de la variable ? Car 25000 c'est pas suffisant à mon goût. <_< Merci par avance. Olivier
lecrabe Posté(e) le 11 mars 2013 Posté(e) le 11 mars 2013 Hello DESACTIVER signifie pour moi REFERMER la case de dialogue des proprietes ... La seule chose qui m'interesse dans cette manipulation, c de voir si les 3 ascenseurs de proprietes restent bien en mode et C TOUT ! Parfois j'enchaine avec un simple SELECT pour compter les entites ... lecrabe Autodesk Expert Elite Team
lili2006 Posté(e) le 11 mars 2013 Posté(e) le 11 mars 2013 Re, La variable est "PROPOBJLIMIT" Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
lili2006 Posté(e) le 11 mars 2013 Posté(e) le 11 mars 2013 Re,c de voir si les 3 ascenseurs de proprietes restent bien en mode Ah ok ! Tu parles de la barre d'outils "propriétés" dont je me sers jamais,...(Les étudiants confondent trop facilement "contrôle" des entités avec "forçage" en utilisant cette barre d'outils. Et après, quand on utilise Covadis ou Map, on pleure,...) Merci pour tes réponses,...;) Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
-Olivier- Posté(e) le 11 mars 2013 Posté(e) le 11 mars 2013 La variable est "PROPOBJLIMIT" Merci Lilian et désolé d'avoir pollué le post. Olivier
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