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

Improve Property Change Logic (glitches)

0 Kudos

Improve Property Change Logic (glitches)

Problem:

Changes to assembly properties should be saved at the part level. Visibility, Color, Position

Otherwise changes to properties of parent or child (assembly or part) may conflict - with odd results. Here's one way to see this error:

 

Time (seconds) Item Action Visibility
1:00 - 2:00 Part Fade Out True -> False
2:00 - 3:00 Assembly (contains all) Fade Out True -> False
3:00 - 4:00 Part B Fade In False -> True
4:00 - 5:00 Assembly A Fade In False -> True

 

Part B fades out, but immediately at time = 2:00 Part B suddenly reappears and then fades out again. Whatever causes this is the crux of the problem.

 

It's not a big issue in this particular example, but in other situations it expresses itself in more frustrating ways that cause problems with our augmented reality training for technicians. Sometimes a multi-part tool will stay visible in the wrong steps because its visibility Boolean was messed up somewhere along the way. I turn visibility of assemblies and sub-components on and off, both for the product, and the set of tools that are used. Sometimes a particular tool will fade out but then suddenly become visible in all previous steps.

 

Solution

When a user changes a property of an assembly, logic should be run in the background that goes through every single sub-component and decides whether or not to change its property. All properties should be retained at the lowest part level.

 

Example:

 

  • Assembly A
    • Part B
    • Part C
1) Fade out Part B Creo checks B for sub-parts none found so transition to B.visibile = False
2) Fade out Assembly A

Creo checks A for sub-parts

B.visible = False, so no change

C.visible = True, so yes change

Only transition to C.visible = False
3) Fade in Part B Creo checks B for sub-parts none found so transition to B.visibile = True
4) Fade in Assembly A

Creo checks A for sub-parts

B.visible = True, so no change

C.visible = False, so yes change

Only transition to C.visible = True