Aller au contenu

Hachures avec arrière plan


Zugzwang
 Partager

Messages recommandés

Bonjour

un archi original à trouve une fonction inconue pour moi des hachures, il y met un arrière plan blanc que je trouve moche car il me planque les réseaux qui se retrouvent parfois dessous.

Comme il y en a dans des bloc une sélection de toutes les hachures pour virer cet arrière plan dans les propriété est pas facile

je voudrai donc faire un petit lisp pour les virer j'ai 2 petit lisp pour sortir les propriété DXF ou un dump VBA de l'objet sélectionné

Que ce soit dans le (entget ou le (vlax-dump-object, je ne trouve pas trace de ce remplissage

 

QQs sait ou je peux trouver ça?

 

merci

Lien vers le commentaire
Partager sur d’autres sites

j'ai de la meumeu devant les yeux, ça doit être ça dans le dump :BackgroundColor =

 

le pb, c'est que quand le fair le dump sur la hachure avec arrière plans j'ai ça:
;   BackgroundColor = #<VLA-OBJECT IAcadAcCmColor 0000012050e70110>

et la même sans arrière plan (passé sur aucun dans les propriétés)
;   BackgroundColor = #<VLA-OBJECT IAcadAcCmColor 0000011fe57f20d0>

ça me parait bizarre comme ref pour 'aucun'...
je vais essayer de faire une bascule, mais j'y crois pas...

 

 

 

Lien vers le commentaire
Partager sur d’autres sites

Salut, voici un lisp de gile qui supprime les hachures dans les blocs.

 

Tu le charges, tu lances la commande KHATCH_BLOC puis tu fais un REGEN.

Au revoir les hachures dans les blocs.

KHATCH_BLOCK.zip

Steven________________________________________

Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.

Pour la maison; Linux Mint et pas de problèmes. Mais pas d'AutoCAD.

En rêve; AutoCAD sous Linux.

Lien vers le commentaire
Partager sur d’autres sites

C'est le problème des logiciels d'archi quand ils exportent en dwg (archicad ou allplan). Ça fout des hachures partout dans tous les objets et ça cache tout.

C'est la plaie à nettoyer pour être utilisable.

Aide au téléchargement du cadastre dgfip-download-helper
Insertion de photos géolocalisées exif https://www.dropbox.com/s/gkf6o9ac2hxen97/exifscr.zip?dl=0
Script correction BUG SPDC V2, propriétaire département 21 et 22 : https://greasyfork.org/scripts/442400-spdcv2/code/SPDCV2.user.js

Lien vers le commentaire
Partager sur d’autres sites

Hello

Ci-apres une autre version qui ne supprime les Hachures SOLID ...

La Sante, Bye, lecrabe

PS: depuis mon stock de 3001 routines ...

 

 
;; 
;; http://cadxp.com/topic/42821-modif-lis-khatch-block/page__pid__243487
;; 
;; Routine: KHATCH_BLOCK_SOLID par GC + Tramber
;; 
;; Efface les Hachures DANS les Blocs mais SEULEMENT les Hachures SOLID
;; + Test pour ne traiter que les objets dans l'Espace Objet/Model 
;; 
;; ----- Anciens commentaires ----- 
;; Supprimer (Kill) les hachures (HATCH) dans les blocs (BLOCK)
;; Par GC le 11/03/2011 - Passage en DEFUN par Fraid
;; Micro-Modification par LeCrabe DIM --> HATCH
;; 

(defun c:KHATCH_BLOCK_SOLID (/ b o)  
  (vl-load-com)
  (vlax-for b (vla-get-Blocks
                (vla-get-ActiveDocument
                  (vlax-get-acad-object)
                  )
                )    ;(setq b(vla-item(vla-get-Blocks(vla-get-ActiveDocument(vlax-get-acad-object)))0))
    (or
      (and (= (vla-get-IsLayout B) :vlax-true)(/= (vla-get-Name B)"*Model_Space"))
      (= (vla-get-IsXref B) :vlax-true)
      (vlax-for o b     ;(setq o(vla-item b 3))
        (if (and(wcmatch (vla-get-ObjectName o) "AcDb*Hatch")
                (= (vla-get-PatternName o) "SOLID"))
          (vla-delete o)
          )
        )
      )
    )
  )

(c:KHATCH_BLOCK)
(command "_regen")

 

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Coucou,

Je crois qu'aucune des solutions ne répondent aux problème... Car si je comprends bien le but n'est pas de supprimer la hachure, mais uniquement de définir la couleur d'arrière-plan des hachures sur "Aucun" (correspondant donc en réalité à la couleur d'arrière-plan). Or les programmes ici supprime l'objet de hachure, ce qui est un peu trop radical ^^"
Je pense en effet que la propriété VBA BackGroundColor (obtenue via (vlax-dump-object)) correspond à ce que tu recherches mais en effet, il s'agit d'un objet VBA. En regardant ses propriétés via (vlax-dump-object), on a :

; IAcadAcCmColor: Interface AcCmColor AutoCAD
; Valeurs de propriétés:
;   Blue (RO) = 0
;   BookName (RO) = ""
;   ColorIndex = 257
;   ColorMethod = 200
;   ColorName (RO) = ""
;   EntityColor = -939524096
;   Green (RO) = 0
;   Red (RO) = 0
T

Et en faisant un simple (vla-put-BackGroundColor) sur un objet hachure à partir d'une hachure sans arrière-plan, cela fonctionne sans soucis. Donc la problématique vient finalement pour récupérer ce VLA-OBJECT correspondant à la couleur de l'arrière-plan...
N'ayant pas trop le temps de me pencher sur la question aujourd'hui, le plus simple est de créer une hachure sans arrière-plan, récupérer la valeur de (vla-get-BackGroundColor) et ensuite de parcourir toutes tes définitions de bloc pour redéfinir la valeur de BackGroundColor à partir de la valeur initiale (précédemment récupérée) pour chaque sous-objet de type "HATCH" (code DXF 0).

Bisous,
Luna

  • Like 1
Lien vers le commentaire
Partager sur d’autres sites

Il y a 2 heures, Zugzwang a dit :

Bonjour

un archi original à trouve une fonction inconue pour moi des hachures, il y met un arrière plan blanc que je trouve moche car il me planque les réseaux qui se retrouvent parfois dessous.

Comme il y en a dans des bloc une sélection de toutes les hachures pour virer cet arrière plan dans les propriété est pas facile

je voudrai donc faire un petit lisp pour les virer j'ai 2 petit lisp pour sortir les propriété DXF ou un dump VBA de l'objet sélectionné

Que ce soit dans le (entget ou le (vlax-dump-object, je ne trouve pas trace de ce remplissage

 

QQs sait ou je peux trouver ça?

 

merci

Salut Luna, il semblerait bien que Zugzwang veuille supprimer les hachures.

Ou alors, en effet, nous n'avons pas bien compris, lecrabe et moi, la demande de Zugzwang 😉

Steven________________________________________

Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.

Pour la maison; Linux Mint et pas de problèmes. Mais pas d'AutoCAD.

En rêve; AutoCAD sous Linux.

Lien vers le commentaire
Partager sur d’autres sites

rebonjour et merci,

effectivement, c'est bien la propriété de remplissage des hachure que je voudrai supprimer sans supprimer la hachure

Je connaissais la moulinette pour supprimer les hachure solid que j'utilise régulièrement pour les plans ArchiCAD. Je ne sais pas trop quel logiciel utilise cet archi, et l'export passe par cette propriété que je n'avais jamais manipulé

j'ai qqs heures entre 2 rush alors je creuse un peu

Comme le dit Luna, je penche pour du  (vla-put-BackGroundColor) , mais le truc c'est de trouver le bon put...

 

Lien vers le commentaire
Partager sur d’autres sites

ou lala super merci, je suis pas assez anglophone pour trainer sur theswamp mais c'est vrai que c'est le top

je vais essaye de comprendre comment ça marche, mais je dois avouer si j'ai arrêté de prendre la tête à tlm pour du lisp, je suis hermétique au vba car j'ai pas de base en programmation

toujours est il que ce code là résous mon problème 

 

(defun c:phbg (/ c a d)
;;;  passe sur aucun la propriété d'arière plan des hachures y compris dans les bloc (purge hachure back grond)
;;; auteur ronjonp récupéré sur theswamp https://www.theswamp.org/index.php?topic=54244.0
;;; merci à Luna pour le tuyaut https://cadxp.com/topic/55981-hachures-avec-arri%C3%A8re-plan/#comment-316361

  (vl-load-com)
  (vlax-for l (vla-get-layers (setq d (vla-get-activedocument (vlax-get-acad-object))))
    (cond ((= -1 (vlax-get l 'lock)) (vlax-put l 'lock 0) (setq a (cons l a))))
  )
  (vlax-for b (vla-get-blocks d)
    (if (= 0 (vlax-get b 'isxref))
      (vlax-for o b
        (cond
          ((and (vlax-write-enabled-p o) (= (vla-get-objectname o) "AcDbHatch"))
           (or c (progn (setq c (vla-get-backgroundcolor o)) (vla-put-entitycolor c -939524096)))
           (vla-put-backgroundcolor o c)
          )
        )
      )
    )
  )
  (foreach l a (vlax-put l 'lock -1))
  (vla-regen d acallviewports)
  (princ)
)

 

 

 

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

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.

Chargement
 Partager

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