-
Notifications
You must be signed in to change notification settings - Fork 228
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feature: different gauges and different lengths in connections #268
Comments
This could be one way to show these values in a diagram: |
I would VERY much like to have different gauges per cable. For doing an automotive harness there are always multiple different wire sizes, and wire types within the harness. The view above would work very well. If the different lengths facility above were to show up, I could definitely make use of that ... |
The two feature requests in this issue are independent and can be implemented independently of each other - maybe in two different PRs, but @formatc1702 wants to finish and merge PR #251 before any other PR that change code for diagram nodes. It seems he has not been able to work much on this project the last months, so it might take a while. Anyone of us are free to create a PR based on the current |
I would also like to get more feed-back on how the new features should look like. The gauges feature is the easiest to implement, and should perhaps be done first. My suggestion above includes a summary of gauges for all wires just to the right of the wire count, but I have changed my mind, and I now suggest removing that because the same information is shown for each wire below. |
I kind of like the summary of gauges - it serves as a checkpoint. Handy to verify things, especially if you have a bundle of a LOT of wires. For example, the automotive wiring harness I'm working on has one section with 49 wires, and the main trunk with 86 wires. Unfortunately, such large wire bundles get ... cumbersome. So I was thinking of another boolean flag for a Wire object compact_view. With that set to true, the wire object would not be expanded to show every wire inside, just the information blocks. All the wires entering would collapse down to a much smaller point, and exit the other side from a similar smaller point. |
@Halfwalker wrote:
Your view is valuable input to how this proposed feature should work. Maybe such a summary should be optional? I would guess there are also cases where a summary doesn't add any insight, and the user might then prefer to avoid bloating the bundle object with repeated information.
Please elaborate. A sketch would also help. Is this new feature something similar to a bus of wires that are often viewed in other drawing tools as a thick line that splits into a set of thin wire lines at both ends? However, I suggest you create a new issue for this as it seems not direcly related to the original issue. |
@Halfwalker, have a look at my comment on the suggested twisting of wires: The compact_view that you suggested could be done in the same fashion for either cables or connectors (and splices). They can both be hidden and shrunk using the fixed size tweak. If you are to use the grouping on independend nodes (such as "virtual splices") then simply put them into a cluster. I would like to mention that Graphviz node attributes also offer a kind of grouping that would also impact edge layouting. It may be the better option, but I have not tried this yet. I could think of use cases that combine both of these ideas. You could enforce some grouping through hidden connectors or hidden wire bundles. Additionally put them into a cluster, in order to align them in the layout. This really helps to get some nice looking results. It would of course be nice to have this kind of grouping implemented, which needs to be discussed in a separate issue. |
@akikinho wrote in #378 about different lengths and gauges per wire:
Originally posted by @akikinho in #378 (comment) |
It seems that the implementation of both, wire gauge and length is becoming too complex. We should rather split up this issue into separate ones.
What needs to be discussed though, is how the suggested "grouping" would relate to the above. It might need to be implemented first if the other features depend on it. Or should it also be treated as an independent issue? |
@martinrieder wrote:
I agree. The three (or four) issues you list below seems quite independent of each other.
As I've written earlier, this is probably the easiest to implement, by optionally accepting a list value for the existing
This requires some coordination with #306 and a new We probably need to define a
As I've written earlier, this is clearly a separate issue, and it might even be in conflict with the others, as it's not clear to me how to render the information that differ between wires with such a feature activated.
It depends on how many new and existing features should be affected by such a grouping. There are many features that need some kind of grouping of wires:
It has also been discussed if cables/bundles should have been defined as a hierarchical structure that could contain groups of other cable/bundles. That would probably be a major rewrite of the basic data structure, but it could solve many of the grouping needs. Update: It might also be combined with the designator dot syntax to allow both named and unnamed groups and multiple instances of the same group. Grouping of pins in a connector might also be a future need, so it'll be nice to have in mind that a grouping feature might later become common for both connectors and cables. |
Note that the following suggestion would be in conflict with strict hierarchical structures: YAML itself is well suited for hierarchical structures, but keep in mind that it limits flexibility when they are strictly enforced. WireViz already breaks the hierarchy by employing designators to link connectors and wires though connection sets. This non-hierarchical feature enabled some interesting additions like auto-generation and arrows. |
In my harness design attempts (see #431), I've resorted to making individual "cables" for all the different wire gauges and types in order to overcome the lack of the features mentioned here. This also made it possible to specify all the conductors in multi-conductor cables as individual wires in the no-longer-bundled cables, without duplicating them in the BOM. Just being able to specify gauge individually would not solve the problems with multi-conductor cables. I think we have to think carefully about how to best specify wires. The current syntax seems aimed at describing flat-cables connected to PCBs by KK254 connectors in electronics, and then bandaided with the bundle declaration. In order to truly describe both harness bundles, where the BOM should count the "outer" cables in the bundle, and connections at connectors, where each individual connector in every wire must be included, I think the bundle description has to be hierarchic. In my project, where I'm generating a wireviz input file from my own, top-down description of a harness, I came up with a description like this:
I think the basic structure above is the minimum amount of information needed to describe the structure of a wire harness. There are potential extra things you might need, like specifying bundle coverings like heat shrink and transition boots that should go in the BOM, but you'd need a very complicated harness to not be able to keep track of that by hand. The termination details can also get very complicated. In order to properly terminate those Canbus cables you are supposed to use a solder sleeve with attached braid, which is terminated to a ring terminal, which is screwed to the connector housing. The part no for the connector pins may depend on the gauge of the wire being crimped, etc. Designing a system able to describe this kind of detail would be difficult.) Now, rendering a hierarchical cable structure like above in the current style such that it's intelligible would be, imho, impossible. You also need hierarchical renderings with an outline of the structure, separate details of the connectors, and details of the wires in the bundles. Anyway, some thoughts that might give someone ideas. |
The text was updated successfully, but these errors were encountered: