<div dir="ltr"><div><div>Hi, <br><br>I am trying to create structured quad mesh on the plane surface with 2 holes on it. I have tried a lot of things(transfinite surface, adding some lines and points, changing size of elements...). Can anyone help me or give some links?  This is my .geo file:<br><br>// Gmsh project created on Wed Mar 14 18:32:44 2018<br>SetFactory("OpenCASCADE");<br>cl__1 = 1e+22;<br>Point(17) = {0, 0, 0, cl__1};<br>Point(18) = {1200, 0, 0, cl__1};<br>Point(19) = {1200, 0, 200, cl__1};<br>Point(20) = {0, 0, 200, cl__1};<br>Point(21) = {250, 0, 140, cl__1};<br>Point(22) = {350, 0, 140, cl__1};<br>Point(23) = {350, 0, 60, cl__1};<br>Point(24) = {250, 0, 60, cl__1};<br>Point(25) = {800, 0, 70, cl__1};<br>Point(26) = {1000, 0, 70, cl__1};<br>Point(27) = {800, 0, 130, cl__1};<br>Point(28) = {1000, 0, 130, cl__1};<br>p17 = newp;<br>Point(p17 + 1) = {60.00000000000006, 0, 0};<br>Point(p17 + 2) = {120, 0, 0};<br>Point(p17 + 3) = {180, 0, 0};<br>Point(p17 + 4) = {239.9999999999999, 0, 0};<br>Point(p17 + 5) = {300, 0, 0};<br>Point(p17 + 6) = {360.0000000000001, 0, 0};<br>Point(p17 + 7) = {420, 0, 0};<br>Point(p17 + 8) = {480, 0, 0};<br>Point(p17 + 9) = {540, 0, 0};<br>Point(p17 + 10) = {600, 0, 0};<br>Point(p17 + 11) = {660, 0, 0};<br>Point(p17 + 12) = {720, 0, 0};<br>Point(p17 + 13) = {780, 0, 0};<br>Point(p17 + 14) = {840, 0, 0};<br>Point(p17 + 15) = {900, 0, 0};<br>Point(p17 + 16) = {960, 0, 0};<br>Point(p17 + 17) = {1020, 0, 0};<br>Point(p17 + 18) = {1080, 0, 0};<br>Point(p17 + 19) = {1140, 0, 0};<br>Spline(17) = {17, p17 + 1, p17 + 2, p17 + 3, p17 + 4, p17 + 5, p17 + 6, p17 + 7, p17 + 8, p17 + 9, p17 + 10, p17 + 11, p17 + 12, p17 + 13, p17 + 14, p17 + 15, p17 + 16, p17 + 17, p17 + 18, p17 + 19, 18};<br>p18 = newp;<br>Point(p18 + 1) = {1200, 0, 10.00000000000001};<br>Point(p18 + 2) = {1200, 0, 20};<br>Point(p18 + 3) = {1200, 0, 30};<br>Point(p18 + 4) = {1200, 0, 39.99999999999999};<br>Point(p18 + 5) = {1200, 0, 50};<br>Point(p18 + 6) = {1200, 0, 60.00000000000001};<br>Point(p18 + 7) = {1200, 0, 70};<br>Point(p18 + 8) = {1200, 0, 80};<br>Point(p18 + 9) = {1200, 0, 89.99999999999999};<br>Point(p18 + 10) = {1200, 0, 100};<br>Point(p18 + 11) = {1200, 0, 110};<br>Point(p18 + 12) = {1200, 0, 120};<br>Point(p18 + 13) = {1200, 0, 130};<br>Point(p18 + 14) = {1200, 0, 140};<br>Point(p18 + 15) = {1200, 0, 150};<br>Point(p18 + 16) = {1200, 0, 160};<br>Point(p18 + 17) = {1200, 0, 170};<br>Point(p18 + 18) = {1200, 0, 180};<br>Point(p18 + 19) = {1200, 0, 190};<br>Spline(18) = {18, p18 + 1, p18 + 2, p18 + 3, p18 + 4, p18 + 5, p18 + 6, p18 + 7, p18 + 8, p18 + 9, p18 + 10, p18 + 11, p18 + 12, p18 + 13, p18 + 14, p18 + 15, p18 + 16, p18 + 17, p18 + 18, p18 + 19, 19};<br>p19 = newp;<br>Point(p19 + 1) = {1140, 0, 200};<br>Point(p19 + 2) = {1080, 0, 200};<br>Point(p19 + 3) = {1020, 0, 200};<br>Point(p19 + 4) = {960, 0, 200};<br>Point(p19 + 5) = {900, 0, 200};<br>Point(p19 + 6) = {840, 0, 200};<br>Point(p19 + 7) = {780, 0, 200};<br>Point(p19 + 8) = {720, 0, 200};<br>Point(p19 + 9) = {660, 0, 200};<br>Point(p19 + 10) = {600, 0, 200};<br>Point(p19 + 11) = {540, 0, 200};<br>Point(p19 + 12) = {480, 0, 200};<br>Point(p19 + 13) = {420, 0, 200};<br>Point(p19 + 14) = {360, 0, 200};<br>Point(p19 + 15) = {300, 0, 200};<br>Point(p19 + 16) = {240, 0, 200};<br>Point(p19 + 17) = {180, 0, 200};<br>Point(p19 + 18) = {120, 0, 200};<br>Point(p19 + 19) = {60, 0, 200};<br>Spline(19) = {19, p19 + 1, p19 + 2, p19 + 3, p19 + 4, p19 + 5, p19 + 6, p19 + 7, p19 + 8, p19 + 9, p19 + 10, p19 + 11, p19 + 12, p19 + 13, p19 + 14, p19 + 15, p19 + 16, p19 + 17, p19 + 18, p19 + 19, 20};<br>p20 = newp;<br>Point(p20 + 1) = {0, 0, 190};<br>Point(p20 + 2) = {0, 0, 180};<br>Point(p20 + 3) = {0, 0, 170};<br>Point(p20 + 4) = {0, 0, 160};<br>Point(p20 + 5) = {0, 0, 150};<br>Point(p20 + 6) = {0, 0, 140};<br>Point(p20 + 7) = {0, 0, 130};<br>Point(p20 + 8) = {0, 0, 120};<br>Point(p20 + 9) = {0, 0, 110};<br>Point(p20 + 10) = {0, 0, 100};<br>Point(p20 + 11) = {0, 0, 89.99999999999999};<br>Point(p20 + 12) = {0, 0, 80};<br>Point(p20 + 13) = {0, 0, 70};<br>Point(p20 + 14) = {0, 0, 60};<br>Point(p20 + 15) = {0, 0, 50};<br>Point(p20 + 16) = {0, 0, 40};<br>Point(p20 + 17) = {0, 0, 30};<br>Point(p20 + 18) = {0, 0, 20};<br>Point(p20 + 19) = {0, 0, 10};<br>Spline(20) = {20, p20 + 1, p20 + 2, p20 + 3, p20 + 4, p20 + 5, p20 + 6, p20 + 7, p20 + 8, p20 + 9, p20 + 10, p20 + 11, p20 + 12, p20 + 13, p20 + 14, p20 + 15, p20 + 16, p20 + 17, p20 + 18, p20 + 19, 17};<br>p21 = newp;<br>Point(p21 + 1) = {255, 0, 140};<br>Point(p21 + 2) = {260, 0, 140};<br>Point(p21 + 3) = {265, 0, 140};<br>Point(p21 + 4) = {270, 0, 140};<br>Point(p21 + 5) = {275, 0, 140};<br>Point(p21 + 6) = {280, 0, 140};<br>Point(p21 + 7) = {285, 0, 140};<br>Point(p21 + 8) = {290, 0, 140};<br>Point(p21 + 9) = {295, 0, 140};<br>Point(p21 + 10) = {300, 0, 140};<br>Point(p21 + 11) = {305, 0, 140};<br>Point(p21 + 12) = {310, 0, 140};<br>Point(p21 + 13) = {315, 0, 140};<br>Point(p21 + 14) = {320, 0, 140};<br>Point(p21 + 15) = {325, 0, 140};<br>Point(p21 + 16) = {330, 0, 140};<br>Point(p21 + 17) = {335, 0, 140};<br>Point(p21 + 18) = {340, 0, 140};<br>Point(p21 + 19) = {345, 0, 140};<br>Spline(21) = {21, p21 + 1, p21 + 2, p21 + 3, p21 + 4, p21 + 5, p21 + 6, p21 + 7, p21 + 8, p21 + 9, p21 + 10, p21 + 11, p21 + 12, p21 + 13, p21 + 14, p21 + 15, p21 + 16, p21 + 17, p21 + 18, p21 + 19, 22};<br>p22 = newp;<br>Point(p22 + 1) = {355.7967803356943, 0, 60.42226378331617};<br>Point(p22 + 2) = {361.7524786974607, 0, 61.76547344877589};<br>Point(p22 + 3) = {367.6506983860463, 0, 64.10497833310458};<br>Point(p22 + 4) = {373.244344360205, 0, 67.44696338861091};<br>Point(p22 + 5) = {378.2842720655851, 0, 71.71573352090972};<br>Point(p22 + 6) = {382.5530419378688, 0, 76.75566096627479};<br>Point(p22 + 7) = {385.8950262341719, 0, 82.34930618123006};<br>Point(p22 + 8) = {388.2345299185913, 0, 88.2475246699065};<br>Point(p22 + 9) = {389.5777380288357, 0, 94.20322147645763};<br>Point(p22 + 10) = {390, 0, 100};<br>Point(p22 + 11) = {389.5777380288357, 0, 105.7967785235425};<br>Point(p22 + 12) = {388.2345299185914, 0, 111.7524753300936};<br>Point(p22 + 13) = {385.8950262341718, 0, 117.6506938187701};<br>Point(p22 + 14) = {382.5530419378689, 0, 123.2443390337252};<br>Point(p22 + 15) = {378.284272065585, 0, 128.2842664790903};<br>Point(p22 + 16) = {373.244344360205, 0, 132.5530366113891};<br>Point(p22 + 17) = {367.6506983860463, 0, 135.8950216668954};<br>Point(p22 + 18) = {361.7524786974607, 0, 138.2345265512241};<br>Point(p22 + 19) = {355.7967803356943, 0, 139.5777362166838};<br>Spline(22) = {23, p22 + 1, p22 + 2, p22 + 3, p22 + 4, p22 + 5, p22 + 6, p22 + 7, p22 + 8, p22 + 9, p22 + 10, p22 + 11, p22 + 12, p22 + 13, p22 + 14, p22 + 15, p22 + 16, p22 + 17, p22 + 18, p22 + 19, 22};<br>p23 = newp;<br>Point(p23 + 1) = {255, 0, 60};<br>Point(p23 + 2) = {260, 0, 60};<br>Point(p23 + 3) = {265, 0, 60};<br>Point(p23 + 4) = {270, 0, 60};<br>Point(p23 + 5) = {275, 0, 60};<br>Point(p23 + 6) = {280, 0, 60};<br>Point(p23 + 7) = {285, 0, 60};<br>Point(p23 + 8) = {290, 0, 60};<br>Point(p23 + 9) = {295, 0, 60};<br>Point(p23 + 10) = {300, 0, 60};<br>Point(p23 + 11) = {305, 0, 60};<br>Point(p23 + 12) = {310, 0, 60};<br>Point(p23 + 13) = {315, 0, 60};<br>Point(p23 + 14) = {320, 0, 60};<br>Point(p23 + 15) = {325, 0, 60};<br>Point(p23 + 16) = {330, 0, 60};<br>Point(p23 + 17) = {335, 0, 60};<br>Point(p23 + 18) = {340, 0, 60};<br>Point(p23 + 19) = {345, 0, 60};<br>Spline(23) = {24, p23 + 1, p23 + 2, p23 + 3, p23 + 4, p23 + 5, p23 + 6, p23 + 7, p23 + 8, p23 + 9, p23 + 10, p23 + 11, p23 + 12, p23 + 13, p23 + 14, p23 + 15, p23 + 16, p23 + 17, p23 + 18, p23 + 19, 23};<br>p24 = newp;<br>Point(p24 + 1) = {244.20321895994, 0, 139.5777361135183};<br>Point(p24 + 2) = {238.2475198800425, 0, 138.2345261139787};<br>Point(p24 + 3) = {232.3492995438666, 0, 135.8950206489691};<br>Point(p24 + 4) = {226.7556530854728, 0, 132.5530347874873};<br>Point(p24 + 5) = {221.7157251411674, 0, 128.2842636858425};<br>Point(p24 + 6) = {217.4469553262792, 0, 123.2443352022421};<br>Point(p24 + 7) = {214.1049713906681, 0, 117.6506889885676};<br>Point(p24 + 8) = {211.7654683324287, 0, 111.7524696401071};<br>Point(p24 + 9) = {210.4222610426765, 0, 105.7967721842533};<br>Point(p24 + 10) = {210.0000000000006, 0, 99.99999325650442};<br>Point(p24 + 11) = {210.422262909218, 0, 94.20321409978459};<br>Point(p24 + 12) = {211.7654719047016, 0, 88.24751680155035};<br>Point(p24 + 13) = {214.1049763753455, 0, 82.3492980596947};<br>Point(p24 + 14) = {217.446961293809, 0, 76.75565292392081};<br>Point(p24 + 15) = {221.7157315457855, 0, 71.71572595929101};<br>Point(p24 + 16) = {226.755659309725, 0, 67.4469567340559};<br>Point(p24 + 17) = {232.3493049599832, 0, 64.10497298225943};<br>Point(p24 + 18) = {238.247523914033, 0, 61.76546971847601};<br>Point(p24 + 19) = {244.203221143439, 0, 60.42226187756398};<br>Spline(24) = {21, p24 + 1, p24 + 2, p24 + 3, p24 + 4, p24 + 5, p24 + 6, p24 + 7, p24 + 8, p24 + 9, p24 + 10, p24 + 11, p24 + 12, p24 + 13, p24 + 14, p24 + 15, p24 + 16, p24 + 17, p24 + 18, p24 + 19, 24};<br>p25 = newp;<br>Point(p25 + 1) = {810, 0, 70};<br>Point(p25 + 2) = {820, 0, 70};<br>Point(p25 + 3) = {830, 0, 70};<br>Point(p25 + 4) = {840, 0, 70};<br>Point(p25 + 5) = {850, 0, 70};<br>Point(p25 + 6) = {860, 0, 70};<br>Point(p25 + 7) = {870, 0, 70};<br>Point(p25 + 8) = {880, 0, 70};<br>Point(p25 + 9) = {890, 0, 70};<br>Point(p25 + 10) = {900, 0, 70};<br>Point(p25 + 11) = {910, 0, 70};<br>Point(p25 + 12) = {920, 0, 70};<br>Point(p25 + 13) = {930, 0, 70};<br>Point(p25 + 14) = {940, 0, 70};<br>Point(p25 + 15) = {950, 0, 70};<br>Point(p25 + 16) = {960, 0, 70};<br>Point(p25 + 17) = {970, 0, 70};<br>Point(p25 + 18) = {980, 0, 70};<br>Point(p25 + 19) = {990, 0, 70};<br>Spline(25) = {25, p25 + 1, p25 + 2, p25 + 3, p25 + 4, p25 + 5, p25 + 6, p25 + 7, p25 + 8, p25 + 9, p25 + 10, p25 + 11, p25 + 12, p25 + 13, p25 + 14, p25 + 15, p25 + 16, p25 + 17, p25 + 18, p25 + 19, 26};<br>p26 = newp;<br>Point(p26 + 1) = {795.6524153293051, 0, 129.683303514453};<br>Point(p26 + 2) = {791.1856418686525, 0, 128.6758973832092};<br>Point(p26 + 3) = {786.7619771674225, 0, 126.9212694998612};<br>Point(p26 + 4) = {782.5667425665528, 0, 124.4147810815324};<br>Point(p26 + 5) = {778.7867965644039, 0, 121.2132034355966};<br>Point(p26 + 6) = {775.5852189184677, 0, 117.4332574334478};<br>Point(p26 + 7) = {773.0787305001388, 0, 113.2380228325778};<br>Point(p26 + 8) = {771.324102616791, 0, 108.814358131348};<br>Point(p26 + 9) = {770.3166964855469, 0, 104.3475846706953};<br>Point(p26 + 10) = {770.0000000000001, 0, 100.0000000000004};<br>Point(p26 + 11) = {770.316696485547, 0, 95.65241532930558};<br>Point(p26 + 12) = {771.3241026167907, 0, 91.18564186865277};<br>Point(p26 + 13) = {773.0787305001385, 0, 86.76197716742278};<br>Point(p26 + 14) = {775.5852189184675, 0, 82.56674256655269};<br>Point(p26 + 15) = {778.7867965644034, 0, 78.78679656440376};<br>Point(p26 + 16) = {782.5667425665522, 0, 75.58521891846787};<br>Point(p26 + 17) = {786.7619771674224, 0, 73.07873050013889};<br>Point(p26 + 18) = {791.1856418686523, 0, 71.3241026167908};<br>Point(p26 + 19) = {795.652415329305, 0, 70.31669648554697};<br>Spline(26) = {27, p26 + 1, p26 + 2, p26 + 3, p26 + 4, p26 + 5, p26 + 6, p26 + 7, p26 + 8, p26 + 9, p26 + 10, p26 + 11, p26 + 12, p26 + 13, p26 + 14, p26 + 15, p26 + 16, p26 + 17, p26 + 18, p26 + 19, 25};<br>p27 = newp;<br>Point(p27 + 1) = {810, 0, 130};<br>Point(p27 + 2) = {820, 0, 130};<br>Point(p27 + 3) = {830, 0, 130};<br>Point(p27 + 4) = {840, 0, 130};<br>Point(p27 + 5) = {850, 0, 130};<br>Point(p27 + 6) = {860, 0, 130};<br>Point(p27 + 7) = {870, 0, 130};<br>Point(p27 + 8) = {880, 0, 130};<br>Point(p27 + 9) = {890, 0, 130};<br>Point(p27 + 10) = {900, 0, 130};<br>Point(p27 + 11) = {910, 0, 130};<br>Point(p27 + 12) = {920, 0, 130};<br>Point(p27 + 13) = {930, 0, 130};<br>Point(p27 + 14) = {940, 0, 130};<br>Point(p27 + 15) = {950, 0, 130};<br>Point(p27 + 16) = {960, 0, 130};<br>Point(p27 + 17) = {970, 0, 130};<br>Point(p27 + 18) = {980, 0, 130};<br>Point(p27 + 19) = {990, 0, 130};<br>Spline(27) = {27, p27 + 1, p27 + 2, p27 + 3, p27 + 4, p27 + 5, p27 + 6, p27 + 7, p27 + 8, p27 + 9, p27 + 10, p27 + 11, p27 + 12, p27 + 13, p27 + 14, p27 + 15, p27 + 16, p27 + 17, p27 + 18, p27 + 19, 28};<br>p28 = newp;<br>Point(p28 + 1) = {1004.347585780045, 0, 70.31669791486128};<br>Point(p28 + 2) = {1008.814360089968, 0, 71.32410541451598};<br>Point(p28 + 3) = {1013.2380253421, 0, 73.07873451327315};<br>Point(p28 + 4) = {1017.433260185896, 0, 75.58522390938454};<br>Point(p28 + 5) = {1021.213206144124, 0, 78.78680223561817};<br>Point(p28 + 6) = {1024.414783505291, 0, 82.56674859831843};<br>Point(p28 + 7) = {1026.921271456999, 0, 86.76198325857436};<br>Point(p28 + 8) = {1028.675898750678, 0, 91.18564776991978};<br>Point(p28 + 9) = {1029.683304217993, 0, 95.6524208618101};<br>Point(p28 + 10) = {1030, 0, 100.0000050576218};<br>Point(p28 + 11) = {1029.683302818087, 0, 104.3475894251616};<br>Point(p28 + 12) = {1028.675896071474, 0, 108.8143623988373};<br>Point(p28 + 13) = {1026.921267718491, 0, 113.2380264552291};<br>Point(p28 + 14) = {1024.414779029643, 0, 117.4332603070595};<br>Point(p28 + 15) = {1021.213201340661, 0, 121.2132055305318};<br>Point(p28 + 16) = {1017.433255517706, 0, 124.4147824494581};<br>Point(p28 + 17) = {1013.238021280012, 0, 126.9212702633054};<br>Point(p28 + 18) = {1008.814357064475, 0, 128.675897711143};<br>Point(p28 + 19) = {1004.347584142421, 0, 129.683303591827};<br>Spline(28) = {26, p28 + 1, p28 + 2, p28 + 3, p28 + 4, p28 + 5, p28 + 6, p28 + 7, p28 + 8, p28 + 9, p28 + 10, p28 + 11, p28 + 12, p28 + 13, p28 + 14, p28 + 15, p28 + 16, p28 + 17, p28 + 18, p28 + 19, 28};<br><br>Line Loop(5) = {17, 18, 19, 20};<br>Line Loop(19) ={25,28,-27,26};<br>Line Loop(20)={21,-22,-23,-24};<br>Plane Surface(5) = {5,19,20};<br><br><br></div>Thank you,<br></div>Tadej<br></div>