Aller au contenu

Messages recommandés

Posté(e)

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.

Posté(e)

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

 

Amicalement

Vincent

 

[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)

Posté(e)

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]

Posté(e)

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>

Posté(e)

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.

 

Amicalement

Vincent

 

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)

Posté(e)

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

Posté(e)

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.

 

Amicalement

Vincent

 

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)

Posté(e)

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 AIDCL

Peux-tu si possible ou on peut se le procurer

Merci d'avance

 

Phil

Posté(e)

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]

Posté(e)

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

  • 2 semaines après...
Posté(e)

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...

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é