New Feature: Perspective Piping

Technically yes. Each pipe has a single origin. However different connections can overlap, so you could lay down some pipes in such a way that it appears they're all leading into the same point.

Technically doing so would merge the different pipes, so if that's a problem (such as when using the Mid Arrow line variation) you can simply press undo once, which undoes the merge, but leaves the connection at the new position.

HvI7q3Sw2G

2 Likes

I am also experiencing this issue, I have 64 pipes on a screen. Very chunky while scrolling.

Update: If I delete just the pipes the view is fine. If I delete all the other components, the view is fine. Itā€™s only when both are on the screen that it causes issues.

1 Like

Really, itā€™s a common issue with Perspective pages in general, where the more content you have on them, the slower they go. I donā€™t think I ever saw this in Vision, but they are completely different technologies, one I assume (HTML/CSS) being far more dynamic and fluid which bites when you try to give it too much. You see this even with other websites that have lots and lots of content. I really hope that there is some magic wand to make it better, but I donā€™t think there will be without scaling up hardware specs.

2 Likes

I donā€™t think Iā€™ve seen any webpage as slow as some of the perspective pages Iā€™ve made. Although I donā€™t think Iā€™ve seen pages with as much dynamic content (Maybe live timing pages? But they load pretty quickly). Iā€™d like to think that there isnā€™t something fundamental that limits perspective, but after 2 years of pages taking 4+ seconds to load, Iā€™m not getting my hopes up. Itā€™s much more powerful than other SCADA systems, but itā€™s hard to explain that to a customer when they see their old system loading pages instantly.

3 Likes

mmmmmmmm

One thing I really wish we have in perspective is having java script coding only for visualization part so the code run directly in browser and make everything faster composure to pass value to server and server did the job and pass it again.

For example consider you want to create a simple slider component that drag an object and move around which is not possible at all with python, because every single pixel movement cause event and in that event a python script run in server and send back data to browser again which is slow even in local lan.

So, Iā€™ve been doing some performance testing with Piping, and your concerns are valid. Piping makes use of a feature called ā€œmaskingā€ to render the Simple and Mimic pipe joints, and to render the gaps for P&ID Pipes, and there seems to be a fundamental limit to how many masks the browser can handle- and itā€™s fundamentally frustrating to debug because it doesnā€™t always show up in the Chrome Web Developer performance logger. Some effort was made pre-release to optimize these masks, and there is a ticket that has been logged to optimize them even more aggressively- not sure if that solution will be completely satisfactory, but it is an improvement. It may just be that we end up abandoning masking entirely and figure out some other way to draw the PID gaps and the Simple/Mimic joints.

5 Likes

Hi @mperkins
Is it really hard to support onlclick event on pipelines, so in the event it return the Id/name of the pipeline that user clicks?

3 Likes

I havenā€™t used piping yet, but is it possible to style each pipe segment individually for pipe animation?

1 Like

I have a few comments from other colleagues who have just started using the piping tool. I havenā€™t confirmed any of these personally.

  1. Unable to select and move pipes and components together
  2. Unable to order pipework over the top of other components, for example to show pipework inside of a tank
  3. Unable to move pipework or pipework vertices with the keyboard arrow keys. This makes moving pipes beside each other parallel to each other quite difficult as they try to snap to everything around them.
  4. There seem to be + anchors placed somewhat randomly on different components. Sometimes theyā€™re positioned ok, others theyā€™re not (the valve inlet/outlet) or theyā€™re irrelevant (e.g. on a level indicator):
  5. You canā€™t add a new pipe section and have it intersect with another existing pipe without it combining with the existing pipe.
  6. Itā€™s not possible to detach a segment of a pipe, e.g. detach a t-junction pipe to separate them into 2 pipework objects for example so that you can animate them separately
  7. Itā€™s not possible to create pipe ā€œbranchesā€. The end of the branch remains detached from the main line:
    image
    Edit: it seems the way to do this is to separate the branch sides and create them from either side into the centre of the device instead and donā€™t join them in the middle (they wonā€™t join actually)
  8. Selecting pipe nodes doesnā€™t show and highlight the node in the connections property panel. We also need some way to go the other way, i.e. when a node it selected in the connection property, indicate which node this is on the gui.

@mperkins
Ive found html3Canvas to be much more powerful to draw than svgs. Ofc its a whole different way of working, as it uses javascript to draw everything. So I'm not sure if its feasable to use in the designer. Maybe worth looking into though.

1 Like
  1. Unable to select and move pipes and components together

Unfortunately, pipe connections and components are purposely not sticky - this is highly unlikely to change

  1. Unable to order pipework over the top of other components, for example to show pipework inside of a tank

This is an issue that was brought up early in development, the reason is all pipes within the coordinate container are contained in a single SVG. There would be no way to reorder the pipes individually relative to components without separating them into separate SVGs, and treating them like components (which they're not). A workaround is to nest another coordinate container- which would contain the pipes you want to display on top, and manipulate the z-index of that coordinate container

  1. Unable to move pipework or pipework vertices with the keyboard arrow keys. This makes moving pipes beside each other parallel to each other quite difficult as they try to snap to everything around them.

hot keys are on our radar

  1. There seem to be + anchors placed somewhat randomly on different components. Sometimes theyā€™re positioned ok, others theyā€™re not (the valve inlet/outlet) or theyā€™re irrelevant (e.g. on a level indicator)

The + anchors are placed at the north, east, south, west locations of most components, including the level indicator. See my screenshot with added outline which shows why they are where they are within the component.

For symbols we attempt to place them in "natural" locations. That valve inlet does seem to be 5-10px off though.

moving analog indicator

  1. You canā€™t add a new pipe section and have it intersect with another existing pipe without it combining with the existing pipe.

Sure you can, after they combine ctrl + z will undo the combine, pressing it a second time will undo the move

  1. Itā€™s not possible to create pipe ā€œbranchesā€. The end of the branch remains detached from the main line:
    image
    Edit: it seems the way to do this is to separate the branch sides and create them from either side into the centre of the device instead and donā€™t join them in the middle (they wonā€™t join actually)

yep, as you discovered you can't join a pipe segment to a pipe segment belonging to the same pipe. This is because pipes are effectively a tree data structure

  1. Selecting pipe nodes doesnā€™t show and highlight the node in the connections property panel. We also need some way to go the other way, i.e. when a node it selected in the connection property, indicate which node this is on the gui.

That would be a good enhancement, but there are some problems to work out. Mainly that the Pipe Property Editor is geared towards properties that affect the whole pipe, where as you're asking for settings that affect only the connection. Making that clear to the end user is tricky

unfortunately not in this implementation, we're limited to the appearance props that affect the entire pipe

It's unlikely that we'll switch to canvas, as we'd like to have a "flatten" or "convert to SVG" feature in the future, and having pipes be based on SVG's already makes that conversion a lot easier. SVG's are a lot easier to have per-segment click events too, which we don't have yet, but I see @nader is asking for.

1 Like

When I say they can't be moved together, I meant more that you can't select components and pipes together and move them as one. You can either select pipes or you can select components, but if you want to move a selection of components and pipes together, you need to do it in two moves.

yeah that is a little obnoxious to not be able to move them at the same timeā€¦

some brain storming:
one idea would to replace Component Selection tool with some sort of ā€œpipe off modeā€.

Weā€™d have

  1. ā€œPipe off modeā€(disallows pipe manipulation)
  2. Pipe Draw tool
  3. Pipe Move tool

#1 would remain and function as it currently does - so that we donā€™t clutter the UI with Pipes when we donā€™t need them
#2, and #3 would still be separate- since they have different UIs that conflict, and merging them would be confusing, but both would be enhanced to allow for component manipulation in all 3

just an idea

if you use the same properties to construct the canvas you can still use them to ā€œconvert to svgā€ i suppose.
Events are also possible in canvas, but a bit harder to use i guess. I think the only real problem would be styling. As css just doesnt really work the same way on canvas.

Hi folks!

Our product design team at Inductive Automation is very interested in your experiences with the Perspective piping feature so far. We would appreciate if you could take a few minutes to help us fill out this survey for feedback. Thank you very much and have a wonderful day!

Is there a way to make the distance between flanges in the pipes longer?

Piping

I want the distance before a flange appears to be longer than the default distance.
Is there a way to do that?

there isnā€™t currently a way to do this directlyā€¦ one kludgy solution would be to add additional connections to prolong the flange from appearing. Adding a ā€˜minimumFlangeDistanceā€™ would be a great enhancement

flange distance