What's new

Unnecessary saving of assembly sub-components .. Why?

Status
Not open for further replies.

simonb65

Alibre Super User
I have created an assembly that inserted another sub-assembly. Once constrained, I try and save the top level assembly ... but the save dialog wants to save a part that is in my sub-assembly (and hasn't changed)!

So, why does it want to save it and why can't I tell it not to? The part it refers to is a shared library component that never changes, but just gets referenced in numerous designs ... and NO, I don't want to make uncontrolled copies of the same part in different places!

Question for Alibre ... what has it changed in the referenced part ... and why???? If the part is an older version schema, then as nothing has changed, Alibre has no requirement to re-save it as the latest schema!! This behaviour is just wrong!

upload_2021-3-30_14-59-15.png
 

simonb65

Alibre Super User
EDIT : The only item that was offered as a modified item was one single sub-assembly within the assembly. The other sub-assemblies and constituent parts did not appear in the save dialog, so why was only this sub-assembly singled out for modification?

upload_2021-3-30_15-31-17.png
 

bigseb

Alibre Super User
I have created an assembly that inserted another sub-assembly. Once constrained, I try and save the top level assembly ... but the save dialog wants to save a part that is in my sub-assembly (and hasn't changed)!

So, why does it want to save it and why can't I tell it not to? The part it refers to is a shared library component that never changes, but just gets referenced in numerous designs ... and NO, I don't want to make uncontrolled copies of the same part in different places!

Question for Alibre ... what has it changed in the referenced part ... and why???? If the part is an older version schema, then as nothing has changed, Alibre has no requirement to re-save it as the latest schema!! This behaviour is just wrong!

View attachment 33204
JST has brought this up before in the past in the case where library parts would be resaved. That was quite a while ago.
 

simonb65

Alibre Super User
JST has brought this up before in the past in the case where library parts would be resaved. That was quite a while ago.
I've not seen JST's post. I've noticed this happening with both v22 and the v23 beta, not looked back to see if it was ever resolved/resurfaced or what feedback there was from the Alibre team/support.
 

bigseb

Alibre Super User
I've not seen JST's post. I've noticed this happening with both v22 and the v23 beta, not looked back to see if it was ever resolved/resurfaced or what feedback there was from the Alibre team/support.
JST posts (can't remember when) were about library items that should not be editable but would be automatically resaved AD. This would immediately break other assemblies. Not quite the same as your problem but still related.
 

simonb65

Alibre Super User
JST posts (can't remember when) were about library items that should not be editable but would be automatically resaved AD. This would immediately break other assemblies. Not quite the same as your problem but still related.
Sounds a similar scenario. I go do some searching and raise a ticket.
 

idslk

Alibre Super User
Once constrained
This is the change you've done to the part/assy.
If you just put in a new part(or assy) and do nothing with it, noting would be saved anywhere...
If this is a good strategie from Alibre...well i can't look behind the curtain...
May we will get an answer from @Max

Regards
Stefan
 

simonb65

Alibre Super User
This is the change you've done to the part/assy.
If you just put in a new part(or assy) and do nothing with it, noting would be saved anywhere...
If this is a good strategie from Alibre...well i can't look behind the curtain...
May we will get an answer from @Max
The assembly that is wanting to be saved (modified) is not 'directly' constrained.

Workflow ...

Through the API I created an assembly of a number of parts and assemblies (see post #2), they have no traditional 'constraints'. They are just programmatically added to the assembly at an XYZ position, rotated and anchored. That initial assembly is saved as a 'PCB' assembly.

The 'PCB' assembly is then added to the main product assembly (enclosure, etc) and the 'PCB' is constrained to the enclosure assembly by mates and coincident constraints (which is one level up in the hierarchy from the assembly that Alibre now wants to modify when saving the overall product assembly!)

The puzzling thing is that there are a number of other assemblies at the same level and 'inserted' in the same way using the API that don't get flagged for MODIFY !! So, if it was flagged for one low level sub-assembly, why not the others? Strange!

That is the mystery. I Hope @Max read this and can possibly comment.
 

JST

Alibre Super User
I have MANY full assemblies that ask to be saved every time I open them to look at something, when nothing has been changed. They will do it again even if I DO save them.

So maybe some of your items are "self-flagging" in error to be saved just as I notice.

I have no idea why those things need to be saved so much. And, yes, I have mentioned this and sent in feature request type tickets trying to get this changed as part of allowing a part library in Alibre. A library is NOT a "library" if the books get edited and reprinted every time someone takes them out... and the same goes for a CAD "Library".
 

bigseb

Alibre Super User
A library is NOT a "library" if the books get edited and reprinted every time someone takes them out... and the same goes for a CAD "Library".
I get around this by saving a copy of the library item in my project folder. But this isn't how library items should work, as you rightly say.
 

idslk

Alibre Super User
I have MANY full assemblies that ask to be saved every time I open them to look at something, when nothing has been changed. They will do it again even if I DO save them.
I've tried this a few minutes ago:
- opened an assembly and measured a length and closed the assembly. No save operation
- opened an assembly, opened a part with "edit here" and measured a length in the part and closed the assembly. No save operation
- opened an assembly, opened a part with "edit in seperate window" and measured a length in the part and closed the assembly. No save operation
- opened an assembly, regenerated the assembly without further changes and closed the assembly. Alibre asked for a save operation.
- opened an assembly, moved the dog bone up and down and closed the assembly without further changes. Alibre asked for a save operation.
It seems, it really "nothing" except looking is done, Alibre won't ask for saving...
JST can you confirm this or can you see any other behavior at your side?

Regards
Stefan
 

JST

Alibre Super User
Stefan, I believe what you describe is currently "intended behavior".

However, I have several assemblies currently, which ask to be saved every time they are opened, even with NO change done, and nothing other than opening and closing done. No editing, no "mock editing" (moving dogbone) nothing whatever. I have saved them and still they ask to be saved.

Clearly, whatever "marks" a component as "edited, needs to be saved" is stuck "on" with those. I cannot be sure whether they will continue to do that if included in a higher level assembly, as I have not tried it, they ARE the top level in most cases.

Another action which triggers a save is a zoom, or rotate, even though no edit is done. I do NOT think that is correct behavior.
 

idslk

Alibre Super User
they ARE the top level in most cases.
hmm, interesting, so you also have assemblies that behave "correctly". Is there any thing in common? Step parts, booleans, not regenerated subassemblies, files on a network drive...
This Alibre behavior looks annoying...
Regards
Stefan
 

simonb65

Alibre Super User
However, I have several assemblies currently, which ask to be saved every time they are opened, even with NO change done, and nothing other than opening and closing done. No editing, no "mock editing" (moving dogbone) nothing whatever. I have saved them and still they ask to be saved
I'm just wondering if Alibre wants to save the part as the latest version (which it shouldn't as nothing had been modified). Still doesn't explain the selectiveness in my scenario!

I might take a copy of the file before and after save and do a differences to see what in the file is actually modified! ...
 

bigseb

Alibre Super User
However, I have several assemblies currently, which ask to be saved every time they are opened, even with NO change done, and nothing other than opening and closing done. No editing, no "mock editing" (moving dogbone) nothing whatever. I have saved them and still they ask to be saved.

More importantly, making a change to an assembly does not mean making a change to every single part. Obviously changed items must be resaved but to resave everything in the assembly isn't right.
 

simonb65

Alibre Super User
I might take a copy of the file before and after save and do a differences to see what in the file is actually modified! ...
So, the changes seem to be just version updates. From v14 to v17. Looking at the the details it's just ordering of items and the odd syntax change from $ to ''. If I replace the part with my original part, then open the assembly. Closing the assembly asks to save the same items as post #1, so no edit, no view change, just open and close!

@Max , what is AD doing? and why? Normally an application that uses old schema based file formats will open the file and use the data it has (i.e. Word, etc). If you only view, then nothing should be modified, so closing will leave the file alone. AD seems to load the file in, modify the data, flag the data as modified and hence now wants to save as the latest file format schema.

You don't need to modify the data source once you've imported the data for use! The assembly only needs references from that data, it doesn't need to modify it. Having these hard coded inter dependencies (in the children objects looking upwards) is going to get you into a right mess going forward! Dependencies need to propagate downwards only. Using a child object file as reference from an older version should use the data as-is. You import STEP files, etc. without writing the STEP file back out ... so why do you need to do that with un-edited part files or assemblies?
 

simonb65

Alibre Super User
If I replace the part with my original part, then open the assembly. Closing the assembly asks to save the same items as post #1, so no edit, no view change, just open and close!
So,

1) Open the assembly
2) Close Alibre (i.e the assembly)

Alibre tells me this ...

upload_2021-3-31_11-12-25.png

... No, I haven't ... Alibre has!

Alibre, please sort this out
otherwise the concept of having and maintaining a common parts and product library of approved design parts breaks all the versioning and validation rules that, as a company, I need to apply in order to control changes to already validated parts and maintain manufacturing integrity. You cannot update parts just because you want to update them to the latest version.

Now if you update the reference parts, that means I have to update the drawings for those parts too! Up issue to reflect the part change, re-issue and distribute to all parties that involves. Do you not realise the domino effect these kind of issues cause? ... when NOTHING has actually changed!
 
Status
Not open for further replies.
Top