size(12cm,0);

void distance(picture pic=currentpicture, pair A, pair B, Label L="", real n=0,
              pen p=currentpen)
{
  real d=3mm;
  path g=A--B;
  transform T=shift(-n*d*unit(B-A)*I);
  pic.add(new void(frame f, transform t) {
      picture opic;
      path G=T*t*g;
      draw(opic,Label(L,Center,UnFill(1)),G,p,Arrows(NoFill),Bars,PenMargins);
      add(f,opic.fit());
    });
  pic.addBox(min(g),max(g),T*min(p),T*max(p));
}

pair A=(0,0), B=(3,3);

dot(A);
dot(B);

distance(A,B,"$\ell$",1);
