(* Rotation over 60 degrees *)
rot60[xy_]:=(({{Cos[(π/3)], -Sin[(π/3)]}, {Sin[(π/3)], Cos[(π/3)]}})).xy;
(* Rotation over -60 degrees *)
rotm60[xy_]:=(({{Cos[-(π/3)], -Sin[-(π/3)]}, {Sin[-(π/3)], Cos[-(π/3)]}})).xy;

Rot60[xylist_]:=rot60/@xylist;
ROT60[xylistlist_]:= Rot60 /@xylistlist;
Rotm60[xylist_]:=rotm60/@xylist;
ROTm60[xylistlist_]:= Rotm60 /@xylistlist;
Rot120[xylist_]:=Rot60[Rot60[xylist]];

transBC[xy_]:=xy+(ptC-ptB);
TransBC[xylist_]:=transBC /@ xylist;
TRANSBC[xylistlist_]:=TransBC /@ xylistlist;

transOB[xy_]:=xy+ptB;
TransOB[xylist_]:=transOB /@ xylist;
TRANSOB[xylistlist_]:=TransOB /@ xylistlist;
transBO[xy_]:=xy-ptB;
TransBO[xylist_]:=transBO /@ xylist;
TRANSBO[xylistlist_]:=TransBO /@ xylistlist;

transOC[xy_]:=xy+ptC;
TransOC[xylist_]:=transOC /@ xylist;
TRANSOC[xylistlist_]:=TransOC /@ xylistlist;
transCO[xy_]:=xy-ptC;
TransCO[xylist_]:=transCO /@ xylist;
TRANSCO[xylistlist_]:=TransCO /@ xylistlist;

transOM[xy_]:=xy+ptM;
TransOM[xylist_]:=transOM /@ xylist;
TRANSOM[xylistlist_]:=TransOM /@ xylistlist;
transMO[xy_]:=xy-ptM;
TransMO[xylist_]:=transMO /@ xylist;
TRANSMO[xylistlist_]:=TransMO /@ xylistlist;

(* Coordinates of Basic Triangle*)

L=10;
ptA = {10,10};
ptB = ptA+{L,0};
ptC=ptA+rot60[ptB-ptA];
ptM=(ptC+ptA)/2;

(* Rotate about the points B C and M *)

ROT60B[xylistlist_]:=TRANSOB[ROTm60[TRANSBO[xylistlist]]];
ROT60C[xylistlist_]:=TRANSOC[ROTm60[TRANSCO[xylistlist]]];
ROT120C[xylistlist_]:=ROT60C[ROT60C[xylistlist]];
ROT180M[xylistlist_]:=TRANSOM[ROT60[ROT60[ROT60[TRANSMO[xylistlist]]]]];

(* Coordinates of Figure *)

fig1={{ptA,{11.5,11},{12,9},{13.8,13},{14,10},{17,8},{18,9},{18,10},ptB}};
fig2={{ptC,{15,18},{13,15},ptM}};
fig4={{{16,10},{15.5,11},{16,10},{18,9}}};
crk={N[Table[{16+0.5Cos[i(π/10)],13.5+Sin[i(π/10)]},{i,1,10}]]};

cel={fig2 ,ROT180M[fig2],fig1,ROT60B[fig1],fig4,crk};
Graphics[Map[Line,cel]]

(* Translation of Vectors *)

vAB = ptB-ptA;
vAC = ptC-ptA;
vCB = ptB-ptC;
transABC[xy_]:=xy+vAB+vAC;
TransABC[xylist_]:=transABC /@ xylist;
TRANSABC[xylistlist_]:=TransABC /@ xylistlist;
transCBA[xy_]:=xy+vAB+vCB;
TransCBA[xylist_]:=transCBA /@ xylist;
TRANSCBA[xylistlist_]:=TransCBA /@ xylistlist;

(* Composing the pattern *)

W3:=Table[Line[Nest[TRANSCBA,Nest[TRANSABC,Nest[ROT120C,Nest[ROT180M,fig1,i],j],k],m]],{i,0,1},{j,0,2},{k,0,5},{m,0,5}];
W4:=Table[Line[Nest[TRANSCBA,Nest[TRANSABC,Nest[ROT120C,Nest[ROT180M,ROT60B[fig1],i],j],k],m]],{i,0,1},{j,0,2},{k,0,5},{m,0,5}];
W5:=Table[Line[Nest[TRANSCBA,Nest[TRANSABC,Nest[ROT120C,Nest[ROT180M,fig2,i],j],k],m]],{i,0,1},{j,0,2},{k,0,5},{m,0,5}];
W6:=Table[Line[Nest[TRANSCBA,Nest[TRANSABC,Nest[ROT120C,Nest[ROT180M,crk,i],j],k],m]],{i,0,1},{j,0,2},{k,0,5},{m,0,5}];
W7:=Table[Line[Nest[TRANSCBA,Nest[TRANSABC,Nest[ROT120C,Nest[ROT180M,fig4,i],j],k],m]],{i,0,1},{j,0,2},{k,0,5},{m,0,5}];

G:=Graphics[{Red,W3,Red,W5,Black,W6,Black,W7}];
Show[G]

Export["C:\Doggg.pdf",G]