Get Help

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- Community
- :
- Creo Parametric
- :
- Customization
- :
- How do I get an adjacent surface (surface or part)...

Options

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

07-02-2018
08:31 PM

07-02-2018
08:31 PM

We will try to implement a toolkit that automatically generates pipe support.

I think that the API necessary for implementation is as follows.

1. It is necessary to set the pipe coordinate system.

>> To set the coordinate system based on the starting entrance of the pipe.

2. Obtain the nearest neighbor surface (surface or part) based on the -Y axis of the pipe coordinate system.

>> Measure the distance between the nearest face and the pipe and use it as a filter for the item length to assemble.

3. Move the distance by 300 each based on the total length of the pipe and create support.

Can I use the API according to the above? I also opened a case, but I would like to get a way out of the community members' know-how.

Thank you. Have a fun day

Solved! Go to Solution.

Labels:

1 ACCEPTED SOLUTION

Accepted Solutions

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

07-17-2018
12:46 PM

07-17-2018
12:46 PM

For me is here not clear what you mean with 'pipe"

a.) pipe feature

b.) ProPiping module

c.) or any feature geometry which should implement a pipe geometry?

======

So if you have the option b.) in this case I could not provide a help because I am not expert in this module

For the other options for example to define a direction and to find the next surface in this direction you can try to use the function ProSolidRayIntersectionCompute to find all surfaces in a particular vector direction:

// description

Returns a list of ray intersections with a model. The function computes the intersection points of both the original ray and its "negative" with the geometry of the model. The output array is sorted in order of increasing signed distance. It is the responsibility of the user to find whether the ray is inside or outside the model.

If a ray hits in the middle of a face on the model, the face is selected. If however, the intersection point is very close (within an internally determined selection aperture) to an edge is also selected. Thus, more than one entry of type surface or edge in the *ProSelection* array may correspond to one actual piercing of the model by the ray.

In an assembly, each part is processed separately. Therefore, if two coincident mating faces are hit, these will be recorded as two separate hits, because they are on two distinct faces.

//

This could be, here a suggestion of the first step. But I think your algorithm needs some time to be implemented step by step, and it is not very probable that someone who did not have a similar project will take the time to implement it. Otherwise is an interesting challenge if you have the time for it. 😉

2 REPLIES 2

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

07-17-2018
12:46 PM

07-17-2018
12:46 PM

For me is here not clear what you mean with 'pipe"

a.) pipe feature

b.) ProPiping module

c.) or any feature geometry which should implement a pipe geometry?

======

So if you have the option b.) in this case I could not provide a help because I am not expert in this module

For the other options for example to define a direction and to find the next surface in this direction you can try to use the function ProSolidRayIntersectionCompute to find all surfaces in a particular vector direction:

// description

Returns a list of ray intersections with a model. The function computes the intersection points of both the original ray and its "negative" with the geometry of the model. The output array is sorted in order of increasing signed distance. It is the responsibility of the user to find whether the ray is inside or outside the model.

If a ray hits in the middle of a face on the model, the face is selected. If however, the intersection point is very close (within an internally determined selection aperture) to an edge is also selected. Thus, more than one entry of type surface or edge in the *ProSelection* array may correspond to one actual piercing of the model by the ray.

In an assembly, each part is processed separately. Therefore, if two coincident mating faces are hit, these will be recorded as two separate hits, because they are on two distinct faces.

//

This could be, here a suggestion of the first step. But I think your algorithm needs some time to be implemented step by step, and it is not very probable that someone who did not have a similar project will take the time to implement it. Otherwise is an interesting challenge if you have the time for it. 😉

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Notify Moderator

10-12-2018
12:12 AM

10-12-2018
12:12 AM

Re: How do I get an adjacent surface (surface or part) of a pipe?

Thank you for your reply.

ProSolidRayIntersectionCompute returns all surfaces in the vector direction from the starting point. right?

But how do you define the third argument, ProRay?

Can you please tell me how to?

Thanks,

Warm Regards,

SH CHA

Top Tags

- ptcuser_portal
- creo_customization_proe…
- creo_parametric_proengi…
- creo_system_administrat…
- group discussion
- toolkit
- creo
- protoolkit
- creo_machining_proengin…
- j-link
- jlink
- api
- drawing
- creo_simulate_proengine…
- automation
- vb_api
- parametric
- vb
- creo parametric
- group blog
- object_toolkit
- vbapi
- weblink
- creo customization
- creo toolkit
- pro_toolkit
- vb api
- assembly
- c++
- customization