Aller au contenu

Messages recommandés

Posté(e)

Bonjour le forum,

 

Je me remet timidement à faire de toute petite programmation utilisant "VLA-PUT-..." pour gérer des propriétés de transparence, elevation, épaisseur, couleur, etc.

 

(defun c:Ep0 ()
(vl-load-com)
(setq a (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))))
(vlax-for bl a
(vlax-for ent bl
(vla-put-thickness ent 0)
)
)
(vla-regen (vla-get-activedocument (vlax-get-acad-object)) acActiveViewport)
)

 

Comment puis-je faire pour "passer" les entités qui n'ont pas la propriété que je souhaite forcer (exemple ci dessus : les blocs n'ont pas la propriété Elevation et donc mon programme me renvoit une erreur.

 

Merci d'avance

Autocad 2021 - Revit 2022 - Windows 10

Posté(e)

Bon, voilà, je partage !

C'est un morceau du code que j'utilise pour "nettoyer" des plans archi et les utiliser en fond de plan.

C'est parfois un peu long sur les gros plans.

 

;**********************************************************************************************************************************************************
;Forcer transparence, épaisseur, épaisseur de ligne, calque, épaisseur, couleur
;**********************************************************************************************************************************************************
(defun c:FPROP ()
(vl-load-com)
(setq a (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))))
(vlax-for bl a
(vlax-for ent bl

(if(vlax-property-available-p ent 'thickness T)(vla-put-thickness ent 0)) ;thichkness= épaisseur
(if(vlax-property-available-p ent 'entitytransparency T)(vla-put-entitytransparency ent "Dubloc")) ;transparence dubloc
(if(vlax-property-available-p ent 'color T)(vla-put-color ent 0)) ;0=couleur dubloc
(if(vlax-property-available-p ent 'constantwidth T)(vla-put-constantwidth ent 0))
(if(vlax-property-available-p ent 'lineweight T)(vla-put-lineweight ent -3)) ;-3= épaisseur de ligne dubloc
(if(vlax-property-available-p ent 'layer T)(vla-put-layer ent "0")) ;caLQUE 0

)
)
(vla-regen (vla-get-activedocument (vlax-get-acad-object)) acActiveViewport)
)

Autocad 2021 - Revit 2022 - Windows 10

Posté(e)

Salut

 

Pour simplifier tes conditions

(mapcar '(lambda(a B)(if (vlax-property-available-p ent a) (vlax-put ent a B))) (list 'thickness 'entitytransparency 'color 'constantwidth 'lineweight 'layer) '(0 "Dubloc" 0 0 -3 "0"))

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

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é