Aller au contenu

ecrire dans un fichier


papyrus1985

Messages recommandés

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

 

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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 lisp

de 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

 

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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

 

Lien vers le commentaire
Partager sur d’autres sites

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é