Closed petrvanekrobe closed 1 month ago
This is already part of the connections or?
Thank you @moritzstaffel
I hope i have found the correct @BartvanStiphout , apologies in case this is a wrong one :)
@BartvanStiphout can you perhaps explain the use case, so we can check if it aligns with what is already provided in MVR?
Thank you Petr
Hello,
I am the developer of PatchPrinter, which is a preproduction/planning tool. With PatchPrinter you can assign a power circuit and a universe to a fixtures, powercircuits can be assigned to power distributors etc etc. PatchPrinter then will generate all the paperwork and labels. To get an idea you can look at https://www.patchprinter.com. Since a lot of people allready assing circuits to the fixtures in their favourite CAD software, it would be nice to include that data also in the MVR spec. Now that only can be imported from a .csv file.
To cover 99% of the fixtures, a simple circuit name and circuit number should be sufficient:
<Fixture name="Robe iSpiider" uuid="1175DB0B-8E7D-4490-8ACD-A187C491D28F">
<CircuitInfo name="Socapex 13" number="4"/>
</Fixture>
To cover all fixtures, a reference to the GDTF Geometry Type Wiring Object Name can be included:
<Fixture name="Robe iSpiider" uuid="1175DB0B-8E7D-4490-8ACD-A187C491D28F">
<Circuits>
<Circuit name="Socapex 13" number="4" ref="Mains"/>
</Circuits>
</Fixture>
When the GDFT file does not include the Wiring object for the mains, it can be assumed that the fixture only has a single mains connection en the ref field can be omitted.
@petrvanekrobe told me there is work in progress for a protocol to communicate the modifications in MVR files. It would be nice to include this as well. Is there a place the current state of the protocol can be reviewed?
Thanks,
Bart
@bartvanstiphout Look at https://github.com/mvrdevelopment/spec/blob/main/mvr-spec.md#node-definition-connections
This allows the connection of GDTF to be defined by MVR. It references the UUID of another MVR Object and the Geometry of the linked GDTF Geometry.
<Connections>
<Connection own="Input" toObject="8BF13DD7-CBF4-415B-99E4-625FE4D2DAF6" other="Output1"/>
<Connection own="1" toObject="8BF13DD7-CBF4-415B-99E4-625FE4D2DAF6" other="IN"/>
<Connection own="2" toObject="8BF13DD7-CBF4-415B-99E4-625FE4D2DAF6" other="IN"/>
</Connections>
@moritzstaffel This is already a good starting point. However, this assumes the object the fixture is connected to is an entity with a UUID. This is often not the case I believe, since most "stamps" are just text fields. The CAD software now should know while assigning the circuit what kind of multi cable for instance fixture is assigned to. This is a practical thing I don't see happen in the near future. Therefor the Connections object could be extended something like this:
<Connections>
<Connection own="Input" toUndefinedObject="Socapex 12" other="2"/>
</Connections>
I believe this will be much more convenient to implement for the CAD software developers but even more for the users of those CAD software.
@bartvanstiphout This is currently how it is working in Vectorworks for example.
The virtual Plugboxes by name would make problems, because name changes are hard to get.
Hi guys,
we didn't manage to discuss this with @moritzstaffel today, but my presumption is that VW creates a dummy object for this, so it can have UUID attached and can be converted/replaced, changes tracked and so on?
@petrvanekrobe Yes that is right.
What will be the value in the other field then? Just a number or a specific string?
@bartvanstiphout , did you figure this out of is an input from our side still needed? Thank you. P.
@petrvanekrobe No, not yet. If someone could provide me with an example file I can implement it that way. Just need to know whether it is er number, specific string. Thanks!
Hi @moritzstaffel when you have a bit of time, can you please comment here? Cheers :) P.
Yes as discussed today, I will try to create an example how this works.
@moritzstaffel Hello Moritz, is the example already available? Thanks, Bart
Yes. here it is:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<GeneralSceneDescription verMajor="1" verMinor="5">
<UserData/>
<Scene>
<Layers>
<Layer name="None" uuid="00000000-0000-0000-0000-000001000000">
<ChildList>
<Fixture name="Coef7 MH RGBW" uuid="61AF4D8E-EB7D-11EE-8EC5-68545A984149">
<Connections>
<Connection other="Base.Pigtail.Power OUT" own="Base.Pigtail.Power IN" toObject="61AF4D8F-EB7D-11EE-8EC5-68545A984148"/>
</Connections>
</Fixture>
<Fixture name="Coef7 MH RGBW" uuid="61AF4D8F-EB7D-11EE-8EC5-68545A984148">
<Connections>
<Connection other="Base.Pigtail.Power IN" own="Base.Pigtail.Power OUT" toObject="61AF4D8E-EB7D-11EE-8EC5-68545A984149"/>
</Connections>
<GDTFSpec>User Test@Coef7 MH RGBW@PA_Export.gdtf</GDTFSpec>
<GDTFMode>Mode 1- Reduced 8 - bit</GDTFMode>
</Fixture>
</ChildList>
</Layer>
</Layers>
</Scene>
</GeneralSceneDescription>
<Geometries>
<Geometry Model="Base" Name="Base" Position="{1.000000,0.000000,0.000000,0.000000}{0.000000,1.000000,0.000000,0.000000}{0.000000,0.000000,1.000000,0.000000}{0,0,0,1}">
<Axis Model="Yoke" Name="Yoke" Position="{1.000000,0.000000,0.000000,0.000000}{0.000000,1.000000,0.000000,0.000000}{0.000000,0.000000,1.000000,-0.072000}{0,0,0,1}">
<Axis Model="Head" Name="Head" Position="{1.000000,0.000000,0.000000,0.000000}{0.000000,1.000000,0.000000,0.000000}{0.000000,0.000000,1.000000,-0.155000}{0,0,0,1}">
<Beam BeamAngle="42.400000" BeamRadius="0.069500" BeamType="Wash" ColorRenderingIndex="75" ColorTemperature="8000.000000" FieldAngle="60.000000" LampType="LED" LuminousFlux="2288.000000" Model="Beam" Name="Beam" Position="{1.000000,0.000000,0.000000,0.000000}{0.000000,1.000000,0.000000,0.000000}{0.000000,0.000000,1.000000,-0.130000}{0,0,0,1}" PowerConsumption="220.000000" RectangleRatio="1.777700" ThrowRatio="1.000000"/>
</Axis>
</Axis>
<Geometry Model="Pigtail" Name="Pigtail" Position="{1.000000,0.000000,0.000000,0.000000}{0.000000,1.000000,0.000000,-0.074917}{0.000000,0.000000,1.000000,-0.038038}{0,0,0,1}">
<WiringObject ComponentType="Consumer" ConnectorType="PowerconTRUE1" CosPhi="0.970000" ElectricalPayLoad="220.000000" FrequencyRangeMax="60.000000" FrequencyRangeMin="50.000000" FuseCurrent="0.000000" FuseRating="B" MaxPayLoad="0.000000" Name="Power IN" Orientation="Left" PinCount="3" Position="{1.000000,0.000000,0.000000,0.000000}{0.000000,1.000000,0.000000,0.000000}{0.000000,0.000000,1.000000,0.000000}{0,0,0,1}" SignalLayer="1" SignalType="Power" Voltage="0.000000" VoltageRangeMax="240.000000" VoltageRangeMin="100.000000" WireGroup=""/>
<WiringObject ComponentType="PowerSource" ConnectorType="PowerconTRUE1" CosPhi="0.000000" ElectricalPayLoad="0.000000" FrequencyRangeMax="0.000000" FrequencyRangeMin="0.000000" FuseCurrent="240.000000" FuseRating="B" MaxPayLoad="0.000000" Name="Power OUT" Orientation="Left" PinCount="3" Position="{1.000000,0.000000,0.000000,0.000000}{0.000000,1.000000,0.000000,0.000000}{0.000000,0.000000,1.000000,0.000000}{0,0,0,1}" SignalLayer="1" SignalType="Power" Voltage="240.000000" VoltageRangeMax="0.000000" VoltageRangeMin="0.000000" WireGroup=""/>
<WiringObject ComponentType="NetworkInput" ConnectorType="XLR5" CosPhi="0.000000" ElectricalPayLoad="0.000000" FrequencyRangeMax="0.000000" FrequencyRangeMin="0.000000" FuseCurrent="0.000000" FuseRating="B" MaxPayLoad="0.000000" Name="DMX 5Pin IN" Orientation="Left" PinCount="5" Position="{1.000000,0.000000,0.000000,0.000000}{0.000000,1.000000,0.000000,0.000000}{0.000000,0.000000,1.000000,0.000000}{0,0,0,1}" SignalLayer="2" SignalType="DMX512" Voltage="0.000000" VoltageRangeMax="0.000000" VoltageRangeMin="0.000000" WireGroup=""/>
<WiringObject ComponentType="NetworkOutput" ConnectorType="XLR5" CosPhi="0.000000" ElectricalPayLoad="0.000000" FrequencyRangeMax="0.000000" FrequencyRangeMin="0.000000" FuseCurrent="0.000000" FuseRating="B" MaxPayLoad="0.000000" Name="DMX 5Pin OUT" Orientation="Left" PinCount="5" Position="{1.000000,0.000000,0.000000,0.000000}{0.000000,1.000000,0.000000,0.000000}{0.000000,0.000000,1.000000,0.000000}{0,0,0,1}" SignalLayer="2" SignalType="DMX512" Voltage="0.000000" VoltageRangeMax="0.000000" VoltageRangeMin="0.000000" WireGroup=""/>
<WiringObject ComponentType="NetworkInOut" ConnectorType="RJ45" CosPhi="0.000000" ElectricalPayLoad="0.000000" FrequencyRangeMax="0.000000" FrequencyRangeMin="0.000000" FuseCurrent="0.000000" FuseRating="B" MaxPayLoad="0.000000" Name="Ethernet" Orientation="Left" PinCount="8" Position="{1.000000,0.000000,0.000000,0.000000}{0.000000,1.000000,0.000000,0.000000}{0.000000,0.000000,1.000000,0.000000}{0,0,0,1}" SignalLayer="3" SignalType="" Voltage="0.000000" VoltageRangeMax="0.000000" VoltageRangeMin="0.000000" WireGroup=""/>
</Geometry>
</Geometry>
</Geometries>
This show on a very simple level the connection between two fixtures.
This connection storing inside MVR and GDTF is split into two parts:
One from the GDTF. This defines the possible connections of the Fixture. It lives in the <Geometries>
and the different connection options are defined by <WiringObject>
.
There are multiple ComponentType
options. In general they are divided into Data/Network and Power connectors.
There are inputs, outputs and Universal ports. Also you can define the Over Current Protection Devices like RCBO, MCB and so on.
Internally inside the GDTF the internal connection are also defined. In the end, the internal wiring defines for power the actual wiring that you would find in the box yourself. For Network this is done on a logical layer.
This work needs to be done by the manufacturer (or the user when he adds them). But they need to be in place to make it work.
In MVR, each Object has an array with <Connections>
. This now allows to connect devices together. You need to reference the other (MVR-)UUID of the object that you want to connect and the name of WiringObject Geometry of the GDTF that you want to connect.
This connections need to be done into booth object. So a cable from one device to another leads to two<Connection>
entries inside the MVR.
Unfortunately there is currently no application that actually does this while MVR export and import that is currently available for everybody. If you want to have some beta software to play with, give me a hint.
Note that we are currently working on a solution for POE and Audio Connections as well.
Thanks for the clarification @moritzstaffel. How about the situation where you just have a single fixture connected to a break out. Should I then create a GDTF object with for instance 7 connections: 1 Socapex In, 6 Schuko out? And then create instances of these in the MVR?
In this way I could also create GDTF files for PSU's etc, so the complete connectionscheme becomes available. I would love to see this being included in applications such as VW, Wysiwyg etc.
In recent MA3 exports, I found out the XML header is missing:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
Is this mandatory and is this a bug or should the software be able to deal with this?
In recent MA3 exports, I found out the XML header is missing:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
Is this mandatory and is this a bug or should the software be able to deal with this?
@bartvanstiphout yes, it should be present. If you handle it, it is better of course, including the extra data at the end. But I think that this should be reported directly to MA.
Thanks for the clarification @moritzstaffel. How about the situation where you just have a single fixture connected to a break out. Should I then create a GDTF object with for instance 7 connections: 1 Socapex In, 6 Schuko out? And then create instances of these in the MVR?
In this way I could also create GDTF files for PSU's etc, so the complete connectionscheme becomes available. I would love to see this being included in applications such as VW, Wysiwyg etc.
Yes. FYI, we created an initial file for the LSC Unitour power distro.
https://gdtf-share.com/share.php?page=home&manu=Generic&fix=Socapex+Schuko+Break+Out
So this would be a Generic Socapex to 6* Schuko break out? Or should the pin patch also be included at the socapex point of view? I guess you can deep dive into this if you'd like to..
As far a I know there is not an object type identifier to see whether this is a fixture, a breakout, a decor item, etc.? Asking this so I can know when importing an MVR to make a new cable for instance. But I might do educated guesses for this.
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<GDTF DataVersion="1.2">
<FixtureType CanHaveChildren="No" Description="Generic Socapex to 6* Schuko break out" FixtureTypeID="8CC94306-EDB0-4979-A6B2-FE7C7650C3D0" LongName="Socapex to 6* Schuko" Manufacturer="Generic" Name="Socapex Schuko Break Out" RefFT="" ShortName="" Thumbnail="" ThumbnailOffsetX="0" ThumbnailOffsetY="0">
<AttributeDefinitions>
<ActivationGroups/>
<FeatureGroups/>
<Attributes/>
</AttributeDefinitions>
<Wheels/>
<PhysicalDescriptions>
<ColorSpace Mode="sRGB" Name=""/>
<AdditionalColorSpaces/>
<Gamuts/>
<Filters/>
<Emitters/>
<DMXProfiles/>
<CRIs/>
<Connectors/>
<Properties>
<OperatingTemperature High="40.000000" Low="0.000000"/>
<Weight Value="2.000000"/>
<LegHeight Value="0.000000"/>
</Properties>
</PhysicalDescriptions>
<Models>
<Model File="" Height="0.100000" Length="0.250000" Name="Box" PrimitiveType="Cube" SVGFrontOffsetX="0.000000" SVGFrontOffsetY="0.000000" SVGOffsetX="0.000000" SVGOffsetY="0.000000" SVGSideOffsetX="0.000000" SVGSideOffsetY="0.000000" Width="0.200000"/>
</Models>
<Geometries>
<Geometry Model="Box" Name="Box" Position="{1.000000,0.000000,0.000000,0.000000}{0.000000,1.000000,0.000000,0.000000}{0.000000,0.000000,1.000000,0.000000}{0,0,0,1}">
<WiringObject ComponentType="Input" ConnectorType="Socapex-16" CosPhi="0.000000" ElectricalPayLoad="0.000000" FrequencyRangeMax="0.000000" FrequencyRangeMin="0.000000" FuseCurrent="0.000000" FuseRating="B" MaxPayLoad="0.000000" Name="Socapex IN" Orientation="Left" PinCount="6" Position="{1.000000,0.000000,0.000000,0.000000}{0.000000,1.000000,0.000000,0.000000}{0.000000,0.000000,1.000000,0.000000}{0,0,0,1}" SignalLayer="1" SignalType="Power" Voltage="0.000000" VoltageRangeMax="0.000000" VoltageRangeMin="0.000000" WireGroup=""/>
<WiringObject ComponentType="Output" ConnectorType="CEE 7/7" CosPhi="0.000000" ElectricalPayLoad="0.000000" FrequencyRangeMax="0.000000" FrequencyRangeMin="0.000000" FuseCurrent="0.000000" FuseRating="B" MaxPayLoad="0.000000" Name="Schuko 1" Orientation="Left" PinCount="1" Position="{1.000000,0.000000,0.000000,0.000000}{0.000000,1.000000,0.000000,0.000000}{0.000000,0.000000,1.000000,0.000000}{0,0,0,1}" SignalLayer="1" SignalType="Power" Voltage="0.000000" VoltageRangeMax="0.000000" VoltageRangeMin="0.000000" WireGroup="">
<PinPatch FromPin="1" ToPin="1" ToWiringObject="Socapex IN"/>
</WiringObject>
<WiringObject ComponentType="Output" ConnectorType="CEE 7/7" CosPhi="0.000000" ElectricalPayLoad="0.000000" FrequencyRangeMax="0.000000" FrequencyRangeMin="0.000000" FuseCurrent="0.000000" FuseRating="B" MaxPayLoad="0.000000" Name="Schuko 2" Orientation="Left" PinCount="1" Position="{1.000000,0.000000,0.000000,0.000000}{0.000000,1.000000,0.000000,0.000000}{0.000000,0.000000,1.000000,0.000000}{0,0,0,1}" SignalLayer="1" SignalType="Power" Voltage="0.000000" VoltageRangeMax="0.000000" VoltageRangeMin="0.000000" WireGroup="">
<PinPatch FromPin="1" ToPin="2" ToWiringObject="Socapex IN"/>
</WiringObject>
<WiringObject ComponentType="Output" ConnectorType="CEE 7/7" CosPhi="0.000000" ElectricalPayLoad="0.000000" FrequencyRangeMax="0.000000" FrequencyRangeMin="0.000000" FuseCurrent="0.000000" FuseRating="B" MaxPayLoad="0.000000" Name="Schuko 3" Orientation="Left" PinCount="1" Position="{1.000000,0.000000,0.000000,0.000000}{0.000000,1.000000,0.000000,0.000000}{0.000000,0.000000,1.000000,0.000000}{0,0,0,1}" SignalLayer="1" SignalType="Power" Voltage="0.000000" VoltageRangeMax="0.000000" VoltageRangeMin="0.000000" WireGroup="">
<PinPatch FromPin="1" ToPin="3" ToWiringObject="Socapex IN"/>
</WiringObject>
<WiringObject ComponentType="Output" ConnectorType="CEE 7/7" CosPhi="0.000000" ElectricalPayLoad="0.000000" FrequencyRangeMax="0.000000" FrequencyRangeMin="0.000000" FuseCurrent="0.000000" FuseRating="B" MaxPayLoad="0.000000" Name="Schuko 4" Orientation="Left" PinCount="1" Position="{1.000000,0.000000,0.000000,0.000000}{0.000000,1.000000,0.000000,0.000000}{0.000000,0.000000,1.000000,0.000000}{0,0,0,1}" SignalLayer="1" SignalType="Power" Voltage="0.000000" VoltageRangeMax="0.000000" VoltageRangeMin="0.000000" WireGroup="">
<PinPatch FromPin="1" ToPin="4" ToWiringObject="Socapex IN"/>
</WiringObject>
<WiringObject ComponentType="Output" ConnectorType="CEE 7/7" CosPhi="0.000000" ElectricalPayLoad="0.000000" FrequencyRangeMax="0.000000" FrequencyRangeMin="0.000000" FuseCurrent="0.000000" FuseRating="B" MaxPayLoad="0.000000" Name="Schuko 5" Orientation="Left" PinCount="1" Position="{1.000000,0.000000,0.000000,0.000000}{0.000000,1.000000,0.000000,0.000000}{0.000000,0.000000,1.000000,0.000000}{0,0,0,1}" SignalLayer="1" SignalType="Power" Voltage="0.000000" VoltageRangeMax="0.000000" VoltageRangeMin="0.000000" WireGroup="">
<PinPatch FromPin="1" ToPin="5" ToWiringObject="Socapex IN"/>
</WiringObject>
<WiringObject ComponentType="Output" ConnectorType="CEE 7/7" CosPhi="0.000000" ElectricalPayLoad="0.000000" FrequencyRangeMax="0.000000" FrequencyRangeMin="0.000000" FuseCurrent="0.000000" FuseRating="B" MaxPayLoad="0.000000" Name="Schuko 6" Orientation="Left" PinCount="1" Position="{1.000000,0.000000,0.000000,0.000000}{0.000000,1.000000,0.000000,0.000000}{0.000000,0.000000,1.000000,0.000000}{0,0,0,1}" SignalLayer="1" SignalType="Power" Voltage="0.000000" VoltageRangeMax="0.000000" VoltageRangeMin="0.000000" WireGroup="">
<PinPatch FromPin="1" ToPin="6" ToWiringObject="Socapex IN"/>
</WiringObject>
</Geometry>
</Geometries>
<DMXModes>
<DMXMode Description="" Geometry="Box" Name="Dummy">
<DMXChannels/>
<Relations/>
<FTMacros/>
</DMXMode>
</DMXModes>
<Revisions>
<Revision Date="2021-07-05T07:56:52" ModifiedBy="" Text="" UserID="0"/>
<Revision Date="2024-05-09T08:32:39" ModifiedBy="" Text="Initial build" UserID="190"/>
<Revision Date="2024-05-09T11:08:24" ModifiedBy="" Text="Included Wiring" UserID="0"/>
<Revision Date="2024-05-09T11:11:43" ModifiedBy="" Text="Updated Wiring " UserID="0"/>
<Revision Date="2024-05-09T11:21:39" ModifiedBy="GDTF Builder V1.9.2" Text="Updated Model" UserID="190"/>
</Revisions>
<FTPresets/>
<Protocols/>
</FixtureType>
</GDTF>
As far a I know there is not an object type identifier to see whether this is a fixture, a breakout, a decor item, etc.? Asking this so I can know when importing an MVR to make a new cable for instance. But I might do educated guesses for this.
Currently there is such thing as such identifier. What we use is that we class the objects by the internal geometries:
All the names for this are highly different depending on software and locations. So that's why we did not spec the labels here for now.
So this would be a Generic Socapex to 6* Schuko break out? Or should the pin patch also be included at the socapex point of view? I guess you can deep dive into this if you'd like to..
You need to add the power flow in booth direction and also add neutral and PE wires. So your example is a good starting point, but needs more data.
This then allows fault current analysis, neutral current checks, RCD checks and all this fancy things that you can do. I know this is more then the currently used excel tables needs, but in the future the payoff will be huge, as we actually can do an electrical calculation rather then a sum of loads.
In recent MA3 exports, I found out the XML header is missing:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
Is this mandatory and is this a bug or should the software be able to deal with this?
There is a stack overflow article about this. In short, as we use default version and encoding, this is optional. It is still a valid XML. And yes, you should be able to handle it.
In this way I could also create GDTF files for PSU's etc, so the complete connectionscheme becomes available. I would love to see this being included in applications such as VW, Wysiwyg etc.
Yes that is the plan. In the 1.11 Production Assist Release in the next week we fully support this. This would also bring it to Vectorworks as we have plugin for this.
Also on the MA side we are working on implementing this.
But I think just give it some time, and other will hop on.
@moritzstaffel yes, they discuss that it is optional, but we are explicit about this:
The first XML node is always the XML description node: <?xml version="1.0" encoding="UTF-8"?>
The second XML node is the GDTF node. The attribute of this node is the DataVersion: <GDTF DataVersion="1.2">
https://github.com/mvrdevelopment/spec/blob/main/gdtf-spec.md#table-1--xml-attribute-value-types
Add Circuit name and circuit number in the MVR DIN Spec.
Ref: email 4/27/23, 09:07 +0200 MVR Standard & MVR Protocol