(gile) Posté(e) le 17 juillet 2008 Posté(e) le 17 juillet 2008 Salut, http://img360.imageshack.us/img360/7356/erreurku2.png Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 18 juillet 2008 Posté(e) le 18 juillet 2008 Bonjour à toutes et tous, Oups ! C'est mieux là ? Merci encore, Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
(gile) Posté(e) le 18 juillet 2008 Posté(e) le 18 juillet 2008 Salut, Pour que ceux que ça intéresse puissent profiter de la discussion, je poste ton ébauche de LISP.Si ça te pose problème, fais moi le savoir, je supprimerais ce message. ; ******************************************************************* ; essai champs.LSP ; ;(modes '("CMDECHO" "ATTDIA" "ATTREQ" "GRIDMODE" "UCSFOLLOW")) ;(setvar "cmdecho" 0) ; turn cmdecho off ;(setvar "attdia" 0) ; turn attdia off ;(setvar "attreq" 1) ; turn attreq on ;(setvar "gridmode" 0) ; turn gridmode off ;(setvar "ucsfollow" 0) ; turn ucsfollow off (defun C:aaa () (vl-load-com) (setq blk (car (entsel "\nSélectionnez le bloc dynamique"))) (setq blk (vlax-ename->vla-object blk)) (setq prop-lst (vlax-invoke blk 'getDynamicBlockProperties)) (setq ech (car (mapcar 'vla-get-value prop-lst))) (setq ech1 (getint "entrer l'echelle 1/: 20 , 50 , 75 , 100 , 200 :")) (list ech) ;;;;a partir de la, je ne sais pas comment recuperer que la valeur 1/50 dans (#) , et la remplacer avec la commande vla-put-value par la valeur ech1 , saisie au clavier a l'insertion du bloc .;;; ;(vla-put-value ech1 ech) ) Certaines Données Visual LISP sont sous forme de variant dont certains sont du type safearray ces données ne sont pas facilement exploitables en LISP, il faut les transformer. Par exemple : (vla-getDynamicBlockProperties blk) retourne un variant : #Pour récupérer la valeur de ce variant on peut utiliser la fonction vlax-variant-value : (vlax-variant-value (vla-getDynamicBlockProperties blk)) retourne : #On peut transformer ce safearray en liste AUTOLISP avec la fonction vlax-safearray->list (vlax-safearray->list (vlax-variant-value (vla-getDynamicBlockProperties blk))) retourne une liste de vla-object. Pour éviter ceci on peut parfois utiliser les fonctions vlax-get, vlax-put et vlax-invoke qui retournent des données directement exploitables avec AutoLISP, comme le fait l'expression : (vlax-invoke blk 'getDynamicBlockProperties) qui retourne la même liste de vla-object. De la même façon, pour avoir la valeur de la première proprièté de la liste, on peut faire soit : (vlax-variant-value (vla-get-value (car prop-lst)))soit (vlax-get (car prop-lst) 'Value) Pour changer la propriété : (vla-put-Value (car prop-lst) (vlax-make-variant "1/100" vlax-vbString))ou (vlax-put (car prop-lst) 'Value "1/100") Attention toutefois, pour que ça fonctionne, la valeur entrée doit faire parti des valeurs autorisées dans le paramètre de visibilité.On obtient cette liste en faisant : (mapcar 'vlax-variant-value (vlax-safearray->list (vlax-variant-value (vla-get-AllowedValues (car prop-lst)))))ou, plus simplement : (vlax-get (car prop-lst) 'AllowedValues) Je vous laisse digérer tout ça, vous devriez avoir les moyens de finir votre routine, maintenant. [Edité le 18/7/2008 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 19 juillet 2008 Posté(e) le 19 juillet 2008 Bonjour à toutes et tous, Si ça te pose problème, fais moi le savoir, je supprimerais ce message. Il est clair que c'est cet esprit qui me plait sur ce site et tu as bien fait! :P Nous allons essayer de "digérer" tout ça dans le Week-End et il est clair que nous te remercions déjà pour ta précieuse aide. Pas de connexion possible pour moi ce WE donc, je donnerai des nouvelles sur notre travail dés Lundi,.. Merci encore (gile) Bon WE à tous, Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
lili2006 Posté(e) le 21 juillet 2008 Posté(e) le 21 juillet 2008 Bonjour à toutes et tous, Super !!!!, après plusieurs centaines de test (je rigole mais on en est pas loin !!!), nous avons pu concrétiser sur un BD simple ce que nous cherchions à faire. Nous allons maintenant nous "attaquer" à un bloc beaucoup plus complexe... Je donnerai alors suite aux recherches. Merci encore (gile) pour tes précieux conseils . :P Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
ASTERIXII Posté(e) le 5 mai 2011 Posté(e) le 5 mai 2011 Bonjour Gile,J’ai un problème avec ton lisp Spécial sélection : SSDJe voudrais l’utiliser sur des blocs dynamique (+paramétrique) pour filtrer et modifier un paramètre identique à plusieurs blocs. Je suis sur Autocad 2011.Je lance le lisp, sélectionne un bloc, et la fenêtre de filtre s’ouvre avec mon nom de bloc et tous les paramètres de mon bloc. (Il n’y a pas de valeur dans les cases, c’est normal ?)Sinon dans une des cases, je rentre une valeur de filtre, fait OK, mais aucune sélection sur l’écran ?Fausse manipe ?
(gile) Posté(e) le 5 mai 2011 Posté(e) le 5 mai 2011 Salut, Je ne saurais dire.As-tu bien la dernière version de SSD ? ;; SSD version 2.6 (gile) 14/07/08 (dernière révision 17/11/2011) Peux-tu m'envoyer ton bloc ? Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
ASTERIXII Posté(e) le 5 mai 2011 Posté(e) le 5 mai 2011 Effectivement, pas la dernière version, (SSD 2.3 du 14/07/08)Sa marche avec la dernière version :) En fait dans ton fichier ZIP la total, ce n’est pas la dernière version.Merci
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