Aller au contenu

Messages recommandés

Posté(e)

wahaaaag!!!

les boules!!!

je ne comprenais pas pourquoi lorsque je traçais des multilignes j'avais un fond grisé!!

tout simplement pcq j'avais mis comme remplissage "aucun" qui correspond en fait à la couleur 255!!!(encore bravo aux ingénieurs qui ont pondu ça!)

me reste plus qu'à reparamétrer mes multilignes (mais ça ne devrait aps être trop compliqué)

En revanche maintenant je cherche un lisp capable de me transformer ma bibliothèque de blocs car mes blocs sont hachurés en 255 alors qu'il me faudrait la couleur 255,255,255

est-ce que quelqu'un pourrait me faire un petit lisp sélectionnant les hachures des blcos et les faisant apsser sur la couleur 255,255,255

j'avais déjà demandé votre aide pour faire passer ces meêm hachures en arrière plan et j'vais reçu un joli lisp... enfin Vlisp du coup g rien (ou presque) compris

le Vlisp était celui là

(defun c:drw(/ blo doc ent)
 (setq doc (vla-get-activedocument (vlax-get-acad-object)))
 (vla-startundomark doc)
 (vlax-for blo (vla-get-blocks doc)
   (and (eq (vla-get-islayout blo) :vlax-false)
     (vlax-for ent blo
       (or (eq (vla-get-objectname ent) "AcDbHatch")
         (progn
           (vla-copy ent)
           (vla-delete ent)
         )
       )
     )
   )
 )
 (vla-endundomark doc)
 (princ)
)

 

Je me doute que pour changer la couleur ça doit aps être très compliqué mais le Vlisp est réservé aux initiés!! :/

 

Phil

Projeteur Revit Indépendant - traitement des eaux/CVC

Posté(e)

Hello

 

J'ai l'impression que tu as particulierement apprecie mon Msg

>>>

ATTENTION : les magouilles avec le Blanc doivent se faire en general avec le VRAI blanc

sinon on risque qq soucis lors du trace/impression et par exemple en PDF !

Le VRAI blanc = 16 Millions de couleur - RGB = 255,255,255

 

OUI mais cette magouille n'est vraiment possible que depuis la version 2004

et donc la gestion du mode 16M de couleurs !

Et pour AutoCAD LT depuis la version 2009 !

 

Ou alors tu peux utiliser le Tipex sur ton ecran et aussi sur le papier, c du VRAI blanc !

 

OK je sors, lecrabe

Autodesk Expert Elite Team

Posté(e)

Bonjour,

 

Ou alors tu peux utiliser le Tipex sur ton ecran et aussi sur le papier, c du VRAI blanc !

Si le Tipex vient à manquer, tu peux éventuellement tester le code qui suit (code en lisp classique peut être plus facile à décortiquer pour toi).

 

;; Passe les couleurs des hachures de bloc forcé en 255 en couleur 255,255,255.
;; Faire un regen pour modifier l'affichage sur les références
(defun c:test (/ blk e dxf)
 (while (setq blk (tblnext "BLOCK" (null blk)))
   (cond ((wcmatch (setq blk (cdr (assoc 2 blk))) "~'**")
           (setq blk (entget (tblobjname "BLOCK" blk))
                 e   (cdr (assoc -2 blk))
           )
           (while e
             (if (and (= "HATCH" (cdr (assoc 0 (setq dxf (entget e))))) (= (cdr (assoc 62 dxf)) 255))
               (entmod (append dxf '((62 . 7) (420 . 16777215))))
             )
             (setq e (entnext e))
           )
         )
   )
 )
 (princ)
)

 

A+

Apprendre => Prendre => Rendre

Posté(e)

héhé...

'achement plus facile^^

je me demande ce qu'il y a de plus compliqué entre le Vlisp et le lisp maintenant!! :)

En tout cas merci bruno ça marche à merveille!

dernier petit truc, pourrais tu modifier le code pour qu'il passe uniquement les hachures (quelquesoit la couleur) sur le couleur 255,255,255? (javais fait une eptite boulette sur certains blocs!! :/)

Phil

Projeteur Revit Indépendant - traitement des eaux/CVC

Posté(e)

Hello

 

Je suis une triple buse en Lisp/Vlisp et je n'arrive a enlever correctement le AND de Bruno !

 

Donc en attendant tu peux mettre a la place cette ligne :

( if (and (= "HATCH" (cdr (assoc 0 (setq dxf (entget e))))) (

Ainsi TOUTES les Hachures DONT la couleur est inferieur a 256 seront traitees a l'interieur du Bloc ...

 

Desole Bruno pour cette Modif "bien minable" de ton code !

 

Mais ainsi Philosogood aura un truc qui marche !

 

lecrabe

Autodesk Expert Elite Team

Posté(e)

super,

c'est pas grand chose mais c'est avec des petites phrases anodines qu'on arrive à déchiffrer des codes...

il faut que je potasse tout ça

merci et bon we

Phil

Projeteur Revit Indépendant - traitement des eaux/CVC

Posté(e)

Bonsoir lecrabe,

 

Je suis une triple buse en Lisp/Vlisp

 

Au moins cela marche, c'est le principal. ;)

 

En supprimant le AND, cela donne ceci :

(if (= "HATCH" (cdr (assoc 0 (setq dxf (entget e)))))

 

A+

Olivier

Posté(e)

Bonjour,

 

dernier petit truc, pourrais tu modifier le code pour qu'il passe uniquement les hachures (quelquesoit la couleur) sur le couleur 255,255,255? (javais fait une eptite boulette sur certains blocs!! :/)

Modifie le code comme indiqué par –Olivier- en réponse n°9

 

 

'achement plus facile^^

je me demande ce qu'il y a de plus compliqué entre le Vlisp et le lisp maintenant!! :)

Si tu veux comparer en repartant du code que tu as posté, une solution possible en Vlisp.

;; Force la couleur des hachures dans les définitions de bloc en couleur 255,255,255.
;; Faire un regen pour modifier l'affichage sur les références
(defun c:temp (/ blo doc ent objCoul)
 (setq doc (vla-get-activedocument (vlax-get-acad-object)))
 (vla-startundomark doc)
 ;; Obtention d'un pointeur sur la couleur RGB (255,255,255)
 (vla-setRgb
   (setq objCoul (vla-getInterfaceObject
                   (vlax-get-acad-object)
                   (strcat "AutoCAD.AcCmColor." (substr (getvar "acadver") 1 2))
                 )
   )
   255
   255
   255
 )
 ;; Parcours la table des blocs du document
 (vlax-for blo (vla-get-blocks doc)
   (and (eq (vla-get-islayout blo) :vlax-false)
        ;; Parcours la définition du bloc
        (vlax-for ent blo (and (eq (vla-get-objectname ent) "AcDbHatch") (vla-put-TrueColor ent objCoul)))
   )
 )
 (vla-endundomark doc)
 (princ)
)

 

 

Desole Bruno pour cette Modif "bien minable" de ton code !

Mais ainsi Philosogood aura un truc qui marche !

C’est l’intention qui compte, je n’y ai rien vu de minable. ;)

 

Amicalement Bruno

Apprendre => Prendre => Rendre

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité