* @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