Inkscape.org
Beyond the Basics does anyone else want Visio-like connection point functionality?
  1. #1
    Chris Papademetrious Chris Papademetrious @chrispitude
    🖈

    Hi all,

    I filed an Inkscape enhancement request for Visio-like connection point functionality:

    #793: Support multiple user-defined connection points on objects

    Most folks here seem to be artists, but I see an opportunity for Inkscape to be used in the technical publications space. Is anyone else looking for this functionality?

     - Chris

  2. #2
    brynn brynn @brynn

    Welcome to the forum!

    Inkscape does have the Connector tool.  http://tavmjong.free.fr/INKSCAPE/MANUAL/html/Connectors.html 

    You may find it has some of the features you want.  Personally I find it a bit buggy, but I certainly hope it can be improved.

  3. #3
    Chris Papademetrious Chris Papademetrious @chrispitude

    Thanks for the reply and the welcome!

    Yes, I did try the current Connector tool. Unfortunately it's very limited compared to what we'd need for schematics and other technical diagrams. I tried to identify and capture exactly what improvements would make it usable for technical work. If you click on the enhancement request link above, you will see some animations showing the Visio-like behaviors that would be needed in Inkscape.

    The fact that Inkscape uses SVG as its native format makes it very desirable to use for technical drawings. This allows thousands of illustrations to be directly stored and edited along with the the text content, instead of having to maintain separate drawing and output files (and preventing them from getting out of sync).

    I'm new to this community. What's the best way to champion for an enhancement? Is it possible to pledge donations in exchange for features?

    Any guidance is appreciated!

  4. #4
    brynn brynn @brynn

    I applaude your request, and I hope someone can work on it.

    It is indeed possible to pledge donations in exchange for features.  I know a guide has been written for it.  But I don't think anyone has actually done it yet. At least not that I know of.  If in fact not, the guide could probably use a good "shakedown" trial.  Let's see if it's still where I saw it before....  Ah-ha, found it!  https://inkscape.org/support-us/funded-development/

    Let us know if you have any questions or comments.  I probably can't answer them, but others will be able to.

  5. #5
    Martin Owens Martin Owens @doctormo🌹🧀

    I worked on this problem back in 2011, it was a hack and was held up by SVG 2.0 standards hagling. But since the SVG 2.0 stuff failed, we should probably look at doing this again:

    http://divajutta.com/doctormo/inkscape-as-visio.ogv

  6. #6
    Chris Papademetrious Chris Papademetrious @chrispitude

    @doctormo - it was exciting to watch the proof-of-concept demo and see such functionality in Inkscape!! It would be great to revive this effort. I think it could increase the applicability (and user base) of Inkscape quite a bit.

    I don't know if you saw my feature request, but it isolates a lot of the pieces we would need to make a fully capable feature.

  7. #7
    Martin Owens Martin Owens @doctormo🌹🧀

    Chris, if you'd like to move this forward for the 1.1 release, we should work on the first features that move us closer to the goal.

    Your issue is very detailed, but it contains a bit too much in one go. This might not be a problem as we could use it as a base from where we can spring other issues to figure out the next step. One step at a time 🙃

  8. #8
    Maren Hachmann Maren Hachmann @Moini

    The Attach Path LPE could be useful here, maybe? https://framadrive.org/s/MYoPQq2zPyUcbq0 (mp4 Video)

    https://wiki.inkscape.org/wiki/index.php/Release_notes/0.92#Attach_Path (Release notes info)

  9. #9
    Chris Papademetrious Chris Papademetrious @chrispitude

    Maren - very cool, thanks for sharing this! I watched the video, then played with the feature in the latest 1.0b2 build. The LPE engine seems like a good infrastructure for storing and internally implementing Visio-like dynamic connectors, but we'd still need a first-class UI for creating/deleting/attaching to connection points, as demonstrated in Martin's prototype.

    Martin - I'm happy to do anything in my skill set to advance this forward! A phased approach certainly makes sense. My issue was intended to capture all the pertinent details of a complete solution, but certainly not to imply that we need it all at once!

    What can I do next?

  10. #10
    Martin Owens Martin Owens @doctormo🌹🧀

    Chris, as champion of this feature the first thing to do is to think about the first feature that would help people make diagrams.

    We should also chat more (instead of the forums) we chat using rocket chat at https://chat.inkscape.org and we could pick apart the core of what's needed.

  11. #11
    Harry Moyes Harry Moyes @Shoka

    Vote for improved connection point features.

    The attach to object center works ok for simple objects, but seems to fail on more complex object.

    User ability to specify the attachment points, and limit attachment to only specified points would be of huge assistance in drawing up network diagrams and the like.

  12. #12
    logir logir @logir

    Hello,

    I am here to say that I agree, this feature would be great to have! In my office we are moving to Libre Office Draw for the lack of connecting tools.

    Can i ask what is the status of this feature? I saw this commit by Martin Owens that seems a good start.

     

  13. #13
    Chris Papademetrious Chris Papademetrious @chrispitude

    Hi @Shoka, @logir, all,

    My company is looking into supporting @doctormo's Inkscape Patreon, located at the link below, to fund his attention in this area:

    https://www.patreon.com/join/doctormo?

    If you are able, please also join it and voice your support for this functionality! Martin agrees that collective support for this functionality is a promising way to achieve it.

    You can see more about what he works on here:

    https://www.patreon.com/doctormo/posts?filters[tag]=inkscape

    All the best,

     - Chris

  14. #14
    Chris Papademetrious Chris Papademetrious @chrispitude

    @logir, I want to make Inkscape work because LibreOffice Draw can export to SVG, but it does not save its own application data natively within the SVG. Thus, we'd have to keep both .odg and .svg files around. (I think?)

    With Inkscape, the same .svg file would single-source both the editing application (Inkscape) and our downstream publishing flows.

    How do you plan to handle this in your flow?

  15. #15
    Chris Papademetrious Chris Papademetrious @chrispitude

    Hi @logir,

    Although LibreOffice Draw claims to support custom connection points on objects, I wasn't able to get it to work. And I found many discussions going back years for others who also had issues.

    Have you had a chance to try it out? Maybe you can figure out what I missed!

  16. #16
    Chris Papademetrious Chris Papademetrious @chrispitude
    *

    Time for a good thread bump - Martin is making this feature happen!!

    Here is the original enhancement request issue:

    #793: Support multiple user-defined connection points on objects

    and here are some videos documenting the feature progress:

    Connector Tool? Jog On! - Inkscape Developer Update May 8th 2021

    Connect the Dots - Inkscape Developer Update 15th May 2021

    Disconnect! Fire! Rebirth! - Inkscape Developer Update May 22nd 2021

  17. #17
    Chris Papademetrious Chris Papademetrious @chrispitude

    You can follow along here for more details:

    !3234: WIP: Connector refactoring as a Live Path Effect

  18. #18
    Jerome Jerome @mutterer

    Hi Chris,

    We recently created a set of extensions to create document content from code typed in inkscape object description. Primary use is for creating reproducible scientific figures in inkscape, backed by third party software specialised in some areas. For example ImageJ that does image processing and has image readers for common microscopy file formats, or R, or PyMOL that specialises in drawing 3D views of molecules.

    Each document object can have it's own code, but I figured that inkscape had connectors, so I added the ability to connect figure panels that each carry code portions. Assembling those bits of code in the order of object connections reconstructs a full program, which can be run, showing for each panel intermediate states. A video showing this is available here: https://twitter.com/jmutterer/status/1390018945059536901

    This is why I'm now following connectors refactoring by @doctormo . The current version of connectors works for my application, but improved layout is certainly something that would be nice to have. From a technical point of view, I 'just' need to parse all connector objects and find out which objects they start from and end at, to reconstruct the connection graph for a given object. The points vs objects case I raised can be overcome by getting the point's parent. I can do this in my code, or it could be done by the connector tool to get the point's parent perimeter and adjust the display. If some points need a special rendering scheme, I feel they could maybe have the "inkscape:original-point"  "center" attribute to signal this. But again I can probably also handle this in my extension code.

    The other programmatic use I'm thinking of would be creating connection points automatically, based on my object content. For example, an object displaying a 3 channels image could benefit from having 3 output connector points ready to export individual channels to downstream objects, etc.

    Jerome.

  19. #19
    FridgeDefend FridgeDefend @FridgeDefend

    Bein a mechanical engineer, and given the question I just posted, with not answers to it!

    Yes, we use VISIO, and we would like functionality!

    As an aside, the massage we posted, we cut and paste from PowerPoint 2016 the graphics for the fishbone diagram see here, but the bugs are still not fixed:

    https://www.arprv.com/#fishbone

    If someone can help me with my post, please do!

     

  20. #20
    Alan Alan @CaptKarnage

    So, how is this project going? I recently discovered InkScape and I love it, except as an electrical engineer I really wish it did THIS. It does everything else so well, and I think it snaps better and more consistently than Visio and I love the interface and the control over object placement that is much easier and quicker. Still discovering new features. But trying to do a diagram if there's more than one connection to an object is too big of a pain for it to be useful to me as an engineer right now.

  21. #21
    Chris Papademetrious Chris Papademetrious @chrispitude
    😀

    @mutterer - thanks for the detailed explanation! I really like how you're looking to take advantage of the XML-accessible stuff inside the SVGs for this. This is cool stuff, and it demonstrates the usefuness of SVG being an open and accessible format.

    @CaptKarnage - Hello, fellow E.E.! I am also excited to see Inkscape starting to move toward more general structured drawing use, rather than focusing on art and graphic design. The connection point functionality is in the last stages of testing and refinement, but it's not too late to test it and have your own feedback heard! @doctormo has a pull-request page for the connection point feature here:

    https://gitlab.com/inkscape/inkscape/-/merge_requests/3234

    You can read through the posts to follow the evolution of the feature. Normally you'd be able to download a linux nightly build of the feature from @doctormo 's new "feature-in-progress" builds page:

    https://inkscape.org/release/inkscape-inprogress/

    but it looks like the connection point pull request (look for !3234, currently on page 2) can't find its artifact at the moment. Looking at the !3234 page itself, I see that the pull request needs to be rebased for the build to succeed. He's pretty good about getting that resolved.

  22. #22
    Chris Papademetrious Chris Papademetrious @chrispitude
    😀*

    Hi everyone,

    @doctormo just checked in a nice juicy chunk of functionality to the !3234 pull request to implement control points at the midpoints of orthogonal route segments. This matches the user interface of both Visio and draw.io, providing a familiar route-editing interface within Inkscape.

    It's great to see Inkscape expanding solidly from the graphic design/illustration space into the drawing/diagramming space!

  23. #23
    Chris Papademetrious Chris Papademetrious @chrispitude

    Here's a great video update from @doctormo on the current state of the Visio-like connector feature for Inkscape!

    Connectors 2.0 Project - State of the Feature (YouTube)

  24. #24
    mipmip mipmip @mipmip

    I just announced an Inkscape Cloud Architect project on GitHub. Currently this is just a nice packed version of other people's earlier work. I don't need much credits. What I want to point out is that the interest and enthusiasm about making diagrams in Inkscape was overwhelming. 11k+ unique visitors via Hacker News in 24hours. It's clear that a lot of people would love to have Inkscape in their architecture toolkit.

    Maybe it's a little blunt to ask, but what kind of sponsoring amount would help this project to get finished. E.g. for version 1.4 or 1.5? Maybe we could setup a kickstarter project to get the funding? I would love to help, as I'm a big Inkscape fan and daily user.

  25. #25
    Chris Papademetrious Chris Papademetrious @chrispitude

    @mipmip - that is great to hear! I think the best thing to do would be to encourage interested parties to support @doctormo's Patreon:

    https://www.patreon.com/doctormo/

    then have them voice their support for the connectors tool in the comments section of his weekly YouTube video updates. From what I remember, in the last poll that he ran, CMYK was #1 and the connectors tool was #2, so we're getting there!

  26. #26
    horror-vacui horror-vacui @horror-vacui

    I really miss this feature. Is there any way I can track the progress and the integration into inkscape? Basically I would like to get a notification when this feature will be added or will be provided as an extension.

  27. #27
    Chris Papademetrious Chris Papademetrious @chrispitude

    @horror-vacui - your best bet is to join @doctormo's Patreon, then advocate for this feature via post/video replies and surveys. This feature is on his to-do list, but he will prioritize according to funding and requests.

Inkscape Inkscape.org Inkscape Forum Beyond the Basics does anyone else want Visio-like connection point functionality?