PHILPHIL Posté(e) le 31 mars 2010 Posté(e) le 31 mars 2010 HELLO gile avait fait cecihttp://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éeseulement 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
Tramber Posté(e) le 31 mars 2010 Posté(e) le 31 mars 2010 (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 ./__\. (.°=°.)
PHILPHIL Posté(e) le 31 mars 2010 Auteur Posté(e) le 31 mars 2010 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
Tramber Posté(e) le 31 mars 2010 Posté(e) le 31 mars 2010 Non :cool: Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
PHILPHIL Posté(e) le 23 avril 2010 Auteur Posté(e) le 23 avril 2010 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
Messages recommandé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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant