CFD Online Discussion Forums

CFD Online Discussion Forums (
-   ANSYS Meshing & Geometry (
-   -   [ANSYS Meshing] Boolean Subtraction of 3D Curves with Circular Cross-Section from Cube? (

ANT July 10, 2012 16:07

Boolean Subtraction of 3D Curves with Circular Cross-Section from Cube?
1 Attachment(s)
Dear forum,

I'm a long time reader and first time poster -- thanks for being such a professional and knowledgeable place to learn CFD.

For a fluid (liquid) flow simulation, I have to model a generic cubic region, and then see the flow of fluids from one side of the cube to the other, around some 3D circular fibers. The example geometry is in this screenshot (and also attached to post):

In this geometry, 3D curves have been created from a coordinate file, and the Line Bodies that result have been assigned a circular cross-section. The fluid (the cube itself) inlet is on one side of the cube, and the outlet on the opposite side. My problem is that I don't know how to subtract the fiber geometry (3D Curves/Line Bodies with random orientation -- tough to quickly sweep) from the cube geometry! I generate the fibers in a script I wrote that outputs text-file coordinates, and then I import the coordinate file into DesignModeler as a 3D Curve.

If I sweep the 3D Curves with a sketch of a circle then I can simply use the "subtract material" option to achieve this, but this becomes incredibly tedious when I'm using the script to generate several variations of this geometry (with more fibers in each as well) and don't want to have to position the sketch planes individually for each 3D Curve, at the first vertex and with the correct tangential orientation. Is there an option to automatically move the sweep profile to the first vertex, and *also* to automatically align the sketch to the Line body's tangent? Unless the sketch plane is not only positioned but also rotated precisely to match the origin of the 3D Curve, the sweep is not performed correctly.

Thank you all very, very much in advance for your help, I very much appreciate it.

All the best,


hamid_rtb July 16, 2012 13:59

look here:

ANT July 19, 2012 09:26


Originally Posted by hamid_rtb (Post 371700)

This is not relevant, since my curves are not intended to be planar (think of my curve as the path of a roller coaster, for example, along which I wanted to sweep the profile/cross-section of the track. I wouldn't project the path of the roller coaster onto a plane and then extrude that projected profile, since it would give me quite the undesired result!).

Instead, I received a great workaround from ANSYS Support (these guys are fantastic), which I'll outline below in case anybody else stumbles upon this in a search:
  1. Generate the curve using "3D Curve" and a properly formatted coordinate file.
  2. Split the resulting line body using edge split by going to Concept > Split Edges. In the operation details, select the line body of interest for the "Edges" selection, set Definition to Fractional, and set "FD1, Fraction" to "0.0001." This will split the line body extremely close to the origin.
  3. Create a plane using the "New Plane" tool with type set to "Point and Normal." Set the "Base Point" to be the vertex at the origin of the main line body, and then for the "Normal Defined By" option, select the extremely small line that was generated by the Edge Split operation. This will generate a plane that is normal (technically only "approximately" normal, that is, due to the finite small-edge length, but nonetheless so close to normal that the error is negligible) to the tangent of the line body at its origin.
  4. Create a sketch on this plane and draw the desired cross-section.
  5. Sweep the cross section over the line body using a Sweep operation.

And voila! Again, full credit goes to the ANSYS support team, but hopefully this helps someone else. I thought it was quite an ingenious solution that never crossed my mind.

woo September 11, 2012 18:03

Thanks for this extremely helpful thread, but I have one issue:

I can follow this to the very last step, but Ansys DM will not allow me to sweep along the line body created by splitting the edges of the 3D curve. I must have messed something up, or I didn't catch something.

I try to select the linebody, but it will not accept it as the path for the sweep.

Any ideas?

Thanks again,

hamid_rtb September 12, 2012 02:07

Dear Travis
you can first define your imported 3d curve as a Name selection, then sweep the named lines ( namely select the name selection not select the geometry)

woo September 12, 2012 12:19


Thanks very much for the info, it's got the job done! I'm migrating from Gambit and fluent, so named sections in Design Modeler aren't completely intuitive. Thanks to the search function and this thread, I'm well on my way to some interesting simulations!

Thanks again,

All times are GMT -4. The time now is 06:17.