miamar Posté(e) le 30 octobre 2004 Posté(e) le 30 octobre 2004 Bonjour J'ai fait une routine dont la structure est comme suit ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun c:fonction1 () ... (command "fonction2") );defun fonction1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun c:fonction2 () ... );defun fonction2Quand j'exécute fonction1j'ai comme message au moment de l'exécution de la fonction2 "fonction inconue fonction2". Je ne comprends pas pourquoi?Les deux fonctions sont dans le même fichier.J'ai testé de séparer les deux fonctions chacune dans un fichier à part, la même chose, le même message.Quand je change le code comme suit : ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun c:fonction1 () ... (fonction2) );defun fonction1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun fonction2 () ... );defun fonction2Mais ça ne m'arrange pas car la fonction2 à des options et je ne sais pas comment les fournir à un appel de fonction de type (fonction2). Si quelqu'un peut m'aider merci par avance.
Tramber Posté(e) le 30 octobre 2004 Posté(e) le 30 octobre 2004 Pour aller vite, le plus simple c'est de faire appel à une fonction non définie en c: Pas besoin de passer par le command, qui ne fait appel qu'à une catégorie de fonction spécifiques et pas celles que tu crées. Par ex l'appel à (matric liste 1 1 1) renvoie liste matricé la fonction était donc définie avec xli x1 y1 z1 en paramètres globaux(C'est moins facile à débugger mais on s'arrange) (defun matric (xli x1 y1 z1 / )( mapcar '(lambda (x) (list (* (nth 0 x) x1) (* (nth 1 x) y1) (* (nth 2 x)z1)) xli))) [Edité le 30/10/2004 par Tramber] Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
rebcao Posté(e) le 31 octobre 2004 Posté(e) le 31 octobre 2004 Bonjour Miamar, Il semblerait que tu as laissé trainer un espace après fonction1 et fonction2 supprimes l'espace avant la parenthèse ouvrante et réaissayes. Pour appeler la fonction2 avec paramètres ça pourrait ressembler à ça : (defun c:FONCTION1() .....peut importe les valeur utilisés dans l'exemple : (fonction2 V1 V2 V3) );defun fonction1 (defun FONCTION2(VAL1 VAL2 VAL3) .... tu utilises dans la FONCTION2 les paramètres VAL1 VAL2 et VAL3etc. );defun fonction2 Christian Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
miamar Posté(e) le 1 novembre 2004 Auteur Posté(e) le 1 novembre 2004 Non leproblème n'a rien à voir avec l'espace entre defun c:fonction1 et les parenthèses. et puis on ne peut pas utiliser (fonction2 V1 V2 V3) avec une foction définie comme (defun fonction2 ()... @+
Tramber Posté(e) le 1 novembre 2004 Posté(e) le 1 novembre 2004 et puis on ne peut pas utiliser (fonction2 V1 V2 V3) avec une foction définie comme (defun fonction2 ()... @+ Ben non, il faut (defun fonction2 ( V1 V2 V3 / varloc1 varloc2 varloc3)... Mais si t'es malin tu fait une fonction principale c: qui règle les variables et appelle (fonction2 V1 V2 V3) une fois. Comme ca t'as les 2 !? :o Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
Labletech Posté(e) le 2 novembre 2004 Posté(e) le 2 novembre 2004 Je vois qu'Halloween en rendu plus d'un agressif !!Harry Potter dirait: Calmoseum les gazous !! La question me parait simple (d'ailleurs elle devrait se trouver dans debuter en lisp ) Notre miamar a le pb suivant:- il a fait deux fonctions avec appel direct au clavier:- defun c:fonction1 ...-defun c:fionction2 .... Dans fonction1 il appelle fonction2 en interne avec l'ordre:(command "fonction2" ....)ca ne peut pas marcher !! un point c'est tout !!l'ordre command ne peut appeler que les commandes autocad pures de souche !!Miamar, si tu veux appeler fonction2 dans fonction1 il faut simplement écrire: (defun c:fonction1 () .... (c:fonction2) .... ) Formateur ATC Autocad - Mechanical - Inventor - Electrical
Tramber Posté(e) le 2 novembre 2004 Posté(e) le 2 novembre 2004 Pour ne pas embrouiller même si.... Je crois qu'on peut aussi définir des fonctions comme ceci : (defun c:mafun (v1 V2 V3 / locales).... et l'appeler ainsi : (c:mafun 01 12 222) Je m'abuse ou pas ? En tous cas, c'est comme ca que marchents les fonctions spéciales de rendus, ....etc Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
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