Home
Reply
Contributor
bryn
Posts: 20

Define points on faces, which should be included in the faceted triangle mesh

Hi

 

I would like to be able to define "control points", which are included in the triangle mesh generated by the faceter.

How could I do this using ACIS api?

 

Maybe there is an operation like imprinting a vertex on a body ...?

 

Any ideas would be welcome!

 

Thanks

Bryn

Spatial Employee
asdf
Posts: 93

Re: Define points on faces, which should be included in the faceted triangle mesh

Hi Bryn

 

You are correct in thinking that an embedded vertex will force the faceter to put a mesh node where the vertex is.  The faceter has been doing this since R18.  I just had a look at our tests to see how we embed vertices in body's.  Oddly, we don't seem to have an api to make a body which just consists of one vertex.  So the following workflow is a little convoluted, but it seems to get the desired results :

 

1. Create a wire body which intersects the boundary of the solid where you want the embedded vertex to be.  api_make_wire takes an array of SPAposition and creates a wire that connects successive points with lines.

 

2.  Call api_imprint to imprint the wire onto the solid.

 

3.  Delete the wire.

 

hopefully this helps.

 

Eric 

Spatial Employee
asdf
Posts: 93

Re: Define points on faces, which should be included in the faceted triangle mesh

One slight correction: it is ok for the wire body to intersect the body at more than just the point where you want the embedded vertex.  In our tests, we do a ray fire towards the body, then make a short line segment along the pick ray.  The line segment we make starts outside the body, goes through the pick point, and a little way into the body.  

 

Eric

Contributor
bryn
Posts: 20

Re: Define points on faces, which should be included in the faceted triangle mesh

Hi Eric,

 

Thanks for your answer? How do you do the ray intersection, i.e. which api functions do you use to create a short segment/wire which intersects at a given position?

 

Thanks

Bryn

Spatial Employee
asdf
Posts: 93

Re: Define points on faces, which should be included in the faceted triangle mesh

There are several APIs for ray firing.  They can be found in intrapi.hxx.  The names are api_ray_test_ents and api_ray_test_body.  In our tests, we get the eye position and target position in 3d space from the hoops view (but I think it can be calculated without too much difficulty with other graphics systems, e.g., opengl, directX, etc.).  We use api_ray_test_ents with the eye position as the start of the ray, and the ray direction is the vector from the eye position to the target position.

 

The graphics stuff is not strictly necessary to get the embedded vertices, it is just a way to graphically pick points where we are going to embed them.

 

Eric