Aller au contenu

Fonction defun c:


miamar

Messages recommandés

Bonjour

 

J'ai fait une routine dont la structure est comme suit

 

 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun c:fonction1 ()
...
(command "fonction2")
);defun fonction1

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun c:fonction2 ()
...
);defun fonction2

Quand 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 fonction2

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

 

Lien vers le commentaire
Partager sur d’autres sites

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

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

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 VAL3

etc.

 

);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 @)

Lien vers le commentaire
Partager sur d’autres sites

 

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

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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

 

./__\.
(.°=°.)
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é