Aller au contenu

Messages recommandés

Posté(e)

HELLO

 

 

gile avait fait ceci

http://cadxp.cadmag.info/sujetXForum-16547.htm

 

ca donne toute les propriétées dynamique d'un bloc

 

le LISp osculte toutes les propriétés une par une pour en donner la valeur

 

comment en VLips aller directement a une valeur nommée

seulement besoin d"exemples de bout de codes

 

je cherche a récuperer la propriété dynamqieu d'un bloc defini par " LARGEUR" ( Exemple )

et la renvoyer dans le bloc avec une autre valeur

 

je ferais le LISP ce soir

 

 

a+

 

merci

 

phil

FREELANCE

Autodesk Architecture 2025 sous windows 11 64

REVIT

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Posté(e)

(setq valeurextraite nil)
(if
 (and
   (setq bloc (car (entsel "\nSélectionnez un bloc dynamique: ")))
   (setq bloc (vlax-ename->vla-object bloc))
   (= (vla-get-ObjectName bloc) "AcDbBlockReference")
   (= (vla-get-IsDynamicBlock bloc) :vlax-true)
   )
 (foreach prop (vlax-invoke bloc 'getDynamicBlockProperties); (setq prop(nth 1(vlax-invoke bloc 'getDynamicBlockProperties)))
   (if(=(vla-get-PropertyName prop)"Longueurvis")(setq valeurextraite (vla-get-value prop)))
   )
 )
valeurextraite
(vlax-variant-value valeurextraite) 

 

J'ai pris des bouts de ce code rapidement.

La valeur renvoyée étant un variant, il faut éventuellemen convertir avec vlax-variant-value.

 

Bonne soirée :)

 

 

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

hello tramber

 

merci

 

donc si je comprend bien ( lecture rapide sur LISP )

 

il faut parcourir toutes les propriétés dynamiques avec "foreach" avant de trouver la bonne et récuperer la valeur

 

on ne peut pas y aller direct ?

 

a+

phil

 

 

 

 

FREELANCE

Autodesk Architecture 2025 sous windows 11 64

REVIT

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

  • 4 semaines après...
Posté(e)

hello

 

j'ai mis le temps mais ...

 

bon week end

 

phil

 

 (defun c:pbrec ()
 (if (= (tblsearch "layer" "C_POTEAU") nil)
   (command "-calque" "n" "C_POTEAU" "co" "123" "C_POTEAU" "")
 )
 (setq techl (atof (getcfg "APPDATA/Techl")))
 (setq cav (getvar "clayer"))
 (setq largeurpbrec (atof (getcfg "APPDATA/LARGEURPBREC")))
 (setq hauteurpbrec (atof (getcfg "APPDATA/HAUTEURPBREC")))
 (setq tmp (getdist
             (strcat "\nENTRER LA LARGEUR DU POTEAU BETON RECTANGULAIRE <"
                     (rtos largeurpbrec 2 8)
                     ">: "
             )
           )
 )
 (if tmp
   (setq largeurpbrec tmp)
 )
 (setq tmp (getdist
             (strcat "\nENTRER LA HAUTEUR DU POTEAU BETON RECTANGULAIRE <"
                     (rtos hauteurpbrec 2 8)
                     ">: "
             )
           )
 )
 (if tmp
   (setq hauteurpbrec tmp)
 )
 (setcfg "APPDATA/LARGEURPBREC" (rtos largeurpbrec 2 8))
 (setcfg "APPDATA/HAUTEURPBREC" (rtos hauteurpbrec 2 8))
 (command "-calque" "ch" "C_POTEAU" "")
 (command "INSERER"
          "c:/PERSO/bibliotheque/BETON/POTEAU BETON RECTANGULAIRE"
          pause
          (rtos (/ 0.01 techl) 2 8)
          ""
          pause
 )
 (foreach prop (vlax-invoke (vlax-ename->vla-object (cdr (assoc -1 (entget (entlast)))))
                            'getdynamicblockproperties
               )
   (if (= (vla-get-propertyname prop) "LARGEUR")
     (vla-put-value prop largeurpbrec)
   )
   (if (= (vla-get-propertyname prop) "HAUTEUR")
     (vla-put-value prop hauteurpbrec)
   )
 )
 (setvar "clayer" cav)
 (princ)
)

FREELANCE

Autodesk Architecture 2025 sous windows 11 64

REVIT

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

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é