Aller au contenu

reacteur vlr-dwg-reactor marche pas


kekseksa

Messages recommandés

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.

 

Lien vers le commentaire
Partager sur d’autres sites

salut oto82!

 

Pour mettre du code il suffit de mettre des balises

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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

merci gile et bseb67

 

avec l'apostrophe , ça marche impec

j'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 fonctionne

de 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 ????

Lien vers le commentaire
Partager sur d’autres sites

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

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é