multiple user-defined connector points

Bug #171027 reported by Bug Importer
116
This bug affects 12 people
Affects Status Importance Assigned to Milestone
Inkscape
Triaged
Wishlist
Unassigned

Bug Description

The connector feature in v0.43 is much appreciated for
drawing signal flow diagrams (where the connectors
always point to the CoG of the object). Now, can we
add the ability to have multiple, user-defined
connector points that can be located anywhere w.r.t the
shape?

I am an electrical engineer, so think about drawing
circuits. My NAND gate has 2-8 inputs and one output.
Flipflops have clock, chip enable, set, reset, data
inputs and Q and Qbar outputs. Get the picture?
(Dia's approach is a reasonable beginning, but Inkscape
is so much more powerful.)

Inkscape is AWESOME! Keep up the good work.

From bug 172092:

Currently connectors go between the centers of 2 objects and are clipped by
the bounding boxes of the 2 objects. Without more control, the usefulness
of connectors is limited.

Something like the "glue" points of openoffice draw would be more useful.
Maybe you could even specify whether to clip at the bounding box (or better
yet the smallest bounding shape) so that the current behavior would just
correspond to a default glue point at an object center.

When an svg is to be used as a stencil (imported into another svg), you'll
also need a way to specify hierarchical glue points that will be visible to
the whatever is using the stencil. It is probably more important to
support hierarchical glue points than ones you create on-the-fly. This
hierarchical concept could also apply to object grouping. When
manipulating a group you wouldn't see glue points on objects within a
group, but you would see glue points for the group as a whole.

You could also consider using glue points outside of just connectors. Glue
points of two objects might be attracted together so that you can easily
glue 2 obects together at the glue points. A connector could just be a
path that has glue points on its endpoints. As a matter of fact, you could
make the restriction that all glue points coincide with path (end) points.
This way, stickyness would just be a property on a path point. It would
also have a nice side effect of easily ensuring glue points are on the
boundary of an object.

Glue points would obviously be useful with diagramming, but could be useful
elsewhere.

Revision history for this message
Bug Importer (bug-importer) wrote :

The connector feature in v0.43 is much appreciated for
drawing signal flow diagrams (where the connectors
always point to the CoG of the object). Now, can we
add the ability to have multiple, user-defined
connector points that can be located anywhere w.r.t the
shape?

I am an electrical engineer, so think about drawing
circuits. My NAND gate has 2-8 inputs and one output.
Flipflops have clock, chip enable, set, reset, data
inputs and Q and Qbar outputs. Get the picture?
(Dia's approach is a reasonable beginning, but Inkscape
is so much more powerful.)

Inkscape is AWESOME! Keep up the good work.

Revision history for this message
Wilsonronl (wilsonronl) wrote :

I do like the way connectors currently (0.43) work. I would
also like the addition of user defined connection points.

The other comment gave me another thought: Allow connecting
to individual objects within a group - not just to the group
itself.

This would allow groups of objects to be more easily treated
as components.

Great work. I love Inkscape

Revision history for this message
Bug Importer (bug-importer) wrote :

User defined connection points are a MUST to make Inkscape
usable for our applications.

What is the roadmap for this very nice to have feature?
Your answer will impact our decision to adopt or not
Inkscape in one of our project (e.g. will rather use Visio).

Thanks

Ryan Lerch (ryanlerch)
Changed in inkscape:
importance: Undecided → Wishlist
status: New → Confirmed
Bryce Harrington (bryce)
description: updated
Revision history for this message
Ritola (ritola-inkscape) wrote :

I use Inkscape a lot of in drawing, and I'd love to use that for charting too. Here's my spare two cents:

I think that any of the path points would toggle in to a a glue point. You can even convert rectangles and circles in to the paths, and split the lines to have the path points exactly where you wish. Using the path points as a glue would make a huge difference comparing to the object center as in 0.43.

Using only the outmost grouping to seek the glue points, you can fill that hierarchical requirement too.

Revision history for this message
Doughy (doughywilson) wrote :

Put my vote down for more diagram/connector features in Inkscape. Some things that need improvement in Inkscape's connectors (I know I am reiterating):

- The connectors only originate from the center of the objects as explained above. This can be really frustrating.
- The connectors do not extend to the actual border of the stroke, they only extend to the rectangular meta region of the object. In other words, if you try to make a connection to a circle or rounded object at a 45 degree angle, the line disappears and doesn't look connected.
- Need ability to add glue points, as stated above.

Inkscape could pickup and really extend their user base by adding diagram and connector features. I see no reason why Inkscape can't be a fully featured alternative to Omnigraffle.

Revision history for this message
Jon A. Cruz (jon-joncruz) wrote :

This would also solve many cases where people are hitting a connector bug

Connectors should always touch the shape boundary
https://bugs.launchpad.net/inkscape/+bug/171150

Revision history for this message
Markus Luisser (mluisser) wrote :

Another vote for this one ;) - currently I need to create diagrams in OODraw and import the svg in inkscape.

In general: kudos for inkscape, I follow its development for some time now and slowly but surely it becomes the single most useful vector drawing application for me. Great stuff!

Revision history for this message
goto (gotolaunchpad) wrote :

There's now some comments (and patches) regarding connector behaviour on the Inkscape Wiki:
http://wiki.inkscape.org/wiki/index.php/UsingTheConnectorTool

jazzynico (jazzynico)
tags: added: connectors
Revision history for this message
Jason S (jason+s) wrote :

please add this functionality!

Revision history for this message
Leandro Heck (leoheck) wrote :

Hi, there are any improvements on this feature? I mean, it will be nice to have connections in specific locations of the shape. I am using Inkscape 0.91.

I think the idea is simple, just click on any part of the shape (using connection tool) and drag a line to any part of another shape. Why is it required to use the connection point for that? I think all the shape can be a connection point.

This is a must have feature for things like this:
https://s-media-cache-ak0.pinimg.com/564x/dd/03/72/dd0372a6b2d18f84777871e856ec520b.jpg

Revision history for this message
Li-aung Yip ("Lewis") (littleweseth) wrote :

Another vote for this feature enhancement.

I am an electrical engineer trying to migrate from Visio.

I'd like to draw circuit diagrams. User-defined connection points, with adjustable connection directions, are a core requirement for this.

Revision history for this message
Martin Owens (doctormo) wrote :

I have a local branch which has this feature, but it's under developed and was stalled by svg2 not accepting connector points as a part of the standard.

It might be worth resurrecting my code though for Inkscape 0.93 if there's enough people here willing to test it.

Revision history for this message
jazzynico (jazzynico) wrote :

@Martin, the connectors really need some love and you'll probably find people (including me) willing to test. But the main point is the SVG2 compliance...

Changed in inkscape:
status: Confirmed → Triaged
Revision history for this message
A (adam-projectbloc) wrote :

This feature seems to have been implemented 3 or 4 separate times over 7 years but each time it has been removed. I would very much like this feature as would many others. I downloaded the code to see if there were any remnants of implementations mentioned in the references below, but there are none. It does seem that a discussion was over how to futureproof the implementation but I'd be happy with a hack honestly just to get the basic functionality ASAP.

@Martin states above that he has a local copy with this working. I'd love to get my hands on it, even if it is just partially stable.

References:

First implementation?: http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/revision/9104

On the Connector Wiki page there's links to a page with a patch (links are dead, see archived links below) This is the a second implementation in 2008:
http://wiki.inkscape.org/wiki/index.php/Connector_tool_tutorial

The patch itself: http://web.archive.org/web/20090113095931/http://www.christoph-sommer.de/download/inkscape-svn19799-sommer_connectors_03.patch

Test SVG for the patch: http://web.archive.org/web/20090113081155if_/http://www.christoph-sommer.de:80/download/inkscape-svn19799-sommer_connectors_03.svg

Third Implementation in 2011 with a video of it working by Martin Owens: http://inkscape.13.x6.nabble.com/Inkscape-with-Visio-style-connectors-td2807430.html This actually mentions that it had been implemented previous to Martin Owens's and vestigial code existed in the codebase. It no longer exists. video: http://divajutta.com/doctormo/inkscape-as-visio.ogv Code: https://code.launchpad.net/~doctormo/inkscape/knot-visio

Martin Owens followup in 2012: http://inkscape.13.x6.nabble.com/Connector-Work-td4965691.html

Doug Schepers wrote up some info in the proposed "Jan 2011 draft of the SVG Connector 1.0 Part 2: Language" https://dev.w3.org/SVG/modules/connector/SVGConnector.html

Related requests/questions:
"Assigning connector "glue" points" https://bugs.launchpad.net/inkscape/+bug/172092
"Assigning object snap points" https://bugs.launchpad.net/inkscape/+bug/172093
"Place custom snap points onto objects" https://bugs.launchpad.net/inkscape/+bug/667372
"changing connection points" https://answers.launchpad.net/inkscape/+question/58871
"Automatic Connectors to edge of shape and routing via specific points" https://blueprints.launchpad.net/inkscape/+spec/inkscape-connectors
Forum post about how this feature could be useful for laser cutting and other CNC work: https://www.inkscapecuttingdesign.com/smf/index.php?topic=1295.0

Revision history for this message
Chris Papademetrious (chrispitude) wrote :

We really, really need this. Our team (about 40 people) uses Visio for electrical engineering diagrams. The ability to add user-defined connection points to shapes is a must-have for creating gate-level (AND, OR gates) and transistor-level schematic diagrams.

I come back to check Inkscape every couple years to see if we can migrate away from Visio, and this is the wall I hit every time. :(

Revision history for this message
Chris Papademetrious (chrispitude) wrote :

I filed the following Gitlab issue with more details:

https://gitlab.com/inkscape/inbox/issues/793

Revision history for this message
echo-e (jamesrudee) wrote :

I've spent all day looking for an open source (or at least free) application that can do this. Like others who have commented on this issue, I'm an electronics engineer looking to migrate away from Visio. I want to draw block diagrams of complex electronic systems. I want to create blocks representating sub-systems that have multiple named ports which connectors will snap to. I am happy to implement the named ports as text boxes, so long as I can attach a connection point to the text box and add it to a group. I also want to create other custom shapes (such as logic gates) with connection points placed in specific locations.

After a day of testing out various alternatives, LibreOffice Draw seems to come closest to providing this feature, however there is an annoying limitation where an object's connection (glue) points become inactive once it is added to a group. The customisation of snapping behaviour in Draw is also inferior to Inkscape, making it a challenge to use. Inkscape has been my first choice drawing tool for many tasks for many years, but it is just not usable for complex system block diagrams without the feature discussed here. After 14 years, its hard to believe we still haven't got this in Inkscape.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Related questions

Remote bug watches

Bug watches keep track of this bug in other bug trackers.