papyrus1985 Posté(e) le 29 octobre 2008 Posté(e) le 29 octobre 2008 Bonjour, Je cherche désespérément de transmettre le nom du dessin à mon application externe j'ai réaliser cette macro ^c^c(setenv "nom_fichier";$M=$(eval,$(upper,"C:/cartouche_acadlt.vbs ")$(getvar,DWGPrefix)$(getvar,DWGName));_start;$M=$(getenv,"nom_fichier"); mais ca bloque apres l'apelle de la commande "_start" [Edité le 29/10/2008 par papyrus1985] Cyprien Utilisateur AutoCAD depuis la R12 Longue Vie à CADxp
bonuscad Posté(e) le 29 octobre 2008 Posté(e) le 29 octobre 2008 Bonjour, Je ne pense pas qu'une macro en diesel soit l'idéal pour ce que tu veut faire, elle ne pourra pas récupérer "la main" après l'exécution de start. (dans l'écriture actuelle de la macro) Enfin c'est ce que je pense car je n'ai pas essayé de tester ta macro.Peut être en intégrant "_start" à la fonction diesel $(eval, "_start ............/td") permettrai de contourner le problème En plus ta macro n'est pas 100% diesel, tu utilise la fonction lisp (setenv ....), donc tu bosses sous une version pleine et non sous une LT, ou alors avec LT-Extender. Je te conseillerais alors de te tourner carrément vers le lisp/vlisp qui sera bien plus souple et plus puissant qu'une macro diesel. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
papyrus1985 Posté(e) le 29 octobre 2008 Auteur Posté(e) le 29 octobre 2008 Salut bonuscad, merci de ta réponse Je développe mes macro sous une version pleine pour les version LT"setenv" est une commande sous la LT mais pas sous la pleine d"ou contournement par du lispde même pour "_start" qui sous la LT donne "_ai_appstart" J'ai trouvé le problème : l'antislash (\) dans la variable DWGPrefix arrête la macro. Mon but est d'envoyer à mon application (vb.net externe) le chemin d'accès du fichier ouvert. Peut on convertir les "\" par des "/" ? Cyprien Utilisateur AutoCAD depuis la R12 Longue Vie à CADxp
bonuscad Posté(e) le 29 octobre 2008 Posté(e) le 29 octobre 2008 d"ou contournement par du lisp D'accord, d'ailleurs je fais de même ;) J'ai trouvé le problème : l'antislash (\) dans la variable DWGPrefix arrête la macro. Ça ne l'arrête pas; dans une macro, le symbole \ est équivalent à une pause pour une entrée utilisateur. Peut on convertir les "\" par des "/" En lisp oui ! Même que le symbole \ est introduit lui même par le \ qui signale à autolisp que le prochain caractère doit être interprété littéralement. Ainsi en lisp C:\Mes documents\monfichier.vbs pourrait s'écrire: C:\\Mes documments\\monfichier.vbs ou aussi C:/Mes documents/monfichier.vbs Dans une macro, je ne sais pas, à tester !Je sais aussi que les espace dans les noms de fichiers/dossiers peuvent être un problème dans une macro car ils sont interprété comme une validation (Entrée) Les macros ne sont pas toujours facile à mettre au point, bon courage! Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
papyrus1985 Posté(e) le 3 novembre 2008 Auteur Posté(e) le 3 novembre 2008 Bonjour, Pour ce que s'a intéresse, j'ai trouvé une solution pas formidable mais pour ce que j'en ai à faire cela me suffit :-J'ai créer un bloc avec un attribut qui contient le nom du fichier (champ)-Via un script, j'inserer le bloc-J'extrais l'attribut de ce bloc dans un fichier texte-Je lance mon application Donc ma macro se reduit à^c^c_script;"C:/cartouche_acadlt.scr";se qui est bien plus simple. [Edité le 3/11/2008 par papyrus1985] Cyprien Utilisateur AutoCAD depuis la R12 Longue Vie à CADxp
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