Aller au contenu

Lisp substitution couleur des hachures


joris25

Messages recommandés

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 ...

Lien vers le commentaire
Partager sur d’autres 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 2021 - Covadis/Autopiste V18.0c
Pisser sous la douche ne suffira pas
Lien vers le commentaire
Partager sur d’autres 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 - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres 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

 

Lien vers le commentaire
Partager sur d’autres 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 - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres 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)
)

 

Lien vers le commentaire
Partager sur d’autres sites

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • 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é