Author Topic: Smart Connection Points  (Read 30655 times)

0 Members and 1 Guest are viewing this topic.

wapperdude

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4840
  • Ideas Visio-lized into solutions
Re: Smart Connection Points
« Reply #15 on: May 23, 2014, 11:21:23 PM »
OK.  The coding is complete...I think.  So, there is no need for special connector shape any more.  Long live the special connector!   ;D

Sorry, no new picture, just the Visio file.   :o

 8)
Wapperdude
Visio 2019 Pro

wapperdude

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4840
  • Ideas Visio-lized into solutions
Re: Smart Connection Points
« Reply #16 on: May 24, 2014, 01:01:14 PM »
Final (???::)  update...

You may use either the dynamic connector or simple lines to connect parts.  Report form will show both.

Wapperdude
Visio 2019 Pro

vickey

  • Newbie
  • *
  • Posts: 6
Re: Smart Connection Points
« Reply #17 on: July 09, 2015, 05:14:34 AM »
Hi Wrapperdude,
I new to visio and i need to make connector and shapes smart in a way that only similar dat type pins may get connected to each other, I have also downloaded the code provided by you.
Now to make my connector a smart one where do i need to call Sub GetConnections() and Sub InitFromTo(ByRef shape As Visio.shape) ?

I my diagrams i will be have only two type of pins boolean and continuous.
Need suggestions asap :)

wapperdude

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4840
  • Ideas Visio-lized into solutions
Re: Smart Connection Points
« Reply #18 on: July 09, 2015, 10:51:17 AM »
The code provided doesn't reside in a shape/shapesheet.  It is "belongs" to the document, i.e., the active Visio file.  You can execute the code from a shape by adding a call to, say, the double click event, found in the shapesheet.  But, there would be no point to do that with this code.

This code is merely an analyzing code.  It goes thru a page and checks all the connections and then reports their status.  It does not prevent a connector from attaching to any particular pin.  The connector only knows what it's connected to after connection.  I don't think that's what you want.

Also, I'm not aware of any means to prevent an "erroneous" connection, as there is no mechanism that I'm aware of that allows "pre-determination" of the candidate connection point type as that would required a background process always running.

Wapperdude
« Last Edit: July 09, 2015, 11:04:45 AM by wapperdude »
Visio 2019 Pro

Hey Ken

  • Full Member
  • ***
  • Posts: 233
  • Just This Guy
    • The Pennsylvania Project, with Ken Krawchuk
Re: Smart Connection Points
« Reply #19 on: July 10, 2015, 08:22:19 AM »
   You can change the row type on a connection point??  Never knew that!  Having learned that, of course I had to immediately open a shapesheet, add every possible section, then check to see which ones allow for a change of row type. 

   Other than Geometry, it appears the only sections that allow it are Connection Points and Controls, but neither makes any sense to me.  For Connection Points, why not always just display the D cell?  What value is there in being able to turn it on and off?  For Controls, all it does is enable the Tip cell so you can define hover text for the control point.  But setting the Tip cell to No Formula vs. ="Your Tip Text" does the same thing, and is much more intuitive.

   There's also the issue of functional consistency across the three sections that allow it.  Only Geometry actually changes the row type; the second adds a cell, and the third enables/disables a cell.  Go figure.

   I'd find it much more useful if they would simply add a scratch cell to each row in every section containing multiple rows, such as User-defined, Shape Data, Hyperlinks, Actions, Action Tags, Controls, and Layer Memberships.  There have been  times when I've had to functionally link a row in one section to a row in another section, but do the linkage programmatically.  A scratch cell would be a cleaner approach.

   For example, in Vickey's situation (if I understand it correctly) you could use the connection point's D cell to hold the name of the type of connection, either "boolean" or "continuous".  Then, when the Add Connection event fires, check to see if it's allowed or not.  If not, add a small delta to the X/Y endpoint of the line to push it aside.  That way every time you try to connect, say, an electric line to a gas line, it automatically tosses the line endpoint aside and breaks the connection.  No need for a background process continually running.

   - Ken


P.S.  It's been a few years since I last posted.  Been busy with managerial positions, but now I'm back in the Visio trenches where I belong.  Good to be back!
Ken V. Krawchuk
Author
No Dogs on Mars - A Starship Story
http://aStarshipStory.com

vickey

  • Newbie
  • *
  • Posts: 6
Re: Smart Connection Points
« Reply #20 on: July 15, 2015, 06:57:58 AM »
Hi Hey Ken,

First of all welcome back!!!
 
Thanks a lot for your inputs, i will try to implement your suggestions in my code.
Could you also help me in forwarding an example to work with ConnectionsAdded()  in VBA .
This event was not firing on adding a connection to a shape.
Wapperdude thanks for your inputs too.

Regards,
Vickey


Hey Ken

  • Full Member
  • ***
  • Posts: 233
  • Just This Guy
    • The Pennsylvania Project, with Ken Krawchuk
Re: Smart Connection Points
« Reply #21 on: July 16, 2015, 07:29:52 AM »
   Thanks for the welcome, Vickey!  I can certainly commiserate with your difficulty in getting events to fire.  It was the most difficult part of learning Visio for me, and  I still get bitten by them every now and again.

   Can you post the shapes you want to join/not join together?  That'd make it easier to see exactly what needs to be done.

   - Ken
Ken V. Krawchuk
Author
No Dogs on Mars - A Starship Story
http://aStarshipStory.com

vickey

  • Newbie
  • *
  • Posts: 6
Re: Smart Connection Points
« Reply #22 on: July 28, 2015, 01:27:07 AM »
Thanks a lot Ken for your support.
I am now able to achieve the requirement and restrict the connector from connecting pins of different data types

Regards,
Vickey