capde06 Posté(e) le 26 août 2011 Posté(e) le 26 août 2011 salut a tous les Aoutiensj'ai un petit problème de syntaxe pour insérer un champ en lisp (defun c:hhh () (setq obj (car(entsel))) (command "_mtext" (getpoint) (getpoint) (strcat "%<\\AcObjProp.16.2 Object(%<\\_ObjId " (itoa (vla-get-ObjectID (vlax-ename->vla-object obj))) ".Area \f "%lu2%pr2%ps[,m²]">%" )) ) je suis la dessus depuis 2 jours d’habitude j’essaie de me démerder tout seulmais je galérémerci Vous fîtes ce que vous pûtes et vous m'épatâtes !!!!
(gile) Posté(e) le 26 août 2011 Posté(e) le 26 août 2011 Salut, Plusieurs choses :- Il manque des caractères d'échappement (\) dans la seconde partie de ton expression de champ. Si tu utilisais l'éditeur Visual LISP, tu t'en serais aperçu...- "AcObjProp.16.2" : je ne sais pas d'où vient le 16.2, mais chez moi c'est superflu.- Si tu utilises une version 64 bits (ou si tu veux que ton code fonctionne aussi avec les versions 64 bits) la chaîne contenant l'ObjectId doit représenter un entier codé sur 64 bits (voir ici).- Il manque une validation à la fin de l'expression (command ..).- Tu peux éviter de demander à l'utilisateur de spécifier un second point en faisant un mtexte de largeur 0.0 (ou en faisant un texte simple). (defun c:hhh (/ obj) (setq obj (car (entsel))) (command "_mtext" (getpoint) "_width" 0.0 (strcat "% (gc:GetObjectIdString (vlax-ename->vla-object obj)) ">%).Area \\f \"%lu2%pr2%ps[,m²]\">%" ) "" ) (princ) ) ;; gc:GetObjectIdString ;; Retourne l'ObjectId de 'obj' sous forme de chaîne représentant un entier 32 ou 64 bits ;; ;; Argument ;; obj : l'objet dont on cherche l'ObjectId (vla-object) (defun gc:GetObjectIdString (obj) (or *util* (setq *util* (vla-get-Utility (vla-get-ActiveDocument (vlax-get-acad-object)))) ) (if (vlax-method-applicable-p *util* 'GetObjectIdString) (vla-GetObjectIdString *util* obj :vlax-false) (itoa (vla-get-ObjectId obj)) ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
capde06 Posté(e) le 26 août 2011 Auteur Posté(e) le 26 août 2011 merci Gileje suis en 64B je me suis bien aperçu qu'il y avait un problème dans la fonction strcat j'ai un editeur Visual LISPle 16.2 viens de la commande CHAMP un copier coller du résultat, dans la boite de dialogue. la fonction marche tres bien encore merci Vous fîtes ce que vous pûtes et vous m'épatâtes !!!!
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