Aller au contenu

Hachures avec arrière plan


Messages recommandés

Posté(e)

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

Posté(e)

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

 

 

 

Posté(e)

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 le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD.

En rêve; AutoCAD sous Linux.

Posté(e)

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

Posté(e)

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

Posté(e)

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
Posté(e)
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 le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD.

En rêve; AutoCAD sous Linux.

Posté(e)

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

 

Posté(e)

Bonjour,

c'est bein valeur 257 de la méthode : obj.BackgroundColor.ColorIndex

Il y a 14 heures, Luna a dit :
;   ColorIndex = 257

par contre pas sur que tu puisse l'utiliser en tant que "input" vu que la valeur "max" est 256...

Posté(e)

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

 

 

 

  • 1 an aprè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 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é