|
|
Thread Tools | Search this Thread | Rate Thread | Display Modes |
#1
|
|||
|
|||
secondary object of type 'asbm_struct' was missing.
When loading a large assembly I am receiving the following error
"secondary object of type 'asbm_struct' was missing." I am familiar with the error "object of type 'asbm_struct' was missing." and I know how to fix it, but the secondary part is stumping me. There is no additional information associated with the load error. I have also noticed an odd behavior in CM V16. Say I have assembly A, assembly B, and part 1. Assembly B is in Assembly A and part 1 is only in Assembly B. The model name for part 1 was incorrect, so I change it to part 2. I then saved out 3D data for Assembly B. Start new session. Reload Assembly A which contains assembly B and part 2, only its still part 1!. So I check to make sure I actually saved it correctly. New Session, reload assembly B and look there is Part 2! It appears as though assembly A owns information about loading parts in lower levels, i.e. part 1 within assembly B. Does anyone know if this is true? Maybe some new feature or bug? |
#2
|
||||
|
||||
Re: secondary object of type 'asbm_struct' was missing.
Just to clarify: Is this the assembly structure you described?
Code:
A |___ B | |___ part1 | |___ part2
__________________
CoCreate Modeling FAQ: http://www.clausbrod.de/CoCreateModeling/ |
#3
|
|||
|
|||
Re: secondary object of type 'asbm_struct' was missing.
No. It looks more like this. In a graphical way:
Start with this: A |___ B |___ part1Change model name like this and save "3D Date" for assembly B only. A |___ B |___ part2New Session and reload Assembly B. The tree looks like this: B |___ Part 2 New Session and reload Assembly A. The tree looks like this: A |___ B |___ part1Some things to note: 1) Part 1 does not exist in any assemblies other than Assembly B. 2) When loading Assembly B and then Assembly A, part 2 shows up correctly. 3) Are there any functions, like configurations, or formation, that can own or direct loading of parts lower than the first child level? In my case, there are many assemblies that use Assembly B and they all seem to be behaving similar to Assembly A. They all load Assembly B with the incorrect part 1. I have been able to correct the problem manually by loading Assembly B then Assembly A, then saving 3D data (not 3D modified, as this will not save anything, nothing modified) and overwriting all of the data. After doing this, Assembly A will now correctly load Assembly B and part 2. It just seems like strange behavior to me. And it seems to always be accompanied by the "secondary object of type 'asbm_struct' was missing." error message. Last edited by ckrug; 07-13-2009 at 12:04 PM. Reason: Formatting didn't look right. |
#4
|
||||
|
||||
Re: secondary object of type 'asbm_struct' was missing.
Quote:
In your description, you never save assembly A, yet in the last step you tell us to load A. In which step did you save it? In your description, you tell us to first load B, then A, and that this sequence produces unexpected results. Yet, a little later you say "When loading Assembly B and then Assembly A, part 2 shows up correctly." Which seems like the same sequence to me. When you say "reload", do you mean the Reload functionality which is specific to loading from Model Manager? Thanks! Claus
__________________
CoCreate Modeling FAQ: http://www.clausbrod.de/CoCreateModeling/ Last edited by clausb; 07-13-2009 at 12:41 PM. |
#5
|
|||||
|
|||||
Re: secondary object of type 'asbm_struct' was missing.
Quote:
Quote:
Quote:
Quote:
By the way, I used pb_pub.exe to look into the Assembly A file and there appears to be no mention of part 2. Maybe pb_pub.exe does not strip out ALL of the data contained within the .sdac file. I am so looking forward to Model Manager. Quote:
Calvin |
#6
|
||||
|
||||
Re: secondary object of type 'asbm_struct' was missing.
Quote:
Claus
__________________
CoCreate Modeling FAQ: http://www.clausbrod.de/CoCreateModeling/ |
#7
|
|||
|
|||
Re: secondary object of type 'asbm_struct' was missing.
Seems to me that assy A loads a different (older) version of B. I normally only use ModelManager and not sd-data, so I tried it myself. When I perform the actions like you tell I get part2 when I load assy A as I would expect, so I don't see the same thing you describe. I noticed one thing however: when saving assy B I got the question to override the file or create a new name. I chose override because B is still the same assy. When I chose "create new name" I got the same behavior you told us. But when you create a new name this behavior is correct. Did you take a look at the files in the directory to check if there are more assy B files?
Regards, Marten |
#8
|
||||
|
||||
Re: secondary object of type 'asbm_struct' was missing.
As Marten mentioned versioning: Are you using the "Load as Version" flag (see screenshot)?
__________________
CoCreate Modeling FAQ: http://www.clausbrod.de/CoCreateModeling/ |
#9
|
|||
|
|||
Re: secondary object of type 'asbm_struct' was missing.
Quote:
|
#10
|
|||
|
|||
Re: secondary object of type 'asbm_struct' was missing.
Quote:
Would the search function in the drawlist browser find parts that are inside containers? Is there any way to hide a part from a search? I have searched all of assembly A for any signs of Part 1 and cannot find any references (other than in Assy B). There must be something in assy A that is loading the old file first. |
#11
|
||||
|
||||
Re: secondary object of type 'asbm_struct' was missing.
I have had this problem before. The only way I have found to fix it, is load part_2 on its own. Change the model name and save it. It will then load correctly.
For some reason, parts inside an assembly do not always rename correctly when saved. Tom
__________________
Tom Kirkman Creo Elements/Direct 20.1 Dell Precision 3581 https://www.o-i.com |
#12
|
||||
|
||||
Re: secondary object of type 'asbm_struct' was missing.
Careful using that "Loading as a Version" thingie. If the assembly or other files are used elsewhere, they become locked files in the assembly being used in if saved that way. Use caution going this route.
__________________
Support Your Local Sheriff - At high noon Jason: "How much does it pay?" Citizen: "Well, none of our other sheriffs ever lived long enough to find out." Co-Create 2007 (15.50G) ANSYS Workbench 14 SolidWorks 2011 UGNX-7.5 / TeamCenter UA 8 PADS 2000 Applicon Bravo Autotrol CADAM Pro/E |
#13
|
|||
|
|||
Re: secondary object of type 'asbm_struct' was missing.
Quote:
Thanks for the reply. |
#14
|
|||
|
|||
Re: secondary object of type 'asbm_struct' was missing.
You could also send the models to support. If it has something to do with different versions or with a bug they can probably tell you exactly why and when it happens.
Marten |
#15
|
|||
|
|||
Re: secondary object of type 'asbm_struct' was missing.
I tried the following. I loaded Assembly A (which contains Assembly B with the wrong part, part 1). Then I made a copy of Assembly A, one level only. I changed nothing else. I did a "Save 3D Modified", which only saved the top level of the Assembly A copy (I verified this with the save options dialog). Then I started a new session and reloaded the copy of Assembly A. Part 2 now shows correctly as it should. If I start a new session and load the original Assembly A, Part 1 shows up.
Seems like a bug to me. Maybe it is in the way older versions of OneSpace handled assembly files or path names. I hope I don't have too many assembly files like this. How would I know? It would be nice to understand the root cause of this behavior so I can determine if there is a risk to other data in the database. I don't know how many times myself or other CAD users have changed model names and re-saved into the database. |
Tags |
asbm_struct, error |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | Search this Thread |
Display Modes | Rate This Thread |
|
|