[Gmsh] Abandoning transform and getting points/lines/surfaces instead

Paweł Maciakowski Pawel.Maciakowski at ctm.gdynia.pl
Mon Jun 1 07:53:13 CEST 2015


Thank you David, that is exactly what I was looking for!

Best Regards,
PM

W dniu 2015-05-28 o 11:22, David Colignon pisze:
>
> On 27/05/15 08:23, Paweł Maciakowski wrote:
>> Hi all,
>>
>> Is there a way to abandon duplicate/extrude statements but keep 
>> points/lines/surfaces?
>>
>> For example:
>> You extrude a line and get auto-generated numbering for new points, 
>> line and surface. I would like to give up on the possibility
>> of changing extrude parameters and have access to the points and 
>> lines themselves.
>>
>> Start with that:
>> Line(3) = {1, 2};
>> Extrude {0, 0, 1}{
>>      Line{3};
>> }
>>
>> and instead get this:
>> Line(3) = {1,2};
>> Point(4) = {x1, y1, z1+1};
>> Point(5) = {x2, y2, z2+1};
>> Line(6) = {4,5};
>> Line(7) = {1,4};
>> Line(8) = {2,5};
>> Line Loop(9) = {3,8, -6, -7};
>> Plane Surface(10) = {9};
>>
>>
>> Is that possible?
>
> Hi Paweł,
>
> yes, it is possible, just use the "-0" option and gmsh will output an 
> "unrolled" version of your .geo file
>
> Regards,
>
> Dave
>
> ace35:~ >  gmsh  ./gmsh/tutorial/t3.geo  -0
>
> Info    : Running '/Applications/Gmsh.app/Contents/MacOS/gmsh 
> gmsh/tutorial/t3.geo -0' [Gmsh 2.9.4, 1 node, max. 1 thread]
> Info    : Started on Thu May 28 11:16:11 2015
> Info    : Reading 'gmsh/tutorial/t3.geo'...
> Info    : Reading 'gmsh/tutorial/t1.geo'...
> Info    : Done reading 'gmsh/tutorial/t1.geo'
> Info    : Done reading 'gmsh/tutorial/t3.geo'
> Info    : Writing 'gmsh/tutorial/t3.geo_unrolled'...
> #####################################################
>
> Info    : Done writing 'gmsh/tutorial/t3.geo_unrolled'
> Info    : Stopped on Thu May 28 11:16:11 2015
>
> ace35:~ >  more gmsh/tutorial/t3.geo_unrolled
>
> cl__1 = 0.01;
> Point(1) = {0, 0, 0, 0.01};
> Point(2) = {0.1, 0, 0, 0.01};
> Point(3) = {0.1, 0.3, 0, 0.01};
> Point(4) = {0, 0.3, 0, 0.01};
> Point(5) = {0, 0.3, 0.1, 0.01};
> Point(6) = {0, 0, 0.1, 0.01};
> Point(10) = {0.1, 0, 0.1, 0.01};
> Point(14) = {0.1, 0.3, 0.1, 0.01};
> Point(15) = {-0.1, 0.3, 0.2, 0.01};
> Point(16) = {-0.1, 0, 0.2, 0.01};
> Point(20) = {-0.09999999999999999, 0, 0.3, 0.01};
> Point(24) = {-0.09999999999999999, 0.3, 0.3, 0.01};
> Point(36) = {-0.1, 0.3, 0.1, 0.01};
> Point(38) = {-0.1, 0, 0.1, 0.01};
> Point(39) = {-0.3, 0.2, 0.4, 0.01};
> Point(40) = {-0.3, 0.2, 0.1, 0.01};
> Point(44) = {-0.3, 0.09999999999999995, 0.1, 0.01};
> Point(48) = {-0.3, 0.09999999999999995, 0.4, 0.01};
> Point(59) = {-0.14, 0.3081093271630204, 0.2487997233414845, 0.01};
> Point(60) = {-0.18, 0.3007418117708657, 0.2977169381251236, 0.01};
> Point(61) = {-0.22, 0.2786186375626182, 0.3419632865416184, 0.01};
> Point(62) = {-0.26, 0.2439053749709997, 0.3772076277255256, 0.01};
> Point(64) = {-0.14, 0.02279237227447434, 0.1560946250290002, 0.01};
> Point(65) = {-0.18, 0.05803671345838153, 0.1213813624373817, 0.01};
> Point(66) = {-0.22, 0.1022830618748764, 0.09925818822913426, 0.01};
> Point(67) = {-0.26, 0.1512002766585155, 0.09189067283697963, 0.01};
> Point(78) = {-0.14, -0.008109327163020402, 0.2512002766585156, 0.01};
> Point(79) = {-0.18, -0.000741811770865769, 0.2022830618748765, 0.01};
> Point(80) = {-0.22, 0.02138136243738165, 0.1580367134583816, 0.01};
> Point(81) = {-0.26, 0.05609462502900019, 0.1227923722744744, 0.01};
> Point(92) = {-0.14, 0.2772076277255257, 0.3439053749709998, 0.01};
> Point(93) = {-0.18, 0.2419632865416184, 0.3786186375626184, 0.01};
> Point(94) = {-0.22, 0.1977169381251236, 0.4007418117708658, 0.01};
> Point(95) = {-0.26, 0.1487997233414844, 0.4081093271630204, 0.01};
> Line(1) = {1, 2};
> Line(2) = {3, 2};
> Line(3) = {3, 4};
> Line(4) = {4, 1};
> Line(102) = {5, 6};
> Line(103) = {6, 10};
> Line(104) = {10, 14};
> Line(105) = {14, 5};
> Line(107) = {4, 5};
> Line(108) = {1, 6};
> Line(112) = {2, 10};
> Line(116) = {3, 14};
> Line(124) = {15, 16};
> Line(125) = {16, 20};
> Line(126) = {20, 24};
> Line(127) = {24, 15};
> Circle(129) = {5, 36, 15};
> Circle(130) = {6, 38, 16};
> Circle(134) = {10, 38, 20};
> Circle(138) = {14, 36, 24};
> Line(146) = {39, 40};
> Line(147) = {40, 44};
> Line(148) = {44, 48};
> Line(149) = {48, 39};
> Spline(151) = {15, 59, 60, 61, 62, 39};
> Spline(152) = {16, 64, 65, 66, 67, 40};
> Spline(156) = {20, 78, 79, 80, 81, 44};
> Spline(160) = {24, 92, 93, 94, 95, 48};
> Line Loop(6) = {4, 1, -2, 3};
> Plane Surface(6) = {6};
> Line Loop(109) = {4, 108, -102, -107};
> Ruled Surface(109) = {109};
> Line Loop(113) = {1, 112, -103, -108};
> Ruled Surface(113) = {113};
> Line Loop(117) = {-2, 116, -104, -112};
> Ruled Surface(117) = {117};
> Line Loop(121) = {3, 107, -105, -116};
> Ruled Surface(121) = {121};
> Line Loop(122) = {102, 103, 104, 105};
> Plane Surface(122) = {122};
> Line Loop(131) = {102, 130, -124, -129};
> Ruled Surface(131) = {131};
> Line Loop(135) = {103, 134, -125, -130};
> Ruled Surface(135) = {135};
> Line Loop(139) = {104, 138, -126, -134};
> Ruled Surface(139) = {139};
> Line Loop(143) = {105, 129, -127, -138};
> Ruled Surface(143) = {143};
> Line Loop(144) = {124, 125, 126, 127};
> Plane Surface(144) = {144};
> Line Loop(153) = {124, 152, -146, -151};
> Ruled Surface(153) = {153};
> Line Loop(157) = {125, 156, -147, -152};
> Ruled Surface(157) = {157};
> Line Loop(161) = {126, 160, -148, -156};
> Ruled Surface(161) = {161};
> Line Loop(165) = {127, 151, -149, -160};
> Ruled Surface(165) = {165};
> Line Loop(166) = {146, 147, 148, 149};
> Plane Surface(166) = {166};
> Surface Loop(1) = {6, 122, 109, 113, 117, 121};
> Volume(1) = {1};
> Surface Loop(2) = {122, 144, 131, 135, 139, 143};
> Volume(2) = {2};
> Surface Loop(3) = {144, 166, 153, 157, 161, 165};
> Volume(3) = {3};
> Physical Point(1) = {1, 2};
> MyLine = 99;
> Physical Line(MyLine) = {1, 2, 4};
> Physical Surface("My fancy surface label") = {6};
> Physical Volume(101) = {1, 2, 3};
>
>
>