-#@ MODIF impr_fonction_ops Macro DATE 22/11/2004 AUTEUR MCOURTOI M.COURTOIS
+#@ MODIF impr_fonction_ops Macro DATE 30/11/2004 AUTEUR MCOURTOI M.COURTOIS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
macro='IMPR_FONCTION'
import aster
from Accas import _F
+ from Utilitai import Graph
+ from Utilitai.Utmess import UTMESS
ier=0
# La macro compte pour 1 dans la numerotation des commandes
self.set_icmd(1)
niv='A'
else:
niv='I'
- from Utilitai.Utmess import UTMESS
UTMESS(niv,macro,'Le fichier '+nomfich+' existe déjà, on écrit ' \
- 'à la suite.',self)
+ 'à la suite.')
# 0.2. Récupération des valeurs sous COURBE
unparmi=('FONCTION','LIST_RESU','FONC_X','ABSCISSE')
typ=obj.__class__.__name__
break
if obj==None:
- from Utilitai.Utmess import UTMESS
- UTMESS('S',macro,'incohérence entre le catalogue et la macro.', self)
+ UTMESS('S',macro,'incohérence entre le catalogue et la macro.')
if typi=='FONCTION':
if typ=='nappe_sdaster':
lpar,lval=obj.Valeurs()
# 1. Récupération des valeurs des N courbes sous forme
# d'une liste de N listes
#----------------------------------------------
- from Utilitai import Graph
graph=Graph.Graph()
iocc=-1
for dCi in Courbe:
obj=dCi[typi]
typ=obj.__class__.__name__
break
- if not dCi.has_key('LEGENDE'):
- dCi['LEGENDE']=obj.get_name()
+ if not dCi.has_key('LEGENDE') and hasattr(obj,'get_name'):
+ dCi['LEGENDE']=obj.get_name()
if obj==None:
- from Utilitai.Utmess import UTMESS
- UTMESS('S',macro,'incohérence entre le catalogue et la macro.',self)
+ UTMESS('S',macro,'incohérence entre le catalogue et la macro.')
# 1.2. Extraction des valeurs
'Val' : [lx,ly],
'Lab' : [dic['NOM_PARA_FONC'],dic['NOM_RESU']]
}
- AjoutParaCourbe(dicC, args=dCi)
+ Graph.AjoutParaCourbe(dicC, args=dCi)
graph.AjoutCourbe(**dicC)
else:
ftmp__=obj
'Val' : [lx,lr],
'Lab' : [dpar['NOM_PARA'],dpar['NOM_RESU']]
}
- AjoutParaCourbe(dicC, args=dCi)
+ Graph.AjoutParaCourbe(dicC, args=dCi)
graph.AjoutCourbe(**dicC)
# 1.2.2. Mot-clé LIST_RESU
elif typi=='LIST_RESU':
if interp and iocc>0:
- from Utilitai.Utmess import UTMESS
UTMESS('S',macro,"""Il n'y a pas de règles d'interpolation pour LIST_PARA/LIST_RESU,
LIST_PARA/LIST_RESU ne peut donc apparaitre qu'une seule fois
- et à la première occurence de COURBE""",self)
+ et à la première occurence de COURBE""")
lx=dCi['LIST_PARA'].Valeurs()
lr=obj.Valeurs()
if len(lx)<>len(lr):
- from Utilitai.Utmess import UTMESS
- UTMESS('S',macro,"LIST_PARA et LIST_RESU n'ont pas la meme taille",self)
+ UTMESS('S',macro,"LIST_PARA et LIST_RESU n'ont pas la meme taille")
# on stocke les données dans le Graph
dicC={
'Val' : [lx,lr],
'Lab' : [dCi['LIST_PARA'].get_name(),obj.get_name()]
}
- AjoutParaCourbe(dicC, args=dCi)
+ Graph.AjoutParaCourbe(dicC, args=dCi)
graph.AjoutCourbe(**dicC)
# 1.2.3. Mot-clé FONC_X
ob2=dCi['FONC_Y']
# peut-on blinder au niveau du catalogue
if typ=="nappe_sdaster" or ob2.__class__.__name__=="nappe_sdaster":
- from Utilitai.Utmess import UTMESS
- UTMESS('S',macro,"FONC_X/FONC_Y ne peuvent pas etre des nappes !",self)
+ UTMESS('S',macro,"FONC_X/FONC_Y ne peuvent pas etre des nappes !")
if interp and iocc>0:
- from Utilitai.Utmess import UTMESS
UTMESS('S',macro,"""Au format 'TABLEAU' ,FONC_X/FONC_Y ne peut apparaitre qu'une seule fois
- et à la première occurence de COURBE""",self)
+ et à la première occurence de COURBE""")
ftmp__=obj
dpar=ftmp__.Parametres()
ftm2__=ob2
'Val' : [lx,ly],
'Lab' : [dpar['NOM_RESU'],dpa2['NOM_RESU']]
}
- AjoutParaCourbe(dicC, args=dCi)
+ Graph.AjoutParaCourbe(dicC, args=dCi)
graph.AjoutCourbe(**dicC)
# 1.2.4. Mot-clé ABSCISSE / ORDONNEE
elif typi=='ABSCISSE':
if interp and iocc>0:
- from Utilitai.Utmess import UTMESS
UTMESS('S',macro,"""Il n'y a pas de règles d'interpolation pour ABSCISSE/ORDONNEE,
ABSCISSE/ORDONNEE ne peut donc apparaitre qu'une seule fois
- et à la première occurence de COURBE""",self)
+ et à la première occurence de COURBE""")
lx=obj
lr=dCi['ORDONNEE']
if len(lx)<>len(lr):
- from Utilitai.Utmess import UTMESS
- UTMESS('S',macro,"ABSCISSE et ORDONNEE n'ont pas la meme taille",self)
+ UTMESS('S',macro,"ABSCISSE et ORDONNEE n'ont pas la meme taille")
# on stocke les données dans le Graph
dicC={
'Val' : [lx,lr],
'Lab' : ['Absc','Ordo']
}
- AjoutParaCourbe(dicC, args=dCi)
+ Graph.AjoutParaCourbe(dicC, args=dCi)
graph.AjoutCourbe(**dicC)
# 1.2.9. ménage
#----------------------------------------------
# 2.0. Surcharge des propriétés du graphique et des axes
+ # (bloc quasiment identique dans Table)
if args['TITRE']<>None: graph.Titre=args['TITRE']
if args['SOUS_TITRE']<>None: graph.SousTitre=args['SOUS_TITRE']
if FORMAT in ('XMGRACE','AGRAF'):
# 2.39. Format inconnu
else:
- from Utilitai.Utmess import UTMESS
- UTMESS('S',macro,'Format inconnu : '+FORMAT,self)
+ UTMESS('S',macro,'Format inconnu : '+FORMAT)
# Traiter le cas des UL réservées
if args['UNITE'] and args['UNITE'] in ul_reserve:
TYPE='ASCII', ACCES='APPEND' )
return ier
-
-# ------------------------------------------------------------------------------
-def AjoutParaCourbe(dCourbe, args):
- """Ajoute les arguments fournis par l'utilisateur (args) dans le dictionnaire
- décrivant la courbe (dCourbe).
- """
- # correspondance : mot-clé Aster / clé du dico de l'objet Graph
- keys={
- 'LEGENDE' : 'Leg',
- 'STYLE' : 'Sty',
- 'COULEUR' : 'Coul',
- 'MARQUEUR' : 'Marq',
- 'FREQ_MARQUEUR' : 'FreqM',
- 'TRI' : 'Tri',
- }
- for mc, key in keys.items():
- if args.has_key(mc):
- dCourbe[key]=args[mc]
-
-#@ MODIF macr_ascouf_mail_ops Macro DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS
+#@ MODIF macr_ascouf_mail_ops Macro DATE 30/11/2004 AUTEUR MCOURTOI M.COURTOIS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
from math import sqrt,cos,sin,pi,tan,log,fabs,ceil,fmod,floor
-################################################################################
-################################################################################
-################################################################################
+# ------------------------------------------------------------------------------
def ASCFON(RC,RM,EP,ORIEN,AZIM,AXEC,POS,Y):
-# FONCTION F(CP)=CC
-# OU CC EST LA TAILLE DE LA FISSURE SUR LE COUDE
-# ET CP LA TAILLE DE FISSURE SUR LA PLAQUE
+ """
+ FONCTION F(CP)=CC
+ OU CC EST LA TAILLE DE LA FISSURE SUR LE COUDE
+ ET CP LA TAILLE DE FISSURE SUR LA PLAQUE
+ """
AZIMR = AZIM*2.*pi/360.
if POS=='DEB_INT': X = RM-EP/2.
else : X = RM+EP/2.
) \
- 2.0*AXEC
return f_ASCFON
-#
-################################################################################
-################################################################################
-################################################################################
-# MACR_ASCOUF_MAIL ASCFIS
-# taille initiale du defaut fissure sur la plaque en
-# fonction des donnees sur le coude ou le tube suivant la
-# transformation choisie
-#
-#-----------------DONNEES FOURNIES PAR L UTILISATEUR--------------------
-#
-# ALPHA = ANGLE DU COUDE
-# RM = RAYON MOYEN DU COUDE
-# RC = RAYON DE CINTRAGE DU COUDE
-# EP = EPAISSEUR DU COUDE
-# SUREP = VALEUR DE LA SUREPAISSEUR
-# GEOM = TYPE DE GEOMETRIE MODELISEE (COUDE OU TUBE)
-# AXEA = PROFONDEUR FISSURE (DEMI PETIT AXE)
-# AXEC = DEMI GRAND AXE FISSURE
-# AZIM = POSITION AZIMUTALE DU CENTRE DE LA FISSURE
-# POS = POSITION EN PEAU (EXTERNE OU INTERNE)
-# SF = ABCISSE CURVILIGNE LONGITUDINALE DU CENTRE DE LA FISSURE
-# DSF = BOOLEEN EXPRESSION POSITION CENTRE FISSURE
-# BETA = POSITION ANGULAIRE DU CENTRE DE LA FISSURE
-# ORIEN = ORIENTATION DE LA FISSURE
-#
-#----------------------DONNEES RENVOYEES-----------------------
-#
-# AXEAP = PROFONDEUR DE LA FISSURE (PETIT AXE) SUR LA PLAQUE
-# AXECP = LONGUEUR DE LA FISSURE (GRAND AXE) SUR LA PLAQUE
-# SFP = ABCISSE CURVILIGNE LONGITUDINALE CENTRE FISSURE
-# SUR LA PLAQUE
-#
+
+# ------------------------------------------------------------------------------
def ASCFIS(ALPHA, RM, RC, EP, SUREP, GEOM, AXEA,
AXEC, AZIM, POS, SF, DSF, BETA, ORIEN):
+ """
+ MACR_ASCOUF_MAIL ASCFIS
+ taille initiale du defaut fissure sur la plaque en
+ fonction des donnees sur le coude ou le tube suivant la
+ transformation choisie
+
+ ------------DONNEES FOURNIES PAR L UTILISATEUR--------------------
+
+ ALPHA = ANGLE DU COUDE
+ RM = RAYON MOYEN DU COUDE
+ RC = RAYON DE CINTRAGE DU COUDE
+ EP = EPAISSEUR DU COUDE
+ SUREP = VALEUR DE LA SUREPAISSEUR
+ GEOM = TYPE DE GEOMETRIE MODELISEE (COUDE OU TUBE)
+ AXEA = PROFONDEUR FISSURE (DEMI PETIT AXE)
+ AXEC = DEMI GRAND AXE FISSURE
+ AZIM = POSITION AZIMUTALE DU CENTRE DE LA FISSURE
+ POS = POSITION EN PEAU (EXTERNE OU INTERNE)
+ SF = ABCISSE CURVILIGNE LONGITUDINALE DU CENTRE DE LA FISSURE
+ DSF = BOOLEEN EXPRESSION POSITION CENTRE FISSURE
+ BETA = POSITION ANGULAIRE DU CENTRE DE LA FISSURE
+ ORIEN = ORIENTATION DE LA FISSURE
+
+ -----------------DONNEES RENVOYEES-----------------------
+
+ AXEAP = PROFONDEUR DE LA FISSURE (PETIT AXE) SUR LA PLAQUE
+ AXECP = LONGUEUR DE LA FISSURE (GRAND AXE) SUR LA PLAQUE
+ SFP = ABCISSE CURVILIGNE LONGITUDINALE CENTRE FISSURE
+ SUR LA PLAQUE
+ """
from Utilitai import funct_root
if POS=='DEB_INT':
if (AZIM>=120.) and (AZIM<=240.0): X = RM-EP/2.0 - SUREP
else: AXEAP = AXEA
#
return AXEAP,AXECP,SFP
-################################################################################
-################################################################################
-################################################################################
-# MACR_ASCOUF_MAIL ASCSEP
-# taille initiale sur la plaque des sous-epaisseurs
-#
-#-----------------DONNEES FOURNIES PAR L UTILISATEUR--------------------
-#
-# ALPHA = ANGLE DU COUDE
-# RM = RAYON MOYEN DU COUDE
-# RC = RAYON DE CINTRAGE DU COUDE
-# EP = EPAISSEUR DU COUDE
-# GEOM = TYPE DE GEOMETRIE MODELISEE (COUDE OU TUBE)
-# SYME = QUART DE STRUCTURE SI 'OUI'
-#
+
+# ------------------------------------------------------------------------------
def ASCSEP(MCL_SOUS_EPAIS,ALPHA,RM,RC,EP,GEOM,SYME):
+ """
+ MACR_ASCOUF_MAIL ASCSEP
+ taille initiale sur la plaque des sous-epaisseurs
+
+ ------------DONNEES FOURNIES PAR L UTILISATEUR--------------------
+
+ ALPHA = ANGLE DU COUDE
+ RM = RAYON MOYEN DU COUDE
+ RC = RAYON DE CINTRAGE DU COUDE
+ EP = EPAISSEUR DU COUDE
+ GEOM = TYPE DE GEOMETRIE MODELISEE (COUDE OU TUBE)
+ SYME = QUART DE STRUCTURE SI 'OUI'
+
+ """
ier=0
CG=pi/180.
#
print '<=> TAILLE EQUIVALENTE PAR RAPPORT A L ANGLE DU COUDE (DEGRES): %.2f'%(ssep.ILONP*360/(2*pi*RC))
#
return ier
-################################################################################
-################################################################################
-################################################################################
-# MACR_ASCOUF_MAIL ASCTCI
-# APPELEE DANS : ASCSYM et ASCPRE
-# CALCUL TABLEAU TRIE DES ABSCISSES DES CENTRES DE SOUS-EPAISSEURS
-#
-#-----------------DONNEES FOURNIES PAR L UTILISATEUR--------------------
-#
-# RM = RAYON MOYEN DU COUDE
-#
-#----------------------DONNEES RENVOYEES-----------------------
-#
-# IABSC1 = CORRESPONDANCE ABSC. CURVI. CIRCONF. SOUS-EP. I
-# IABSC2 = CORRESPONDANCE ABSC. GAUCHE ET DROITE CIRCONF. SOUS-EP. I
-# COORXD = ABSC. DU BORD DROIT DE LA SOUS-EP I
-# COORXG = ABSC. DU BORD GAUCHE DE LA SOUS-EP I
-#
+
+# ------------------------------------------------------------------------------
def ASCTCI(MCL_SOUS_EPAIS,RM):
+ """
+ MACR_ASCOUF_MAIL ASCTCI
+ APPELEE DANS : ASCSYM et ASCPRE
+ CALCUL TABLEAU TRIE DES ABSCISSES DES CENTRES DE SOUS-EPAISSEURS
+
+ ------------DONNEES FOURNIES PAR L UTILISATEUR--------------------
+
+ RM = RAYON MOYEN DU COUDE
+
+ -----------------DONNEES RENVOYEES-----------------------
+
+ IABSC1 = CORRESPONDANCE ABSC. CURVI. CIRCONF. SOUS-EP. I
+ IABSC2 = CORRESPONDANCE ABSC. GAUCHE ET DROITE CIRCONF. SOUS-EP. I
+ COORXD = ABSC. DU BORD DROIT DE LA SOUS-EP I
+ COORXG = ABSC. DU BORD GAUCHE DE LA SOUS-EP I
+
+ """
#
# --- tri du tableau des abscisses curvilignes circonf. plaque
#
print '%d) SOUS-EP NO %d <> XD = %.2f'%(j+1,IABSC1[IABSC2[j]/2-1],TAMPON[j][0])
#
return TAMPON,IABSC1,IABSC2,COORXD,COORXG
-#
-################################################################################
-################################################################################
-################################################################################
-# MACR_ASCOUF_MAIL ASCTLO
-# APPELEE DANS : ASCSYM et ASCPRE
-# CALCUL TABLEAU TRIE DES ORDONNEES DES CENTRES DE SOUS-EPAISSEURS
-#
-#-----------------DONNEES FOURNIES PAR L UTILISATEUR--------------------
-#
-# RC = RAYON MOYEN DU COUDE
-# ALPHA = ANGLE DU COUDE
-# LTCHAR = LONGUEUR DE L'EMBOUT DU COTE CHARGEMENT
-# LTCLIM = LONGUEUR DE L'EMBOUT DU COTE CONDITIONS AUX LIMITES
-#
-#----------------------DONNEES RENVOYEES-----------------------
-#
-# IORDO1 = CORRESPONDANCE ORDO. CURVI. LONGIT. SOUS-EP. I
-# IORDO2 = CORRESPONDANCE ORDO. GAUCHE ET DROITE LONGIT. SOUS-EP. I
-# COORYI = ORDONNEE. DU BORD INTERIEUR DE LA SOUS-EP I
-# COORYS = ORDONNEE. DU BORD SUPERIEUR DE LA SOUS-EP I
-#
+
+# ------------------------------------------------------------------------------
def ASCTLO(MCL_SOUS_EPAIS,RC,ALPHA,LTCHAR,LTCLIM):
+ """
+ MACR_ASCOUF_MAIL ASCTLO
+ APPELEE DANS : ASCSYM et ASCPRE
+ CALCUL TABLEAU TRIE DES ORDONNEES DES CENTRES DE SOUS-EPAISSEURS
+
+ ------------DONNEES FOURNIES PAR L UTILISATEUR--------------------
+
+ RC = RAYON MOYEN DU COUDE
+ ALPHA = ANGLE DU COUDE
+ LTCHAR = LONGUEUR DE L'EMBOUT DU COTE CHARGEMENT
+ LTCLIM = LONGUEUR DE L'EMBOUT DU COTE CONDITIONS AUX LIMITES
+
+ -----------------DONNEES RENVOYEES-----------------------
+
+ IORDO1 = CORRESPONDANCE ORDO. CURVI. LONGIT. SOUS-EP. I
+ IORDO2 = CORRESPONDANCE ORDO. GAUCHE ET DROITE LONGIT. SOUS-EP. I
+ COORYI = ORDONNEE. DU BORD INTERIEUR DE LA SOUS-EP I
+ COORYS = ORDONNEE. DU BORD SUPERIEUR DE LA SOUS-EP I
+
+ """
#
# tri du tableau des abscisses curvilignes axiales plaque
#
# NLX = NOMBRE TOTAL D'ELEMENTS CIRCONF. DE LA SOUS-EPAISSEUR K
# NLY = NOMBRE TOTAL D'ELEMENTS LONGIT. DE LA SOUS-EPAISSEUR K
#
+# ------------------------------------------------------------------------------
def ASCNBE(MCL_SOUS_EPAIS,COORXG,COORXD,COORYI,COORYS,BD,BG,BS,BI,DNX,DNY,RM,RC,
INDSEX,INDSEY,IABSC1,IORDO1):
#
# NZONEX = NOMBRE DE ZONES CIRCONFERENTIELLES
# NZONEY = NOMBRE DE ZONES LONGITUDINALES
#
+# ------------------------------------------------------------------------------
def ASCSYM(MCL_SOUS_EPAIS,RM,RC,ALPHA,LTCHAR,LTCLIM):
ier=0
DERAFC = 18.
# NZONEX = NOMBRE DE ZONES CIRCONFERENTIELLES
# NZONEY = NOMBRE DE ZONES LONGITUDINALES
#
+# ------------------------------------------------------------------------------
def ASCPRE(MCL_SOUS_EPAIS,RM,RC,ALPHA,SYME,LTCHAR,LTCLIM):
ier=0
ALPHAR = 2.*ALPHA*pi/360.
# "PLAQUE FISSUREE"
#
+# ------------------------------------------------------------------------------
def write_file_dgib_ASCFDO(nomFichierDATG,RM,RC,ALPHA,NBTRAN,EP1,EP2,EPI,TETA1,
TETA2,LTRAN,SUREP,LTCHAR,LTCLIM,TYPBOL,AXEAP,AXECP,NT,NS,NC,
SFP,ORIEN,AZIM,RC0,RC2,RC3,POSIT,EPSI,NIVMAG,SYME, loc_datg) :
# NLX = NOMBRE D'ELEMENTS CIRCONF. DE LA SOUS-EPAISSEUR
# NLY = NOMBRE D'ELEMENTS LONGI DE LA SOUS-EPAISSEUR
+# ------------------------------------------------------------------------------
def write_file_dgib_ASCSQO(nomFichierDATG,TYPELE,RM,RC,ALPHA,NBTRAN,EP1,EP2,
EPI,TETA1,MCL_SOUS_EPAIS,TETA2,LTRAN,LTCHAR,LTCLIM,GEOM,
SYME,NBEP,NLX,NLY,NIVMAG,loc_datg) :
# texte = chaine de caracteres contenant des instructions gibi
# de post-traitements
#
+# ------------------------------------------------------------------------------
def write_subpart_file_pgib_POST(MCL_SOUS_EPAIS,NLX,NLY):
CAR3 = ('fdro','exdr','extr','exga','fgau','inga','intr','indr')
# NLX = NOMBRE TOTAL D'ELEMENTS CIRCONF. DE LA SOUS-EPAISSEUR K
# NLY = NOMBRE TOTAL D'ELEMENTS LONGIT. DE LA SOUS-EPAISSEUR K
+# ------------------------------------------------------------------------------
def write_file_pgib_ASCSQ2(MCL_SOUS_EPAIS,NLX,NLY):
POIVIR = ' ;\n'
texte=write_subpart_file_pgib_POST(MCL_SOUS_EPAIS,NLX,NLY)
# IL S'AGIT DE LA PREMIERE PARTIE ( AVANT LES DONNEES UTILISATEUR )
#
#
+# ------------------------------------------------------------------------------
def write_file_dgib_ASCSP1(nomFichierDATG,TYPELE,MCL_SOUS_EPAIS,NIVMAG,loc_datg):
POIVIR = ' ;\n'
# NZONEX = NOMBRE DE ZONES CIRCONFERENTIELLES
# NZONEY = NOMBRE DE ZONES LONGITUDINALES
#
+# ------------------------------------------------------------------------------
def write_file_pgib_ASCSDO(RM,RC,ALPHA,EP,LTCLIM,LTCHAR,NBEP,
NZONEX,NZONEY,BG,BD,BI,BS,INDBG,INDBD,INDBI,INDBS,
DNX,DNY,MCL_SOUS_EPAIS,GEOM,SYME):
################################################################################
################################################################################
+# ------------------------------------------------------------------------------
def write_file_pgib_ASCSP2(MCL_SOUS_EPAIS,NLX,NLY):
POIVIR = ' ;\n'
################################################################################
################################################################################
+# ------------------------------------------------------------------------------
def write_file_dgib_ASCRDO(nomFichierDATG,TYPELE,NIVMAG,TYPBOL,ALPHA,RC,RM,EP,SUREP,
LTCLIM,LTCHAR,NBEP,loc_datg):
################################################################################
################################################################################
################################################################################
+# ------------------------------------------------------------------------------
def macr_ascouf_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,COUDE,
SOUS_EPAIS_COUDE,SOUS_EPAIS_MULTI,
FISS_COUDE,IMPRESSION,INFO,**args):