What's new

Interesting helix related issue - could use some advice

David_K

New Member
Hello,

I was working on a part the other day that involved the use of a helix. I didn't have a problem pre se with the helix itself, but with a feature added on to the end of it. I need to have the parameters of the helix (OD, Turns (fractional), Length, etc) flexible, so the added feature needs to follow the end of the helix around the helix axis as any of those parameters get changed. The added feature was a sweep of the end profile of the helix form along a guide curve that started from a point on the end face of the helix. The problem I ran into was the sketch for the feature was either flipping orientation, the sketch was ok but the sweep was rendered incorrectly, or a flat out error.

So, I created a test model to experiment with the situation - see attached part file. To begin with, the helix sketch is done from a plane that is set at the helix lead angle. This is calculated in the Equations (fx). Control of the helix parameters are also done within Equations. Setting up the helix profile this way ensures that the sketch form maintains its proper dimensions and proportions clear to the end of the helix. This is not necessary but is my design intent in this example. I also made the helix form a truncated circle so that it was something other than a basic geometric shape, in case that might have masked some condition.

The current test part has two features on the end of the helix - one that curves upward (End1 Curve) and one that goes outward (Outboard Curve). I did this to see what differences there might be between the two in that they are approximately at right angles to each other - only different by the lead angle. The mis-behavior between the two can be different for a given set of helix parameter changes, but they eventually end up with the same kind of problem result. I have attached two screen captures showing the helix and end features, one as initially modeled and one showing the failure of both where the Turns of the helix was changed from 5 to 4.1. The End1 Curve flipped (rendered correctly for that) and the Outboard Curve rendered wrong. Its guide curve was still correct, however. (The two highlighted planes are the feature guide curve sketch planes) What's more interesting is that the features can be "walked" aroung the helix in smaller increments (say a quarter turn) for that total amount of change and they maintain proper orientation and rendering. The display of the sketch planes don't stay as original though.

I cannot say for certain what is going on but it appears like these sketch planes have some sort of coordinate system within them and the translation of the planes around the helix make it appear that they "pinwheel" around the helix end face point. The construction of the planes and axis are as independant of the model coordinate system as best as I can get them. Maybe I'm missing something there.

Has anyone encountered this kind of problem? Might there be a method I cannot envision right now to keep the sketch planes (and the sketches) oriented correctly as they "orbit" around the helix? Might this just be an inherent behavior of Alibre and its underlying geometric engine with little or no hope of overcoming it?

Any advice that is offered will be greatly appreciated. Thanks.
 

Attachments

  • Helix Testing.AD_PRT
    505.5 KB · Views: 9
  • ScreenCapture1.jpg
    ScreenCapture1.jpg
    404.9 KB · Views: 22
  • ScreenCapture2.jpg
    ScreenCapture2.jpg
    369.6 KB · Views: 22

Joseph_L

Administrator
Staff member
I'm still working with the part, I changed a few sketch references on Sketch End1 Curve Profile and Sketch Outboard Curve Profile. I haven't come to any conclusions yet. Sweep 1 end curve seems to be acting reliably and Sweep Outboard Guide Curve seems to not be updating. I have to step away but I wanted to send what I have so far.
 

Attachments

  • Helix Testing_JBL.AD_PRT
    1.1 MB · Views: 1

stepalibre

Alibre Super User
I agree that there is a lack of controls for orientation and tangency constraints in feature creation. Your file is set up well and is a good approach. Some combinations in the math can flip directions of reference geometry. I have in the past had configurations setup for cases where the math is for the other direction to account for this issue when everything else is correct.

I work with helical geometry often, I generate the helix in code and create the reference geometry in code as well and or use "Plane Along a Sketch" to ensure that the geometry follows my path.
1705621018695.png
I use configurations and or equations to flip direction when needed for certain geometry conditions and Insert Nodes from File in 3D sketches for the path.
1705622628575.png

Helix Testing_Stephen.AD_PRT - Attached File

I made planes with Plane Along a Sketch and the paths. I then project to the planes for the sweeps. You can change the turns and diameters with proper updates to the sweeps. You need to hit Regenerate All for it to update visually.
1705624397246.png

The fact that we need to hit the Regenerate All button is a bad design/engineering decision. It should automatically update with any change to a parameter, but I understand the reasoning behind it.

Does this solve the issue?
 

Attachments

  • Helix Testing_Stephen.AD_PRT
    1 MB · Views: 1

David_K

New Member
Joseph, Stephen, thank you for the replies and attempts to help. Unfortunately, I am still seeing the same behavior with flipped sketches or errors when I change the helix parameters a significant amount, or do partial Turns. As you mention, Stephen, it appears to be calculating to negative numbers and causing the sweep sketch planes to "reverse". In most cases with your update, the sweeps did generate ok, but the sketch planes were still flipping. Just changing the Turns from 20 to 19.6 caused the outboard sweep to flip. Yea, I think it has to do with the sketch planes in particular and not the sweep creation method.

BTW, it took me some minutes to figure out how you might have created the new sketchs - 6 & 7. Did you first make the new sketch planes (Along a Sketch) at 0%, create the sketch elements by Project to Sketch, and then resetting the planes to 100%? It's the only way I can figure it might have been done.

As you probably have guessed, I came across this situation when modeling extension springs as a template. Doing a standard hook on each end, as coplaner, and at one side of the helix was simple enough. Then I tried to create a model with cross-over hooks (turned to pass over the helix axis). That too wasn't too difficult, because I was still using whole integer Turns. Then I realized that most commercial extension springs I'm familiar with have the hooks coplaner for the cross-over style. That's when I got into partial Turns and this problem showed up. I felt that the Turns would need adjusting progammatically to get them to become coplaner. How I would do that in the Equations I have no idea yet. Probably not possible, actually. None-the-less, this problem seemed to be interesting and might there be something I'm overlooking or not aware of that would be a solution.

Stephen, your mention of calculating spline points externally gives me some food for thought about creating a script to do this. My programming skills get rustier by the minute and I'm not too familiar with Python (yet), so I'll have to weigh the benefits of my time going this route.

Thanks again.
 

stepalibre

Alibre Super User
Yes, but that doesn’t work if the parameter needs to be -/+. You would need to make another parameter that uses abs that acts as a switch that’s what I do. But in this case I need to see the math I’m not sure. But the issue I believe is in the equations and the helical boss settings. Abs can always be used. I’ll check later. I have examples I need to clean up first.
 

stepalibre

Alibre Super User
Joseph, Stephen, thank you for the replies and attempts to help. Unfortunately, I am still seeing the same behavior with flipped sketches or errors when I change the helix parameters a significant amount, or do partial Turns. As you mention, Stephen, it appears to be calculating to negative numbers and causing the sweep sketch planes to "reverse". In most cases with your update, the sweeps did generate ok, but the sketch planes were still flipping. Just changing the Turns from 20 to 19.6 caused the outboard sweep to flip. Yea, I think it has to do with the sketch planes in particular and not the sweep creation method.

BTW, it took me some minutes to figure out how you might have created the new sketchs - 6 & 7. Did you first make the new sketch planes (Along a Sketch) at 0%, create the sketch elements by Project to Sketch, and then resetting the planes to 100%? It's the only way I can figure it might have been done.

As you probably have guessed, I came across this situation when modeling extension springs as a template. Doing a standard hook on each end, as coplaner, and at one side of the helix was simple enough. Then I tried to create a model with cross-over hooks (turned to pass over the helix axis). That too wasn't too difficult, because I was still using whole integer Turns. Then I realized that most commercial extension springs I'm familiar with have the hooks coplaner for the cross-over style. That's when I got into partial Turns and this problem showed up. I felt that the Turns would need adjusting progammatically to get them to become coplaner. How I would do that in the Equations I have no idea yet. Probably not possible, actually. None-the-less, this problem seemed to be interesting and might there be something I'm overlooking or not aware of that would be a solution.

Stephen, your mention of calculating spline points externally gives me some food for thought about creating a script to do this. My programming skills get rustier by the minute and I'm not too familiar with Python (yet), so I'll have to weigh the benefits of my time going this route.

Thanks again.
The plane that is based on the X-section profile face should be flipped depending on the clockwise setting, going up or down the path. The face normals are likely correct internally but for helical geo the sketch plane (face or reference plane) needs to flip based on the clockwise setting. Changing the clockwise setting can fix it in some cases.

The position of the start and end points are important combinated with the clockwise settings (the turns).

My approach for sweeping. Rebuild and join the curves and profiles segments then sweep.
1705947626636.png1705947651745.png
I recreated your example in SolidWorks. It can handle 19.6 turns.
1705948052437.png
1705948190174.png
The 3D sketch coordinate system got me close, but it's not ready for primetime.
1705950453458.png
I couldn't figure out how to get the coordinate system to work. When I changed the turns it failed and a lost the sketch. @Joseph_L any tips?
1705952732162.png
1705953668342.png
Did you first make the new sketch planes (Along a Sketch) at 0%, create the sketch elements by Project to Sketch, and then resetting the planes to 100%?
Yes.
 

stepalibre

Alibre Super User
The API has an IADHelicalFeature Interface that has good information.
1705962166056.png

It's possible to check the normal of the sketch plane and auto-flip or give better feedback.
 

stepalibre

Alibre Super User
Stephen, your mention of calculating spline points externally gives me some food for thought about creating a script to do this. My programming skills get rustier by the minute and I'm not too familiar with Python (yet), so I'll have to weigh the benefits of my time going this route.
I load splines from points for simple paths and use the 3Dsketch API to generate profiles and paths. I'll share what I have.

edit:
@David_K here are a few scripts that can help you with extensions. These are from the Alibre Script documentation and included examples.

Since time has passed, the code approach might be better to avoid flipping and other issues. Problems are making things harder than they should be.
 
Last edited:

David_K

New Member
Thanks again, Stephen. I'll check into these references. If I feel ambitious enough, I might try the programming.

I have tried a few different ideas but to no avail. One was, based on my thinking it had to do with coordinate transformations was to rebuild the helix totally in the "+" quadrant - +X;+Y;+Z area. Made no difference. I also played around a bit more with the constraints for the hook guide curve in its sketch but found no answer.

I'm not going to push it anymore with this single model approach. It just occured to me while I was typing this response that another approach would be to do it as an assembly, where the hooks are modeled more independently and just "attached" to the (adjusted) helix. Could work for all the different hook/loop types. With configurations, no less!

Thanks again for all your time you spent with this. Too bad the cause wasn't determined, if nothing more than to better understand how the Alibre geometry engine works.
 
Top