Skip to main content
10-Marble
June 15, 2021
Question

After saving an imported assembly: multiple parts no longer in correct locations!

  • June 15, 2021
  • 2 replies
  • 3269 views

I'm using Creo Parametric 8.0 and one of our vendors uses Creo Elements/Direct: they typically send me both .stp and .pkg assembly files and I'm running into this issue regardless of what format I import their assembly from.

 

Initially the import process works very well; I have a lot of success importing and opening these CAD assemblies without too many errors. I will then save a backup of these assemblies (save as-> save a backup) either locally or to our companies cloud servers. Naturally I save it in Creo 8's native format (.prt and .asm files) so I don't have to go through the process of re-importing.

 

This is where the problem arises: after closing the assembly, rebooting CAD or my computer, etc. and then I go back and re-open that assembly I will open the top-level .asm file and run into a ton of parts that have completely lost all of their orientation/position information inside the assembly. I'll have hundreds of tiny PCA components floating out in space as well as larger plastic panel parts dislodged and oriented like crazy. Some parts stay where they should. I've noticed that if I delete the entire backup library, re-import, and save another backup that I'll run into different parts that move to different positions. Also occasionally this doesn't happen at all and the file seems to save and re-open without any orientation losses. There seems to be no method to this madness and it is extremely frustrating.

 

I've noticed Creo generates coordinate systems for every part it imports inside these assemblies and I don't modify or delete those at all. I've had this happen immediately after assemblies that have been saved without doing any sort of modifications after the initial import.

 

Questions:

1. Is there a set of actions I'm not taking in order to "lock-in" the part orientations once I've successfully imported?

2. Is this some sort of bug I'm encountering? Obviously my first assumption is I'm doing something wrong in my workflow but if that's not the case what should I be doing to report this bug?

2 replies

23-Emerald III
June 15, 2021

The only time I have seen import orientation problems with components of an assembly is when I try to import an assembly as a creo part file, instead of an assembly. I haven't ever seen it randomly re-orient when opening a saved import if it came in correctly.  I've never imported a .pkg. I've imported hundeds of step files.

Do you have a test file you could upload (zip then attach)?

You can import an assembly as a part if you use the hidden config.pro option  INTF3d_in_as_part YES  This is a hidden option because it isn't part of the standard options and it may have "issues". There is no documentation for it.

horix10-MarbleAuthor
10-Marble
June 15, 2021

Thank you for your reply. Unfortunately I can't upload any of this CAD I'm running into issues with here since it's proprietary and sensitive intellectual property. I might be able to pass along a file to PTC's official support as part of a ticket but not here in the open community forums.

 

Just for giggles I checked my config settings and as you suspected I don't see that "hidden" string as I would have had to set and save that config myself at some point. I noticed when importing .pkg files from Creo Elements/Direct the system actually recognizes and locks in the "assembly" toggle button and greys out the selection to import as a part. When using .stp files I leave the assembly toggle on.

 

I will admit this seems to happen more often with .pkg file imports and I will double check to make sure I can make it happen with .stp files as well. My preference is to always import using the native .pkg files as they import with way less errors and much greater model accuracy compared to .stp.

horix10-MarbleAuthor
10-Marble
June 16, 2021

Okay, I spent a good chunk of yesterday and today investigating this and trying to find reproducible steps and I FINALLY have a clue to what's going on.

 

TL;DR It's a file naming problem.

 

I noticed that if I have a completely fresh/blank Creo 8 "session" and load in my saved Creo assembly files (that have already been imported and saved in native format), everything always works out and I never reproduce any orientation issues.

 

However, once I open a 2nd assembly file from that vendor the orientations of the parts in that 2nd assembly go completely haywire. Why? Well because our vendor re-uses part names and components across multiple programs in their CAD. So when I import an assembly that happens to have a generic "P2.prt" inside and then I open a DIFFERENT assembly that uses that same P2.prt Creo 8 has some sort of issue reconciling the coordinate system information for whatever reason. It's almost like it can't update it's orientation/coordinate system information or chooses not to since the part is already "in session".

 

This also explains why random parts would seem to load into different spots after opening: depending on which assemblies/parts I have open and in-session and in which order I open them it will then determine which parts will go haywire if they share names of other parts in-session.

 

Oh and another/newer issue I noticed that's related to this; sometimes our vendors will use identical generic names for completely different parts. For example assembly A might have a generic part named "P2.prt" while assembly B might have a completely different and unique part that just happens to have been assigned the same generic "P2.prt" name. In this scenario Creo 8 can't even recognize that they should have unique part ID's so when you open assembly B, the completely wrong part will get loaded into that 2nd assembly window!

 

Sad to say it's really frustrating that Creo 8 has these sorts of archaic issues with file names (yes, I'm throwing shade at that 31 character limit!)

 

A much smarter way of handling this is what's currently done in Creo Elements/Direct: that CAD system uses unique part ID's that are behind the scenes and part of the model information (they are long randomly generated strings). It won't bat an eye if you have two identical file names being opened in the same session as long as the "part IDs" don't match. For imported parts that happen to share the same file name this could never happen because during import or part creation it will always assign a randomly generated part ID. If you happen to try and place two identically named parts in the same sub-assembly/same layer inside the CAD session I believe it will recognize that action and prompt you to change the name discrepancy but otherwise it doesn't really care.

 

The good news is at least I know why this is happening and how I can avoid it by essentially only having one top-level product assembly open and in-session at any given time. But this will also be super frustrating to my workflow because I work on like 5-7 different products at any given time that require my attention throughout the day. It would be nice to keep them all open.

24-Ruby III
June 17, 2021

@horix wrote:

Okay, I spent a good chunk of yesterday and today investigating this and trying to find reproducible steps and I FINALLY have a clue to what's going on.

 

TL;DR It's a file naming problem.

 

I noticed that if I have a completely fresh/blank Creo 8 "session" and load in my saved Creo assembly files (that have already been imported and saved in native format), everything always works out and I never reproduce any orientation issues.

 

However, once I open a 2nd assembly file from that vendor the orientations of the parts in that 2nd assembly go completely haywire. Why? Well because our vendor re-uses part names and components across multiple programs in their CAD. So when I import an assembly that happens to have a generic "P2.prt" inside and then I open a DIFFERENT assembly that uses that same P2.prt Creo 8 has some sort of issue reconciling the coordinate system information for whatever reason. It's almost like it can't update it's orientation/coordinate system information or chooses not to since the part is already "in session".

 

This also explains why random parts would seem to load into different spots after opening: depending on which assemblies/parts I have open and in-session and in which order I open them it will then determine which parts will go haywire if they share names of other parts in-session.

 

Oh and another/newer issue I noticed that's related to this; sometimes our vendors will use identical generic names for completely different parts. For example assembly A might have a generic part named "P2.prt" while assembly B might have a completely different and unique part that just happens to have been assigned the same generic "P2.prt" name. In this scenario Creo 8 can't even recognize that they should have unique part ID's so when you open assembly B, the completely wrong part will get loaded into that 2nd assembly window!

 

Sad to say it's really frustrating that Creo 8 has these sorts of archaic issues with file names (yes, I'm throwing shade at that 31 character limit!)

 

A much smarter way of handling this is what's currently done in Creo Elements/Direct: that CAD system uses unique part ID's that are behind the scenes and part of the model information (they are long randomly generated strings). It won't bat an eye if you have two identical file names being opened in the same session as long as the "part IDs" don't match. For imported parts that happen to share the same file name this could never happen because during import or part creation it will always assign a randomly generated part ID. If you happen to try and place two identically named parts in the same sub-assembly/same layer inside the CAD session I believe it will recognize that action and prompt you to change the name discrepancy but otherwise it doesn't really care.

 

The good news is at least I know why this is happening and how I can avoid it by essentially only having one top-level product assembly open and in-session at any given time. But this will also be super frustrating to my workflow because I work on like 5-7 different products at any given time that require my attention throughout the day. It would be nice to keep them all open.


Hi,

if you need to work on like 5-7 different products then launch 5-7 Creo different sessions.