Pipe Tool Placement Mission Impossible

It's been a little while since I've had to do a P&ID screen, and I'm struggling to use the pipe tool... There are waay too many snap points on the screen, the large majority of them being in not-useful places, for the piping tool to be useable :confused:
We need to be able to position these using the arrow keys, and have modifier keys available to us to, with the mouse:

  1. ignore snap points
  2. move a point along the same vert/horizontal line / at fixed angles from the adjoining point (currently possible with alt, however this also ignore snap points. These two functions should be separated to give better control)

with the arrow keys:

  1. move the point along the same vert/horizontal line
  2. move by 10px instead of 1px

I don't know how I'm going to be able to position all of these pipes to be honest...

5 Likes

The current pipe tool is a manifestation of the phrase "technically correct, but practically useless".

4 Likes

Reminds me a bit of trying to rearrange the components within a column container back in the day when I first looked at using them. I don't know if that's gotten any better as I very quickly removed them from my repertoire, but that was always something that induced a flurry of curse words!

I think I'll have to use an SVG...

1 Like

Same :laughing: Tried it once, realized ā€œhuh, this isnā€™t greatā€, and then have exclusively used Flexbox since.

That, or Iā€™d also recommended the classic ā€œlabels-as-pipesā€ trick.

2 Likes

I used to use these, but always ran into the issue of them not aligning properly at slightly different resolutions :weary: a single SVG will always be aligned, at least to itself

This isn't great about the Piping Tool either:

image

zoomed in...

image

image

It's the details that are the difference between amateur and professional for a GUI

2 Likes

I'm going this route after all... SVGs are too hard to manipulate

1 Like

Disclaimer: Iā€™m not trying to put down the work IA has done on the piping tool. Itā€™s a technical challenge, and itā€™s obvious that a lot of thought has been put into the tool to get it to its current state. However, if I canā€™t get a tool to put a line where I want 100.00% of the time, Iā€™m going to use something else instead.

Itā€™s also kinda funny how using keyboard shortcuts to align lines has been the workflow for building P&IDs across all HMI platforms since forever.

15 Likes

Hello! I'm the developer of Perspective Piping. I understand your frustrations: honestly there are many things I would do differently if I were redeveloping Piping including:

  • Rendering I'd lean towards a single element versus the current method of a jumble of elements with complex clipping and masking. Not that there aren't other complexities that this would introduce including how to handle onClick events and fill gradients
  • Direct DOM updates - a technique I've used in the Drawing Editor to increase performance. React is great at many things, but it's lifecycle is noticeably slower than ideal for real time drawing apps
  • Snapping, as noted here, becomes unusable with the ever increasing number of snap points. It would be great if we had a configuration panel/setting to control instead of an on-off modifier. Keyboard shortcuts would massively improve the experience as well.

Unfortunately these ideas for improvements aren't likely to be implemented in the short term as the Drawing Editor has my attention, but they are on my radar.

In the mean time, @nminchin I suggest nesting a Coordinate container, and using that nested Coordinate container as a "Pipe Container". This will limit the snapping to pipes within the Pipe Container.

6 Likes

@mperkins, do you have any sight on when the piping tool can get back on your radar? Disabling the snapping and change the point pixels with arrows would already be a life-changing experience for many of us.

4 Likes

Arrow-key movement would be my voted priority, as the separate coord container is an ok work around. There's no workaround for pixel accuracy at the moment though, especially when you have to move pipes after you've moved your embedded view device symbols :confused: currently, you have to move your pipework to "about right" and then go back and move all of your device EVs with the arrow keys to get it right. It's a bit gross

Thank you for your patience, I know Piping has been on the backburner. Unfortunately 8.3 release would be the earliest, however realistically I expect a flurry of post-release enhancements and bug fixes for the Drawing Editor to take priority.

This is very disappointing news. We have so far gone with the piping tool in most of our PID screens because I was banking on IA to improve the piping experience over time meaning that all that work is not lost.

We do have templates to use labels as pipes and do use them in some cases but the tradeoff there is having a bunch of labels on the screen that are not connected to each other like the pipe tool is.

Please reconsider improvements to the pipe tool sooner. It is the only first party way to do PID lines.

3 Likes

But it won't be anymore with the drawing tools. If it looks anything like what I imagine, pipes might even become completely obsolete

I don't think this is the direction, unless you plan to create all of your P&ID screens in the one SVG. Pipes still should be created in the main View, not in another window, as you need to reference the positions of other objects in order to actually place them. So unless the drawing tools replace the View editor itself, then I think the piping tool is here to stay. It's almost there, it just needs the finishing touches to make it easier to use.
It's like MS Word missing the ability to move the cursor with the keyboard and instead having to move it with your mouse. However it's impossible to move the cursor into the right position to align to an existing letter, so you have to move it to the closest spot and then use the keyboard to move all of the letters to align to the new cursor position :face_with_hand_over_mouth: it's so close..

6 Likes

I think you may be able to hold one of the keys (alt, shift, or ctrl) while dragging the endpoint to ignore snap points, but I may be misremembering it.

edit: yes, holding alt ignores snap points. Holding shift overrides the horizontal/vertical restriction and ignores snap points.

1 Like

The issue with the modifier keys though is that you want some of the functionality that the modifiers remove to move the nodes to the right spots.

For example, holding alt will:

  • ignore snap points (good)
  • snap to a fixed set of angles from the previous node (0deg, 15?deg, etc.)
  • will not move the previous node (not good; I want to do this)

2 Likes

To get my pipes lined up I place my own temporary pipe snap points, then go through later and clean them all up. Based on size of screen and complexity I will zoom right in and place pipe ends side by side x pixels apart.

At this point it's a practice in mindfulness :sweat_smile: for about 10 minutes then I can carry on.

Though.. don't get me started on if I want to delete a pipe and then manually move all of my pipe bindings 'up one' :rage:. They all stay linked to n pipe rather than auto updating to n-1 as the pipe is removed.

2 Likes

Oh wow, I didn't realise this.. that's messed up. I can only image how badly a complex pipework can be destroyed by this :dizzy_face: Someone deletes a pipe, adds some more, and then POOF, all of your pipe animations are completely destroyed (well, they're shifted at least, with the work to fix them being a lot of work). This sounds like a major bug @mperkins

It's ok when you know, but the first time ohhhhh boy

2 Likes