#entry #exit anchors not staying in sync with components

Running into an issue with #entry #exit anchors not staying in sync with components.

entry_exit_component_sync_issue

There is an outline (_part.gim-za)
which is being used in two components (_gim and _za)
each component has an #exit anchor (each at different heights)
these are then used in gim-arm and za-arm which are attached to components with #entry anchors
everything has automatic alignment enabled

The issue is when changing the LSB sidebearing of the original outline the component shifts while the anchor stays in place.

Why doesn’t the #exit shift with the component?
Is this the intended behavior?

If I add an *origin anchor to the outline this produces the anticipated behavior but then this is this awkward anchor floating around which if it accidentally gets moved will through everything out of whack.

entry_exit_component_sync_issue_origin_2

This is the intended behaviour. If you change the LSB in the component, you change the positioning of the paths. The component thus doesn’t change its position at all – you will still see X and Y for the component to be the same value where you used it.

This is why it’s never a good idea to change sidebearings of components. Use a fixed value, like =40 everywhere for components, then disable automatic alignment when placing the first component of a composite.

In your case above, I would suggest using specific anchors names (instead of #entry and #exit) and adding them directly to the initial component itself. You can make them gim and za, and in the attaching components name them _gim and _za. That should produce the same desired effect. (Maybe the other way round, I always forget whether the underscore is for first or connecting components).

I hope this makes sense.

Tried your suggestion for using specific anchors but the problem I run into is I can’t easily get the sidebearing of the attaching component to be synced.

Another workaround is disabling automatic alignment in the first component (_gim and _za)…then the component and the anchor move together when the sidebearing changes, and there is still the added benefit of sidebearing inheritance and metrics updating in real-time by using the #exit and #entry anchors.