* @M_VORO PROCEDUR PASCAL 12/10/18 21:15:02 7532
*---------------------------------------------------------------------*
* NOM : @M_VORO *
* *
* DESCRIPTION : Procedure de maillage d'un agregat cubique de poly- *
* -edres de Voronoi. *
* *
* SYNTAXE : TAB2 = @M_VORO TAB1 DENS1 (FLOT1) (ITRA1) ; *
* *
* - TAB1 = TABLE, resultat de la procedure @P_BOIT ; *
* - DENS1 = FLOTTANT, densite du maillage ; *
* - FLOT1 = FLOTTANT, critere pour l'elimination de facettes trop *
* petites des polyedres (0,3xDENS1 par defaut) ; *
* - ITRA1 = LOGIQUE, active des traces (pour DeBogage) ; *
* - TAB2 = TABLE, dont l'indice 'MAIL' contient le maillage de *
* l'agregat, l'indice 'ARET' celui des aretes de cha- *
* -que polyedres (pour traces). *
* De plus, chaque point de la partition de Voronoi sert *
* d'indice pour le maillage du polyedre qui lui est as- *
* -socie (TAB2 . PT1 . 'MAIL', TAB2 . PT1 . 'ARET'). *
* *
* LANGAGE : GIBIANE-CAST3M *
* AUTEUR : S. PASCAL (CEA/DEN/DM2S/SEMT/LM2S) *
* COURRIEL : serge.pascal@cea.fr *
*---------------------------------------------------------------------*
* VERSION : v1, 21/04/2008, version initiale *
* HISTORIQUE : v1, 11/04/2008, creation *
* HISTORIQUE : v1, 15/04/2008, debogage *
* HISTORIQUE : v1, 21/04/2008, debogage *
*---------------------------------------------------------------------*
* Priere de PRENDRE LE TEMPS de completer les commentaires *
* en cas de modification de ce sous-programme afin de faciliter *
* la maintenance ! *
*---------------------------------------------------------------------*
* *
*----------------------- Lecture des arguments -----------------------*
* *
* *
* *
XELIM1 = 0.3 ;
'FINS' ;
* *
ITRAC1 = VRAI ;
'FINS' ;
* *
* Taille caracteristique du nuage de points : *
MVORO1 = THO7U . 'MAV' ;
TOL1 = 1.E-9 * L000 ;
* *
*--------------- << Simplification >> de la partition ----------------*
* *
* *
* Je recolle les points des surfaces sur les plans X=0, Y=0...
PM1 = 0. 0. 0. ;
PM2 = 1. 0. 0. ;
PM3 = 1. 1. 0. ;
PM4 = 0. 1. 0. ;
PM5 = 0. 0. 1. ;
PM6 = 1. 0. 1. ;
PM7 = 1. 1. 1. ;
PM8 = 0. 1. 1. ;
* *
*------------------------------ Maillage -----------------------------*
* *
* Boucle sur Points de la Partition : *
* *
* List de couleurs pour traces : *
LCOUL1 = 'MOTS' 'BLEU' 'ROUG' 'ROSE' 'JAUN' 'VERT' 'TURQ' 'BLAN'
'AZUR' 'ORAN' 'VIOL' 'OCEA' 'CYAN' 'OLIV' 'GRIS' ;
* *
MPOI1 = THO7U . 'MPT' ;
IPREMI1 = VRAI ;
IPREMS1 = VRAI ;
'REPE' BI1 NBI1 ;
I1 = &BI1 ;
MPTJ1 = THO7U . PTI1 . 'MPT' ;
I1 ' / ' NBI1 ' ----------------------------') ;
IPREMJ1 = VRAI ;
'REPE' BJ1 NBJ1 ;
J1 = &BJ1 ;
MVIJ1 = (THO7U . PTI1 . PTJ1 . 'MAV') ;
SIJ1 = TMVORO1 . PTJ1 . PTI1 . 'MAIL' ;
'SINO' ;
IPREMK1 = VRAI ;
'REPE' BK1 NBK1 ;
K1 = &BK1 ;
'SI' (PVK1 'NEG' PVK2 TOL1) ;
DK12 = 'MINI'
'SI' IPREMK1 ;
CNTIJ1 = AIJK1 ;
IPREMK1 = FAUX ;
'SINO' ;
CNTIJ1 = CNTIJ1 'ET' AIJK1 ;
'FINS' ;
'FINS' ;
'FIN' BK1 ;
'SI' IPREMS1 ;
IPREMS1 = FAUX ;
'SINO' ;
'FINS' ;
'FINS' ;
TMVORO1 . PTI1 . PTJ1 . 'MAIL' = SIJ1 ;
'SI' IPREMJ1 ;
ENVI1 = SIJ1 ;
TMVORO1 . PTI1 . 'MPT' = PTJ1 ;
IPREMJ1 = FAUX ;
'SINO' ;
ENVI1 = ENVI1 'ET' SIJ1 ;
TMVORO1 . PTI1 . 'MPT' = (TMVORO1 . PTI1 . 'MPT') 'ET' PTJ1 ;
'FINS' ;
'FINS' ;
'FIN' BJ1 ;
'ELIM' ENVI1 TOL1 ;
TMVORO1 . PTI1 . 'MAIL' = VI1 ;
'SI' IPREMI1 ;
TMVORO1 . 'MPT' = PTI1 ;
TMVORO1 . 'MAIL' = VI1 ;
IPREMI1 = FAUX ;
'SINO' ;
TMVORO1 . 'MPT' = (TMVORO1 . 'MPT') 'ET' PTI1 ;
TMVORO1 . 'MAIL' = (TMVORO1 . 'MAIL') 'ET' VI1 ;
'FINS' ;
'FINS' ;
'FIN' BI1 ;
* *
* Nettoyage : *
* *
*--------------------- Verification du maillage ----------------------*
* *
* Verif. maillage : Si le mailleur libre volumique n'a pas reussi a *
* tout mailler correctement, l'operateur ENVEloppe doit renvoyer des *
* elements a l'interieur du cube : *
MAIL1 = TMVORO1 . 'MAIL' ;
* *
*----------------- Trace + Quelques infos en sortie ------------------*
* *
'SI' IOKAY1 ;
'MESS'
;
* *
' / Elements : ' NBELEM1 ;
'SI' ITRAC1 ;
Y1 = (((Y1 * 300.) + 30.) 'SIN') * 0.05 ;
CH1 = (0.7 * X1) + Y1 + (0.3 * Z1) ;
'SINO' ;
'MESS'
' ***** Caracteristiques de l"agregat cubique de polyedres genere :' ;
'MESS' TIT1 ;
'FINS' ;
'SINO' ;
'MESS'
'################### ATTENTION : Maillage Echoue ! ###################'
;
'FINS' ;
'OPTI' 'ECHO' VECH1 ;
* *
'RESP' TMVORO1 ;
* *
'FINP' ;
*---------------------------------------------------------------------*
* FIN PROCEDURE @M_VORO *
					© Cast3M 2003 - Tous droits réservés.
					Mentions légales