kekseksa Posté(e) le 10 février 2009 Posté(e) le 10 février 2009 bonjour j'ai crée un fichier acaddoc.lsp dans lequel se trouve ce code : (vl-load-com)(defun preuve_que_ca_marche (a b) (alert "le reacteur fonctionne") )(setq MyReactor1 (vlr-dwg-reactor nil ‘((:vlr-enddwgopen . preuve_que_ca_marche)))) mais quand j'ouvre un dessin , ce message d'erreur apparait : Utilitaires de menu AutoCAD chargés.; erreur: syntaxe incorrecte de l'appel de fonction: (:VLR-endDwgOpen . PREUVE_QUE_CA_MARCHE) quelqu'un peut il me dire d'ou vient cette erreur a+ PS : je ne sais pas non plus ou se trouve ce brouillon avec les lignes vertes et blanches ou les lispeurs posent leurs codes . j'apprendrais 2 choses par ce sujet.
bseb67 Posté(e) le 10 février 2009 Posté(e) le 10 février 2009 salut oto82! Pour mettre du code il suffit de mettre des balisescode et /code entre [] ou de cliquer sur le symbole #. Pour ton réacteur je ne vois pas pourquoi ca ne marche pas.ben tiens, je vais essayer pour voir Tous pour lisp, Lisp pour tous!Avec Revit, cela ne vas trop vite...
(gile) Posté(e) le 10 février 2009 Posté(e) le 10 février 2009 Salut, Une petite erreur de syntaxe dans ton code :Il faut remplacer le caractère "accent grave" [surligneur]‘[/surligneur] (AltGr+è) (setq MyReactor1 (vlr-dwg-reactor nil [surligneur]‘[/surligneur]((:vlr-enddwgopen . preuve_que_ca_marche))))par une apostrophe :(setq MyReactor1 (vlr-dwg-reactor nil [surligneur]'[/surligneur]((:vlr-enddwgopen . preuve_que_ca_marche)))) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
bseb67 Posté(e) le 10 février 2009 Posté(e) le 10 février 2009 Et bien marche pas non plus chez moi, mais j'ai changé un truc:'((:vlr-enddwgopen . preuve_que_ca_marche)) et non:‘((:vlr-enddwgopen . preuve_que_ca_marche)) et là si j'ouvre un nouveau dessin ca marche :D , par contre il me lance 2-3 fois le réacteur :casstet: Edit:dépassé par gile ;) , j'ai commencé le message et j'ai du aller débourrer notre grosse imprimante [Edité le 10/2/2009 par bseb67] Tous pour lisp, Lisp pour tous!Avec Revit, cela ne vas trop vite...
kekseksa Posté(e) le 10 février 2009 Auteur Posté(e) le 10 février 2009 merci gile et bseb67 avec l'apostrophe , ça marche impecj'ai poussé un peu plus loin et replantage (vl-load-com) (defun fin-ouverture-fichier-dwg (a b) (alert "le reacteur ouvre un fichier déja enregistré") ) (defun fin-ouverture-nouveau-dwg (a b) (alert "le reacteur ouvre un brouillon") ) (defun fin-fermeture-dwg (a b) (alert "le reacteur de fermeture fonctionne") ) (setq MyReactor1 (vlr-dwg-reactor nil '((:vlr-enddwgopen . fin-ouverture-fichier-dwg)))) (setq MyReactor2 (vlr-dwg-reactor nil '((:vlr-dwgFileOpened . fin-ouverture-nouveau-dwg)))) (setq MyReactor3 (vlr-dwg-reactor nil '((:vlr-beginClose . fin-fermeture-dwg)))) seul MyReactor3 fonctionnede plus , je ne suis pas sur que :vlr-enddwgopen ouvre un fichier nommé et que :vlr-dwgFileOpened ouvre un brouillon bref : MyReactor2 et MyReactor1 fonctionnent pas but why ????
(gile) Posté(e) le 10 février 2009 Posté(e) le 10 février 2009 Re, Je pense que si MyReactor2 et MyReactor1 "ne fonctionnent pas", c'est que le fichier acaddoc.lsp (et les réacteurs qu'il contient) est chargé après l'ouverture du dessin. De toute façons, pour faire ça, tu n'as pas besoin de réacteur, il suffit de mettre l'expression suivante dans acaddoc.lsp(if (= (vla-get-FullName (vla-get-ActiveDocument (vlax-get-acad-object)) ) "" ) (alert "brouillon") (alert "fichier déja enregistré") ) D'autre part, tu n'as pas besoin de définir 3 réacteurs, un seul suffirait avec une liste contenant plusieurs évènements :(setq MyReactor (vlr-dwg-reactor nil '((:vlr-enddwgopen . fin-ouverture-fichier-dwg) (:vlr-dwgFileOpened . fin-ouverture-nouveau-dwg) (:vlr-beginClose . fin-fermeture-dwg) ) ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
kekseksa Posté(e) le 10 février 2009 Auteur Posté(e) le 10 février 2009 gile , t'es une bèèèèèète , comment tu touches , c'est impressionnantencore merci cependant MyReactor2 et MyReactor1 = toujours plantage
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