RDforum.free.fr/Cast3M   Index du Forum
Site Web Cast3M
RDforum.free.fr/Cast3M
Forum d'entraide des utilisateurs de Cast3M
Répondre au sujet
Définition de procedures dans un fichier externe ? [Résolu]
BERTRAND


Inscrit le: 23 Nov 2007
Messages: 9
Répondre en citant
Bonjour,

je souhaiterai développer mes propres procédures qui seront définie et stockée dans un fichier externe.

J'ai donc programmé le petit script ci dessous :

****************************************
UTIL PROC 'ext.proc' ;
opti dime 3 ;

DEBP Norme1 P1*POINT P2*POINT ;
X1 = COOR 1 P1 ;
X2 = COOR 1 P2 ;
Y1 = COOR 2 P1 ;
Y2 = COOR 2 P2 ;
Z1 = COOR 3 P1 ;
Z2 = COOR 3 P2 ;
MESS 'X1 =' X1 'Y1 =' Y1 'Z1 =' Z1;
L2 = ((X1-X2)**2)+((Y2-Y1)**2)+((Z2-Z1)**2) ;
L = L2**0.5 ;
FINP L ;

M0 = POINT 0. 0. 1. ;
M4 = POINT 1. 1. 1. ;

list M0;
list M4;
Norm1 = Norme1 M0 M4 ;
list Norm1 ;

toto = MAPRO1 M0 M4 ;
list toto ;

FIN ;
****************************************

avec comme fichier externe (nom du fichier: ext.proc):

****************************************
$$$$ MAPRO1
DEBP MAPRO1 P1*POINT P2*POINT ;
X1 = COOR 1 P1 ;
X2 = COOR 1 P2 ;
Y1 = COOR 2 P1 ;
Y2 = COOR 2 P2 ;
Z1 = COOR 3 P1 ;
Z2 = COOR 3 P2 ;
L = ((X1+X2)**2)+((Y1+Y2)**2)+((Z1+Z2)**2) ;
FINP L ;
$$$$
****************************************

J'ai au final un message d'erreur :



Quelqu'un aurait-t-il une idée de l'origine de cette erreur.

Merci d'avance.

David.
Voir le profil de l'utilisateurEnvoyer un message privé
problème de définition de procédures externes bis
BERTRAND


Inscrit le: 23 Nov 2007
Messages: 9
Répondre en citant
Bonjour,

je reviens à vous, toujours sur le même sujet, car après avoir retourné le problème dans tous les sens, je ne trouve pas de solution à la définition de procédures externes. Même sur le très simple exemple suivant, cela ne fonctionne pas...Crying or Very sad

_________________________________________
*FICHIER PRINCIPAL : Main.dgibi
UTIL PROC 'Procext.proc' ;
aa = 1;
bb = 3;
cc = ESSAIP aa bb ;
LIST cc;
FIN;

_________________________________________
* FICHIER 'Procext.proc' (localisation des procédures)
$$$$ ESSAIP
'DEBPROC' ESSAIP !ii*'ENTIER' !jj*'ENTIER' ;
!k = !ii + !jj ;
'FINPROC' !k ;
$$$$
_________________________________________


quelqu'un sait il si il existe des problèmes de définitions de procédures externes sur CASTEM 2007 ?
comment faire pour implémenter des procédures externes ?

Merci d'avance pour vos réponses.

David.
Voir le profil de l'utilisateurEnvoyer un message privé
Procedure externe
Vero


Inscrit le: 30 Juin 2008
Messages: 6
Répondre en citant
Bonjour Bertrand,

J'ai le meme problème que toi. Impossible de le regler. As-tu resolu le problème depuis ce message?

A+

Vero
Voir le profil de l'utilisateurEnvoyer un message privé
Pascal Roux


Inscrit le: 02 Oct 2008
Messages: 3
Répondre en citant
Bonjour,

pour utiliser les procédures externes, il y a
une astuce qu'il fallait savoir !

1) Créer vos procédures avec les symboles $$$$
comme précisé dans la documentation.

2) Sauver dans un fichier nommé comme vous voulez :
procedures.dgibi par exemple.

2) Lancer Castem "à vide" et taper :

UTIL PROC 'procedures.dgibi';

3) QUITTER CASTEM !! Et non pas essayer d'utiliser
la procédure. Car évidement ça ne marche pas. Je pense
que cela vient du fait que Castem est toujours initialisé
avec le fichier UTILPROC de la session précédente.

4) Vérifier en éditant le fichier UTILPROC que vos procédures
ont bel et bien été enregistrées à l'intérieur.

5) Relancer Castem avec votre programme principal :

cast.bat main.dgibi

6) Et là, vous pouvez appeler les procédures de votre fichier
externe.

Il y a un inconvénient si l'on veut utiliser des procédures
dans des fichiers ou des répertoires différents (en général,
c'est l'intérêt) :

on ne peut faire UTIL PROC QUE POUR UN SEUL fichier.

Donc il faut concaténer les fichiers externes en un seul :

cat fich1.dgibi fich2.dgibi > procedures.dgibi
UTIL PROC 'procedures.dgibi'

Pratique pour utiliser IGCAST ET ses procédures perso.


EN RESUME :

Pour se faciliter la vie, on peut se créer un script qui
réalise une sorte de "compilation" de ses sources .dgibi

a) créer un fichier actualise.dgibi qui contient juste :

UTIL PROC 'procedures.dgibi';
FIN;

b) sur Unix (ou Cygwin sur Windows), créer un script bash
nommé actu :

#!/bin/bash
#
# Script bash nommé actu pour actualiser ses
# procédures de façon automatique

\rm -f UTILPROC
\rm -f procedures.dgibi
cat proc1.dgibi proc2.dgibi ... procn.dgibi > procedures.dgibi
cast.bat actualise.dgibi

# Fin du script


c) chmod u+x actu

Puis, à chaque modification de ses procédures externes :

actu && cast.bat main.dgibi


Je pense qu'il faut appliquer une démarche similaire
pour le fichier des notices (pour créer sa doc associée
à ses procs).


Voilà ! J'ai mis 3 mois pour trouver la raison pourquoi
l'utilisation des procs externe ne fonctionnait pas.

C'est tout le problème de Castem : une documentation
un peu trop avare de "salive" pour expliquer comment
l'utiliser.

Des schémas, des croquis, des exemples pour CHAQUE
commandes Castem seraient fort utiles !


------------------
Pascal Roux
Post Doc en dynamique des structures à l'INRA
Voir le profil de l'utilisateurEnvoyer un message privé
Procedure externe
Vero


Inscrit le: 30 Juin 2008
Messages: 6
Répondre en citant
Merci beaucoup Pascal. Tes explications meriteraient d'etre incluses dans la doc officielle (lien contacts sur le site cast3m).

Vero
Voir le profil de l'utilisateurEnvoyer un message privé
lguenhael
Administrateur

Inscrit le: 25 Nov 2006
Messages: 146
Localisation: Laboratoire Roberval - UTC
Répondre en citant
Bonjour,

Il est bien précisé dans la doc Cast3M qu'en sortie d'UTIL PROC (ou UTIL NOTI) "Un fichier à accès direct de nom UTILPROC ou UTILNOTI est créé, il sera automatiquement lu lors des exécutions suivantes du programme".

Ceci dit je préfère utiliser OPTI DONN et là en revanche la documentation est plus que limiter sur cette fonction. Elle permet enfaite de fermer le programme actuel et d'en démarrer un nouveau sans modifier l'état de la mémoire.

Ainsi on peut, suivant la méthode présenté ci-après, lancer un ou plusieurs "pré-programmes" qui peuvent contenir des procédures ou tout autre chose sans avoir à relancer quoi que ce soit :

Programme principal :
Citation:
* Nom du fichier actuel
MastProg = 'ProgRacine.dgibi' ;

* Appel de sous-programmes
SI ((VALE SAUV) EGA 8) ;
OPTI SAUV 99 ;
OPTI DONN 'PreProg1.dgibi' ;
FINSI ;

SI ((VALE SAUV) EGA 99) ;
OPTI SAUV 98 ;
OPTI DONN 'PreProg2.dgibi' ;
FINSI ;

SI ((VALE SAUV) EGA 98) ;
OPTI SAUV 97 ;
OPTI DONN 'PreProg3.dgibi' ;
FINSI ;

* Suite et fin du programme

FIN ;


Sous programmes :
Citation:
* Contenu du sous programme

*…

* Fin du sous programme
OPTI DONN MastProg ;


Cordialement.
Voir le profil de l'utilisateurEnvoyer un message privéEnvoyer un e-mail
Définition de procedures dans un fichier externe ? [Résolu]
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum
Vous ne pouvez pas joindre des fichiers
Vous ne pouvez pas télécharger des fichiers
Toutes les heures sont au format GMT + 2 Heures  
Page 1 sur 1  

  
  
 Répondre au sujet