Visio Guy

Visio Discussions => Visio Bugs (er...Issues) => Topic started by: Decebal on September 15, 2017, 12:45:08 PM

Title: Connector height always >5mm
Post by: Decebal on September 15, 2017, 12:45:08 PM
Has anyone noticed Visio's dynamic connector can't have height smaller than 5mm (as you can read in Shape's Size&Position window)?

I've tryed to make a connector with labels at both ends with fixed position relative to each end. I noticed that labels have predictable behavior when the height of connector is >5mm only.

When the connector is a simple horizontal line (or BeginY-EndY < 5mm) the labels slightly move up and down.

Does anybody know why is this happening?

I'm using Visio 2007
Title: Re: Connector height always >5mm
Post by: Decebal on September 17, 2017, 08:25:49 AM
I've noticed that in connector's Shapesheet the height is normally GUARD(EndY-BeginY)

However when (EndY-BeginY) drops below 5mm (or above -5mm, depending which one is higher) the formula switches to GUARD(5MM) or GUARD(-5mm) respectively. Modifying this formula is impossible (for me at least).

Does anybody know why Visio doesn't like to have 0 (or small numbers) height?

I noticed a similar thing happens with Width.
Title: Re: Connector height always >5mm
Post by: wapperdude on September 17, 2017, 12:46:17 PM
For the Connector shape, there is code behind it.  Very little can be done to change the default connector shape.  Shape height should be of minimal concern.  Setting it to zero would be problematical as there would be nothing to click on to select it.

So, unless you make custom shape, this what it is.

Wapperdude
Title: Re: Connector height always >5mm
Post by: vojo on September 17, 2017, 06:57:29 PM
has anybody tried

user.conht = endy-beginy

connht = guard(user.conht)

Maybe connector code treats an simple value differently from a formula

also, much more complicated, but maybe spoof piny or locpiny for connector

The code is probably intentional in order to ease the user from trying to line up horizontal when attach point is off slightly
Title: Re: Connector height always >5mm
Post by: vojo on September 17, 2017, 07:03:20 PM
i guess, for that matter, you could try forcing a value

user.connht = setatref(<con height cell>, endy-beginy)

I believe this would force the height without guard and such since setatref would override any user adjustments

(can use dependson as long as not endy or beginy....using those would mean this would only trigger if a change on endy or
beginy....if some other change affects the conn height, this user cell would not fire...so new value sticks)
Title: Re: Connector height always >5mm
Post by: scotto6 on March 10, 2018, 10:27:45 PM
I realize this is an old post but I thought I'd tie the ends up a little in case the thread gets read again:

The dynamic connector is code driven and goes through a calculation cycle of its own.  It has to coexist with the shape sheet which is the final arbiter of all the data results but it gets a crack at everything the shape sheet engine does.  There's no getting around it really since it is baked into the product. :)  You can, of course, make the connector not be 'dynamic' by changing it's placement and routing cell.  I suspect that's not what you'd like however.

The minimum offset (I'm working from memory here so please forgive me) is based on (a fraction of) shape to shape placement values, I believe - the offset itself was never broken out.  Those used to be set in the page setup dialog but I don't know where it is now.

Take note: Changing the default shape to shape distance can have some unpleasant effects on the more 'normal' routing situations, possibly so experiment a bit before committing.

* not sure what the terminology in the shape sheet, UI or docs is at this time (e.g. 'shape to shape' or 'placement and routing cell')
** the point of the shape to shape clearance et, al. is to give Visio's placement and routing facilities (of which the dynamic connector is a consumer) a hint as to the average size and distance between the shapes meant to be interconnected.  Naturally those 'hints' are violated all the time and are sometimes not even correct for the template it is based on.  This might even describe your situation.