Jump to content

Lisp substitution couleur des hachures


Recommended Posts

Bonjour à vous, je réalise des plans de copropriété, et en général les plans des étages 2 3 4 5 sont à peu près les mêmes du coup je colle mes teintes (hachures) d'un étage sur l'autre ; c'est sans compter sur mon patron qui exige que d'un étage sur l'autre deux appartements identiques se superposant n'aient pas la même couleur de hachures..(pour ne pas les confondre avec un même lot en duplex) - j'utilise exclusivement 6 couleurs (bleu vert orange violet saumon et rose) :  ; auriez vous la possibilité de créer un lisp qui en sélectionnant les hachures ferait automatiquement  :

les hachures en 131 passeraient en 221
les hachures en 221 passeraient en 131
les hachures en 31 passeraient en  91
les hachures en 181 passeraient en 11
les hachures en 11 passeraient en 181
les hachures en 91 passeraient en 31

Un grand merci d'avance à vous et encore bravo pour votre travail ..

Joris ...

Link to post
Share on other sites

Un calque "hachure" par couleur, et la couleur Ducalque des objets prend tout son sens 😉....

Sinon pour te sortir de ton problème, tu peux utiliser la commande "FILTER" qui te permettra de sélectionner toutes tes hachures de la couleur 131 et ensuite de modifier la couleur dans la palette des propriétés.

1. tu lances la commande FILTER
2. tu "ajoutes l'objet sélectionné"
3. Tu supprimes les filtres que tu n'as pas besoin pour ne garder que les filtres utiles (objet "hachure", et couleur "131")
4. Tu clics sur "appliquer"
5. En ligne de commande, on te demande de choisir tes objets, tu fais "TOUT"
6. Tu modifies la couleur de ton jeu de sélection via la palette.

Et voilà.

image.jpeg.3c7158d243abc94939be78f7983827ff.jpeg

Avec cette manip, tu peux également faire en sorte d'avoir un calque par couleur. Pour ne plus être embêter par la suite....

 

www.cad-is.fr
Autocad Map 2018 - Covadis/Autopiste V17.0d - Mensura Genius V8
Nous n’héritons pas de la Terre de nos ancêtres, nous l’empruntons à nos enfants
Link to post
Share on other sites

Salut,

((lambda (/ ss i aci)
   (if (setq ss (ssget "_X" '((0 . "HATCH"))))
     (repeat (setq i (sslength ss))
       (setq h	 (ssname ss (setq i (1- i)))
	     aci (getpropertyvalue h "Color")
       )
       (cond
	 ((= aci "131") (setpropertyvalue h "Color" "221"))
	 ((= aci "221") (setpropertyvalue h "Color" "131"))
	 ((= aci "31") (setpropertyvalue h "Color" "91"))
	 ((= aci "91") (setpropertyvalue h "Color" "31"))
	 ((= aci "181") (setpropertyvalue h "Color" "11"))
	 ((= aci "11") (setpropertyvalue h "Color" "181"))
       )
     )
   )
 )
)

 

  • Like 1

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Link to post
Share on other sites

juste petite précision y a t'il un moyen que ce lisp ne s'applique que aux hachures selectionnées , là il change toute les hachures du fichier ; et aussi petite interrogation d'habitude il y a un defun c pour charger le lisp ou dois je le rajouter sur le ficjier texte pour donner un nom a ce lisp et le lancer avec une commande comme pour les autres ?

Merci d'avance

 

Link to post
Share on other sites

AutoLISP, Leçon N°1

Avec le code ci-dessus :

  1. tu supprimes la première parenthèse ouvrante et, bien sûr la dernière parenthèse fermante
  2. tu remplaces lambda par : c:LeNomDeComandeQuiTeConviens
  3. tu supprimes le "_X" dans l'expression : (ssget "_X" '((0 . "HATCH")))

et ça devrait marcher.

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Link to post
Share on other sites

Bonjour,

Une alternative pour le sport.

(vl-load-com)
(defun c:hcoul (/ coul adcol sel)
  (setq coul '((131 . 221)
               (221 . 131)
               (31 . 91)
               (91 . 31)
               (181 . 11)
               (11 . 181)
              )
  )
  (if (ssget)
   (progn
    (vlax-for obj (setq sel (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object))))
      (and (= (vla-get-ObjectName obj) "AcDbHatch")
            (setq adcol (cdr (assoc (vla-get-color obj) coul)))
            (vla-put-color obj adcol)
      )
    )
    (vla-delete sel)
    )
  )
  (princ)
)

 

...plus je sais où je suis, moins je sais où je vais....

Extrait d'une double interview simultanée d'une particule élémentaire.

Link to post
Share on other sites
Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...