CoCreate User Forum  

Go Back   CoCreate User Forum > Applications > CoCreate Modeling

Reply
 
Thread Tools Search this Thread Rate Thread Display Modes
  #1  
Old 07-09-2009, 10:23 AM
ckrug ckrug is offline
Registered User
 
Join Date: Sep 2008
Location: Santa Rosa,CA
Posts: 13
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?
Reply With Quote
  #2  
Old 07-10-2009, 01:40 AM
clausb's Avatar
clausb clausb is offline
Registered User
 
Join Date: Nov 2002
Posts: 1,168
Re: secondary object of type 'asbm_struct' was missing.

Just to clarify: Is this the assembly structure you described?

Code:
   A
   |___ B
   |    |___ part1
   |
   |___ part2
Claus
__________________
CoCreate Modeling FAQ: http://www.clausbrod.de/CoCreateModeling/
Reply With Quote
  #3  
Old 07-13-2009, 12:01 PM
ckrug ckrug is offline
Registered User
 
Join Date: Sep 2008
Location: Santa Rosa,CA
Posts: 13
Re: secondary object of type 'asbm_struct' was missing.

No. It looks more like this. In a graphical way:

Start with this:
A
|___ B
|___ part1
Change model name like this and save "3D Date" for assembly B only.

A
|___ B
|___ part2
New 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
|___ part1
Some 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.
Reply With Quote
  #4  
Old 07-13-2009, 12:35 PM
clausb's Avatar
clausb clausb is offline
Registered User
 
Join Date: Nov 2002
Posts: 1,168
Re: secondary object of type 'asbm_struct' was missing.

Quote:
Originally Posted by ckrug View Post
Change model name like this and save "3D Date" for assembly B only.
By "change model name", do you mean the model name as it appears in the Part Properties dialog (see screenshot)?

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
Attached Thumbnails
Click image for larger version

Name:	modelname.png
Views:	468
Size:	11.4 KB
ID:	1496  
__________________
CoCreate Modeling FAQ: http://www.clausbrod.de/CoCreateModeling/

Last edited by clausb; 07-13-2009 at 12:41 PM.
Reply With Quote
  #5  
Old 07-13-2009, 01:38 PM
ckrug ckrug is offline
Registered User
 
Join Date: Sep 2008
Location: Santa Rosa,CA
Posts: 13
Re: secondary object of type 'asbm_struct' was missing.

Quote:
Originally Posted by clausb View Post
By "change model name", do you mean the model name as it appears in the Part Properties dialog (see screenshot)?
By "change model name" yes, I mean, change the model name of the part. I normally change it in the column labeled Model Name in the structure browser. Well, to be honest, I almost never change the model name as it can cause lots of trouble if your not exactly sure what your doing. In this case however I had a model name that was incorrect. Since it was only used in one assembly, I changed the model name and saved it. I also saved the owning assembly (in our case Assembly B). I assumed since it was only used in one assembly it would not break the link to any other assemblies.

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?
I should never need to save assembly A as I am not changing anything at that level. I am changing a part within Assembly B.

Quote:
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.
No. I say load Assembly B, Part 2 exists correctly. Then start a New Session. Then load Assembly A. This produces the unexpected result.

Quote:
When you say "reload", do you mean the Reload functionality which is specific to loading from Model Manager?
No. I am not using Model Manager yet. The whole reason I am going through this process is to fix any and all broken assemblies in my directory so I can load "clean" assemblies into Model Manager. I found a part that had the wrong model name. I was able to fix it, but when I load the upper level assemblies, it is still referencing the old incorrect part number. I was able to correct the upper level assemblies by loading the Assembly B, then loading the upper level assemblies (i.e. Assembly A) which as I said, produces the correct result, then I save 3D data (overwrite all data). This gets the correct part into the system. The problem is, I don't understand why I am having this problem in the first place. I suspect I will have additional incorrect parts as I am sorting through the directory and I would like to understand the issue before I continue using the "brute force" method for dealing with incorrect part numbers. I don't understand why or how Assembly A knows anything about part 2 which resides two generations down the tree.

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:
Thanks!

Claus
Many Thanks,
Calvin
Reply With Quote
  #6  
Old 07-13-2009, 09:55 PM
clausb's Avatar
clausb clausb is offline
Registered User
 
Join Date: Nov 2002
Posts: 1,168
Re: secondary object of type 'asbm_struct' was missing.

Quote:
Originally Posted by ckrug View Post
I should never need to save assembly A as I am not changing anything at that level.
[...]
No. I say load Assembly B, Part 2 exists correctly. Then start a New Session. Then load Assembly A.
How can you load A if you never saved it before?

Claus
__________________
CoCreate Modeling FAQ: http://www.clausbrod.de/CoCreateModeling/
Reply With Quote
  #7  
Old 07-13-2009, 11:33 PM
Marten Marten is offline
Registered User
 
Join Date: Feb 2006
Location: Tilburg, The Netherlands
Posts: 139
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
Reply With Quote
  #8  
Old 07-14-2009, 12:21 AM
clausb's Avatar
clausb clausb is offline
Registered User
 
Join Date: Nov 2002
Posts: 1,168
Re: secondary object of type 'asbm_struct' was missing.

As Marten mentioned versioning: Are you using the "Load as Version" flag (see screenshot)?
Attached Thumbnails
Click image for larger version

Name:	loadasversion.png
Views:	450
Size:	41.9 KB
ID:	1500  
__________________
CoCreate Modeling FAQ: http://www.clausbrod.de/CoCreateModeling/
Reply With Quote
  #9  
Old 07-14-2009, 12:34 PM
ckrug ckrug is offline
Registered User
 
Join Date: Sep 2008
Location: Santa Rosa,CA
Posts: 13
Re: secondary object of type 'asbm_struct' was missing.

Quote:
Originally Posted by Marten View Post
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
Hi Marten, Yes, I looked in the directory and there are no other assy B files. I did run the pb_pub.exe on the assy A and assy B file to see if there was any reference to part 1 or 2 and there was none. I even compared SysIDs and everything looks correct. I did notice that Assy A is saved as OSDM ver11.5 (I haven't done anything with this assy in a while). So it is an older file. Other than that, I noticed nothing out of place. Still a bit of a head scratcher.
Reply With Quote
  #10  
Old 07-14-2009, 12:39 PM
ckrug ckrug is offline
Registered User
 
Join Date: Sep 2008
Location: Santa Rosa,CA
Posts: 13
Re: secondary object of type 'asbm_struct' was missing.

Quote:
Originally Posted by clausb View Post
As Marten mentioned versioning: Are you using the "Load as Version" flag (see screenshot)?
No, I'm not loading as a version. Although this might provide an interesting troubleshooting tool.

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.
Reply With Quote
  #11  
Old 07-15-2009, 05:14 AM
tom kirkman's Avatar
tom kirkman tom kirkman is offline
Registered User
 
Join Date: Oct 2002
Location: Perrysburg, Ohio
Posts: 397
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
Reply With Quote
  #12  
Old 07-15-2009, 05:30 AM
BMaverick's Avatar
BMaverick BMaverick is offline
Registered User
 
Join Date: Mar 2009
Location: Tennessee, U.S.A.
Posts: 267
Exclamation Re: secondary object of type 'asbm_struct' was missing.

Quote:
Originally Posted by ckrug View Post
No, I'm not loading as a version. Although this might provide an interesting troubleshooting tool.
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
Reply With Quote
  #13  
Old 07-15-2009, 06:58 AM
ckrug ckrug is offline
Registered User
 
Join Date: Sep 2008
Location: Santa Rosa,CA
Posts: 13
Re: secondary object of type 'asbm_struct' was missing.

Quote:
Originally Posted by tom kirkman View Post
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
So it sounds like it is possible for an assembly to have two bits of information about its children. The first might be used when just the assembly itself is loaded and the second being used if the assembly is loaded by a parent assembly. Wow, this makes sense and would explain the situation. I wonder if the pb_pub.exe tool would catch both of those bits. I also wonder if having different, or some combination of different file versions would case this scenario.

Thanks for the reply.
Reply With Quote
  #14  
Old 07-15-2009, 07:01 AM
Marten Marten is offline
Registered User
 
Join Date: Feb 2006
Location: Tilburg, The Netherlands
Posts: 139
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
Reply With Quote
  #15  
Old 07-15-2009, 07:48 AM
ckrug ckrug is offline
Registered User
 
Join Date: Sep 2008
Location: Santa Rosa,CA
Posts: 13
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.
Reply With Quote
Reply

Tags
asbm_struct, error


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -8. The time now is 01:32 AM.



Hosted by SureServer    Forums   Modeling FAQ   Macro Site   Vendor/Contractors   Software Resellers   CoCreate   Gallery   Home   Board Members   Regional User Groups  By-Laws  

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.