🎉Community Raffle - Win $25

An exclusive raffle opportunity for active members like you! Complete your profile, answer questions and get your first accepted badge to enter the raffle.
Join and Win

Line and surface numbering

User: "Altair Forum User"
Altair Employee
Updated by Altair Forum User

Hello,

 

Thank you in advance for reading this and for your help.

 

I am currently working on a project where I create a geometry and eventually mesh this geometry in HyperMesh. The key here is, that I use Matlab to generate my TCL/HM code (since the working force here is more aquainted with Matlab than with the TCL code. This code uses certain input parameters and generate information that can be translated to HyperMesh.

 

Now I am at the point where the whole geometry creation using HM/TCL goes perfectly fine, even after some setbacks where I had to cleverly write the program due to the lack of control on the node, line and surface numbering. I'm stuck at the point where I create holes in my geometry, where certain other parts can connect to.

 

The geometry consists of several suppressed edges. These edges do not influence the shape of the geometry, like edges that will change the angle of the geometry will; these suppressed edges just lie in the same plane but are used to create the geometry. The surfaces are all numbered in the sequence of generation, so the first generated surface has ID 1, second has ID 2, etc. I create holes by creating a node at the location where the hole centre should be, create a circle with a given radius around it, trim the existing surface with the line and eventually deleting this circular surface, creating a hole. Note again, this is all done by programming, not by using the GUI. Whenever these circles, hence the trimming, do not intersect with a suppressed edge, everything goes fine. It creates a nice hole in my surface, which has that certain ID. Whenever said circle intersects with a suppressed edge, things go wrong.

 

Say there is a piece of the circle that crosses that suppressed edge. What I would want, is that the surface created by trimming would simply get the newest maximum surface ID. What happens instead, is that the surface gets the ID of the one it is partly intersecting. You must understand, that from a programming point of view, this gives me no control whatsoever of the surface IDs that come after, hence my program fails there.

 

Now, I have thought of ideas on how to counter this problem. For example, I could create a component for every generated surface, and assign it a name, giving me control of the names and not having to look at the IDs of the surfaces anymore. This is not such elegant solution. Instead, I'd like to use different means to solve the problem, for example, by using the ID of the last created surface, rather than the max surface ID.

 

My question to you is, what would you do to solve this problem? Would you go for the component solution? Are there query commands that I haven't looked at? Are there macros to solve this problem? Any help is appreciated.

 

I've added some screenshots that hopefully clarify my situation.

 

Thank you for any help that is supplied!

 

Jeffrey

 

This will yield no problems, there is no intersection:

<?xml version="1.0" encoding="UTF-8"?>post-6797-0-59099400-1370875650_thumb.jp

 

This will yield problems, as there is an intersection:

<?xml version="1.0" encoding="UTF-8"?>post-6797-0-94369300-1370875648_thumb.jp

 

Note that in both cases, these edges are suppressed!

Find more posts tagged with