R1 =[3, 4, rectx, rectx + rect_width, rectx + rect_width, rectx, recty, recty, rect_height, rect_height]';
R2= [3,4,rectx,rectx+rect_width,rectx+rect_width,rectx,recty,recty,rect_height+thickness,rect_height+thickness]';
    for i = 0:num_holes_y - 1
        x_center = x_start + j * x_interval;
        y_center = y_start - i * y_interval;
        hole = [1, x_center, y_center, radius, zeros(1, 6)]'; 
    circleName = ['C', num2str(k)]; 
    sf1 = [sf1,'-',circleName]; 
total_elements =num_holes+2; 
ns = cell(1, total_elements)
    ns{k+3} =['C', num2str(k)]; 
g = decsg(gmcomb,sfcomb,ns_char);
geometryFromEdges(EModel,g);
R1 =[3, 4, rectx, rectx + rect_width, rectx + rect_width, rectx, recty, recty, rect_height, rect_height]';
R2= [3,4,rectx,rectx+rect_width,rectx+rect_width,rectx,recty,recty,rect_height+thickness,rect_height+thickness]';
    for i = 0:num_holes_y - 1
        x_center = x_start + j * x_interval;
        y_center = y_start - i * y_interval;
        hole = [1, x_center, y_center, radius, zeros(1, 6)]'; 
    circleName = ['C', num2str(k)]; 
    sf1 = [sf1,'-',circleName]; 
total_elements =num_holes; 
ns = cell(1, total_elements)
    ns{k+1} =['C', num2str(k)]; 
ns=cellfun(@num2str,ns,'uniformOutput',false);
disp(['number of holes:',num2str(num_holes)]);
disp(['Total Elements: ',num2str(total_elements)]);
disp(['Length of gmcomb: ', num2str(length(gm1))]);
disp(['Length of ns: ', num2str(length(ns))]);
if length(gmcomb) ~= length(ns_char)
    error('The number of elements in gmcomb does not match the number of names in ns.')
g = decsg(gmcomb,sfcomb,ns_char);
geometryFromEdges(EModel,g);
generateMesh(EModel,Hmin=0.001);
pdegplot(EModel,FaceLabels="on");
pdegplot(EModel,EdgeLabels="on");