Community Tip - Stay updated on what is happening on the PTC Community by subscribing to PTC Community Announcements. X
I'm modelling a Haack Series Nose cone. The nose cone equation for the curve is:
This is the equation for the datum curve that I have in Creo thanks to the people who helped me in a previous thread where I could not get the equation to draw near the bounds:
R = 49
L = 560
z = t
y = ( R / sqrt ( PI ) ) * sqrt ( ( acos ( 1 - ( 2 * t / L ) ) ) * pi / 180 - sin ( 2 * acos ( 1 - ( 2 * t / L ) ) ) / 2 )
x = 0.0
So here is the problem: zooming in where the observed segment of the curve spans about 10 mm of length, there appears to be a small concave segment and the tip seems to blunt abruptly:
The gradient should always be decreasing, yet by visual inspection and the curvature analysis tool, we can see this is not the case.
This is how the shape should look:
I've attached an excel plot of what the values should be for the length of the cone. Creo more or less agrees with the numbers until it gets within less than 20 mm of the tip where the concavity and weirdness starts happening.
Why is this happening 😞 ?
Solved! Go to Solution.
There are a couple of settings that I have in my config.pro file that might help:
accuracy_lower_bound default_abs_accuracy
I don't know what the default for these is, but maybe that's what is causing your troubles. I have both set to 0.00001 in my config.pro file and it works fine, don't know if there is some sort of hard-coded limit built into the software.
If you're using inches for your model, 0.001 is probably not precise enough.
Try defining the curve using these relations. Using this I do not see the inflection in the curve shown above.
C=0
R=49
L=560
x=t
/*convert deg to rad
theta=acos(1-(2*x/L))
/* define terms used in Y equation
q1=R/sqrt(pi)
q2=sin(2*theta)/2
q3=(sin(theta))^3
y=q1*(sqrt(theta*pi/180-q2))
Unfortunately, I still get the same results with your equation. Looks fine until you start zooming in on the curve in Creo.
Same annoying inflection and blunted tip within 10 mm of the front of the cone.
Does it look like that for you too? Do I need to change a setting in Creo or something?
Curvature analysis of 0-10 mm of curve. It does not look like what you have posted. Creo 4 M060 build.
I have used this curve to generate a surface and the reflection curves also do not indicate the inflection of the surface near the nosecone.
Curvature plot of curve
That looks beautiful. Why doesn't mine look like that :'(
Am using Creo 5.0.0.0 .
Here is the part for reference.
Unfortunately, I am using a student version of Creo which does not allow me to open files made with commercial versions.
Just tried to do the curve on a university machine running Creo 3.0, M080 build. Same results - annoying inflection.
It seems I am the common denominator here yet all I'm doing at this point is copy and pasting an equation for a datum curve and I still get weirdness.
Here's a theory that seems to prove out when I tried it:
If you go into File->Prepare->Model Properties, and look at the Accuracy setting, I'll bet it's something like "Relative 0.0012" or whatever is the default for your particular site. Because of the relative size of the tip of the nosecone shape you are trying to define, the relative setting will give "chunky" results and not the nice smooth curve you want.
Try setting the Accuracy to something like "Absolute" and a value of 0.00001, then regenerate. The curvature should be more to your liking.
I have confirmed this through testing for this curve (Creo 4). Using default relative accuracy yields the anomalous curve.
Unless one has a compelling reason to do so, relative accuracy should not be used for Creo models. Absolute accuracy should be assigned to models (start parts) in the context of the manufacturing process tolerances that will be used to make them. I have never had a reason to use relative accuracy in Pro/E or Creo in over 25 years on any design project. I have always used absolute accuracy. I recall being told in the 90s by a PTC applications engineer that relative was implemented as default to support faster regeneration of models vs absolute. If anyone has a use case for where relative accuracy would be preferred in a design used to fabricate something I would be interested to hear about it.
Yes, I've set up all of my start parts to have absolute accuracy since we switched from Pro/E to Creo and this type of stuff started to crop up. Unfortunately, whenever I pull in an old model from the long ago (we've been using Pro/E -> Creo since about 1993), it defaults to the relative accuracy, and "fixing" it sometimes causes the models to fail. It's fun.
It's even more fun when you're using the manufacturing module, and weird behaviors occur when accuracy is not set to a small enough value. Again, oodles of head-scratching and vulgarity-spewing fun.
I've never seen where older models default to relative accuracy, thanks for the heads up!
I HAVE seen where, with complex surfaces, and especially their rounds (IM plastic), things fail when using an absolute accuracy value too small (.0000001 vs .0001). There seems to be a sweet spot where the "fudge factor" works when nothing else will. I've had to slowly step the value down or up until the features all (or most) work.
@KenFarley wrote:..oodles of head-scratching and vulgarity-spewing fun.
I believe I'm experiencing some of that right now.
At first I could not understand why I was unable to change my accuracy settings from relative to absolute.
It turns out that I had to first enable the ability to choose absolute accuracy in the configuration editor with enable_absolute_accuracy = yes. I do not understand why this is a thing in the first place.
The fun doesn't stop there. You see when I try to set my absolute accuracy to something reasonably low, I am denied and get told this weird range of values that I must set my accuracy within:
Even better, this range seems to change by some magical means unknown to me (something I do seems to affect it):
What can't I set my absolute accuracy value to 0.001 or lower like other people have suggested? Why am I getting this weird range of accuracy bounds?
All this hassle just to properly draw a curve from an equation. I've spent more time troubleshooting than I have doing actual work. On the bright side, the curve is looking better (absolute accuracy of 0.006):
No more inflection. But the very tip is just a tiny bit too inaccurate in shape.
Any way I can set my accuracy lower to 0.001 or 0.000001?
There are a couple of settings that I have in my config.pro file that might help:
accuracy_lower_bound default_abs_accuracy
I don't know what the default for these is, but maybe that's what is causing your troubles. I have both set to 0.00001 in my config.pro file and it works fine, don't know if there is some sort of hard-coded limit built into the software.
If you're using inches for your model, 0.001 is probably not precise enough.
I added those settings to my config.pro file which avoided the constraint of the accuracy range and I was finally able to get a very nice looking curve towards the tip:
Thank you very much.
My problem has been more than resolved.
Changing the accuracy from relative to absolute in an existing model can be a real time sink. To avoid this hassle set up start parts with absolute accuracy to use for all newly created parts. Relative accuracy is a dimensionless parameter and changes based on the bounding box of the model. Absolute accuracy has units of length and does not change unless the user changes it.
With the accuracy config options set up, create a start part without any features with the desired accuracy. I used .001 mm for this example. Then copy/paste the curve into the start part or rebuild it.
I agree. I think starting over with a fresh start part with the absolute accuracy already set to .0001 or smaller, would be the best thing to get a good curve. I've used that setting for years and it seems to work well for all but the trickiest surfaces.
Best of luck!
It's not a "hassle" and there's nothing wrong with (that part of) the software. If you're going to make complicated models, your start parts should have been made with absolute accuracy set to .0001" or lower to begin with. It's a rookie mistake but we've all been there. The first time I ran across it was in '96 when first learning Pro/E (as it was called then - I still prefer it). I had a long, thin part, with a small hole on the end. It flat refuse to regenerate the hole at all. Looking into it, I found the right settings, and since then have had few problems. The exception being sometimes having to "tweak" the absolute accuracy to get ALL the features to regenerate. For simple models with small differences between the minimum feature size vs the maximum feature size (actually as I understand it, tesselated triangle size), relative accuracy works fine and save files size, sometimes significantly.
The reason you're getting a range of numbers, is because you already have some features on there that WILL fail if you picked a number outside that range, so it prevents you from doing so by limiting your choice. That's why it's best to start with a fresh part with no geometry besides datum planes, cs's, axiis, etc. Then it allows you to pick any value you want except a number below the lower accuracy limit. If you know you're going to be modeling a part with crazy complex surfaces, tweak that absolute setting lower before you make solid or surface geometry.
Now you know, and your models should be better for it. Not bashing you, it's just a learning process we've gone thru before you did. It's not a show-stopper and again, it's not a software issue.
Best of luck!
@Patriot_1776 wrote:
It's not a "hassle" and there's nothing wrong with (that part of) the software. If you're going to make complicated models, your start parts should have been made with absolute accuracy set to .0001" or lower to begin with. It's a rookie mistake but we've all been there.
Fair enough, but it seems counter-productive and not very intuitive to completely hide such an important setting, by default, behind a config line. I almost always started every part I've made with the best "relative" accuracy allowed but up until this thread, I did not even know an "absolute" accuracy setting existed since it doesn't even show up as an option in the Model Properties until you've added enable_absolute_accuracy in the config. Why not just have the option available as a choice from the beginning?
Not trying to be difficult; just genuinely curious as to the reasoning behind why Creo is setup this way by default.
@Patriot_1776 wrote:
The reason you're getting a range of numbers, is because you already have some features on there that WILL fail if you picked a number outside that range, so it prevents you from doing so by limiting your choice. That's why it's best to start with a fresh part with no geometry besides datum planes, cs's, axiis, etc.
Yes, but the erratic range of numbers happens even on a new part with no features:
Thankfully, the two previously mentioned config settings avoids this altogether but I'm still curious as to why this happens.
Accuracy used to have a big effect on file size. I remember doing a test with different size cubes and the file size of a 1000" cube was mammoth compared to a 1" cube when absolute accuracy was enabled. I just did a quick test in Creo 6 and that doesn't appear to be the case any longer. PTC product managers are actually recommending absolute accuracy now but they are hesitant to make that the default, out-of-the-box behavior.
Interesting, I never tested just different sized cubes (did you have mass properties assigned?), but I did test the same geometry with different accuracy settings and noticed a difference, sometimes a big one. You would EXPECT that with different accuracy levels, on complex parts (especially complex surfaces) that there would be a big difference in file size. I would expect little difference in file size from a 1" cube to a 1000" cube as it can be tessellated into 12 triangles. Interesting...
I wonder what Creo 6 did to change things? Like I said, with complex parts/surfaces, you'd expect a big change in file size.
Creo has a number of "hidden" config.pro settings, some of them very important, and I agree with you about some of them. I think they do that so that only experts get in there and change the hidden config settings, because you can get yourself into a bunch of trouble if you don't know what the results will be. Like I said, these are issues new users run into, it's to be expected. That's why you can come here and find answers. when i started Pro/E back in late '95 or so (community college) and even in the early days, there was no forum to learn from, only the HUGE stack of PTC's manuals for the software (I REALLY miss those). So, it was a lot tougher to learn, and you mostly had to figure things out for yourself.
Usually you get the weird numbers when there are other features, I don't remember seeing anything like that with the first feature with the settings I have, but my config.pro is going to be unique.
As to "why", that's up to the code-monkey's, you'd have to ask them.
Interesting. I guess I didn't even think to mention it because for one thing, I've always used absolute .0001 or better when needed, and I figured (erroneously) that they would have already tried that. I think that's the biggest revelation for newer users and based on the equations didn't think they were one.
Well, glad it was an easy solution! Weird that the problem showed up ONLY at the tip (just the tip... LOL)...
This is all pretty weird, but I've seen stuff like this before where the curve and/or surface has in inflection like that but SHOULD be smooth. Perhaps it a rounding/math error, I mean BUG, in Creo?
I wish I could see the model but I'm still on Creo 3... 😞