cyrkan Posté(e) le 19 mai 2008 Posté(e) le 19 mai 2008 Bien le bonjour! Maintenant je suis plongé dans ma petite boite de dialogue et j'aimerais créer une fichier d'aide. Donc je créer un bouton pour lancé un .doc. J'ai donc avec l'aide du concurrent d'en face (AIDACAD) chercher différente solution de type startapp; Open; findfile... etc etc etc Mais tout ce que j'arrive a faire c'est démarrer notepad. J'arrive pas a ouvrir un word ou excel et encore moins le fichier que j'ai créer! Quelqu'un peut t'il me mettre sur la voie? (sans pour autant tout me prémaché ^^!!! Merci d'avance.
zebulon_ Posté(e) le 19 mai 2008 Posté(e) le 19 mai 2008 Bonjour (defun do_help_cyrkan (/ shell FileName) (vl-load-com) (setq filename (findfile "aidecyrkan.doc")) (if FileName (progn (setq shell (vla-getinterfaceobject (vlax-get-acad-object) "Shell.Application" ) ) (vlax-invoke-method shell 'Open filename) (vlax-release-object shell) ) (alert "Fichier d'aide non trouvé") ) ) Voilà, avec ça tu devrais arriver à ouvrir du .doc, .xls, .pdf etc... du moment que l'application correspondante est installée sur le poste. Cela fonctionne comme si tu double-cliques sur un fichier dans l'explorateur de windows AmicalementVincent [Edité le 19/5/2008 par zebulon_] C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
cyrkan Posté(e) le 19 mai 2008 Auteur Posté(e) le 19 mai 2008 mon chère totocad :P me sort que le vlax-get-acad-object il ne connait pas...En gros no fonction definition?C'est du à quoi? :cool: On commence a touché le domaine pour lequel je ne m'y connais pas du tout! D'ailleur si quelqu'un sait ou je pourrez éventuellement trouvé des info sur les fonction de type:vlax-get-acad-object bref les truc de bourrin quoi! Je le remcierais grandement! [Edité le 19/5/2008 par cyrkan]
Arcasdk Posté(e) le 19 mai 2008 Posté(e) le 19 mai 2008 Il me semble que c'est a cause du (vl-load-com). Il faut que tu rajoute ca pour spécifié à autocad que ton programme utilise du Vlisp voila voila Fred <IMG SRC=http://peronfrederic.free.fr/banniere.jpg></IMG> <a href=www.formu-lan.net>www.FormuLan.net</a>
zebulon_ Posté(e) le 19 mai 2008 Posté(e) le 19 mai 2008 Bonjour, Tout dépend de la version de ton cher Totocad. Sur les versions actuelles, il n'y a plus besoin de charger les fonctions étendues fournies par Visual lisp. Sur les versions plus anciennes, il faut impérativement rajouter (vl-load-com) pour les charger. J'édite le code ci-dessus en conséquence. Quant à l'aide, tu fais Outils/AutoLISP/Editeur Visual Lisp et quand l'éditeur Visual LISP s'ouvre tu tapes F1 pour obtenir l'aide correspondante.Et là tu trouves par exemple :Retrieves the top level AutoCAD application object for the current AutoCAD session (vlax-get-acad-object)Return Values A VLA-object. Examples _$ (setq aa (vlax-get-acad-object))# Désolé, c'est en anglais. Sinon, tu as aussi ce site où j'ai appris pas mal de choses. Désolé, c'est en anglais aussi.Et tu as aussi la rubrique Visual LISP de ce forum, qui est pas mal fourni et qui est en français. AmicalementVincent PS : Le visual LISP est très puissant et tu gagneras à t'y intéresser. En tout cas c'est loin d'être des trucs de bourrin. C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
(gile) Posté(e) le 19 mai 2008 Posté(e) le 19 mai 2008 Salut, Petite précision à propos de (vl-load-com). J'ai aussi pensé que (vl-load-com) était automatiquement exécuté avec certaines versions d'AutoCAD (voir ici), mais à lire certains messages concernant diverses versions d'AutoCAD, je pense finalement qu'il n'en est rien.Il suffit que cette fonction soit exécutée une fois pour que les fonctions Visual LISP soient chargées dans la session, donc certains (moi le premier), ont pu se laisser abuser par un chargement lors du lancement d'une routine contenant l'expression (ou encore par un chargement automatique de l'expression dans un fichier MNL ou acaddoc.lsp personnalisé). Je pense donc que nous (lispeurs) devons continuer à essayer de ne pas oublier de mettre systématiquement (vl-load-com) au début de chaque LISP utilisant les fonction vlax-*, vla-* ou vlr-*. Pour les utilisateur, une solution simple consiste à mettre cette expression dans un fichier de chargement automatique des routines LISP : acad.mnl ou acaddoc.lsp (à créer dans un répertoire du chemin de recherche s'il n'existe pas déjà). Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
zebulon_ Posté(e) le 20 mai 2008 Posté(e) le 20 mai 2008 J'ai aussi pensé que (vl-load-com) était automatiquement exécuté avec certaines versions d'AutoCAD c'est noté.Comme je n'ai rien fait de particulier sur ma version 2007, je pensais que dorénavant c'était chargé automatiquement. Faut croire que non ! Merci de l'info. AmicalementVincent C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
philous2 Posté(e) le 20 mai 2008 Posté(e) le 20 mai 2008 Bjr Cyrkan, J'a ivu ton message e tje me prermets de te demander un renseignement.J evois que tu utilse le logiciel AIDACAD [surligneur] [/surligneur], ou as-tu pu lte le procurer car moi j'ai essayé sur le site officiel et jamais rien reçu.Il y avait aussi un autre logiciel intéressant AIDCLPeux-tu si possible ou on peut se le procurerMerci d'avance Phil
cyrkan Posté(e) le 20 mai 2008 Auteur Posté(e) le 20 mai 2008 En effet le (vl-load-com) a bien amélioré les choses, je travail sous le 2004 (pour assurer une compatibilité maximum). mais bon maintenant autocad me retransmet l'erreur suivante: "erreur automation problème lors du chargement de l'application" j'ai essayer avec un fichier doc et un fichier txt (même un fichier xls), j'ai eut le même retour. Apparement si j'ai bien compris, une automation peut être l'intervention d'un autre logiciel suite la demande du premier. Dans ce cas pourquoi word ou notepad ne veule pas ce lancer?? PS: pour celui du dessus ^^: quand je disais aidacad je parle du site, et non de leur logiciel. Je n'est pas télécharger leur options... désolé [Edité le 20/5/2008 par cyrkan]
(gile) Posté(e) le 20 mai 2008 Posté(e) le 20 mai 2008 Salut, Moins polyvalent que la routine de zebulon_ (il faut spécifier le chemin complet du fichier winword.exe) mais peut être plus fiable (suivant les version d'AutoCAD, ActiveX peut provoquer des "erreurs automation") tu peux utiliser la fonction startapp. (if (setq file (findfile "aidecyrkan.doc")) (if (setq app (findfile "C:\\Program Files\\Microsoft Office\\Office11\\winword.exe" ) ) (startapp app file) (princ "\nApplication non trouvé") ) (princ "\nFichier non trouvée") ) Si tu as le message "Fichier non trouvé" c'est que le fichier "aidecyrkan.doc" n'est pas dans un répertoire du chemin de recherche. Il faut l'y mettre ou donner le chemin complet dans le code. Si tu as le message "Application non trouvée", c'est que le chemin vers "winword.exe n'est pas correct (mauvais répertoire ou mauvaise version d'Office), il faut corriger le chemein dans le code. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
cyrkan Posté(e) le 29 mai 2008 Auteur Posté(e) le 29 mai 2008 Salut,J'ai testé la version que ma donner gile mais ca ne marche pas...Ca démarre bien word, mais word m'affiche un message d'erreur comme quoi il na pas pu ouvrir le fichier.Genre, utiliser fichier ouvrir, ou encore vérifier l'extension du document (si sais bien un .doc) J'ai tester le procéder avec un txt et bloc notes, la ca ma mis "application non trouvé" pourtant je suis bien aller chercher le bon chemin.J'ai aussi essayer avec wordpad sur du txt, la le logiciel ma dit qu'il na pas trouver le fichier. Bon le point positif c'est que je suis arriver a ouvrir word ^^ :) Mais je ne vois pas ce qui bloque la commande...
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