Mon, 01/07/2019 - 17:29
Forums:
Hi everyone, (req. special attn: Mr. Kirill Gavrilov )
I have 10 edges (Spiral edge, 3d curve, 3d line, circle, etc),(attached) in that, how can I identify only the spiral edge, and I need to find the Pitch, and center axis of the spiral edge.
Thank you for the support and advice.
Best Regards,
VINOTH KUMAR THANGAVEL, D.E.C.E, B.E, M.S (2019).
Attachments:
Mon, 01/07/2019 - 19:52
Hi Vinoth,
You can loop over the edges and examine the type of curve. Once you have found the spiral edge ou can get the static properties.
I can make a simple example if you have the geometry source? (step / brep)
Best regards, Guido
Mon, 01/07/2019 - 20:06
Dear Sir,
Thank you for the support. I've attached the small *.step file with helical curves for your kind reference. I've tried to find the curve types using the following snippet, but I get "GeomAbs_BSplineCurve" as result for some of semi-circles, and 3d lines. That's why I don't know how to approach this issue.
My aim is to,
1. Filter the helical curves from the TopoDS_Solid (STEP file solid).
2. Get the pitch values.
Code Snippet:
for (wirexp.Init(Solid1, TopAbs_WIRE); wirexp.More(); wirexp.Next())
{
TopoDS_Wire Awire = TopoDS::Wire(wirexp.Current());
for (edgexp.Init(Awire, TopAbs_EDGE); edgexp.More(); edgexp.Next())
{
TopoDS_Edge Aedge = TopoDS::Edge(edgexp.Current());
BRepAdaptor_Curve theCrv(Aedge);
GeomAbs_CurveType theTyp = theCrv.GetType();
if (theTyp == GeomAbs_BSplineCurve && !theCrv.IsClosed())
{
}
}
}
Thanks again
Mon, 01/07/2019 - 22:28
Hi Vinoth, I have been playing around a bit.
You can see an example here: SpiralShape
I come with a pitch of 1.25 and a outer radius of 2.5. (see Log)
The code is in C# but I hope it will point you in the right direction.
The Axis is also shown. you can get the axis with a call of Position() from the Geom_CylindricalSurface
Hope it helps,
Guido
Mon, 01/07/2019 - 22:47
Dear Guido,
Thank you for the great and prompt support. I'll study your code.
Best Regards,
VINOTH KUMAR THANGAVEL.
Mon, 01/07/2019 - 23:28
Your welcome..
You can also try to first split the faces by type and then analyze them?
See: SplitFacesByType
BR, Guido
Tue, 01/08/2019 - 00:07
Dear Guido,
I'll try as per your advice, and I'll post my c++ results in this thread.
Thank you for the continuous support.