Aller au contenu

Réacteur fin de commande


Bred

Messages recommandés

Salut,

Patrick_35 m'a montré comment utiliser les réacteurs de commandes, mais j'ai un souci à une commande :

ceci ne fonctionne pas :

 

(setq Rea_FIN_Commandes (vlr-command-reactor nil
		    (list (cons :vlr-commandEnded
				(function Reacteur_FIN_Commandes)))))

(defun Reacteur_FIN_Commandes (Rea Cde)
 	(cond    		
	((equal (car Cde) "DIMLINEAR")(command "_change" (entlast) "" "p" "ca" "Cotation" "")) 
   		(t nil)
)    	)

 

j'ai une erreur :

erreur: invalid AutoCAD command: nil
:casstet:

je ne comprends pas...

merci de votre aide...

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Essaye comme ça :

 

(setq Rea_FIN_Commandes
      (vlr-command-reactor
 nil
 '((:vlr-commandEnded . Reacteur_FIN_Commandes))
      )
)


(defun Reacteur_FIN_Commandes (Rea Cde)
 (if (equal (car Cde) "DIMLINEAR")
   (entmod (subst (cons 8 "cotation")
	   (assoc 8 (entget (entlast)))
	   (entget (entlast))
    )
   )
 )
) 

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Pas de "command" dans les réacteurs. Que des expressions lisp ou vlisp

c'est que j'avais fini par déceler, merci .... j'étais en train de regarder en vlisp quand ...

Essaye comme ça :

(gile) est arrivé est m'a offert la solution...

 

Merci !!!!!

(gile ne serait plus en recherche d'emploi :D ???... on le voit moins souvent dernierement ;) !!!....)

 

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Lien vers le commentaire
Partager sur d’autres sites

Ah.... maintenant j'ai un problème pour les cotations continus.....

 

 (defun Reacteur_FIN_Commandes (Rea Cde / obj)
 (setq obj (entlast))
 	(cond    		
	((equal (car Cde) "DIMLINEAR")(entmod (subst (cons 8 "Cotation")(assoc 8 (entget obj))(entget obj)))) ;cotation
	 [b] ((equal (car Cde) "DIMCONTINUE")(progn
					  (setq obj (entnext obj))
					  (while obj
					    (entmod (subst (cons 8 "Cotation")(assoc 8 (entget obj)) (entget obj)))
					    (setq obj (entnext obj))
					    )
					  )		 ) [/b];cotation continue
   		(t nil)
)    	)

 

ça fonctionne "en direct" (chargement de la boucle while seule), mais pas quand je charge le programme.... :casstet:

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Lien vers le commentaire
Partager sur d’autres sites

Il faut que tu fasses ton (entlast) en début de commande car un _dimcontinue peut faire plusieurs cotes avant de finir/quitter la commande, ce qui fait que l'entlast ne prends plus le bon dernier

 

ps : tu as pensé à regarder du coté de vlr-acdb-reactor en :vlr-objectAppended, qui ne prends que ce qui a été ajouté

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

Il faut que tu fasses ton (entlast) en début de commande (....)

OK !!!! super ça marche !!! merci !!!

 

 (defun Reacteur_FIN_Commandes (Rea Cde / obj)  
 	(cond    		
	((equal (car Cde) "DIMLINEAR")(entmod (subst (cons 8 "1 Cotation")(assoc 8 (entget (entlast)))(entget (entlast))))) 
	((equal (car Cde) "DIMCONTINUE")(progn
					  (setq dernier_obj (entnext dernier_obj))
					  (while dernier_obj
					    (entmod (subst (cons 8 "1 Cotation")(assoc 8 (entget dernier_obj)) (entget dernier_obj)))
					    (setq dernier_obj (entnext dernier_obj))
					    )
					  )		 ) 
   		(t nil)
)    	)


(defun Reacteur_Commandes (Rea Cde)
  [b] (setq dernier_obj (entlast))[/b] )

(if (not Rea_Commandes)
(setq Rea_Commandes (vlr-command-reactor nil
      (list (cons :vlr-commandWillStart
	  (function Reacteur_Commandes)))))
)

(if (not Rea_FIN_Commandes)
 (setq Rea_FIN_Commandes (vlr-command-reactor nil
		    (list (cons :vlr-commandEnded
				(function Reacteur_FIN_Commandes)))))
)  

 

ps : tu as pensé à regarder du coté de vlr-acdb-reactor en :vlr-objectAppended, qui ne prends que ce qui a été ajouté

hein ? pensé ?.... moi je ne pense plus.... :(

Comment fait-tu pour comprendre (et trouvé) ces fonctions alors que j'ai vu dans un de tes messages que tu avais du mal en Anglais ??? :casstet:

 

 

[Edité le 18/1/2007 par Bred]

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Lien vers le commentaire
Partager sur d’autres sites

Comment fait-tu pour comprendre (et trouvé) ces fonctions alors que j'ai vu dans un de tes messages que tu avais du mal en Anglais ??? :casstet:

C'est que je faisais comme toi avant que l'on me montre cette fonction :cool:

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

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é