% file: jed3d.sl % variable erad=50.0, hgt=180.0, tfrac=0.45; variable sel, ix, iy, iz; variable jed3d, jmask, dmask, emask, temp; V3D_HARD_CUTOFF=0; jed3d = v3d_cube([erad, 0.5*hgt, erad]); jmask=0.0*jed3d; sel = where(v3d_va > erad*(1.0-tfrac)); jmask[sel,*,*]=1.0; sel = where(v3d_va < (erad-hgt/2.0)); jmask[*,sel,*]=0.0; temp=v3d_cylinder(erad*(1.0-tfrac), erad, -0.5*hgt, 0.5*hgt, [0., erad-hgt/2.0, 0.]); sel = where(v3d_va > (erad-hgt/2.0)); temp[*,sel,*]=0.0; jmask = jmask + temp; jmask[where(jmask > 0.5)]=1.0; dmask=0.0*jed3d; sel = where(v3d_va < -1.0*erad*(1.0-tfrac)); dmask[*,*,sel]=1.0; temp=v3d_cylinder(erad*(1.0-tfrac), erad, -0.5*hgt, 0.5*hgt, [0., erad-hgt/2.0, 0.], [0.0,0.]); dmask = dmask + temp; dmask[where(dmask > 0.5)]=1.0; emask=0.0*jed3d; sel = where(v3d_va > erad*(1.0-tfrac)); emask[sel,*,*]=1.0; emask[*,*,sel]=1.0; sel = where(v3d_va < -1.0*erad*(1.0-tfrac)); emask[*,*,sel]=1.0; emask = emask + v3d_cube([0.6*erad, hgt, 0.5*tfrac*erad]); emask[where(emask > 0.5)]=1.0; v3d_view(jed3d*jmask*emask*dmask);