Skip to content
Snippets Groups Projects
Commit 63608644 authored by Christophe Geuzaine's avatar Christophe Geuzaine
Browse files

maitresse, ses tresses

parent b5397fe1
No related branches found
No related tags found
No related merge requests found
rayon = 0.008 ;
haut = 0.024 ; // hauteur du cylindre
psi = 40. * Pi / 180 ; // angle de tressage par rapport a l'axe vertical z du cable
nn = 24 ; // nbre de meplats (qui vont dans le meme sens)
nw = 6 ; // nombre de fils dans un meplat
dw = 0.0002 ; // diametre des fils
ampl = 0.0004 ; // amplitude du Cosinus
v = 1 ; // je le pose arbitrairement
omega = 1 / ( rayon * Tan(Pi/2-psi) ) ; Printf("omega = %g" , omega ) ;
tmax = haut ;
nbr_pas_tot = 50 ;
dt = tmax / nbr_pas_tot ;
omdeph = nn * omega / 2; // vitesse angulaire pour dephasage de Pi entre 2 meplats
angm = dw/rayon/Cos(psi) ;
Geometry.AutoCoherence = 0;
lc1 = 0.0011 ;
For jj In {1:nn}
For ii In {0:nbr_pas_tot}
t = ii * dt ;
rf = rayon ;
thetaf = -nw*angm/2 + (jj-1)*2*Pi/nn + omega * t ;
zf = v * t ;
aa = ampl * Cos( Pi/4 + (jj-1)*Pi + omdeph * t );
xf = (rf+aa) * Cos(thetaf) ; yf = (rf+aa) * Sin(thetaf) ;
num = (2*jj-1)*10000+ii;
Point(num) = { xf , yf , zf , lc1 } ;
tab1[ii] = num ;
thetaf = -nw*angm/2 + (jj-1)*2*Pi/nn - omega * t ;
aa = ampl * Cos( 3*Pi/4 + (jj-1)*Pi + omdeph * t );
xf = (rf+aa) * Cos(thetaf) ; yf = (rf+aa) * Sin(thetaf) ;
num = (2*jj)*10000+ii;
Point(num) = { xf , yf , zf , lc1 } ;
tab2[ii] = num;
EndFor
num = (2*jj-1)*10000+ii;
Spline(num) = tab1[];
Extrude Line { num , {0,0,1}, {0,0,0}, nw*angm }{Layers{5,num,1};Recombine;} ;
num = (2*jj)*10000+ii;
Spline(num) = tab2[];
Extrude Line { num , {0,0,1}, {0,0,0}, nw*angm }{Layers{5,num,1};Recombine;} ;
EndFor
Coherence;
rayon = 0.004 ;
haut = 0.012 ; // hauteur du cylindre
psi = 40. * Pi / 180 ; // angle de tressage par rapport a l'axe vertical z du cable
nn = 24 ; // nbre de meplats (qui vont dans le meme sens)
nw = 5; // nombre de fils dans un meplat
dw = 0.0002 ; // diametre des fils
ampl = 0.0003 ; // amplitude du Cosinus
v = 1 ; // je le pose arbitrairement
omega = 1 / ( rayon * Tan(Pi/2-psi) ) ; Printf("omega = %g" , omega ) ;
tmax = haut ;
nbr_pas_tot = 30 ;
dt = tmax / nbr_pas_tot ;
omdeph = nn * omega / 2; // vitesse angulaire pour dephasage de Pi entre 2 meplats
angm = dw/rayon/Cos(psi) ;
Geometry.AutoCoherence = 0;
lc1 = 0.0008 ;
For jj In {1:nn}
For ii In {0:nbr_pas_tot}
t = ii * dt ;
rf = rayon ;
thetaf = -nw*angm/2 + (jj-1)*2*Pi/nn + omega * t ;
zf = v * t ;
aa = ampl * Cos( Pi/4 + (jj-1)*Pi + omdeph * t );
xf = (rf+aa) * Cos(thetaf) ; yf = (rf+aa) * Sin(thetaf) ;
Point((2*jj-1)*1000+ii) = { xf , yf , zf , lc1 } ;
tab1[ii] = (2*jj-1)*1000+ii ;
thetaf = -nw*angm/2 + (jj-1)*2*Pi/nn - omega * t ;
aa = ampl * Cos( 3*Pi/4 + (jj-1)*Pi + omdeph * t );
xf = (rf+aa) * Cos(thetaf) ; yf = (rf+aa) * Sin(thetaf) ;
Point((2*jj)*1000+ii) = { xf , yf , zf , lc1 } ;
tab2[ii] = (2*jj)*1000+ii ;
EndFor
Spline((2*jj-1)*1000+ii) = tab1[];
// Extrude Line { ((2*jj-1)*1000+ii) , {0,0,1}, {0,0,0}, nw*angm } ;
For kk In {1:nw-1}
Rotate { {0,0,1}, {0,0,0}, kk*angm} { Duplicata { Line{(2*jj-1)*1000+ii} ; } }
EndFor
Spline((2*jj)*1000+ii) = tab2[];
// Extrude Line { ((2*jj)*1000+ii) , {0,0,1}, {0,0,0}, nw*angm } ;
For kk In {1:nw-1}
Rotate { {0,0,1}, {0,0,0}, kk*angm} { Duplicata { Line{(2*jj)*1000+ii} ; } }
EndFor
EndFor
Coherence;
b = rayon ;
L = 2*nn ;
N = nw ;
d = dw ;
ld = 4*Pi*b/L-N*d/Cos(psi) ;// small axis of the diamond shaped aperture (horizontal)
Ld = ld/Tan(psi) ; // Big axis of the diamond shaped aperture (vertical=z)
P = 4*Pi*b/L/Tan(psi); // Periode du tressage selon axe z vertical du cable
n = L*L*Tan(psi)/(4*Pi*b) ; // number of apertures per unit length
F = N*d*L/(4*Pi*rayon*Cos(psi)) ; Printf("Fill Factor = %g" , F ) ;
K = 2*F-F*F ; Printf("Optical coverage = %g" , K ) ;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment