cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

The PTC Community email address has changed to community-mailer@ptc.com. Learn more.

Prevent Feature failure when changing an Extrude direction which uses PROJECT command

Prevent Feature failure when changing an Extrude direction which uses PROJECT command

Ticket Reference: 15668428

SPR Reference: 11556077

 

We have an Extrude that references the edge of a quilt by using the PROJECT command in sketcher.

When we flip the direction of the quilt and then flip the extrude the feature fails. If we do an edit definition of the sketch in the Extrude and then click OK, it works again!

 

PTC R&D says this is a 'limitation of the software'. 😭

The official word is:

“The limitation is that the edges formed a counter-clockwise loop at the time of creation. So now when they go clockwise the software considers this inside-out contour and changes the material side of the extrude. The software does not recompute the orientation to preserve the user intent.”

 

Please fix.

 

Thank you!

12 Comments
S_Edgenear
14-Alexandrite

I think it's a sanity check. It's better do make the failure and have the user edit definition to see if the assumptions are still valid, than to make a wild guess, that could even work most of the time, but let silent failures to creep.

jwagh
16-Pearl

I disagree. This is the whole point of parametric features. If I tell it to reference an edge, it should use the edge, regardless of what is going on. I want the features to update - not fail because 'maybe' it wasn't intentional. A reference is a reference. Just like many aspects with Creo (specifically with patterns), if the references don't behave the way you intend - change them until it works! R&D Comments are just saying that the behavior is based on the legacy computational mechanism at play with the references. Theoretically it should work, but this is the limitation due to how the feature was built.

 

 

S_Edgenear
14-Alexandrite

The Project command, to create projected curves on a solid or other surfaces, do never generate a one to one relationship between the source un-projected entities, and the obtained projected ones. They split the edges of the original curves by the intersection with the new surfaces "below". So, when you select an edge based on a projected entity, Creo can establish or not a one to one relationship based on the projecting geometry. So, that is an instable reference. The curve intersection command, generate also instable references. Creo allows to select instable references, but we should avoid to do so, whenever possible, to avoid generating errors when the geometry that the curves are being projected or intersected into, change. So, you will never be able to get a predictable outcome, unless the geometry does not change. And it's better for Creo to give an error, to see if the "unstable" geometry that it calculated as a probable result of the original selection is indeed valid according to the user's intent, than do not give any error and generate unpredictable geometry. It's not only the problem of the possible change in "winding direction" when picking edges of a quilt. Any geometry that is t«dependent on the project or intersect command is instable and prone to fail.

jwagh
16-Pearl

It sounds like the problem is the fact that it is creating unstable references, which is what this idea is trying to say - make them stable ;). Unless I'm missing something, I'm not sure why these type of references should behave any differently (from a theoretical perspective, not from a coding/implementation perspective).

 

 

 

S_Edgenear
14-Alexandrite

It is not creating unstable references. You as a user, are the one who is selecting unstable references. I had the same problem years and years ago. The solution, whenever possible, is avoiding unstable references, if we are dealing with parts that might get lots of modifications, and when it's not possible, or makes our job during modeling stages, to select stable references, we have to surrender, and use the unstable references, but have to deal with the consequences. Possible regeneration errors. There is a similar problem when working in assmeblies and selecting geometry from components that modify each other, generating circular references. This is not an exclusive Creo problem. All parametric software suffers from the same problem, because we are not dealing with "theorerical" wishes as users that seem obvious, but with "practical" algorithms that need to be implemented from a programming point of view. Other kind of software, direct modelers, do not suffer from "unstable" reference geometry, or circular references, but then again, some changes using non-parametric software are mode difficult to do than in a parametric one.

jwagh
16-Pearl

I guess I'm just not 'seeing' the instability in this use-case. If you had an example of the instable references causing issues it may help clarify the scenario for me. I understand the logic issue with circular references. I don't understand the instability with referencing quilts.

S_Edgenear
14-Alexandrite

I guess you gave one just example of said unstability. Referencing boundary edges of quilts is very prone to being unstable references. If source geomerty never changes, then per definition it's not unstable. If it changes, specially if we know in advance that it might change in the future, then, said references are unstable. Since you mentioned "When we flip the direction of the quilt", you are giving an example of unstable references. The quilt has to be retrimmed. Quilts are better used as trimming surface sets, not so much as using any of its edges to try to trim, or make extrudes based on its edges. We can do it, nothing forbids it, but if the Quilt is changed, any of its edges can easily change. But I see better now what you are meaning. Anyway, I think what you intend the software to do is not that easy to achieve from a programming point of view. It involves trying to change the modeling kernel, and that is a thing that should be changed the least possible, or bugs might be introduced, or behaviour changed in long existing models. Good luck with yout petition, though.

jwagh
16-Pearl

I wouldn't know the details about the kernel limitations, I'm just talking 'theoretical'. I'm not sure why 'theoretically' a quilt reference would be any less stable than a geometry reference. I understand if you tell me it 'is', I'm just not sure 'why'.

 

Let me give you some background. We have our company logo as a saved Palette Sketch. The issue, is that since it involves a lot of splines, if we try scaling this sketch, the logo becomes contorted and nothing like it should. A workaround is that we created a UDF which includes:

1 - An Extrude of that sketch as a QUILT in 1:1 scale (so it retains the intended shape)

2 - A warp feature using scale. This will keep the intended shape without distorting the splines. The scale value will be in the UDF for editing.

3 - An extrude which references this warp that actually generates the solid geometry of the logo at the new intended size. This is the feature in question. Sometimes we want an protrusion of our logo, sometimes we want a cut. It would be nice to just flip the direction and call it a day. Our regular users aren't going to remember they need to do an edit definition to fix the failure. We specifically use an extrude so that we can draft these surfaces. Solidifying the quilt of a warp won't allow draft.

jwagh_0-1617191795165.png

jwagh_1-1617191819611.png

 

S_Edgenear
14-Alexandrite

I think it would be better in that case it's better to request one of two things:

 

1. Allow the extrude command to extrude also as quilts instead of solids. That way it would allow us to have the option to use the quilt to add material, or to remove material.

 

2. As an alternative, but which I think it's even better one, request for the transformations (translate, rotate, mirror) to be extended to the scale of the transformation matrix. Mirror is just a scale by -1 in one of the coordsys axis, keeping the scale 1 at the 2 other axis. It would be useful to be able to scale a quilt, or scale a body, and that command to be a feature with a parametric value to be applied to the transformation.

 

I tried in the sketch to use the "Modify Dims" with "lock scale" activated to resize a sketch with splines, and indeed it does not resizes the spline points that do not have dimensions, so, it would not resize an imported sketch or an imported spline countour. So, this option does not work.

 

Instead of generating a quilt, I would try to extrude as a body (if you are using Creo 7), and extrude symetric in both directions, and use that body as an add material, using a boolean merge, or a remove material, using a boolean cut. I think the Scale Size of the Warp Feature would allow you to scale the body, prior to the boolean operation.

 

Hope this helps.

jwagh
16-Pearl

Thanks for your suggestions and inputs. We are currently on Creo 5, but plan to move to Creo 7 in the next few months. We will investigate bodies as another alternative. For your two suggestions:

1 - Extruding as a quilt is generating other failures 😞

2 - Which scale tool are you suggesting?

S_Edgenear
14-Alexandrite

Hi there again,

 

1 - The extrude as a qulit generates failures is it not as a result of changing the extrude direction? I was suggesting in the UDF to not ever change extrude direction. Generate an extrude with the "Symetric" option, to extrude in BOTH directions always. Then, if you want to sunk / engrave the letters, use the quilt to remove materials with the solidify remove material. If you want them raised, use the same quilt to solidify add material. In the UDF you can create a family table to exclude some features. Create two rows, one for the cuts, supress the second solidy, another row in the family table, to add material, and supress the first solidy, leaving the second solidify that adds material. Hope this helps.

 

2 - The second suggestion, which would take much more time, is to suggest to PTC for future versions of Creo that there should be added an option to add the option to parametricaly scale quilts or bodies. See this idea request I just made:

 

https://community.ptc.com/t5/Creo-Parametric-Ideas/General-transformation-tool-including-scale/idi-p/722290#M14168

 

 

 

jwagh
16-Pearl

Thanks for your suggestions. I voted on your idea. I'll have to play around with your suggestion for #1. Theoretically, we would want one value to govern both directions you suggest below. This would require testing. Now that we've converted to subscription licensing, I may want to play around with some of the flexible modeling features and see how well it contorts/shrinks/grows the geometry/quilts.