<p dir="ltr">apply the boolean operation in freecad (in the options you can choose "compsolid" mode) and then export to brep<br>
alternatively use the gmsh command "Coherence"<br>
I suggest you search online for further information on compsolids in freecad and thr coherence command in gmsh</p>
<br><div class="gmail_quote"><div dir="ltr">On Fri, Apr 6, 2018, 03:05 Benedikt Oswald <benedikt.oswald@lspr.swiss> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Dear juan, thank you very much for your detailed answer!<br>
<br>
In fact, our workflow definitely requires geometry construction in<br>
<br>
Freecad and then meshing in gmsh; nevertheless, I<br>
<br>
will try to debug the problem along your suggested<br>
<br>
procedure.<br>
<br>
thanks again and greetings, Benedikt<br>
<br>
<br>
<br>
Am 05.04.18 um 17:22 schrieb Juan Sanchez:<br>
> Hello Benedikt,<br>
><br>
> I am using the OpenCascade factory to do the Boolean Operations in<br>
> gmsh.  This is using the pygmsh python module to help automate the<br>
> process:<br>
><br>
> <a href="https://github.com/nschloe/pygmsh/tree/master/pygmsh" rel="noreferrer" target="_blank">https://github.com/nschloe/pygmsh/tree/master/pygmsh</a><br>
><br>
> The boolean operations can then be performed using code like this:<br>
> <a href="https://github.com/nschloe/pygmsh/issues/164" rel="noreferrer" target="_blank">https://github.com/nschloe/pygmsh/issues/164</a><br>
><br>
> import pygmsh<br>
> geom = pygmsh.opencascade.Geometry(<br>
>   characteristic_length_min=0.1,<br>
>   characteristic_length_max=0.1,<br>
>   )<br>
><br>
> def create_vol_volume(geom, h, w, l, x, z, cr, lcar=100):<br>
>   f = 0.5*w<br>
>   y = [-f,-f+cr, +f-cr, +f]<br>
>   z = [z, z + (h-cr), z + h]<br>
>   f = 0.5 * cr<br>
>   points = []<br>
>   points.append(geom.add_point((x, y[0], z[0]), lcar=lcar))<br>
>   points.append(geom.add_point((x, y[0], z[1]), lcar=lcar))<br>
>   points.append(geom.add_point((x, y[1], z[1]), lcar=lcar))<br>
>   points.append(geom.add_point((x, y[1], z[2]), lcar=lcar))<br>
>   points.append(geom.add_point((x, y[2], z[2]), lcar=lcar))<br>
>   points.append(geom.add_point((x, y[2], z[1]), lcar=lcar))<br>
>   points.append(geom.add_point((x, y[3], z[1]), lcar=lcar))<br>
>   points.append(geom.add_point((x, y[3], z[0]), lcar=lcar))<br>
><br>
>   lines = []<br>
>   lines.append(geom.add_line(points[0], points[1]))<br>
>   lines.append(geom.add_circle_arc(points[1], points[2], points[3]))<br>
><br>
>   lines.append(geom.add_line(points[3], points[4]))<br>
>   lines.append(geom.add_circle_arc(points[4], points[5], points[6]))<br>
>   lines.append(geom.add_line(points[6], points[7]))<br>
>   lines.append(geom.add_line(points[7], points[0]))<br>
><br>
>   line_loop=geom.add_line_loop(lines)<br>
>   surface=geom.add_plane_surface(line_loop)<br>
>   vol = geom.extrude(surface, translation_axis=[l, 0, 0])[1]<br>
>   return vol<br>
><br>
><br>
> h_top=40<br>
> corner_radius=2.5<br>
><br>
> z_vol=0<br>
> h_vol=25<br>
> w_vol=10<br>
> l_vol=100<br>
> x_vol=-0.5*l_vol<br>
> vol=create_vol_volume(geom, h=h_vol, w=w_vol, l=l_vol, x=x_vol,<br>
> z=z_vol, cr=corner_radius)<br>
><br>
> z_vol2=0<br>
> l_vol2=50<br>
> t_vol2=1<br>
> w_vol2=w_vol+2*t_vol2<br>
> h_vol2=h_vol+t_vol2<br>
> x_vol2=x_vol + 0.5*(l_vol-l_vol2)<br>
> vol2=create_vol_volume(geom, h=h_vol2, w=w_vol2, l=l_vol2, x=x_vol2,<br>
> z=z_vol2, cr=corner_radius)<br>
> vol2=geom.boolean_difference([vol2], [vol], delete_first=True,<br>
> delete_other=False)<br>
> geom.boolean_fragments([vol2, vol], [], delete_first=True, delete_other=False)<br>
> print(geom.get_code())<br>
><br>
><br>
> And then you can label the volumes as physical volumes and mesh the<br>
> resulting geo file.<br>
><br>
> Regards,<br>
><br>
> Juan<br>
><br>
> On Thu, Apr 5, 2018 at 5:53 AM, Benedikt Oswald<br>
> <benedikt.oswald@lspr.swiss> wrote:<br>
>> Dear gmsh developers<br>
>><br>
>> I recently tried to mesh a geometry (made in Freecad) which consists of<br>
>> two volumes where a smaller volume was<br>
>><br>
>> subtracted in Freecad from the larger one. When I mesh the two volumes I<br>
>> would need tetrahedra<br>
>><br>
>> and that are conformal between the two volumes. Would you have a<br>
>> suggestion on how<br>
>><br>
>> to achieve this ? At the moment, gmsh does not really produce a<br>
>> conformal mesh.<br>
>><br>
>> I attach the files in question.<br>
>><br>
>> Thanks a lot in advance and greetings, Benedikt<br>
>><br>
>><br>
>><br>
>> ----------------------------------------------------------------------------------------------------------------------<br>
>> Dr. sc. techn. Benedikt Oswald - first engineer - LSPR AG - phone +41 43 366 90 74<br>
>> Grubenstrasse 9, CH-8045 Zürich, benedikt.oswald@lspr.swiss<br>
>> ----------------------------------------------------------------------------------------------------------------------<br>
>><br>
>><br>
>> _______________________________________________<br>
>> gmsh mailing list<br>
>> <a href="mailto:gmsh@onelab.info" target="_blank">gmsh@onelab.info</a><br>
>> <a href="http://onelab.info/mailman/listinfo/gmsh" rel="noreferrer" target="_blank">http://onelab.info/mailman/listinfo/gmsh</a><br>
>><br>
> _______________________________________________<br>
> gmsh mailing list<br>
> <a href="mailto:gmsh@onelab.info" target="_blank">gmsh@onelab.info</a><br>
> <a href="http://onelab.info/mailman/listinfo/gmsh" rel="noreferrer" target="_blank">http://onelab.info/mailman/listinfo/gmsh</a><br>
<br>
--<br>
----------------------------------------------------------------------------------------------------------------------<br>
Dr. sc. techn. Benedikt Oswald - first engineer - LSPR AG - phone +41 43 366 90 74<br>
Grubenstrasse 9, CH-8045 Zürich, benedikt.oswald@lspr.swiss<br>
----------------------------------------------------------------------------------------------------------------------<br>
<br>
<br>
_______________________________________________<br>
gmsh mailing list<br>
<a href="mailto:gmsh@onelab.info" target="_blank">gmsh@onelab.info</a><br>
<a href="http://onelab.info/mailman/listinfo/gmsh" rel="noreferrer" target="_blank">http://onelab.info/mailman/listinfo/gmsh</a><br>
</blockquote></div><div dir="ltr">-- <br></div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div>--<br></div>jeremy theler<br></div><a href="http://www.seamplex.com">www.seamplex.com</a><br></div></div>