Compare commits

...

9 Commits

Author SHA1 Message Date
scorpio810
a90ef4c581 Tag version 0.6 RC3
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/tags/0.6rc3@5041 bfdf4180-ca20-0410-9c96-a3a8aa849046
2017-09-20 09:44:34 +00:00
scorpio810
5612121df2 Update displayed Version to 0.60-RC3
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/branches/0.60@5040 bfdf4180-ca20-0410-9c96-a3a8aa849046
2017-09-20 09:38:50 +00:00
blacksun
517c7db05e Remove the second color of conductor.
Add double click on the handler, open the conducteur properties dialog 


git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/branches/0.60@5034 bfdf4180-ca20-0410-9c96-a3a8aa849046
2017-08-27 19:08:02 +00:00
scorpio810
9b4b317d7f Merge commits "r4999, r500, r5001" to branch 0.60
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/branches/0.60@5033 bfdf4180-ca20-0410-9c96-a3a8aa849046
2017-08-27 13:55:10 +00:00
scorpio810
fad7ba8347 Update Dutch translation, thank Dik
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/branches/0.60@5026 bfdf4180-ca20-0410-9c96-a3a8aa849046
2017-08-23 11:05:10 +00:00
scorpio810
82fd0fd181 Fix typo
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/branches/0.60@5020 bfdf4180-ca20-0410-9c96-a3a8aa849046
2017-08-15 01:43:45 +00:00
scorpio810
603fa81cb7 Minor
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/branches/0.60@5018 bfdf4180-ca20-0410-9c96-a3a8aa849046
2017-08-11 00:48:54 +00:00
scorpio810
65d87814b6 Merge commits r5007, r5013, r5014, r5015
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/branches/0.60@5017 bfdf4180-ca20-0410-9c96-a3a8aa849046
2017-08-10 23:19:04 +00:00
scorpio810
eeaecfa40e Creation de la branche 0.60
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/branches/0.60@4998 bfdf4180-ca20-0410-9c96-a3a8aa849046
2017-08-01 13:41:26 +00:00
83 changed files with 4790 additions and 1919 deletions

View File

@@ -21,6 +21,3 @@ part terminal + 1106
part text + 1107
part text field + 1108
part rectangle + 1109
###QetGraphicsHandlerItem###
QetGraphicsHandlerItem = 1200

View File

@@ -0,0 +1,36 @@
<definition link_type="master" width="80" height="50" hotspot_x="51" orientation="dyyy" version="0.60" type="element" hotspot_y="24">
<uuid uuid="{a2740e69-3632-4ab0-8bd1-0591adc0b909}"/>
<names>
<name lang="fr">Interrupteur sectionneur triphasé</name>
</names>
<kindInformations>
<kindInformation show="1" name="type">protection</kindInformation>
</kindInformations>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<polygon antialias="true" y3="20" closed="false" x2="0" x1="-5" style="line-style:normal;line-weight:normal;filling:none;color:black" y2="10" y1="-10" x3="0"/>
<circle y="10" antialias="true" x="-42" style="line-style:normal;line-weight:normal;filling:none;color:black" diameter="4"/>
<circle y="-12" antialias="true" x="18" style="line-style:normal;line-weight:normal;filling:none;color:black" diameter="4"/>
<circle y="-12" antialias="true" x="-22" style="line-style:normal;line-weight:normal;filling:none;color:black" diameter="4"/>
<circle y="-12" antialias="true" x="-2" style="line-style:normal;line-weight:normal;filling:none;color:black" diameter="4"/>
<polygon antialias="true" y3="20" closed="false" x2="0" x1="-5" style="line-style:normal;line-weight:normal;filling:none;color:black" y2="10" y1="-10" x3="0"/>
<polygon antialias="true" y3="20" closed="false" x2="20" x1="15" style="line-style:normal;line-weight:normal;filling:none;color:black" y2="10" y1="-10" x3="20"/>
<polygon antialias="true" y3="20" closed="false" x2="-20" x1="-25" style="line-style:normal;line-weight:normal;filling:none;color:black" y2="10" y1="-10" x3="-20"/>
<input y="3" x="22.75" size="9" text="_" tagg="label"/>
<line length1="1.5" antialias="false" length2="1.5" end1="none" end2="none" x2="0" x1="0" style="line-style:normal;line-weight:normal;filling:none;color:black" y2="-12" y1="-20"/>
<line length1="1.5" antialias="false" length2="1.5" end1="none" end2="none" x2="-2" x1="2" style="line-style:normal;line-weight:normal;filling:none;color:black" y2="-12" y1="-12"/>
<line length1="1.5" antialias="false" length2="1.5" end1="none" end2="none" x2="-20" x1="-20" style="line-style:normal;line-weight:normal;filling:none;color:black" y2="-12" y1="-20"/>
<line length1="1.5" antialias="false" length2="1.5" end1="none" end2="none" x2="-22" x1="-18" style="line-style:normal;line-weight:normal;filling:none;color:black" y2="-12" y1="-12"/>
<line length1="1.5" antialias="false" length2="1.5" end1="none" end2="none" x2="20" x1="20" style="line-style:normal;line-weight:normal;filling:none;color:black" y2="-12" y1="-20"/>
<line length1="1.5" antialias="false" length2="1.5" end1="none" end2="none" x2="18" x1="22" style="line-style:normal;line-weight:normal;filling:none;color:black" y2="-12" y1="-12"/>
<line length1="1.5" antialias="false" length2="1.5" end1="none" end2="none" x2="-40" x1="15" style="line-style:dashed;line-weight:normal;filling:none;color:black" y2="0" y1="0"/>
<line length1="1.5" antialias="false" length2="1.5" end1="none" end2="none" x2="-45" x1="-40" style="line-style:normal;line-weight:normal;filling:none;color:black" y2="-10" y1="10"/>
<terminal y="-20" x="0" orientation="n"/>
<terminal y="20" x="0" orientation="s"/>
<terminal y="-20" x="20" orientation="n"/>
<terminal y="20" x="20" orientation="s"/>
<terminal y="-20" x="-20" orientation="n"/>
<terminal y="20" x="-20" orientation="s"/>
</description>
</definition>

View File

@@ -0,0 +1,26 @@
<definition type="element" hotspot_y="44" version="0.60" hotspot_x="43" link_type="slave" orientation="dyyy" width="60" height="60">
<uuid uuid="{9f95f940-7ebe-43df-9f35-c4c07eb2e047}"/>
<names>
<name lang="fr">Contact NF disjoncteur magnéto-thermique GV</name>
</names>
<kindInformations>
<kindInformation name="number" show="1">1</kindInformation>
<kindInformation name="state" show="1">NC</kindInformation>
<kindInformation name="type" show="1">simple</kindInformation>
</kindInformations>
<informations></informations>
<description>
<polygon x3="-22" x6="-27" y4="-26" y2="-20" closed="false" x5="-27" y5="-26" y6="-30" x7="-27" x4="-22" x2="-27" y3="-20" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="true" y1="-16" x1="-27" y7="-30"/>
<rect y="-30" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="false" x="-37" width="20" height="28"/>
<text y="-5" text="I>" size="9" x="-34"/>
<input y="-13.5" text="_" size="8" tagg="label" rotate="true" x="4"/>
<line length1="1.5" length2="1.5" y2="-16" end2="none" x2="-17" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="false" y1="-16" x1="-37"/>
<line length1="1.5" length2="1.5" y2="-40" end2="none" x2="0" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="false" y1="-25" x1="0"/>
<line length1="1.5" length2="1.5" y2="-25" end2="none" x2="10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="false" y1="-5" x1="0"/>
<line length1="1.5" length2="1.5" y2="-5" end2="none" x2="0" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="false" y1="10" x1="0"/>
<line length1="1.5" length2="1.5" y2="-15" end2="none" x2="0" end1="none" style="line-style:normal;line-weight:thin;filling:none;color:black" antialias="false" y1="-15" x1="-15"/>
<line length1="1.5" length2="1.5" y2="-25" end2="none" x2="10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="false" y1="-25" x1="0"/>
<terminal y="10" orientation="s" x="0"/>
<terminal y="-40" orientation="n" x="0"/>
</description>
</definition>

View File

@@ -0,0 +1,25 @@
<definition type="element" hotspot_y="44" version="0.60" hotspot_x="42" link_type="slave" orientation="dyyy" width="50" height="60">
<uuid uuid="{ad62e994-1c20-42c4-8a2f-40519cc56f5c}"/>
<names>
<name lang="fr">Contact NO disjoncteur magnéto-thermique GV</name>
</names>
<kindInformations>
<kindInformation name="number" show="1">1</kindInformation>
<kindInformation name="state" show="1">NC</kindInformation>
<kindInformation name="type" show="1">simple</kindInformation>
</kindInformations>
<informations></informations>
<description>
<polygon x3="-22" x6="-27" y4="-26" y2="-20" closed="false" x5="-27" y5="-26" y6="-30" x7="-27" x4="-22" x2="-27" y3="-20" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="true" y1="-16" x1="-27" y7="-30"/>
<rect y="-30" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="false" x="-37" width="20" height="28"/>
<text y="-5" text="I>" size="9" x="-34"/>
<input y="-13.5" text="_" size="8" tagg="label" rotate="true" x="4"/>
<line length1="1.5" length2="1.5" y2="-16" end2="none" x2="-17" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="false" y1="-16" x1="-37"/>
<line length1="1.5" length2="1.5" y2="-40" end2="none" x2="0" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="false" y1="-25" x1="0"/>
<line length1="1.5" length2="1.5" y2="-25" end2="none" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="false" y1="-5" x1="0"/>
<line length1="1.5" length2="1.5" y2="-5" end2="none" x2="0" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" antialias="false" y1="10" x1="0"/>
<line length1="1.5" length2="1.5" y2="-15" end2="none" x2="-7" end1="none" style="line-style:normal;line-weight:thin;filling:none;color:black" antialias="false" y1="-15" x1="-15"/>
<terminal y="-40" orientation="n" x="0"/>
<terminal y="10" orientation="s" x="0"/>
</description>
</definition>

View File

@@ -0,0 +1,47 @@
<definition width="70" orientation="dyyy" version="0.5" height="60" type="element" hotspot_y="27" link_type="simple" hotspot_x="44">
<uuid uuid="{90f11615-a2f2-4324-8d2c-c2a9b7377dfa}"/>
<names>
<name lang="it">Motore trifase PE + BRAKE</name>
<name lang="en">Three-phase engine PE + BRAKE</name>
<name lang="ru">Трёхфазный эл. мотор PE + BRAKE</name>
<name lang="cs">Trojfázový motor PE + BRAKE</name>
<name lang="es">Motor trifásico PE + BRAKE</name>
<name lang="pl">Silnik trójfazowy PE + BRAKE</name>
<name lang="de">Drehstrom Motor PE + BRAKE</name>
<name lang="pt">Motor trifásico PE + BRAKE</name>
<name lang="fr">Moteur triphasé PE + BRAKE</name>
</names>
<informations>Author: The QElectroTech team&#xd;
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<text text="W1" rotation="270" x="8" y="-9" size="5"/>
<text text="V1" rotation="270" x="-2" y="-11" size="5"/>
<text text="PE" rotation="270" x="18" y="-11" size="5"/>
<text text="M" x="-10.25" y="18" size="18"/>
<circle diameter="30" antialias="true" x="-15" y="-5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input text="M_" tagg="label" x="-21" y="41" size="9"/>
<line x1="0" y2="-5" length1="1.5" y1="-20" end2="none" length2="1.5" antialias="false" x2="0" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="10" y2="-1.5" length1="1.5" y1="-20" end2="none" length2="1.5" antialias="false" x2="10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="-1.5" length1="1.5" y1="-20" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="20" y2="10" length1="1.5" y1="-16" end2="none" length2="1.5" antialias="false" x2="20" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<arc start="30" angle="-70" width="35" height="35" antialias="true" x="-17.5" y="-7.5" style="line-style:dashed;line-weight:normal;filling:none;color:black"/>
<line x1="20" y2="12" length1="1.5" y1="10" end2="none" length2="1.5" antialias="false" x2="18" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-20" y2="20" length1="1.5" y1="0" end2="none" length2="1.5" antialias="false" x2="-20" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-20" y2="2" length1="1.5" y1="0" end2="none" length2="1.5" antialias="false" x2="-23" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-20" y2="18" length1="1.5" y1="20" end2="none" length2="1.5" antialias="false" x2="-23" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-23" y2="18" length1="1.5" y1="2" end2="none" length2="1.5" antialias="false" x2="-23" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<rect width="10" height="8" antialias="false" x="-35" y="6" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-25" y2="10" length1="1.5" y1="10" end2="none" length2="1.5" antialias="false" x2="-24" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-30" y2="-17" length1="1.5" y1="6" end2="none" length2="1.5" antialias="false" x2="-30" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-30" y2="20" length1="1.5" y1="14" end2="none" length2="1.5" antialias="false" x2="-30" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-30" y2="20" length1="1.5" y1="20" end2="none" length2="1.5" antialias="false" x2="-40" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-40" y2="-17" length1="1.5" y1="20" end2="none" length2="1.5" antialias="false" x2="-40" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="U1" rotation="270" x="-12" y="-10" size="5"/>
<terminal orientation="n" x="-40" y="-21"/>
<terminal orientation="n" x="0" y="-21"/>
<terminal orientation="n" x="10" y="-21"/>
<terminal orientation="n" x="-10" y="-21"/>
<terminal orientation="n" x="-30" y="-21"/>
<terminal orientation="n" x="20" y="-21"/>
</description>
</definition>

View File

@@ -0,0 +1,47 @@
<definition width="70" orientation="dyyy" version="0.5" height="60" type="element" hotspot_y="27" link_type="simple" hotspot_x="24">
<uuid uuid="{dbafa441-1b92-4540-a129-d9d07100d4ad}"/>
<names>
<name lang="it">Motore trifase PE + TERM</name>
<name lang="en">Three-phase engine PE + TERM</name>
<name lang="ru">Трёхфазный эл. мотор PE + TERM</name>
<name lang="cs">Trojfázový motor PE + TERM</name>
<name lang="es">Motor trifásico PE + TERM</name>
<name lang="pl">Silnik trójfazowy PE + TERM</name>
<name lang="de">Drehstrom Motor PE + TERM</name>
<name lang="pt">Motor trifásico PE + TERM</name>
<name lang="fr">Moteur triphasé PE + TERM</name>
</names>
<informations>Author: The QElectroTech team&#xd;
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<text text="PE" rotation="270" x="18" y="-11" size="5"/>
<text text="W1" rotation="270" x="8" y="-9" size="5"/>
<text text="V1" rotation="270" x="-2" y="-11" size="5"/>
<text text="M" x="-10.25" y="18" size="18"/>
<circle diameter="30" antialias="true" x="-15" y="-5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input text="M_" tagg="label" x="-2" y="41" size="9"/>
<line x1="0" y2="-5" length1="1.5" y1="-20" end2="none" length2="1.5" antialias="false" x2="0" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="10" y2="-1.5" length1="1.5" y1="-20" end2="none" length2="1.5" antialias="false" x2="10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="-1.5" length1="1.5" y1="-20" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="20" y2="10" length1="1.5" y1="-16" end2="none" length2="1.5" antialias="false" x2="20" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<arc start="30" angle="-70" width="35" height="35" antialias="true" x="-17.5" y="-7.5" style="line-style:dashed;line-weight:normal;filling:none;color:black"/>
<line x1="20" y2="12" length1="1.5" y1="10" end2="none" length2="1.5" antialias="false" x2="18" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="26" y2="7" length1="1.5" y1="14" end2="none" length2="1.5" antialias="false" x2="35" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="35" y2="5" length1="1.5" y1="7" end2="none" length2="1.5" antialias="false" x2="35" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="40" y2="-15" length1="1.5" y1="2" end2="none" length2="1.5" antialias="false" x2="40" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="40" y2="-16" length1="1.5" y1="-15" end2="none" length2="1.5" antialias="false" x2="40" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="40" y2="20" length1="1.5" y1="17" end2="none" length2="1.5" antialias="false" x2="40" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="40" y2="20" length1="1.5" y1="20" end2="none" length2="1.5" antialias="false" x2="30" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<rect width="4" height="14" antialias="false" x="28" y="3" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="30" y2="17" length1="1.5" y1="20" end2="none" length2="1.5" antialias="false" x2="30" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="30" y2="-17" length1="1.5" y1="3" end2="none" length2="1.5" antialias="false" x2="30" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="40" y2="3" length1="1.5" y1="17" end2="none" length2="1.5" antialias="false" x2="40" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="U1" rotation="270" x="-12" y="-10" size="5"/>
<terminal orientation="n" x="40" y="-21"/>
<terminal orientation="n" x="30" y="-21"/>
<terminal orientation="n" x="10" y="-21"/>
<terminal orientation="n" x="20" y="-21"/>
<terminal orientation="n" x="-10" y="-21"/>
<terminal orientation="n" x="0" y="-21"/>
</description>
</definition>

View File

@@ -0,0 +1,59 @@
<definition width="90" orientation="dyyy" version="0.5" height="60" type="element" hotspot_y="27" link_type="simple" hotspot_x="44">
<uuid uuid="{97c46158-96c8-42e0-b198-96bdc6bdaee7}"/>
<names>
<name lang="it">Motore trifase PE + TERM + BRAKE</name>
<name lang="ru">Трёхфазный эл. мотор PE + TERM + BRAKE</name>
<name lang="en">Three-phase engine PE + TERM + BRAKE</name>
<name lang="cs">Trojfázový motor PE + TERM + BRAKE</name>
<name lang="pl">Silnik trójfazowy PE + TERM + BRAKE</name>
<name lang="es">Motor trifásico PE + TERM + BRAKE</name>
<name lang="de">Drehstrom Motor PE + TERM + BRAKE</name>
<name lang="pt">Motor trifásico PE + TERM + BRAKE</name>
<name lang="fr">Moteur triphasé PE + TERM + BRAKE</name>
</names>
<informations>Author: The QElectroTech team&#xd;
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<text text="W1" rotation="270" x="8" y="-9" size="5"/>
<text text="V1" rotation="270" x="-2" y="-11" size="5"/>
<text text="PE" rotation="270" x="18" y="-11" size="5"/>
<text text="M" x="-10.25" y="18" size="18"/>
<circle diameter="30" antialias="true" x="-15" y="-5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input text="M_" tagg="label" x="-13" y="41" size="9"/>
<line x1="0" y2="-5" length1="1.5" y1="-20" end2="none" length2="1.5" antialias="false" x2="0" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="10" y2="-1.5" length1="1.5" y1="-20" end2="none" length2="1.5" antialias="false" x2="10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="-1.5" length1="1.5" y1="-20" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="20" y2="10" length1="1.5" y1="-16" end2="none" length2="1.5" antialias="false" x2="20" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<arc start="30" angle="-70" width="35" height="35" antialias="true" x="-17.5" y="-7.5" style="line-style:dashed;line-weight:normal;filling:none;color:black"/>
<line x1="20" y2="12" length1="1.5" y1="10" end2="none" length2="1.5" antialias="false" x2="18" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="26" y2="7" length1="1.5" y1="14" end2="none" length2="1.5" antialias="false" x2="35" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="35" y2="5" length1="1.5" y1="7" end2="none" length2="1.5" antialias="false" x2="35" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="40" y2="-15" length1="1.5" y1="2" end2="none" length2="1.5" antialias="false" x2="40" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="40" y2="-16" length1="1.5" y1="-15" end2="none" length2="1.5" antialias="false" x2="40" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="40" y2="20" length1="1.5" y1="17" end2="none" length2="1.5" antialias="false" x2="40" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="40" y2="20" length1="1.5" y1="20" end2="none" length2="1.5" antialias="false" x2="30" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<rect width="4" height="14" antialias="false" x="28" y="3" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="30" y2="17" length1="1.5" y1="20" end2="none" length2="1.5" antialias="false" x2="30" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="30" y2="-17" length1="1.5" y1="3" end2="none" length2="1.5" antialias="false" x2="30" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="40" y2="3" length1="1.5" y1="17" end2="none" length2="1.5" antialias="false" x2="40" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-20" y2="20" length1="1.5" y1="0" end2="none" length2="1.5" antialias="false" x2="-20" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-20" y2="2" length1="1.5" y1="0" end2="none" length2="1.5" antialias="false" x2="-23" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-20" y2="18" length1="1.5" y1="20" end2="none" length2="1.5" antialias="false" x2="-23" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-23" y2="18" length1="1.5" y1="2" end2="none" length2="1.5" antialias="false" x2="-23" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<rect width="10" height="8" antialias="false" x="-35" y="6" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-25" y2="10" length1="1.5" y1="10" end2="none" length2="1.5" antialias="false" x2="-24" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-30" y2="-17" length1="1.5" y1="6" end2="none" length2="1.5" antialias="false" x2="-30" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-30" y2="20" length1="1.5" y1="14" end2="none" length2="1.5" antialias="false" x2="-30" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-30" y2="20" length1="1.5" y1="20" end2="none" length2="1.5" antialias="false" x2="-40" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-40" y2="-17" length1="1.5" y1="20" end2="none" length2="1.5" antialias="false" x2="-40" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="U1" rotation="270" x="-12" y="-10" size="5"/>
<terminal orientation="n" x="-40" y="-21"/>
<terminal orientation="n" x="-30" y="-21"/>
<terminal orientation="n" x="40" y="-21"/>
<terminal orientation="n" x="30" y="-21"/>
<terminal orientation="n" x="10" y="-21"/>
<terminal orientation="n" x="20" y="-21"/>
<terminal orientation="n" x="-10" y="-21"/>
<terminal orientation="n" x="0" y="-21"/>
</description>
</definition>

View File

@@ -0,0 +1,33 @@
<definition width="120" orientation="dyyy" link_type="simple" type="element" hotspot_x="46" height="70" hotspot_y="35" version="0.5">
<uuid uuid="{7f4e4eca-1462-466c-80b6-bd2398c357c4}"/>
<names>
<name lang="fr">Servo Moteur</name>
</names>
<informations></informations>
<description>
<rect style="line-style:normal;line-weight:normal;filling:none;color:black" width="60" antialias="false" height="60" x="-30" y="-30"/>
<rect style="line-style:normal;line-weight:normal;filling:none;color:black" width="20" antialias="false" height="20" x="-30" y="-30"/>
<rect style="line-style:normal;line-weight:normal;filling:none;color:black" width="20" antialias="false" height="20" x="-30" y="-10"/>
<rect style="line-style:normal;line-weight:normal;filling:none;color:black" width="20" antialias="false" height="20" x="-30" y="10"/>
<line style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-20" y2="20" x1="0" x2="0" length1="1.5" antialias="false" end1="none" length2="1.5" end2="none"/>
<line style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-20" y2="-10" x1="0" x2="60" length1="1.5" antialias="true" end1="none" length2="1.5" end2="none"/>
<arc style="line-style:normal;line-weight:normal;filling:none;color:black" start="0" width="20" angle="90" antialias="true" height="20" x="50" y="-10"/>
<line style="line-style:normal;line-weight:normal;filling:none;color:black" y1="10" y2="20" x1="60" x2="0" length1="1.5" antialias="true" end1="none" length2="1.5" end2="none"/>
<arc style="line-style:normal;line-weight:normal;filling:none;color:black" start="270" width="20" angle="90" antialias="true" height="20" x="50" y="-10"/>
<text text="M" x="10" y="2" size="9"/>
<circle style="line-style:normal;line-weight:normal;filling:none;color:black" diameter="20" antialias="false" x="5" y="-10"/>
<text text="+" x="-24" y="-17" size="9"/>
<text text="Out" x="-27" y="6" size="7"/>
<text text="-" x="-22" y="24" size="9"/>
<line style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-20" y2="-20" x1="-30" x2="-40" length1="1.5" antialias="false" end1="none" length2="1.5" end2="none"/>
<line style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0" y2="0" x1="-30" x2="-40" length1="1.5" antialias="false" end1="none" length2="1.5" end2="none"/>
<line style="line-style:normal;line-weight:normal;filling:none;color:black" y1="20" y2="20" x1="-30" x2="-40" length1="1.5" antialias="false" end1="none" length2="1.5" end2="none"/>
<line style="line-style:normal;line-weight:normal;filling:none;color:black" y1="4" y2="4" x1="13" x2="17" length1="1.5" antialias="false" end1="none" length2="1.5" end2="none"/>
<line style="line-style:normal;line-weight:normal;filling:none;color:black" y1="6" y2="6" x1="13" x2="17" length1="1.5" antialias="false" end1="none" length2="1.5" end2="none"/>
<circle style="line-style:normal;line-weight:normal;filling:none;color:black" diameter="10" antialias="false" x="55" y="-5"/>
<input text="M__" tagg="label" rotate="true" x="-14" y="-42" size="9"/>
<terminal orientation="w" x="-40" y="-20"/>
<terminal orientation="w" x="-40" y="0"/>
<terminal orientation="w" x="-40" y="20"/>
</description>
</definition>

View File

@@ -0,0 +1,94 @@
<definition width="250" orientation="dyyy" version="0.5" height="100" type="element" hotspot_y="34" link_type="simple" hotspot_x="15">
<uuid uuid="{55dd9654-4b51-4054-a3b5-271c373515a8}"/>
<names>
<name lang="it">8200 vector base module</name>
<name lang="en">8200 vector base module</name>
<name lang="cs">8200 vector base module</name>
<name lang="pl">8200 vector base module</name>
<name lang="ar">8200 vector base module</name>
<name lang="fr">8200 vector base module</name>
</names>
<informations></informations>
<description>
<input rotate="true" text="L3 / N" tagg="none" rotation="270" x="100" y="8" size="7"/>
<input rotate="true" text="-UG" tagg="none" rotation="270" x="160" y="-1" size="7"/>
<input rotate="true" text="+UG" tagg="none" rotation="270" x="130" y="3" size="7"/>
<input rotate="true" text="BR1" tagg="none" rotation="270" x="90" y="56" size="7"/>
<input rotate="true" text="BR2" tagg="none" rotation="270" x="110" y="56" size="7"/>
<input rotate="true" text="K12" tagg="none" rotation="270" x="210" y="56" size="7"/>
<input rotate="true" text="T1" tagg="none" rotation="270" x="130" y="56" size="7"/>
<input rotate="true" text="K14" tagg="none" rotation="270" x="170" y="56" size="7"/>
<input rotate="true" text="K11" tagg="none" rotation="270" x="190" y="56" size="7"/>
<circle diameter="5" antialias="true" x="97.5" y="-29.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="127.5" y="-29.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="T2" tagg="none" rotation="270" x="150" y="56" size="7"/>
<circle diameter="5" antialias="true" x="207.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="107.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="157.5" y="-29.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="87.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="127.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="167.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="230" y2="57" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="230" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="187.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="147.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="L2 / N" tagg="none" rotation="270" x="70" y="8" size="7"/>
<line x1="73" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="87" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="57" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="173" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="187" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="67.5" y="-29.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="133" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="147" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="93" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="107" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="7.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="153" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="167" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="8" y2="42" length1="1.5" y1="42" end2="none" length2="1.5" antialias="false" x2="12" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="W" tagg="none" rotation="270" x="70" y="56" size="7"/>
<circle diameter="5" antialias="true" x="27.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="9" y2="40" length1="1.5" y1="40" end2="none" length2="1.5" antialias="false" x2="11" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="U" tagg="none" rotation="270" x="30" y="56" size="7"/>
<line x1="113" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="127" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="47.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="6" y2="44" length1="1.5" y1="44" end2="none" length2="1.5" antialias="false" x2="14" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="V" tagg="none" rotation="270" x="50" y="56" size="7"/>
<circle diameter="5" antialias="true" x="67.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="10" y2="44" length1="1.5" y1="54" end2="none" length2="1.5" antialias="false" x2="10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="L1" tagg="none" rotation="270" x="40" y="-8" size="7"/>
<line x1="53" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="67" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="33" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="47" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="13" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="27" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="37.5" y="-29.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="7" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="-27" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="7" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="7.5" y="-29.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="8200 vector" tagg="none" x="7" y="15" size="9"/>
<line x1="8" y2="-12" length1="1.5" y1="-12" end2="none" length2="1.5" antialias="false" x2="12" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="9" y2="-10" length1="1.5" y1="-10" end2="none" length2="1.5" antialias="false" x2="11" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="6" y2="-14" length1="1.5" y1="-14" end2="none" length2="1.5" antialias="false" x2="14" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="10" y2="-24" length1="1.5" y1="-14" end2="none" length2="1.5" antialias="false" x2="10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="207" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="193" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="13" y2="-27" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="37" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="43" y2="-27" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="67" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="213" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="230" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="73" y2="-27" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="97" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="103" y2="-27" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="127" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="133" y2="-27" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="157" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="163" y2="-27" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="230" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="?" tagg="label" x="-32" y="-19" size="9"/>
<terminal orientation="n" x="10" y="-30"/>
<terminal orientation="n" x="40" y="-30"/>
<terminal orientation="s" x="10" y="60"/>
<terminal orientation="s" x="30" y="60"/>
<terminal orientation="s" x="50" y="60"/>
<terminal orientation="s" x="70" y="60"/>
<terminal orientation="n" x="70" y="-30"/>
<terminal orientation="n" x="100" y="-30"/>
<terminal orientation="n" x="130" y="-30"/>
<terminal orientation="n" x="160" y="-30"/>
<terminal orientation="s" x="90" y="60"/>
<terminal orientation="s" x="110" y="60"/>
<terminal orientation="s" x="130" y="60"/>
<terminal orientation="s" x="150" y="60"/>
<terminal orientation="s" x="170" y="60"/>
<terminal orientation="s" x="190" y="60"/>
<terminal orientation="s" x="210" y="60"/>
</description>
</definition>

View File

@@ -0,0 +1,77 @@
<definition width="310" orientation="dyyy" version="0.5" height="100" type="element" hotspot_y="32" link_type="simple" hotspot_x="14">
<uuid uuid="{611d0ab4-56c9-4bc7-abd8-6b19ca06d6b4}"/>
<names>
<name lang="it">8200 vector CAN module E82ZAFCC001</name>
<name lang="en">8200 vector CAN module E82ZAFCC001</name>
<name lang="cs">8200 vector CAN module E82ZAFCC001</name>
<name lang="pl">8200 vector CAN module E82ZAFCC001</name>
<name lang="ar">8200 vector CAN module E82ZAFCC001</name>
<name lang="fr">8200 vector CAN module E82ZAFCC001</name>
</names>
<informations></informations>
<description>
<input rotate="true" text="39" tagg="none" x="41" y="49" size="7"/>
<input rotate="true" text="HI" tagg="none" x="182" y="49" size="7"/>
<input rotate="true" text="7" tagg="none" x="224" y="49" size="7"/>
<input rotate="true" text="20" tagg="none" x="261" y="49" size="7"/>
<input rotate="true" text="LO" tagg="none" x="100" y="49" size="7"/>
<input rotate="true" text="28" tagg="none" x="22" y="49" size="7"/>
<input rotate="true" text="28" tagg="none" x="61" y="49" size="7"/>
<input rotate="true" text="7" tagg="none" x="144" y="49" size="7"/>
<line x1="93" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="107" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="53" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="67" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="33" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="47" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="73" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="87" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="20" tagg="none" x="241" y="49" size="7"/>
<input rotate="true" text="7" tagg="none" x="204" y="49" size="7"/>
<circle diameter="5" antialias="true" x="267.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="7" tagg="none" x="84" y="49" size="7"/>
<input rotate="true" text="LO" tagg="none" x="161" y="49" size="7"/>
<input rotate="true" text="HI" tagg="none" x="122" y="49" size="7"/>
<circle diameter="5" antialias="true" x="227.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="187.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="147.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="207.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="247.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="87.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="167.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="107.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="127.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="7.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="27.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="47.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="39" tagg="none" x="0" y="49" size="7"/>
<circle diameter="5" antialias="true" x="67.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="E82ZAFCC&#xa;CAN" tagg="none" x="4" y="12.5" size="9"/>
<line x1="7" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="-9" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="-27" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="-27" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="224" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="273" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="290" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="225" y2="-27" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="290" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="291" y2="57" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="291" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="13" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="27" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="113" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="127" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="133" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="147" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="153" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="167" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="173" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="187" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="193" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="207" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="213" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="227" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="233" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="247" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="253" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="267" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="_" tagg="label" x="302" y="-5" size="9"/>
<terminal orientation="s" x="250" y="60"/>
<terminal orientation="s" x="270" y="60"/>
<terminal orientation="s" x="190" y="60"/>
<terminal orientation="s" x="210" y="60"/>
<terminal orientation="s" x="230" y="60"/>
<terminal orientation="s" x="130" y="60"/>
<terminal orientation="s" x="150" y="60"/>
<terminal orientation="s" x="170" y="60"/>
<terminal orientation="s" x="70" y="60"/>
<terminal orientation="s" x="90" y="60"/>
<terminal orientation="s" x="110" y="60"/>
<terminal orientation="s" x="10" y="60"/>
<terminal orientation="s" x="30" y="60"/>
<terminal orientation="s" x="50" y="60"/>
</description>
</definition>

View File

@@ -0,0 +1,77 @@
<definition width="310" orientation="dyyy" version="0.5" height="100" type="element" hotspot_y="32" link_type="simple" hotspot_x="14">
<uuid uuid="{36e18720-020d-4787-9ce1-cd1e2b5bcfd9}"/>
<names>
<name lang="it">8200 vector standard i/o module E82ZAFSC</name>
<name lang="en">8200 vector standard i/o module E82ZAFSC</name>
<name lang="cs">8200 vector standard i/o module E82ZAFSC</name>
<name lang="pl">8200 vector standard i/o module E82ZAFSC</name>
<name lang="ar">8200 vector standard i/o module E82ZAFSC</name>
<name lang="fr">8200 vector standard i/o module E82ZAFSC</name>
</names>
<informations></informations>
<description>
<input rotate="true" text="8" tagg="none" x="44" y="49" size="7"/>
<input rotate="true" text="E3" tagg="none" x="181" y="49" size="7"/>
<input rotate="true" text="39" tagg="none" x="221" y="49" size="7"/>
<input rotate="true" text="59" tagg="none" x="261" y="49" size="7"/>
<input rotate="true" text="20" tagg="none" x="101" y="49" size="7"/>
<input rotate="true" text="7" tagg="none" x="24" y="49" size="7"/>
<input rotate="true" text="9" tagg="none" x="63" y="49" size="7"/>
<input rotate="true" text="E1" tagg="none" x="141" y="49" size="7"/>
<line x1="93" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="107" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="53" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="67" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="33" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="47" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="73" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="87" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="A1" tagg="none" x="241" y="49" size="7"/>
<input rotate="true" text="E4" tagg="none" x="201" y="49" size="7"/>
<circle diameter="5" antialias="true" x="267.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="7" tagg="none" x="84" y="49" size="7"/>
<input rotate="true" text="E2" tagg="none" x="161" y="49" size="7"/>
<input rotate="true" text="28" tagg="none" x="121" y="49" size="7"/>
<circle diameter="5" antialias="true" x="227.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="187.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="147.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="207.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="247.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="87.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="167.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="107.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="127.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="7.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="27.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="47.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="62" tagg="none" x="0" y="49" size="7"/>
<circle diameter="5" antialias="true" x="67.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="E82ZAFSC" tagg="none" x="4" y="12.5" size="9"/>
<line x1="7" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="-9" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="-27" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="-27" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="224" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="273" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="290" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="225" y2="-27" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="290" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="291" y2="57" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="291" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="13" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="27" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="113" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="127" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="133" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="147" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="153" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="167" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="173" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="187" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="193" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="207" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="213" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="227" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="233" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="247" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="253" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="267" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="_" tagg="label" x="302" y="-6" size="9"/>
<terminal orientation="s" x="70" y="60"/>
<terminal orientation="s" x="190" y="60"/>
<terminal orientation="s" x="210" y="60"/>
<terminal orientation="s" x="30" y="60"/>
<terminal orientation="s" x="50" y="60"/>
<terminal orientation="s" x="150" y="60"/>
<terminal orientation="s" x="170" y="60"/>
<terminal orientation="s" x="10" y="60"/>
<terminal orientation="s" x="270" y="60"/>
<terminal orientation="s" x="90" y="60"/>
<terminal orientation="s" x="250" y="60"/>
<terminal orientation="s" x="230" y="60"/>
<terminal orientation="s" x="110" y="60"/>
<terminal orientation="s" x="130" y="60"/>
</description>
</definition>

View File

@@ -0,0 +1,6 @@
<qet-directory>
<names>
<name lang="en">Lenze</name>
<name lang="cs">Lenze</name>
</names>
</qet-directory>

View File

@@ -0,0 +1,67 @@
<definition width="230" orientation="dyyy" version="0.5" height="110" type="element" hotspot_y="39" link_type="simple" hotspot_x="66">
<uuid uuid="{b1feb40e-e154-497b-b4d6-6228e7b6c560}"/>
<names>
<name lang="en">PNOZ e1p</name>
<name lang="cs">PNOZ e1p</name>
<name lang="pl">PNOZ e1p</name>
<name lang="ar">PNOZ e1p</name>
<name lang="fr">PNOZ e1p</name>
</names>
<informations></informations>
<description>
<input rotate="true" text="Y32" tagg="none" rotation="270" x="140" y="3" size="7"/>
<line x1="-17" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="-3" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="S11" tagg="none" rotation="270" x="-20" y="-2" size="7"/>
<circle diameter="5" antialias="true" x="-22.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="83" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="97" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-37" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="-23" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="57.5" y="55.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="158" y2="58" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="158" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="143" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="157" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="PNOZ e1p" tagg="none" x="-55" y="14.5" size="9"/>
<line x1="123" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="137" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="63" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="77" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="103" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="117" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-60" y2="58" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="-60" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="S34" tagg="none" rotation="270" x="80" y="-1" size="7"/>
<input rotate="true" text="S12" tagg="none" rotation="270" x="0" y="-1" size="7"/>
<line x1="-60" y2="58" length1="1.5" y1="58" end2="none" length2="1.5" antialias="false" x2="-43" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="77.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="117.5" y="55.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="Y5" tagg="none" rotation="270" x="119" y="-3" size="7"/>
<line x1="43" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="57" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="A2" tagg="none" rotation="270" x="-40" y="54" size="7"/>
<input rotate="true" text="Y4" tagg="none" rotation="270" x="99" y="-4" size="7"/>
<circle diameter="5" antialias="true" x="-2.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="S22" tagg="none" rotation="270" x="60" y="-1" size="7"/>
<circle diameter="5" antialias="true" x="-42.5" y="55.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="24" tagg="none" rotation="270" x="120" y="52" size="7"/>
<circle diameter="5" antialias="true" x="117.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="S21" tagg="none" rotation="270" x="40" y="-1" size="7"/>
<circle diameter="5" antialias="true" x="137.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="97.5001" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-60" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="-43" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="57.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="37.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="A1" tagg="none" rotation="270" x="-40" y="-6" size="7"/>
<circle diameter="5" antialias="true" x="-42.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="14" tagg="none" rotation="270" x="60" y="54" size="7"/>
<line x1="3" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="37" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-37" y2="58" length1="1.5" y1="58" end2="none" length2="1.5" antialias="false" x2="57" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="63" y2="58" length1="1.5" y1="58" end2="none" length2="1.5" antialias="false" x2="117" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="123" y2="58" length1="1.5" y1="58" end2="none" length2="1.5" antialias="false" x2="157" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="_" tagg="label" x="165" y="48.5" size="9"/>
<terminal orientation="s" x="-40" y="61"/>
<terminal orientation="n" x="-40" y="-31"/>
<terminal orientation="n" x="40" y="-31"/>
<terminal orientation="n" x="60" y="-31"/>
<terminal orientation="n" x="0" y="-31"/>
<terminal orientation="n" x="100" y="-31"/>
<terminal orientation="n" x="80" y="-31"/>
<terminal orientation="n" x="120" y="-31"/>
<terminal orientation="n" x="140" y="-31"/>
<terminal orientation="s" x="120" y="61"/>
<terminal orientation="s" x="60" y="61"/>
<terminal orientation="n" x="-20" y="-31"/>
</description>
</definition>

View File

@@ -0,0 +1,62 @@
<definition width="210" orientation="dyyy" version="0.5" height="210" type="element" hotspot_y="37" link_type="simple" hotspot_x="15">
<uuid uuid="{7de60078-956d-4e74-a01f-5a2a39b83d6a}"/>
<names>
<name lang="en">PM 1207 6EP1332-1SH71</name>
<name lang="cs">PM 1207 6EP1332-1SH71</name>
<name lang="pl">PM 1207 6EP1332-1SH71</name>
<name lang="ar">PM 1207 6EP1332-1SH71</name>
<name lang="pt">PM 1207 6EP1332-1SH71</name>
<name lang="fr">PM 1207 6EP1332-1SH71</name>
</names>
<informations></informations>
<description>
<text text="L+" x="107" y="-15" size="6"/>
<text text="120/230VAC" x="9" y="-3" size="6"/>
<text text="M" x="167" y="-15" size="6"/>
<text text="L" x="7" y="-15" size="6"/>
<text text="L+" x="126" y="-15" size="6"/>
<text text="PM1207" x="2" y="65" size="6"/>
<text text="24VDC" x="127" y="-3" size="6"/>
<text text="N" x="26" y="-15" size="6"/>
<text text="M" x="147" y="-15" size="6"/>
<line x1="13" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="27" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="190" y2="168" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="190" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="167" length1="1.5" y1="91" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="102" y2="0" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="102" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="60" y2="0" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="60" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="2" y2="0" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="2" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="90" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="179" y2="0" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="179" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="153" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="167" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="33" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="47" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="167.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="147.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="113" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="127" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="128" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="133" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="147" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="108" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="47.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="27.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="7" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="48" y2="-13" length1="1.5" y1="-13" end2="none" length2="1.5" antialias="false" x2="52" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="7.4999" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="49" y2="-11" length1="1.5" y1="-11" end2="none" length2="1.5" antialias="false" x2="51" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="46" y2="-15" length1="1.5" y1="-15" end2="none" length2="1.5" antialias="false" x2="54" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="50" y2="-25" length1="1.5" y1="-15" end2="none" length2="1.5" antialias="false" x2="50" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="53" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="108" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="173" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="190" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="167" length1="1.5" y1="167" end2="none" length2="1.5" antialias="false" x2="189" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="90" length1="1.5" y1="90" end2="none" length2="1.5" antialias="false" x2="189" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="50" length1="1.5" y1="50" end2="none" length2="1.5" antialias="false" x2="189" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="_" tagg="label" x="53" y="175.5" size="9"/>
<line x1="2" y2="0" length1="1.5" y1="0" end2="none" length2="1.5" antialias="false" x2="60" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="102" y2="0" length1="1.5" y1="0" end2="none" length2="1.5" antialias="false" x2="178" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<terminal orientation="n" x="10" y="-31"/>
<terminal orientation="n" x="30" y="-31"/>
<terminal orientation="n" x="50" y="-31"/>
<terminal orientation="n" x="150" y="-31"/>
<terminal orientation="n" x="170" y="-31"/>
<terminal orientation="n" x="110.5" y="-31"/>
<terminal orientation="n" x="130.5" y="-31"/>
</description>
</definition>

View File

@@ -0,0 +1,121 @@
<definition width="410" orientation="dyyy" version="0.5" height="210" type="element" hotspot_y="14" link_type="simple" hotspot_x="15">
<uuid uuid="{f2add6aa-9939-4165-921d-e40a9bcd4b1a}"/>
<names>
<name lang="en">SM1234 6ES7234-4HE32-0XB0</name>
<name lang="cs">SM1234 6ES7234-4HE32-0XB0</name>
<name lang="pl">SM1234 6ES7234-4HE32-0XB0</name>
<name lang="ar">SM1234 6ES7234-4HE32-0XB0</name>
<name lang="pt">SM1234 6ES7234-4HE32-0XB0</name>
<name lang="fr">SM1234 6ES7234-4HE32-0XB0</name>
</names>
<informations></informations>
<description>
<line x1="362.5" y2="-7" length1="1.5" y1="-7" end2="none" length2="1.5" antialias="false" x2="379.5" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="ANALOG INPUTS" x="180" y="66" size="8"/>
<line x1="282.5" y2="-7" length1="1.5" y1="-7" end2="none" length2="1.5" antialias="false" x2="299.5" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="60" y2="20" length1="1.5" y1="-7" end2="none" length2="1.5" antialias="false" x2="60" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="202.5" y2="-7" length1="1.5" y1="-7" end2="none" length2="1.5" antialias="false" x2="219.5" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="153.5" y2="187" length1="1.5" y1="187" end2="none" length2="1.5" antialias="false" x2="170.5" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="IW____" tagg="none" x="233" y="39" size="9"/>
<input rotate="true" text="IW____" tagg="none" x="153" y="39" size="9"/>
<input rotate="true" text="IW____" tagg="none" x="314" y="38" size="9"/>
<line x1="122.5" y2="-7" length1="1.5" y1="-7" end2="none" length2="1.5" antialias="false" x2="139.5" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="0+" x="78" y="7" size="6"/>
<text text="2+" x="238" y="7" size="6"/>
<text text="1+" x="158" y="7" size="6"/>
<text text="3+" x="318" y="7" size="6"/>
<text text="1-" x="198" y="7" size="6"/>
<text text="0-" x="118" y="7" size="6"/>
<text text="2-" x="278" y="7" size="6"/>
<text text="3-" x="358" y="7" size="6"/>
<circle diameter="5" antialias="true" x="357.5" y="-9.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="197.5" y="-9.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="277.5" y="-9.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="117.5" y="-9.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="73.5" y2="187" length1="1.5" y1="187" end2="none" length2="1.5" antialias="false" x2="90.5" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="237.5" y="-9.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="317.5" y="-9.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="90.5" y2="186" length1="1.5" y1="159" end2="none" length2="1.5" antialias="false" x2="90.5" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="157.5" y="-9.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="77.5" y="-9.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="300" y2="-7" length1="1.5" y1="-7" end2="none" length2="1.5" antialias="false" x2="317" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="60" y2="-7" length1="1.5" y1="-7" end2="none" length2="1.5" antialias="false" x2="77" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="220" y2="-7" length1="1.5" y1="-7" end2="none" length2="1.5" antialias="false" x2="237" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="140" y2="-7" length1="1.5" y1="-7" end2="none" length2="1.5" antialias="false" x2="157" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="323" y2="-7" length1="1.5" y1="-7" end2="none" length2="1.5" antialias="false" x2="357" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="83" y2="-7" length1="1.5" y1="-7" end2="none" length2="1.5" antialias="false" x2="117" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="163" y2="-7" length1="1.5" y1="-7" end2="none" length2="1.5" antialias="false" x2="197" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="170.5" y2="186" length1="1.5" y1="159" end2="none" length2="1.5" antialias="false" x2="170.5" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="243" y2="-7" length1="1.5" y1="-7" end2="none" length2="1.5" antialias="false" x2="277" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="300" y2="20" length1="1.5" y1="-7" end2="none" length2="1.5" antialias="false" x2="300" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="380" y2="20" length1="1.5" y1="-7" end2="none" length2="1.5" antialias="false" x2="380" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="220" y2="20" length1="1.5" y1="-7" end2="none" length2="1.5" antialias="false" x2="220" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="1M" x="104" y="180" size="6"/>
<text text="1" x="148" y="180" size="6"/>
<circle diameter="5" antialias="true" x="147.5" y="184.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="107.5" y="184.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="0M" x="24" y="180" size="6"/>
<text text="L+" x="5" y="6" size="6"/>
<line x1="90" y2="159" length1="1.5" y1="159" end2="none" length2="1.5" antialias="false" x2="170" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="170" y2="187" length1="1.5" y1="187" end2="none" length2="1.5" antialias="false" x2="187" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="QW____" tagg="none" x="90" y="146.5" size="9"/>
<text text="SM1234 4AI 2AO" x="12" y="92" size="8"/>
<text text="24VDC" x="7" y="31" size="6"/>
<text text="ANALOG OUTPUTS" x="45" y="124" size="8"/>
<line x1="90" y2="187" length1="1.5" y1="187" end2="none" length2="1.5" antialias="false" x2="107" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="113" y2="187" length1="1.5" y1="187" end2="none" length2="1.5" antialias="false" x2="147" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="0" x="68" y="180" size="6"/>
<text text="M" x="26" y="6" size="6"/>
<line x1="13" y2="-7" length1="1.5" y1="-7" end2="none" length2="1.5" antialias="false" x2="27" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="10" y2="186" length1="1.5" y1="159" end2="none" length2="1.5" antialias="false" x2="10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="2" y2="21" length1="1.5" y1="21" end2="none" length2="1.5" antialias="false" x2="37" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<polygon y1="11" y3="15" antialias="true" closed="false" y4="17" x1="19" y6="15" y7="11" x8="19" y9="12" y8="11" x2="19" x9="19" x3="17" style="line-style:normal;line-weight:normal;filling:none;color:black" y5="15" x6="21" x7="21" y2="15" x4="20" x5="23"/>
<line x1="38" y2="21" length1="1.5" y1="-6" end2="none" length2="1.5" antialias="false" x2="38" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="2" y2="21" length1="1.5" y1="-6" end2="none" length2="1.5" antialias="false" x2="2" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="112" length1="1.5" y1="-6" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="33" y2="-7" length1="1.5" y1="-7" end2="none" length2="1.5" antialias="false" x2="47" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="67.5" y="184.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="47.5" y="-9.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="27.5" y="-9.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="-7" length1="1.5" y1="-7" end2="none" length2="1.5" antialias="false" x2="7" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="48" y2="8" length1="1.5" y1="8" end2="none" length2="1.5" antialias="false" x2="52" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="7.4999" y="-9.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="49" y2="10" length1="1.5" y1="10" end2="none" length2="1.5" antialias="false" x2="51" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="46" y2="6" length1="1.5" y1="6" end2="none" length2="1.5" antialias="false" x2="54" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="50" y2="-4" length1="1.5" y1="6" end2="none" length2="1.5" antialias="false" x2="50" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="27.5" y="184.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="10" y2="159" length1="1.5" y1="159" end2="none" length2="1.5" antialias="false" x2="90" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-9" y2="72" length1="1.5" y1="72" end2="none" length2="1.5" antialias="false" x2="89" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="112" length1="1.5" y1="112" end2="none" length2="1.5" antialias="false" x2="89" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="?U?" tagg="label" x="-49" y="94" size="9"/>
<input rotate="true" text="QW____" tagg="none" x="10" y="146.5" size="9"/>
<line x1="10" y2="187" length1="1.5" y1="187" end2="none" length2="1.5" antialias="false" x2="27" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="33" y2="187" length1="1.5" y1="187" end2="none" length2="1.5" antialias="false" x2="67" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="89" y2="72" length1="1.5" y1="72" end2="none" length2="1.5" antialias="false" x2="390" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="90" y2="112" length1="1.5" y1="112" end2="none" length2="1.5" antialias="false" x2="390" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="140" y2="20" length1="1.5" y1="-7" end2="none" length2="1.5" antialias="false" x2="140" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="60" y2="20" length1="1.5" y1="20" end2="none" length2="1.5" antialias="false" x2="380" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="IW____" tagg="none" x="73" y="40" size="9"/>
<line x1="-10" y2="187" length1="1.5" y1="110" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="187" length1="1.5" y1="187" end2="none" length2="1.5" antialias="false" x2="10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="53" y2="-7" length1="1.5" y1="-7" end2="none" length2="1.5" antialias="false" x2="60" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="380" y2="-7" length1="1.5" y1="-7" end2="none" length2="1.5" antialias="false" x2="390" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="390" y2="186" length1="1.5" y1="-7" end2="none" length2="1.5" antialias="false" x2="390" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="187" y2="187" length1="1.5" y1="187" end2="none" length2="1.5" antialias="false" x2="390" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<terminal orientation="n" x="10" y="-10"/>
<terminal orientation="n" x="30" y="-10"/>
<terminal orientation="n" x="50" y="-10"/>
<terminal orientation="s" x="30" y="190"/>
<terminal orientation="s" x="70" y="190"/>
<terminal orientation="s" x="110" y="190"/>
<terminal orientation="s" x="150" y="190"/>
<terminal orientation="n" x="360" y="-10"/>
<terminal orientation="n" x="120" y="-10"/>
<terminal orientation="n" x="80" y="-10"/>
<terminal orientation="n" x="280" y="-10"/>
<terminal orientation="n" x="240" y="-10"/>
<terminal orientation="n" x="160" y="-10"/>
<terminal orientation="n" x="200" y="-10"/>
<terminal orientation="n" x="320" y="-10"/>
</description>
</definition>

View File

@@ -0,0 +1,69 @@
<definition width="130" orientation="dyyy" version="0.5" height="220" type="element" hotspot_y="39" link_type="simple" hotspot_x="14">
<uuid uuid="{39a95119-2325-4a8f-a227-12e860cd609d}"/>
<names>
<name lang="en">CPU 1214C 6ES7214-1AG31-0XB0 PART1</name>
<name lang="cs">CPU 1214C 6ES7214-1AG31-0XB0 PART1</name>
<name lang="pl">CPU 1214C 6ES7214-1AG31-0XB0 PART1</name>
<name lang="ar">CPU 1214C 6ES7214-1AG31-0XB0 PART1</name>
<name lang="pt">CPU 1214C 6ES7214-1AG31-0XB0 PART1</name>
<name lang="fr">CPU 1214C 6ES7214-1AG31-0XB0 PART1</name>
</names>
<informations></informations>
<description>
<text text="PART 1/5" x="61" y="79" size="6"/>
<input rotate="true" text="__-__-__-__-__-__" tagg="none" x="-2" y="158.5" size="6"/>
<text text=" MAC ADDRESS" x="4" y="152.5" size="6"/>
<text text="DC/DC/DC" x="-2" y="79" size="6"/>
<text text="PROFINET (LAN)" x="2" y="142.5" size="6"/>
<text text="L+" x="5" y="-15" size="6"/>
<text text="L+" x="66" y="-15" size="6"/>
<text text="CPU 1214C" x="-2" y="69" size="6"/>
<text text="X1 P1" x="29" y="125" size="6"/>
<text text="24VDC" x="7" y="10" size="6"/>
<text text="24VDC" x="67" y="10" size="6"/>
<text text="M" x="26" y="-15" size="6"/>
<text text="M" x="87" y="-15" size="6"/>
<line x1="-4" y2="130" length1="1.5" y1="130" end2="none" length2="1.5" antialias="false" x2="94" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="15" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<rect width="59" height="3" antialias="false" x="16" y="166" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-4" y2="131" length1="1.5" y1="167" end2="none" length2="1.5" antialias="false" x2="-4" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="94" y2="130" length1="1.5" y1="167" end2="none" length2="1.5" antialias="false" x2="94" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="13" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="27" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="110" y2="168" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="110" end1="none" style="line-style:dashed;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="167" length1="1.5" y1="91" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="2" y2="0" length1="1.5" y1="0" end2="none" length2="1.5" antialias="false" x2="37" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="62" y2="0" length1="1.5" y1="0" end2="none" length2="1.5" antialias="false" x2="98" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="73" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="87" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<polygon y1="-4" y3="-8" antialias="true" closed="false" y4="-8" x1="79" y6="-8" y7="-8" x8="79" y9="-4" x10="79" y8="-8" x2="81" x9="79" x3="81" style="line-style:normal;line-weight:normal;filling:none;color:black" y5="-10" x6="77" x7="78" y2="-4" x4="83" x5="80" y10="-4"/>
<line x1="93" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="107" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<polygon y1="-10" y3="-6" antialias="true" closed="false" y4="-4" x1="19" y6="-6" y7="-10" x8="19" y9="-9" y8="-10" x2="19" x9="19" x3="17" style="line-style:normal;line-weight:normal;filling:none;color:black" y5="-6" x6="21" x7="21" y2="-6" x4="20" x5="23"/>
<line x1="38" y2="0" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="38" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="2" y2="0" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="2" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="90" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="98" y2="0" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="98" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="53" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="67" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="33" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="47" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="62" y2="0" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="62" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="88" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="67.9999" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="47.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="27.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="7" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="48" y2="-13" length1="1.5" y1="-13" end2="none" length2="1.5" antialias="false" x2="52" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="7.4999" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="49" y2="-11" length1="1.5" y1="-11" end2="none" length2="1.5" antialias="false" x2="51" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="46" y2="-15" length1="1.5" y1="-15" end2="none" length2="1.5" antialias="false" x2="54" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="50" y2="-25" length1="1.5" y1="-15" end2="none" length2="1.5" antialias="false" x2="50" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="76" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="109" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="107" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="109" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="50" length1="1.5" y1="50" end2="none" length2="1.5" antialias="false" x2="110" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="90" length1="1.5" y1="90" end2="none" length2="1.5" antialias="false" x2="111" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="?U?" tagg="label" x="77" y="182.5" size="9"/>
<terminal orientation="n" x="10" y="-31"/>
<terminal orientation="n" x="30" y="-31"/>
<terminal orientation="n" x="50" y="-31"/>
<terminal orientation="n" x="70.5" y="-31"/>
<terminal orientation="n" x="90.5" y="-31"/>
<terminal orientation="s" x="40" y="171"/>
</description>
</definition>

View File

@@ -0,0 +1,64 @@
<definition width="210" orientation="dyyy" version="0.5" height="130" type="element" hotspot_y="16" link_type="simple" hotspot_x="15">
<uuid uuid="{9dc79fd5-ba11-45a3-b53c-47ab22ecc215}"/>
<names>
<name lang="en">CPU 1214C 6ES7214-1AG31-0XB0 PART2</name>
<name lang="cs">CPU 1214C 6ES7214-1AG31-0XB0 PART2</name>
<name lang="pl">CPU 1214C 6ES7214-1AG31-0XB0 PART2</name>
<name lang="ar">CPU 1214C 6ES7214-1AG31-0XB0 PART2</name>
<name lang="pt">CPU 1214C 6ES7214-1AG31-0XB0 PART2</name>
<name lang="fr">CPU 1214C 6ES7214-1AG31-0XB0 PART2</name>
</names>
<informations></informations>
<description>
<text text="PART 2/5" x="136.741" y="98.2447" size="6"/>
<line x1="0" y2="20" length1="1.5" y1="-8" end2="none" length2="1.5" antialias="false" x2="0" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="DC/DC/DC" x="-1" y="99" size="6"/>
<text text="1M" x="3" y="6" size="6"/>
<text text="DIa" x="24" y="16" size="6"/>
<text text=".0" x="27" y="5" size="6"/>
<text text="CPU 1214C" x="-1" y="89" size="6"/>
<text text="24VDC INPUTS" x="52" y="32" size="6"/>
<text text=".7" x="167" y="5" size="6"/>
<text text=".4" x="107" y="5" size="6"/>
<text text=".3" x="87" y="5" size="6"/>
<text text=".2" x="67" y="5" size="6"/>
<text text=".1" x="47" y="5" size="6"/>
<text text=".6" x="147" y="5" size="6"/>
<text text=".5" x="127" y="5" size="6"/>
<line x1="180" y2="20" length1="1.5" y1="-8" end2="none" length2="1.5" antialias="false" x2="180" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="110" length1="1.5" y1="-8" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:dashed;line-weight:normal;filling:none;color:black"/>
<line x1="153" y2="-8" length1="1.5" y1="-8" end2="none" length2="1.5" antialias="false" x2="167" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="133" y2="-8" length1="1.5" y1="-8" end2="none" length2="1.5" antialias="false" x2="147" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="113" y2="-8" length1="1.5" y1="-8" end2="none" length2="1.5" antialias="false" x2="127" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="93" y2="-8" length1="1.5" y1="-8" end2="none" length2="1.5" antialias="false" x2="107" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="73" y2="-8" length1="1.5" y1="-8" end2="none" length2="1.5" antialias="false" x2="87" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="53" y2="-8" length1="1.5" y1="-8" end2="none" length2="1.5" antialias="false" x2="67" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="127.5" y="-10.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="27.5" y="-10.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="107.5" y="-10.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="7.5" y="-10.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="13" y2="-8" length1="1.5" y1="-8" end2="none" length2="1.5" antialias="false" x2="27" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="147.5" y="-10.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="87.5" y="-10.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="67.5" y="-10.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="33" y2="-8" length1="1.5" y1="-8" end2="none" length2="1.5" antialias="false" x2="47" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="167.5" y="-10.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="47.5" y="-10.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="7" y2="-8" length1="1.5" y1="-8" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="173" y2="-8" length1="1.5" y1="-8" end2="none" length2="1.5" antialias="false" x2="190" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="0" y2="20" length1="1.5" y1="20" end2="none" length2="1.5" antialias="false" x2="180" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="70" length1="1.5" y1="70" end2="none" length2="1.5" antialias="false" x2="189" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="190" y2="109" length1="1.5" y1="-7" end2="none" length2="1.5" antialias="false" x2="190" end1="none" style="line-style:dashed;line-weight:normal;filling:none;color:black"/>
<line x1="-9" y2="110" length1="1.5" y1="110" end2="none" length2="1.5" antialias="false" x2="190" end1="none" style="line-style:dashed;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="?U?" tagg="label" x="156.741" y="122.745" size="9"/>
<terminal orientation="n" x="10" y="-11"/>
<terminal orientation="n" x="30" y="-11"/>
<terminal orientation="n" x="50" y="-11"/>
<terminal orientation="n" x="70" y="-11"/>
<terminal orientation="n" x="90" y="-11"/>
<terminal orientation="n" x="110" y="-11"/>
<terminal orientation="n" x="130" y="-11"/>
<terminal orientation="n" x="150" y="-11"/>
<terminal orientation="n" x="170" y="-11"/>
</description>
</definition>

View File

@@ -0,0 +1,56 @@
<definition width="170" orientation="dyyy" version="0.5" height="130" type="element" hotspot_y="16" link_type="simple" hotspot_x="15">
<uuid uuid="{631abbd8-1471-40ce-a963-eee0921920dc}"/>
<names>
<name lang="en">CPU 1214C 6ES7214-1AG31-0XB0 PART3</name>
<name lang="cs">CPU 1214C 6ES7214-1AG31-0XB0 PART3</name>
<name lang="pl">CPU 1214C 6ES7214-1AG31-0XB0 PART3</name>
<name lang="ar">CPU 1214C 6ES7214-1AG31-0XB0 PART3</name>
<name lang="pt">CPU 1214C 6ES7214-1AG31-0XB0 PART3</name>
<name lang="fr">CPU 1214C 6ES7214-1AG31-0XB0 PART3</name>
</names>
<informations></informations>
<description>
<line x1="0" y2="20" length1="1.5" y1="-8" end2="none" length2="1.5" antialias="false" x2="0" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="PART 3/5" x="96" y="98" size="6"/>
<text text="DC/DC/DC" x="-1" y="98" size="6"/>
<text text="DIb" x="25" y="17" size="6"/>
<text text=".0" x="27" y="5" size="6"/>
<text text="1M" x="4" y="5" size="6"/>
<text text="CPU 1214C" x="-1" y="88" size="6"/>
<text text="24VDC INPUTS" x="34" y="31" size="6"/>
<text text=".4" x="107" y="5" size="6"/>
<text text=".3" x="87" y="5" size="6"/>
<text text=".2" x="67" y="5" size="6"/>
<text text=".1" x="47" y="5" size="6"/>
<text text=".5" x="127" y="5" size="6"/>
<line x1="140" y2="20" length1="1.5" y1="-8" end2="none" length2="1.5" antialias="false" x2="140" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="113" y2="-8" length1="1.5" y1="-8" end2="none" length2="1.5" antialias="false" x2="127" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="93" y2="-8" length1="1.5" y1="-8" end2="none" length2="1.5" antialias="false" x2="107" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="73" y2="-8" length1="1.5" y1="-8" end2="none" length2="1.5" antialias="false" x2="87" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="53" y2="-8" length1="1.5" y1="-8" end2="none" length2="1.5" antialias="false" x2="67" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="33" y2="-8" length1="1.5" y1="-8" end2="none" length2="1.5" antialias="false" x2="47" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="13" y2="-8" length1="1.5" y1="-8" end2="none" length2="1.5" antialias="false" x2="27" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="127.5" y="-10.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="107.5" y="-10.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="87.5" y="-10.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="67.5" y="-10.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="47.5" y="-10.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="27.5" y="-10.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="7.5" y="-10.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="7" y2="-8" length1="1.5" y1="-8" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="133" y2="-8" length1="1.5" y1="-8" end2="none" length2="1.5" antialias="false" x2="150" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="1" y2="20" length1="1.5" y1="20" end2="none" length2="1.5" antialias="false" x2="140" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="109" length1="1.5" y1="-8" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:dashed;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="110" length1="1.5" y1="110" end2="none" length2="1.5" antialias="false" x2="150" end1="none" style="line-style:dashed;line-weight:normal;filling:none;color:black"/>
<line x1="150" y2="110" length1="1.5" y1="-8" end2="none" length2="1.5" antialias="false" x2="150" end1="none" style="line-style:dashed;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="70" length1="1.5" y1="70" end2="none" length2="1.5" antialias="false" x2="150" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="?U?" tagg="label" x="117" y="123.5" size="9"/>
<terminal orientation="n" x="10" y="-11"/>
<terminal orientation="n" x="30" y="-11"/>
<terminal orientation="n" x="50" y="-11"/>
<terminal orientation="n" x="70" y="-11"/>
<terminal orientation="n" x="90" y="-11"/>
<terminal orientation="n" x="110" y="-11"/>
<terminal orientation="n" x="130" y="-11"/>
</description>
</definition>

View File

@@ -0,0 +1,41 @@
<definition width="100" orientation="dyyy" version="0.5" height="130" type="element" hotspot_y="45" link_type="simple" hotspot_x="15">
<uuid uuid="{0bb6efba-bc9e-40f3-b451-2de11b859ecb}"/>
<names>
<name lang="en">CPU 1214C 6ES7214-1AG31-0XB0 PART4</name>
<name lang="cs">CPU 1214C 6ES7214-1AG31-0XB0 PART4</name>
<name lang="pl">CPU 1214C 6ES7214-1AG31-0XB0 PART4</name>
<name lang="ar">CPU 1214C 6ES7214-1AG31-0XB0 PART4</name>
<name lang="pt">CPU 1214C 6ES7214-1AG31-0XB0 PART4</name>
<name lang="fr">CPU 1214C 6ES7214-1AG31-0XB0 PART4</name>
</names>
<informations></informations>
<description>
<text text="PART 4/5" x="-4" y="74" size="6"/>
<text text="INPUTS" x="14" y="14" size="6"/>
<text text="DC/DC/DC" x="-4" y="64" size="6"/>
<text text="0" x="28" y="-23" size="6"/>
<text text="AI" x="25" y="-11" size="6"/>
<text text="CPU 1214C" x="-4" y="54" size="6"/>
<text text="2M" x="5" y="-23" size="6"/>
<text text="1" x="48" y="-23" size="6"/>
<line x1="2" y2="-9" length1="1.5" y1="-9" end2="none" length2="1.5" antialias="false" x2="58" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="ANALOG" x="13" y="1" size="6"/>
<line x1="2" y2="-10" length1="1.5" y1="-37" end2="none" length2="1.5" antialias="false" x2="2" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="58" y2="-10" length1="1.5" y1="-37" end2="none" length2="1.5" antialias="false" x2="58" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="33" y2="-37" length1="1.5" y1="-37" end2="none" length2="1.5" antialias="false" x2="47" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="13" y2="-37" length1="1.5" y1="-37" end2="none" length2="1.5" antialias="false" x2="27" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="47.5" y="-39.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="27.5" y="-39.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="7.5" y="-39.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="53" y2="-37" length1="1.5" y1="-37" end2="none" length2="1.5" antialias="false" x2="80" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="7" y2="-37" length1="1.5" y1="-37" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="81" length1="1.5" y1="-37" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:dashed;line-weight:normal;filling:none;color:black"/>
<line x1="80" y2="81" length1="1.5" y1="-37" end2="none" length2="1.5" antialias="false" x2="80" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="80" y2="81" length1="1.5" y1="81" end2="none" length2="1.5" antialias="false" x2="-9" end1="none" style="line-style:dashed;line-weight:normal;filling:none;color:black"/>
<line x1="80" y2="41" length1="1.5" y1="41" end2="none" length2="1.5" antialias="false" x2="-9" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="?U?" tagg="label" x="46" y="93.5" size="9"/>
<terminal orientation="n" x="10" y="-40"/>
<terminal orientation="n" x="30" y="-40"/>
<terminal orientation="n" x="50" y="-40"/>
</description>
</definition>

View File

@@ -0,0 +1,77 @@
<definition width="270" orientation="dyyy" version="0.5" height="130" type="element" hotspot_y="63" link_type="simple" hotspot_x="135">
<uuid uuid="{03c6ef2b-460b-433b-bdeb-edcd78c7aabc}"/>
<names>
<name lang="en">CPU 1214C 6ES7214-1AG31-0XB0 PART5</name>
<name lang="cs">CPU 1214C 6ES7214-1AG31-0XB0 PART5</name>
<name lang="pl">CPU 1214C 6ES7214-1AG31-0XB0 PART5</name>
<name lang="ar">CPU 1214C 6ES7214-1AG31-0XB0 PART5</name>
<name lang="pt">CPU 1214C 6ES7214-1AG31-0XB0 PART5</name>
<name lang="fr">CPU 1214C 6ES7214-1AG31-0XB0 PART5</name>
</names>
<informations></informations>
<description>
<text text="PART 5/5" x="76" y="-30" size="6"/>
<text text="DC/DC/DC" x="-121" y="-30" size="6"/>
<text text=".0" x="-71" y="52" size="6"/>
<text text="DQb" x="83" y="41" size="6"/>
<text text="DQa" x="-76" y="40" size="6"/>
<text text="CPU 1214C" x="-121" y="-40" size="6"/>
<text text="24VDC OUTPUTS" x="-44" y="28" size="6"/>
<text text="3L+" x="-116" y="52" size="6"/>
<text text="3M" x="-95" y="52" size="6"/>
<text text=".7" x="67" y="52" size="6"/>
<text text=".0" x="87" y="52" size="6"/>
<text text=".4" x="7" y="52" size="6"/>
<text text=".3" x="-13" y="52" size="6"/>
<text text=".2" x="-33" y="52" size="6"/>
<text text=".1" x="-53" y="52" size="6"/>
<text text=".6" x="47" y="52" size="6"/>
<text text=".1" x="107" y="52" size="6"/>
<text text=".5" x="27" y="52" size="6"/>
<line x1="-118" y2="57" length1="1.5" y1="30" end2="none" length2="1.5" antialias="false" x2="-118" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="117" y2="30" length1="1.5" y1="30" end2="none" length2="1.5" antialias="false" x2="-117" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="117" y2="30" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="117" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-47" y2="58" length1="1.5" y1="58" end2="none" length2="1.5" antialias="false" x2="-33" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="33" y2="58" length1="1.5" y1="58" end2="none" length2="1.5" antialias="false" x2="47" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="93" y2="58" length1="1.5" y1="58" end2="none" length2="1.5" antialias="false" x2="107" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="73" y2="58" length1="1.5" y1="58" end2="none" length2="1.5" antialias="false" x2="87" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="-52.5" y="55.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="53" y2="58" length1="1.5" y1="58" end2="none" length2="1.5" antialias="false" x2="67" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="13" y2="58" length1="1.5" y1="58" end2="none" length2="1.5" antialias="false" x2="27" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-7" y2="58" length1="1.5" y1="58" end2="none" length2="1.5" antialias="false" x2="7" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-27" y2="58" length1="1.5" y1="58" end2="none" length2="1.5" antialias="false" x2="-13" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="107.5" y="55.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="87.5" y="55.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-67" y2="58" length1="1.5" y1="58" end2="none" length2="1.5" antialias="false" x2="-53" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-87" y2="58" length1="1.5" y1="58" end2="none" length2="1.5" antialias="false" x2="-73" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="67.5" y="55.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-107" y2="58" length1="1.5" y1="58" end2="none" length2="1.5" antialias="false" x2="-93" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="47.5" y="55.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="27.5" y="55.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="7.5" y="55.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="-12.5" y="55.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="-112.5" y="55.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="-32.5" y="55.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="-72.5" y="55.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="-92.5" y="55.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="112" y2="58" length1="1.5" y1="58" end2="none" length2="1.5" antialias="false" x2="130" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-113" y2="58" length1="1.5" y1="58" end2="none" length2="1.5" antialias="false" x2="-130" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-130" y2="-60" length1="1.5" y1="58" end2="none" length2="1.5" antialias="false" x2="-130" end1="none" style="line-style:dashed;line-weight:normal;filling:none;color:black"/>
<line x1="130" y2="-60" length1="1.5" y1="58" end2="none" length2="1.5" antialias="false" x2="130" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-130" y2="-20" length1="1.5" y1="-20" end2="none" length2="1.5" antialias="false" x2="129" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-130" y2="-60" length1="1.5" y1="-60" end2="none" length2="1.5" antialias="false" x2="130" end1="none" style="line-style:dashed;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="?U?" tagg="label" x="-131" y="-71.5" size="9"/>
<terminal orientation="s" x="-110" y="61"/>
<terminal orientation="s" x="-90" y="61"/>
<terminal orientation="s" x="-70" y="61"/>
<terminal orientation="s" x="-30" y="61"/>
<terminal orientation="s" x="-10" y="61"/>
<terminal orientation="s" x="10" y="61"/>
<terminal orientation="s" x="30" y="61"/>
<terminal orientation="s" x="50" y="61"/>
<terminal orientation="s" x="70" y="61"/>
<terminal orientation="s" x="90" y="61"/>
<terminal orientation="s" x="110" y="61"/>
<terminal orientation="s" x="-50" y="61"/>
</description>
</definition>

View File

@@ -0,0 +1,202 @@
<definition width="450" orientation="dyyy" version="0.5" height="220" type="element" hotspot_y="39" link_type="simple" hotspot_x="15">
<uuid uuid="{b198607c-63b2-4325-a77a-1e93e887c0a8}"/>
<names>
<name lang="en">6ES7223-1BL30-0XB0</name>
<name lang="cs">6ES7223-1BL30-0XB0</name>
<name lang="pl">6ES7223-1BL30-0XB0</name>
<name lang="ar">6ES7223-1BL30-0XB0</name>
<name lang="pt">6ES7223-1BL30-0XB0</name>
<name lang="fr">6ES7223-1BL30-0XB0</name>
</names>
<informations></informations>
<description>
<line x1="240" y2="167" length1="1.5" y1="140" end2="none" length2="1.5" antialias="false" x2="240" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="2M" x="245" y="-15" size="6"/>
<text text=".0" x="247" y="161" size="6"/>
<text text="DQb" x="248" y="150" size="6"/>
<text text=".0" x="267" y="-14" size="6"/>
<text text=".7" x="387" y="161" size="6"/>
<text text=".7" x="407" y="-14" size="6"/>
<text text=".4" x="347" y="-14" size="6"/>
<text text="DC/DC" x="375" y="79" size="6"/>
<text text=".4" x="327" y="161" size="6"/>
<text text=".3" x="307" y="161" size="6"/>
<text text=".3" x="327" y="-14" size="6"/>
<text text=".2" x="287" y="161" size="6"/>
<text text=".2" x="307" y="-14" size="6"/>
<text text=".0" x="87" y="161" size="6"/>
<text text=".1" x="267" y="161" size="6"/>
<text text=".1" x="287" y="-14" size="6"/>
<text text="DQa" x="88" y="150" size="6"/>
<text text=".6" x="387" y="-14" size="6"/>
<text text=".6" x="367" y="161" size="6"/>
<text text=".5" x="367" y="-14" size="6"/>
<text text="L+" x="5" y="-15" size="6"/>
<text text=".5" x="347" y="161" size="6"/>
<line x1="400" y2="167" length1="1.5" y1="140" end2="none" length2="1.5" antialias="false" x2="400" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="420" y2="0" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="420" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="313" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="327" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="233" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="247" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="413" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="427" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="393" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="407" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="DIb" x="245" y="-2" size="6"/>
<line x1="393" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="407" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="267.5" y="165.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="373" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="387" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="373" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="387" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="1M" x="65" y="-15" size="6"/>
<line x1="353" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="367" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="353" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="367" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="333" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="347" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="333" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="347" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="DIa" x="85" y="-2" size="6"/>
<text text=".0" x="87" y="-14" size="6"/>
<line x1="313" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="327" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="293" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="307" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="293" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="307" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="273" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="287" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="SM1223" x="375" y="69" size="6"/>
<circle diameter="5" antialias="true" x="367.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="387.5" y="165.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="24VDC" x="7" y="10" size="6"/>
<circle diameter="5" antialias="true" x="267.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="253" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="267" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="367.5" y="165.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="347.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="247.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="24VDC OUTPUTS" x="212" y="128" size="6"/>
<circle diameter="5" antialias="true" x="347.5" y="165.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="327.5" y="165.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="253" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="267" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="387.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="307.5" y="165.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="287.5" y="165.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="327.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text=".7" x="227" y="161" size="6"/>
<circle diameter="5" antialias="true" x="247.5" y="165.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="307.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="273" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="287" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text=".4" x="167" y="161" size="6"/>
<text text=".3" x="147" y="161" size="6"/>
<circle diameter="5" antialias="true" x="407.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="287.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text=".2" x="127" y="161" size="6"/>
<text text=".1" x="107" y="161" size="6"/>
<text text="24VDC INPUTS" x="209" y="14" size="6"/>
<text text="M" x="26" y="-15" size="6"/>
<text text=".7" x="227" y="-14" size="6"/>
<text text=".6" x="207" y="161" size="6"/>
<text text=".4" x="167" y="-14" size="6"/>
<text text=".5" x="187" y="161" size="6"/>
<line x1="15" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text=".3" x="147" y="-14" size="6"/>
<text text=".2" x="127" y="-14" size="6"/>
<text text=".1" x="107" y="-14" size="6"/>
<text text=".6" x="207" y="-14" size="6"/>
<text text=".5" x="187" y="-14" size="6"/>
<line x1="13" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="27" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="80" y2="167" length1="1.5" y1="140" end2="none" length2="1.5" antialias="false" x2="80" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="430" y2="168" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="430" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="167" length1="1.5" y1="91" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="2" y2="0" length1="1.5" y1="0" end2="none" length2="1.5" antialias="false" x2="37" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="240" y2="0" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="240" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="62" y2="0" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="62" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="53" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="67" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<polygon y1="-10" y3="-6" antialias="true" closed="false" y4="-4" x1="19" y6="-6" y7="-10" x8="19" y9="-9" y8="-10" x2="19" x9="19" x3="17" style="line-style:normal;line-weight:normal;filling:none;color:black" y5="-6" x6="21" x7="21" y2="-6" x4="20" x5="23"/>
<line x1="38" y2="0" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="38" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="2" y2="0" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="2" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="90" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="153" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="167" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="233" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="247" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="213" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="227" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="193" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="207" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="173" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="187" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="153" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="167" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="133" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="147" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="113" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="127" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="33" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="47" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="107.5" y="165.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="213" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="227" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="193" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="207" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="187.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="87.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="173" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="187" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="167.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="67.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="133" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="147" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="73" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="87" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="113" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="127" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="207.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="147.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="227.5" y="165.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="93" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="107" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="127.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="207.5" y="165.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="93" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="107" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="227.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="107.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="47.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="27.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="7" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="187.5" y="165.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="48" y2="-13" length1="1.5" y1="-13" end2="none" length2="1.5" antialias="false" x2="52" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="167.5" y="165.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="7.4999" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="49" y2="-11" length1="1.5" y1="-11" end2="none" length2="1.5" antialias="false" x2="51" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="46" y2="-15" length1="1.5" y1="-15" end2="none" length2="1.5" antialias="false" x2="54" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="50" y2="-25" length1="1.5" y1="-15" end2="none" length2="1.5" antialias="false" x2="50" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="147.5" y="165.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="127.5" y="165.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="87.5" y="165.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="62" y2="0" length1="1.5" y1="0" end2="none" length2="1.5" antialias="false" x2="240" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="240" y2="0" length1="1.5" y1="0" end2="none" length2="1.5" antialias="false" x2="420" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="81" y2="140" length1="1.5" y1="140" end2="none" length2="1.5" antialias="false" x2="239" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="241" y2="140" length1="1.5" y1="140" end2="none" length2="1.5" antialias="false" x2="400" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="408" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="430" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="427" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="430" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="239" y2="90" length1="1.5" y1="90" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="239" y2="50" length1="1.5" y1="50" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="15" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="86" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="86" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="87" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="239" y2="90" length1="1.5" y1="90" end2="none" length2="1.5" antialias="false" x2="430" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="239" y2="50" length1="1.5" y1="50" end2="none" length2="1.5" antialias="false" x2="429" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="?U?" tagg="label" x="405" y="188" size="9"/>
<terminal orientation="n" x="30" y="-31"/>
<terminal orientation="n" x="10" y="-31"/>
<terminal orientation="n" x="50" y="-31"/>
<terminal orientation="n" x="70" y="-31"/>
<terminal orientation="n" x="90" y="-31"/>
<terminal orientation="n" x="110" y="-31"/>
<terminal orientation="n" x="130" y="-31"/>
<terminal orientation="n" x="150" y="-31"/>
<terminal orientation="n" x="170" y="-31"/>
<terminal orientation="n" x="190" y="-31"/>
<terminal orientation="n" x="210" y="-31"/>
<terminal orientation="n" x="230" y="-31"/>
<terminal orientation="s" x="90" y="171"/>
<terminal orientation="s" x="130" y="171"/>
<terminal orientation="s" x="150" y="171"/>
<terminal orientation="s" x="170" y="171"/>
<terminal orientation="s" x="190" y="171"/>
<terminal orientation="s" x="210" y="171"/>
<terminal orientation="s" x="230" y="171"/>
<terminal orientation="s" x="110" y="171"/>
<terminal orientation="n" x="250" y="-31"/>
<terminal orientation="n" x="270" y="-31"/>
<terminal orientation="n" x="290" y="-31"/>
<terminal orientation="n" x="310" y="-31"/>
<terminal orientation="n" x="330" y="-31"/>
<terminal orientation="n" x="350" y="-31"/>
<terminal orientation="n" x="370" y="-31"/>
<terminal orientation="n" x="390" y="-31"/>
<terminal orientation="n" x="410" y="-31"/>
<terminal orientation="s" x="250" y="171"/>
<terminal orientation="s" x="290" y="171"/>
<terminal orientation="s" x="310" y="171"/>
<terminal orientation="s" x="330" y="171"/>
<terminal orientation="s" x="350" y="171"/>
<terminal orientation="s" x="370" y="171"/>
<terminal orientation="s" x="390" y="171"/>
<terminal orientation="s" x="270" y="171"/>
</description>
</definition>

View File

@@ -0,0 +1,126 @@
<definition width="450" orientation="dyyy" version="0.5" height="130" type="element" hotspot_y="36" link_type="simple" hotspot_x="15">
<uuid uuid="{aaae32f5-3bb2-4150-8da1-a2a5ccd56128}"/>
<names>
<name lang="en">SM1223 6ES7223-1BL30-0XB0 PART1</name>
<name lang="cs">SM1223 6ES7223-1BL30-0XB0 PART1</name>
<name lang="pl">SM1223 6ES7223-1BL30-0XB0 PART1</name>
<name lang="ar">SM1223 6ES7223-1BL30-0XB0 PART1</name>
<name lang="pt">SM1223 6ES7223-1BL30-0XB0 PART1</name>
<name lang="fr">SM1223 6ES7223-1BL30-0XB0 PART1</name>
</names>
<informations></informations>
<description>
<text text="PART1/2" x="380" y="77" size="6"/>
<text text="2M" x="245" y="-15" size="6"/>
<text text=".0" x="267" y="-14" size="6"/>
<text text=".7" x="407" y="-14" size="6"/>
<text text=".4" x="347" y="-14" size="6"/>
<text text="DC/DC" x="3" y="78" size="6"/>
<text text=".3" x="327" y="-14" size="6"/>
<text text=".2" x="307" y="-14" size="6"/>
<text text=".1" x="287" y="-14" size="6"/>
<text text=".6" x="387" y="-14" size="6"/>
<text text=".5" x="367" y="-14" size="6"/>
<text text="L+" x="5" y="-15" size="6"/>
<line x1="420" y2="0" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="420" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="233" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="247" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="413" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="427" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="DIb" x="245" y="-2" size="6"/>
<line x1="393" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="407" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="373" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="387" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="1M" x="65" y="-15" size="6"/>
<line x1="353" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="367" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="333" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="347" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="DIa" x="85" y="-2" size="6"/>
<text text=".0" x="87" y="-14" size="6"/>
<line x1="313" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="327" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="293" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="307" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="SM1223" x="3" y="68" size="6"/>
<circle diameter="5" antialias="true" x="367.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="24VDC" x="7" y="10" size="6"/>
<circle diameter="5" antialias="true" x="267.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="347.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="247.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="253" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="267" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="387.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="327.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="307.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="273" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="287" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="407.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="287.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="24VDC INPUTS" x="209" y="14" size="6"/>
<text text="M" x="26" y="-15" size="6"/>
<text text=".7" x="227" y="-14" size="6"/>
<text text=".4" x="167" y="-14" size="6"/>
<text text=".3" x="147" y="-14" size="6"/>
<text text=".2" x="127" y="-14" size="6"/>
<text text=".1" x="107" y="-14" size="6"/>
<text text=".6" x="207" y="-14" size="6"/>
<text text=".5" x="187" y="-14" size="6"/>
<line x1="13" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="27" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="2" y2="0" length1="1.5" y1="0" end2="none" length2="1.5" antialias="false" x2="37" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="240" y2="0" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="240" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="62" y2="0" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="62" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="53" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="67" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<polygon y1="-10" y3="-6" antialias="true" closed="false" y4="-4" x1="19" y6="-6" y7="-10" x8="19" y9="-9" y8="-10" x2="19" x9="19" x3="17" style="line-style:normal;line-weight:normal;filling:none;color:black" y5="-6" x6="21" x7="21" y2="-6" x4="20" x5="23"/>
<line x1="38" y2="0" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="38" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="2" y2="0" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="2" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="90" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="213" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="227" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="193" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="207" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="173" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="187" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="153" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="167" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="133" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="147" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="113" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="127" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="33" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="47" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="187.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="87.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="167.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="67.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="73" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="87" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="207.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="147.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="127.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="93" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="107" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="227.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="107.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="47.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="27.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="7" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="48" y2="-13" length1="1.5" y1="-13" end2="none" length2="1.5" antialias="false" x2="52" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="7.4999" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="49" y2="-11" length1="1.5" y1="-11" end2="none" length2="1.5" antialias="false" x2="51" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="46" y2="-15" length1="1.5" y1="-15" end2="none" length2="1.5" antialias="false" x2="54" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="50" y2="-25" length1="1.5" y1="-15" end2="none" length2="1.5" antialias="false" x2="50" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="62" y2="0" length1="1.5" y1="0" end2="none" length2="1.5" antialias="false" x2="240" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="240" y2="0" length1="1.5" y1="0" end2="none" length2="1.5" antialias="false" x2="420" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="427" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="430" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="239" y2="50" length1="1.5" y1="50" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="239" y2="90" length1="1.5" y1="90" end2="none" length2="1.5" antialias="false" x2="430" end1="none" style="line-style:dashed;line-weight:normal;filling:none;color:black"/>
<line x1="239" y2="50" length1="1.5" y1="50" end2="none" length2="1.5" antialias="false" x2="429" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-9" y2="90" length1="1.5" y1="90" end2="none" length2="1.5" antialias="false" x2="238" end1="none" style="line-style:dashed;line-weight:normal;filling:none;color:black"/>
<line x1="430" y2="-28" length1="1.5" y1="90" end2="none" length2="1.5" antialias="false" x2="430" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="?U?" tagg="label" x="396" y="100.5" size="9"/>
<terminal orientation="n" x="10" y="-31"/>
<terminal orientation="n" x="30" y="-31"/>
<terminal orientation="n" x="50" y="-31"/>
<terminal orientation="n" x="70" y="-31"/>
<terminal orientation="n" x="90" y="-31"/>
<terminal orientation="n" x="110" y="-31"/>
<terminal orientation="n" x="130" y="-31"/>
<terminal orientation="n" x="150" y="-31"/>
<terminal orientation="n" x="170" y="-31"/>
<terminal orientation="n" x="190" y="-31"/>
<terminal orientation="n" x="210" y="-31"/>
<terminal orientation="n" x="230" y="-31"/>
<terminal orientation="n" x="250" y="-31"/>
<terminal orientation="n" x="270" y="-31"/>
<terminal orientation="n" x="290" y="-31"/>
<terminal orientation="n" x="310" y="-31"/>
<terminal orientation="n" x="330" y="-31"/>
<terminal orientation="n" x="350" y="-31"/>
<terminal orientation="n" x="370" y="-31"/>
<terminal orientation="n" x="390" y="-31"/>
<terminal orientation="n" x="410" y="-31"/>
</description>
</definition>

View File

@@ -0,0 +1,113 @@
<definition width="450" orientation="dyyy" version="0.5" height="130" type="element" hotspot_y="64" link_type="simple" hotspot_x="225">
<uuid uuid="{6bcd95ca-4421-4e82-a2b9-11b9462d4626}"/>
<names>
<name lang="en">SM1223 6ES7223-1BL30-0XB0 PART2</name>
<name lang="cs">SM1223 6ES7223-1BL30-0XB0 PART2</name>
<name lang="pl">SM1223 6ES7223-1BL30-0XB0 PART2</name>
<name lang="ar">SM1223 6ES7223-1BL30-0XB0 PART2</name>
<name lang="pt">SM1223 6ES7223-1BL30-0XB0 PART2</name>
<name lang="fr">SM1223 6ES7223-1BL30-0XB0 PART2</name>
</names>
<informations></informations>
<description>
<text text="PART2/2" x="172" y="-33" size="6"/>
<line x1="30" y2="56" length1="1.5" y1="29" end2="none" length2="1.5" antialias="false" x2="30" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text=".0" x="37" y="50" size="6"/>
<text text="DQb" x="38" y="39" size="6"/>
<text text=".7" x="177" y="50" size="6"/>
<text text="DC/DC" x="-210" y="-32" size="6"/>
<text text=".4" x="117" y="50" size="6"/>
<text text=".3" x="97" y="50" size="6"/>
<text text=".2" x="77" y="50" size="6"/>
<text text=".0" x="-123" y="50" size="6"/>
<text text=".1" x="57" y="50" size="6"/>
<text text="DQa" x="-122" y="39" size="6"/>
<text text=".6" x="157" y="50" size="6"/>
<text text="L+" x="-195" y="50" size="6"/>
<text text=".5" x="137" y="50" size="6"/>
<line x1="190" y2="56" length1="1.5" y1="29" end2="none" length2="1.5" antialias="false" x2="190" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="103" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="117" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="183" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="197" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="57.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="163" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="177" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="143" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="157" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="123" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="137" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="83" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="97" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="63" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="77" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="SM1223" x="-210" y="-42" size="6"/>
<circle diameter="5" antialias="true" x="177.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="24VDC" x="-197" y="39" size="6"/>
<line x1="43" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="57" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="157.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="24VDC OUTPUTS" x="2" y="17" size="6"/>
<circle diameter="5" antialias="true" x="137.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="117.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="97.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="77.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text=".7" x="17" y="50" size="6"/>
<circle diameter="5" antialias="true" x="37.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text=".4" x="-43" y="50" size="6"/>
<text text=".3" x="-63" y="50" size="6"/>
<text text=".2" x="-83" y="50" size="6"/>
<text text=".1" x="-103" y="50" size="6"/>
<text text="M" x="-174" y="50" size="6"/>
<text text=".6" x="-3" y="50" size="6"/>
<text text=".5" x="-23" y="50" size="6"/>
<line x1="-195" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="-220" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-187" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="-173" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-130" y2="56" length1="1.5" y1="29" end2="none" length2="1.5" antialias="false" x2="-130" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-220" y2="56" length1="1.5" y1="-20" end2="none" length2="1.5" antialias="false" x2="-220" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-198" y2="29" length1="1.5" y1="29" end2="none" length2="1.5" antialias="false" x2="-163" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-162" y2="56" length1="1.5" y1="29" end2="none" length2="1.5" antialias="false" x2="-162" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-198" y2="56" length1="1.5" y1="29" end2="none" length2="1.5" antialias="false" x2="-198" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-57" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="-43" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="23" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="37" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="-102.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="3" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="17" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-17" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="-3" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-37" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="-23" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-77" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="-63" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-97" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="-83" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="17.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-117" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="-103" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="-2.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="-172.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="-22.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="-42.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="-192.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="-62.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="-82.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="-122.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-129" y2="29" length1="1.5" y1="29" end2="none" length2="1.5" antialias="false" x2="29" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="31" y2="29" length1="1.5" y1="29" end2="none" length2="1.5" antialias="false" x2="190" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="198" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="220" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="29" y2="-21" length1="1.5" y1="-21" end2="none" length2="1.5" antialias="false" x2="-220" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="29" y2="-61" length1="1.5" y1="-61" end2="none" length2="1.5" antialias="false" x2="-220" end1="none" style="line-style:dashed;line-weight:normal;filling:none;color:black"/>
<line x1="-124" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="-123" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="29" y2="-21" length1="1.5" y1="-21" end2="none" length2="1.5" antialias="false" x2="220" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="29" y2="-61" length1="1.5" y1="-61" end2="none" length2="1.5" antialias="false" x2="219" end1="none" style="line-style:dashed;line-weight:normal;filling:none;color:black"/>
<line x1="-195" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="-193" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-167" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="-125" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="220" y2="-61" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="220" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-220" y2="-60" length1="1.5" y1="-20" end2="none" length2="1.5" antialias="false" x2="-220" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="?U?" tagg="label" x="185" y="-74.5" size="9"/>
<terminal orientation="s" x="-190" y="59"/>
<terminal orientation="s" x="-170" y="59"/>
<terminal orientation="s" x="-120" y="60"/>
<terminal orientation="s" x="-80" y="60"/>
<terminal orientation="s" x="-60" y="60"/>
<terminal orientation="s" x="-40" y="60"/>
<terminal orientation="s" x="-20" y="60"/>
<terminal orientation="s" x="0" y="60"/>
<terminal orientation="s" x="20" y="60"/>
<terminal orientation="s" x="-100" y="60"/>
<terminal orientation="s" x="40" y="60"/>
<terminal orientation="s" x="80" y="60"/>
<terminal orientation="s" x="100" y="60"/>
<terminal orientation="s" x="120" y="60"/>
<terminal orientation="s" x="140" y="60"/>
<terminal orientation="s" x="160" y="60"/>
<terminal orientation="s" x="180" y="60"/>
<terminal orientation="s" x="60" y="60"/>
</description>
</definition>

View File

@@ -0,0 +1,58 @@
<definition width="110" orientation="dyyy" version="0.5" height="210" type="element" hotspot_y="35" link_type="simple" hotspot_x="15">
<uuid uuid="{96d2097e-5f1c-445f-8b52-fccda10ca9c3}"/>
<names>
<name lang="en">ETHERNET SWITCH CSM 1277 6GK7277-1AA10-0AA0</name>
<name lang="cs">ETHERNET SWITCH CSM 1277 6GK7277-1AA10-0AA0</name>
<name lang="pl">ETHERNET SWITCH CSM 1277 6GK7277-1AA10-0AA0</name>
<name lang="ar">ETHERNET SWITCH CSM 1277 6GK7277-1AA10-0AA0</name>
<name lang="pt">ETHERNET SWITCH CSM 1277 6GK7277-1AA10-0AA0</name>
<name lang="fr">ETHERNET SWITCH CSM 1277 6GK7277-1AA10-0AA0</name>
</names>
<informations></informations>
<description>
<text text="P3" x="44" y="154" size="7"/>
<text text="P4" x="65" y="154" size="7"/>
<text text="L+" x="5" y="-15" size="6"/>
<text text="CSM 1277" x="-4" y="64" size="6"/>
<text text="X1" x="1" y="128" size="6"/>
<text text="24VDC" x="17" y="-2" size="6"/>
<text text="M" x="26" y="-15" size="6"/>
<line x1="13" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="27" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="90" y2="168" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="90" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="167" length1="1.5" y1="91" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="60" y2="0" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="60" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="2" y2="0" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="2" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="90" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="33" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="47" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="47.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="27.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="7" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="48" y2="-13" length1="1.5" y1="-13" end2="none" length2="1.5" antialias="false" x2="52" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="7.4999" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="49" y2="-11" length1="1.5" y1="-11" end2="none" length2="1.5" antialias="false" x2="51" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="46" y2="-15" length1="1.5" y1="-15" end2="none" length2="1.5" antialias="false" x2="54" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="50" y2="-25" length1="1.5" y1="-15" end2="none" length2="1.5" antialias="false" x2="50" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="P1" x="4" y="154" size="7"/>
<text text="P2" x="24" y="154" size="7"/>
<line x1="-10" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="83" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="20" y2="167" length1="1.5" y1="132" end2="none" length2="1.5" antialias="false" x2="20" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="40" y2="167" length1="1.5" y1="131" end2="none" length2="1.5" antialias="false" x2="40" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="60" y2="168" length1="1.5" y1="131" end2="none" length2="1.5" antialias="false" x2="60" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="80" y2="168" length1="1.5" y1="131" end2="none" length2="1.5" antialias="false" x2="80" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="0" y2="131" length1="1.5" y1="131" end2="none" length2="1.5" antialias="false" x2="79" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="0" y2="167" length1="1.5" y1="131" end2="none" length2="1.5" antialias="false" x2="0" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="83" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="90" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="90" y2="50" length1="1.5" y1="50" end2="none" length2="1.5" antialias="false" x2="-9" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="90" y2="90" length1="1.5" y1="90" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="53" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="89" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="2" y2="0" length1="1.5" y1="0" end2="none" length2="1.5" antialias="false" x2="59" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="U?" tagg="label" x="66" y="181.5" size="9"/>
<terminal orientation="n" x="10" y="-31"/>
<terminal orientation="n" x="30" y="-31"/>
<terminal orientation="n" x="50" y="-31"/>
<terminal orientation="s" x="10" y="169"/>
<terminal orientation="s" x="30" y="169"/>
<terminal orientation="s" x="50" y="169"/>
<terminal orientation="s" x="70" y="169"/>
</description>
</definition>

View File

@@ -0,0 +1,65 @@
<definition width="190" orientation="dyyy" version="0.5" height="90" type="element" hotspot_y="36" link_type="simple" hotspot_x="15">
<uuid uuid="{3ba82e93-be0f-4f56-8af2-0a0d8012ac08}"/>
<names>
<name lang="en">ET200S 8DI 6ES7131-4BF00-0AA0</name>
<name lang="cs">ET200S 8DI 6ES7131-4BF00-0AA0</name>
<name lang="pl">ET200S 8DI 6ES7131-4BF00-0AA0</name>
<name lang="ar">ET200S 8DI 6ES7131-4BF00-0AA0</name>
<name lang="pt">ET200S 8DI 6ES7131-4BF00-0AA0</name>
<name lang="fr">ET200S 8DI 6ES7131-4BF00-0AA0</name>
</names>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<text text="x.6" x="64" y="-3" size="6"/>
<text text="x.5" x="124" y="-3" size="6"/>
<text text="x.7" x="144" y="-3" size="6"/>
<text text="x.4" x="44" y="-3" size="6"/>
<text text="x.2" x="24" y="-3" size="6"/>
<text text="x.1" x="84" y="-3" size="6"/>
<text text="x.3" x="104" y="-3" size="6"/>
<text text="8DI DC" x="65" y="38" size="6"/>
<text text="x.0" x="4" y="-3" size="6"/>
<text text="1" x="8" y="-14" size="6"/>
<text text="ET200S" x="65" y="28" size="6"/>
<text text="8" x="147" y="-14" size="6"/>
<text text="5" x="87" y="-14" size="6"/>
<text text="4" x="67" y="-14" size="6"/>
<text text="3" x="47" y="-14" size="6"/>
<text text="2" x="27" y="-14" size="6"/>
<text text="7" x="127" y="-14" size="6"/>
<text text="6" x="107" y="-14" size="6"/>
<line x1="13" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="27" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="53" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="67" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="133" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="147" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="113" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="127" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="33" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="47" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="107.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="7.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="87.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="73" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="87" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="127.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="67.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="47.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="93" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="107" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="147.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="27.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="7" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="170" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="153" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="I:" x="-5" y="-3" size="6"/>
<line x1="170" y2="49" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="170" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="170" y2="50" length1="1.5" y1="50" end2="none" length2="1.5" antialias="false" x2="20" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="20" y2="50" length1="1.5" y1="50" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="50" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="?U?" tagg="label" x="143" y="61.5" size="9"/>
<input rotate="true" text="I???.x" tagg="none" x="59" y="10" size="9"/>
<terminal orientation="n" x="10" y="-30"/>
<terminal orientation="n" x="30" y="-30"/>
<terminal orientation="n" x="50" y="-30"/>
<terminal orientation="n" x="70" y="-30"/>
<terminal orientation="n" x="90" y="-30"/>
<terminal orientation="n" x="110" y="-30"/>
<terminal orientation="n" x="130" y="-30"/>
<terminal orientation="n" x="150" y="-30"/>
</description>
</definition>

View File

@@ -0,0 +1,51 @@
<definition width="50" orientation="dyyy" version="0.5" height="200" type="element" hotspot_y="30" link_type="simple" hotspot_x="15">
<uuid uuid="{5abfc982-b5cd-4e30-8974-b56fec8bb786}"/>
<names>
<name lang="en">ET200S 8DI FACE 6ES7131-4BF00-0AA0</name>
<name lang="cs">ET200S 8DI FACE 6ES7131-4BF00-0AA0</name>
<name lang="pl">ET200S 8DI FACE 6ES7131-4BF00-0AA0</name>
<name lang="ar">ET200S 8DI FACE 6ES7131-4BF00-0AA0</name>
<name lang="pt">ET200S 8DI FACE 6ES7131-4BF00-0AA0</name>
<name lang="fr">ET200S 8DI FACE 6ES7131-4BF00-0AA0</name>
</names>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<circle diameter="5" antialias="true" x="17.5" y="137.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="17.5" y="117.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="17.5" y="157.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="-2.5" y="137.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="-2.5" y="97.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="17.5" y="97.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="2" x="-7" y="117" size="6"/>
<text text="6" x="14" y="117" size="6"/>
<text text="5" x="13" y="97" size="6"/>
<text text="4" x="-6" y="156" size="6"/>
<text text="1" x="-7" y="97" size="6"/>
<text text="8" x="14" y="156" size="6"/>
<circle diameter="5" antialias="true" x="-2.5" y="117.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="7" x="13" y="136" size="6"/>
<text text="8DI" x="4" y="23" size="6"/>
<text text="3" x="-7" y="135" size="6"/>
<line x1="-10" y2="167" length1="1.5" y1="91" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="90" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="-2.5" y="157.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="6" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="7" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="5" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="2" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="30" y2="168" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="30" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-9" y2="90" length1="1.5" y1="90" end2="none" length2="1.5" antialias="false" x2="30" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="50" length1="1.5" y1="50" end2="none" length2="1.5" antialias="false" x2="30" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="3" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="30" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="7" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="29" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="?U?" tagg="label" x="-6" y="179.5" size="9"/>
<terminal orientation="s" x="0" y="102"/>
<terminal orientation="s" x="20" y="122"/>
<terminal orientation="s" x="20" y="142"/>
<terminal orientation="s" x="0" y="142"/>
<terminal orientation="s" x="0" y="162"/>
<terminal orientation="s" x="20" y="162"/>
<terminal orientation="s" x="20" y="102"/>
<terminal orientation="s" x="0" y="122"/>
</description>
</definition>

View File

@@ -0,0 +1,65 @@
<definition width="190" orientation="dyyy" version="0.5" height="90" type="element" hotspot_y="32" link_type="simple" hotspot_x="15">
<uuid uuid="{8d7c23c8-81e7-4c9c-8a19-c352e84f9a3d}"/>
<names>
<name lang="en">ET200S 8DO 6ES7132-4BF00-0AA0</name>
<name lang="cs">ET200S 8DO 6ES7132-4BF00-0AA0</name>
<name lang="pl">ET200S 8DO 6ES7132-4BF00-0AA0</name>
<name lang="ar">ET200S 8DO 6ES7132-4BF00-0AA0</name>
<name lang="pt">ET200S 8DO 6ES7132-4BF00-0AA0</name>
<name lang="fr">ET200S 8DO 6ES7132-4BF00-0AA0</name>
</names>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<text text="x.6" x="64" y="32" size="6"/>
<text text="x.5" x="124" y="32" size="6"/>
<text text="x.7" x="144" y="32" size="6"/>
<text text="x.4" x="44" y="32" size="6"/>
<text text="x.2" x="24" y="32" size="6"/>
<text text="x.1" x="84" y="32" size="6"/>
<text text="x.3" x="104" y="32" size="6"/>
<text text="8DO DC" x="64" y="-3" size="6"/>
<text text="x.0" x="4" y="32" size="6"/>
<text text="1" x="8" y="43" size="6"/>
<text text="ET200S" x="65" y="-12" size="6"/>
<text text="8" x="147" y="43" size="6"/>
<text text="5" x="87" y="43" size="6"/>
<text text="4" x="67" y="43" size="6"/>
<text text="3" x="47" y="43" size="6"/>
<text text="2" x="27" y="43" size="6"/>
<text text="7" x="127" y="43" size="6"/>
<text text="6" x="107" y="43" size="6"/>
<line x1="13" y2="50" length1="1.5" y1="50" end2="none" length2="1.5" antialias="false" x2="27" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="53" y2="50" length1="1.5" y1="50" end2="none" length2="1.5" antialias="false" x2="67" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="133" y2="50" length1="1.5" y1="50" end2="none" length2="1.5" antialias="false" x2="147" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="113" y2="50" length1="1.5" y1="50" end2="none" length2="1.5" antialias="false" x2="127" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="33" y2="50" length1="1.5" y1="50" end2="none" length2="1.5" antialias="false" x2="47" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="107.5" y="47.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="7.5" y="47.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="87.5" y="47.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="73" y2="50" length1="1.5" y1="50" end2="none" length2="1.5" antialias="false" x2="87" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="127.5" y="47.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="67.5" y="47.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="47.5" y="47.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="93" y2="50" length1="1.5" y1="50" end2="none" length2="1.5" antialias="false" x2="107" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="147.5" y="47.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="27.5" y="47.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="50" length1="1.5" y1="50" end2="none" length2="1.5" antialias="false" x2="7" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="170" y2="50" length1="1.5" y1="50" end2="none" length2="1.5" antialias="false" x2="153" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="Q:" x="-7" y="32" size="6"/>
<line x1="170" y2="49" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="170" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="170" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="20" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="20" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="50" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="?U?" tagg="label" x="-10" y="-40.5" size="9"/>
<input rotate="true" text="Q???.x" tagg="none" x="57" y="11" size="9"/>
<terminal orientation="s" x="10" y="52"/>
<terminal orientation="s" x="30" y="52"/>
<terminal orientation="s" x="50" y="52"/>
<terminal orientation="s" x="70" y="52"/>
<terminal orientation="s" x="90" y="52"/>
<terminal orientation="s" x="110" y="52"/>
<terminal orientation="s" x="130" y="52"/>
<terminal orientation="s" x="150" y="52"/>
</description>
</definition>

View File

@@ -0,0 +1,51 @@
<definition width="50" orientation="dyyy" version="0.5" height="200" type="element" hotspot_y="30" link_type="simple" hotspot_x="15">
<uuid uuid="{4b7576bf-ea58-4cc1-875b-741a794b2bbd}"/>
<names>
<name lang="en">ET200S 8DO FACE 6ES7132-4BF00-0AA0</name>
<name lang="cs">ET200S 8DO FACE 6ES7132-4BF00-0AA0</name>
<name lang="pl">ET200S 8DO FACE 6ES7132-4BF00-0AA0</name>
<name lang="ar">ET200S 8DO FACE 6ES7132-4BF00-0AA0</name>
<name lang="pt">ET200S 8DO FACE 6ES7132-4BF00-0AA0</name>
<name lang="fr">ET200S 8DO FACE 6ES7132-4BF00-0AA0</name>
</names>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<circle diameter="5" antialias="true" x="17.5" y="137.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="17.5" y="117.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="17.5" y="157.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="-2.5" y="137.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="-2.5" y="97.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="17.5" y="97.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="2" x="-7" y="117" size="6"/>
<text text="6" x="14" y="117" size="6"/>
<text text="5" x="13" y="97" size="6"/>
<text text="4" x="-6" y="156" size="6"/>
<text text="1" x="-7" y="97" size="6"/>
<text text="8" x="14" y="156" size="6"/>
<circle diameter="5" antialias="true" x="-2.5" y="117.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="7" x="13" y="136" size="6"/>
<text text="8DO" x="2" y="23" size="6"/>
<text text="3" x="-7" y="135" size="6"/>
<line x1="-10" y2="167" length1="1.5" y1="91" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="90" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="-2.5" y="157.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="6" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="7" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="5" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="2" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="30" y2="168" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="30" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-9" y2="90" length1="1.5" y1="90" end2="none" length2="1.5" antialias="false" x2="30" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="50" length1="1.5" y1="50" end2="none" length2="1.5" antialias="false" x2="30" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="3" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="30" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="7" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="29" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="?U?" tagg="label" x="-4" y="181.5" size="9"/>
<terminal orientation="s" x="0" y="162"/>
<terminal orientation="s" x="0" y="142"/>
<terminal orientation="s" x="0" y="122"/>
<terminal orientation="s" x="20" y="142"/>
<terminal orientation="s" x="20" y="102"/>
<terminal orientation="s" x="20" y="122"/>
<terminal orientation="s" x="20" y="162"/>
<terminal orientation="s" x="0" y="102"/>
</description>
</definition>

View File

@@ -0,0 +1,63 @@
<definition width="190" orientation="dyyy" version="0.5" height="90" type="element" hotspot_y="36" link_type="simple" hotspot_x="15">
<uuid uuid="{c360b250-9281-46fc-aded-fc970ad0dceb}"/>
<names>
<name lang="en">ET 200S 2AI 6ES7134-4GB01-0AB0</name>
<name lang="cs">ET 200S 2AI 6ES7134-4GB01-0AB0</name>
<name lang="pl">ET 200S 2AI 6ES7134-4GB01-0AB0</name>
<name lang="ar">ET 200S 2AI 6ES7134-4GB01-0AB0</name>
<name lang="pt">ET 200S 2AI 6ES7134-4GB01-0AB0</name>
<name lang="fr">ET 200S 2AI 6ES7134-4GB01-0AB0</name>
</names>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<text text="NC" x="64" y="-4" size="6"/>
<text text="NC" x="124" y="-4" size="6"/>
<text text="NC" x="44" y="-4" size="6"/>
<text text="NC" x="144" y="-4" size="6"/>
<text text="M1+" rotation="270" x="93" y="8" size="6"/>
<text text="M1 -" rotation="270" x="113" y="8" size="6"/>
<text text="M0 -" rotation="270" x="33" y="7" size="6"/>
<text text="2AI " x="99" y="32" size="6"/>
<text text="M0+" rotation="270" x="13" y="7" size="6"/>
<text text="1" x="8" y="-15" size="6"/>
<text text="ET200S" x="40" y="32" size="6"/>
<text text="8" x="148" y="-15" size="6"/>
<text text="5" x="87" y="-15" size="6"/>
<text text="4" x="67" y="-15" size="6"/>
<text text="3" x="47" y="-15" size="6"/>
<text text="2" x="27" y="-15" size="6"/>
<text text="7" x="127" y="-15" size="6"/>
<text text="6" x="107" y="-15" size="6"/>
<line x1="13" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="27" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="53" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="67" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="133" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="147" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="113" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="127" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="33" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="47" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="107.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="7.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="87.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="73" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="87" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="127.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="67.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="47.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="93" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="107" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="147.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="27.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="7" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="170" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="153" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="170" y2="49" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="170" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="170" y2="50" length1="1.5" y1="50" end2="none" length2="1.5" antialias="false" x2="20" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="20" y2="50" length1="1.5" y1="50" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="50" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="?U?" tagg="label" x="135" y="60.5" size="9"/>
<terminal orientation="n" x="10" y="-31"/>
<terminal orientation="n" x="30" y="-31"/>
<terminal orientation="n" x="50" y="-31"/>
<terminal orientation="n" x="70" y="-31"/>
<terminal orientation="n" x="90" y="-31"/>
<terminal orientation="n" x="110" y="-31"/>
<terminal orientation="n" x="130" y="-31"/>
<terminal orientation="n" x="150" y="-31"/>
</description>
</definition>

View File

@@ -0,0 +1,51 @@
<definition width="50" orientation="dyyy" version="0.5" height="200" type="element" hotspot_y="30" link_type="simple" hotspot_x="15">
<uuid uuid="{0347f74c-d7f6-4cef-a107-bce672035f35}"/>
<names>
<name lang="en">ET 200S 2AI FACE 6ES7134-4GB01-0AB0</name>
<name lang="cs">ET 200S 2AI FACE 6ES7134-4GB01-0AB0</name>
<name lang="pl">ET 200S 2AI FACE 6ES7134-4GB01-0AB0</name>
<name lang="ar">ET 200S 2AI FACE 6ES7134-4GB01-0AB0</name>
<name lang="pt">ET 200S 2AI FACE 6ES7134-4GB01-0AB0</name>
<name lang="fr">ET 200S 2AI FACE 6ES7134-4GB01-0AB0</name>
</names>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<circle diameter="5" antialias="true" x="17.5" y="137.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="17.5" y="117.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="17.5" y="157.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="-2.5" y="137.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="-2.5" y="97.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="17.5" y="97.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="2" x="-7" y="117" size="6"/>
<text text="6" x="14" y="117" size="6"/>
<text text="5" x="13" y="97" size="6"/>
<text text="4" x="-6" y="156" size="6"/>
<text text="1" x="-7" y="97" size="6"/>
<text text="8" x="14" y="156" size="6"/>
<circle diameter="5" antialias="true" x="-2.5" y="117.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="7" x="13" y="136" size="6"/>
<text text="2AI" x="4" y="23" size="6"/>
<text text="3" x="-7" y="135" size="6"/>
<line x1="-10" y2="167" length1="1.5" y1="91" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="90" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="-2.5" y="157.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="6" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="7" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="5" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="2" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="30" y2="168" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="30" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-9" y2="90" length1="1.5" y1="90" end2="none" length2="1.5" antialias="false" x2="30" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="50" length1="1.5" y1="50" end2="none" length2="1.5" antialias="false" x2="30" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="3" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="30" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="7" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="29" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="?U?" tagg="label" x="0" y="181.5" size="9"/>
<terminal orientation="s" x="20" y="102"/>
<terminal orientation="s" x="20" y="122"/>
<terminal orientation="s" x="0" y="162"/>
<terminal orientation="s" x="0" y="102"/>
<terminal orientation="s" x="0" y="142"/>
<terminal orientation="s" x="20" y="142"/>
<terminal orientation="s" x="0" y="122"/>
<terminal orientation="s" x="20" y="162"/>
</description>
</definition>

View File

@@ -0,0 +1,43 @@
<definition width="110" orientation="dyyy" version="0.5" height="90" type="element" hotspot_y="36" link_type="simple" hotspot_x="15">
<uuid uuid="{27c46472-c062-4df3-8247-e606bbda0014}"/>
<names>
<name lang="en">ET200S PM-E-DC24V 6ES7 138-4CA01-0AA0</name>
<name lang="cs">ET200S PM-E-DC24V 6ES7 138-4CA01-0AA0</name>
<name lang="pl">ET200S PM-E-DC24V 6ES7 138-4CA01-0AA0</name>
<name lang="ar">ET200S PM-E-DC24V 6ES7 138-4CA01-0AA0</name>
<name lang="pt">ET200S PM-E-DC24V 6ES7 138-4CA01-0AA0</name>
<name lang="fr">ET200S PM-E-DC24V 6ES7 138-4CA01-0AA0</name>
</names>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<text text="M" x="27" y="-3" size="6"/>
<text text="M" x="67" y="-3" size="6"/>
<text text="L+" x="47" y="-3" size="6"/>
<text text="PM-E DC24V" x="9" y="33" size="6"/>
<text text="L+" x="7" y="-3" size="6"/>
<text text="ET200S" x="9" y="18" size="6"/>
<text text="3" x="28" y="-15" size="6"/>
<text text="2" x="8" y="-15" size="6"/>
<text text="7" x="68" y="-15" size="6"/>
<text text="6" x="48" y="-15" size="6"/>
<line x1="13" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="27" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="53" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="67" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="33" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="47" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="7.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="67.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="47.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="27.5" y="-30.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="7" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="90" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="73" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="90" y2="49" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="90" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="20" y2="50" length1="1.5" y1="50" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="50" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="21" y2="50" length1="1.5" y1="50" end2="none" length2="1.5" antialias="false" x2="90" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="?U?" tagg="label" x="63" y="61.5" size="9"/>
<terminal orientation="n" x="10" y="-31"/>
<terminal orientation="n" x="30" y="-31"/>
<terminal orientation="n" x="50" y="-31"/>
<terminal orientation="n" x="70" y="-31"/>
</description>
</definition>

View File

@@ -0,0 +1,39 @@
<definition width="50" orientation="dyyy" version="0.5" height="200" type="element" hotspot_y="30" link_type="simple" hotspot_x="15">
<uuid uuid="{4222c0d2-0482-4b13-aede-98225a49a304}"/>
<names>
<name lang="en">ET200S PM-E-DC24V FACE 6ES7 138-4CA01-0AA0</name>
<name lang="cs">ET200S PM-E-DC24V FACE 6ES7 138-4CA01-0AA0</name>
<name lang="pl">ET200S PM-E-DC24V FACE 6ES7 138-4CA01-0AA0</name>
<name lang="ar">ET200S PM-E-DC24V FACE 6ES7 138-4CA01-0AA0</name>
<name lang="pt">ET200S PM-E-DC24V FACE 6ES7 138-4CA01-0AA0</name>
<name lang="fr">ET200S PM-E-DC24V FACE 6ES7 138-4CA01-0AA0</name>
</names>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<circle diameter="5" antialias="true" x="17.5" y="157.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="-2.5" y="137.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="17.5" y="137.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="3" x="-6" y="156" size="6"/>
<text text="7" x="14" y="156" size="6"/>
<text text="6" x="13" y="136" size="6"/>
<text text="PM-E-DC24V" rotation="270" x="13" y="35" size="6"/>
<text text="2" x="-7" y="135" size="6"/>
<line x1="-10" y2="167" length1="1.5" y1="91" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="90" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="-2.5" y="157.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="6" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="7" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="5" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="2" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="30" y2="168" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="30" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-9" y2="90" length1="1.5" y1="90" end2="none" length2="1.5" antialias="false" x2="30" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="50" length1="1.5" y1="50" end2="none" length2="1.5" antialias="false" x2="30" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="3" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="30" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="7" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="29" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="?U?" tagg="label" x="-1" y="181.5" size="9"/>
<terminal orientation="s" x="0" y="163"/>
<terminal orientation="s" x="20" y="143"/>
<terminal orientation="s" x="0" y="143"/>
<terminal orientation="s" x="20" y="163"/>
</description>
</definition>

View File

@@ -0,0 +1,71 @@
<definition width="110" orientation="dyyy" version="0.5" height="210" type="element" hotspot_y="33" link_type="simple" hotspot_x="15">
<uuid uuid="{69782805-b318-4b95-9d23-a360ca8cc952}"/>
<names>
<name lang="en">6ES7151-3AA23-0AB0</name>
<name lang="cs">6ES7151-3AA23-0AB0</name>
<name lang="pl">6ES7151-3AA23-0AB0</name>
<name lang="ar">6ES7151-3AA23-0AB0</name>
<name lang="pt">6ES7151-3AA23-0AB0</name>
<name lang="fr">6ES7151-3AA23-0AB0</name>
</names>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<text text="X1" x="36" y="19" size="6"/>
<text text="P2" x="55" y="-7" size="6"/>
<line x1="80" y2="167" length1="1.5" y1="140" end2="none" length2="1.5" antialias="false" x2="80" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="P1" x="15" y="-7" size="6"/>
<line x1="42" y2="0" length1="1.5" y1="0" end2="none" length2="1.5" antialias="false" x2="77" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="2L+" x="44" y="161" size="6"/>
<line x1="78" y2="0" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="78" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="2M" x="64" y="161" size="6"/>
<line x1="42" y2="0" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="42" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="67.5" y="165.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="42" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="78" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="47.5" y="165.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="45" y2="-24" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="45" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="45" y2="-24" length1="1.5" y1="-24" end2="none" length2="1.5" antialias="false" x2="75" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="75" y2="-28" length1="1.5" y1="-25" end2="none" length2="1.5" antialias="false" x2="75" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="1L+" x="4" y="161" size="6"/>
<text text="IM151-3 PN" x="2" y="73" size="6"/>
<text text="PROFINET" x="21" y="30" size="6"/>
<text text="1M" x="24" y="161" size="6"/>
<line x1="0" y2="167" length1="1.5" y1="140" end2="none" length2="1.5" antialias="false" x2="0" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="167" length1="1.5" y1="91" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="2" y2="0" length1="1.5" y1="0" end2="none" length2="1.5" antialias="false" x2="37" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="38" y2="0" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="38" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="2" y2="0" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="2" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="90" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="73" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="87" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="27.5" y="165.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="53" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="67" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="33" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="47" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="13" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="27" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="7.5" y="165.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="87" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="90" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="6" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="7" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="0" y2="140" length1="1.5" y1="140" end2="none" length2="1.5" antialias="false" x2="80" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="5" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-9" y2="50" length1="1.5" y1="50" end2="none" length2="1.5" antialias="false" x2="89" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="90" length1="1.5" y1="90" end2="none" length2="1.5" antialias="false" x2="89" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="87" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="89" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="2" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="2" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="38" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="5" y2="-24" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="5" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="5" y2="-24" length1="1.5" y1="-24" end2="none" length2="1.5" antialias="false" x2="35" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="35" y2="-28" length1="1.5" y1="-25" end2="none" length2="1.5" antialias="false" x2="35" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="20" y2="10" length1="1.5" y1="2" end2="none" length2="1.5" antialias="false" x2="20" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="20" y2="10" length1="1.5" y1="10" end2="none" length2="1.5" antialias="false" x2="60" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="60" y2="2" length1="1.5" y1="9" end2="none" length2="1.5" antialias="false" x2="60" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="78" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="86" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="90" y2="168" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="90" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="38" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="42" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="?U?" tagg="label" x="63" y="180.5" size="9"/>
<terminal orientation="n" x="20" y="-29"/>
<terminal orientation="s" x="10" y="171"/>
<terminal orientation="s" x="30" y="171"/>
<terminal orientation="s" x="50" y="171"/>
<terminal orientation="s" x="70" y="171"/>
<terminal orientation="n" x="60" y="-29"/>
</description>
</definition>

View File

@@ -0,0 +1,44 @@
<definition width="240" orientation="dyyy" version="0.5" height="210" type="element" hotspot_y="32" link_type="simple" hotspot_x="15">
<uuid uuid="{f546bbb2-058e-4b4d-9f4c-cb7509c42a85}"/>
<names>
<name lang="en">6AV6647-0AB11-3AX0</name>
<name lang="cs">6AV6647-0AB11-3AX0</name>
<name lang="pl">6AV6647-0AB11-3AX0</name>
<name lang="ar">6AV6647-0AB11-3AX0</name>
<name lang="pt">6AV6647-0AB11-3AX0</name>
<name lang="fr">6AV6647-0AB11-3AX0</name>
</names>
<informations></informations>
<description>
<text text="P1" x="28" y="150" size="6"/>
<text text="PROFINET" x="6" y="136" size="6"/>
<text text="L+" x="166" y="160" size="6"/>
<text text="X1" x="14" y="150" size="6"/>
<text text="KTP600 BASIC MONO" x="-6" y="-17" size="6"/>
<text text="24VDC" x="168" y="150" size="6"/>
<text text="M" x="187" y="160" size="6"/>
<line x1="15" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="167" length1="1.5" y1="91" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="90" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="187.5" y="165.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="173" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="187" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="167.5" y="165.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="15" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="86" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="166" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="167" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<rect width="30" height="28" antialias="false" x="10" y="140" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="160" y2="140" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="160" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="161" y2="140" length1="1.5" y1="140" end2="none" length2="1.5" antialias="false" x2="200" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="200" y2="168" length1="1.5" y1="140" end2="none" length2="1.5" antialias="false" x2="200" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="193" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="199" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-9" y2="-28" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="220" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="220" y2="167" length1="1.5" y1="-28" end2="none" length2="1.5" antialias="false" x2="220" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="220" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="200" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="86" y2="168" length1="1.5" y1="168" end2="none" length2="1.5" antialias="false" x2="166" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<rect width="191" height="130" antialias="false" x="10" y="-10" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<rect width="26" height="3" antialias="false" x="12" y="165" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="?U?" tagg="label" x="192" y="181.5" size="9"/>
<terminal orientation="s" x="25" y="169"/>
<terminal orientation="s" x="190" y="171"/>
<terminal orientation="s" x="170" y="171"/>
</description>
</definition>

View File

@@ -0,0 +1,104 @@
<definition width="330" orientation="dyyy" version="0.5" height="100" type="element" hotspot_y="34" link_type="simple" hotspot_x="15">
<uuid uuid="{1c3687c5-a859-4a66-a3b5-f3a8133860f7}"/>
<names>
<name lang="it">SINAMICS G110 6SL3211</name>
<name lang="en">SINAMICS G110 6SL3211</name>
<name lang="cs">SINAMICS G110 6SL3211</name>
<name lang="pl">SINAMICS G110 6SL3211</name>
<name lang="ar">SINAMICS G110 6SL3211</name>
<name lang="fr">SINAMICS G110 6SL3211</name>
</names>
<informations></informations>
<description>
<text text="10" x="294" y="-20" size="5"/>
<input rotate="true" text="ADC1" tagg="none" rotation="270" x="270" y="9" size="7"/>
<line x1="310" y2="57" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="310" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="0V" tagg="none" rotation="270" x="291" y="-3" size="7"/>
<input rotate="true" text="N" tagg="none" rotation="270" x="50" y="-7" size="7"/>
<input rotate="true" text="GND" tagg="none" rotation="270" x="230" y="6" size="7"/>
<input rotate="true" text="DIN1" tagg="none" rotation="270" x="170" y="6" size="7"/>
<line x1="153" y2="-27" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="167" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="57" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="253" y2="-27" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="267" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="47.5" y="-29.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="213" y2="-27" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="227" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="DIN0" tagg="none" rotation="270" x="150" y="6" size="7"/>
<line x1="173" y2="-27" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="187" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="DOUT-" tagg="none" rotation="270" x="173" y="56" size="7"/>
<input rotate="true" text="+10V" tagg="none" rotation="270" x="251" y="10" size="7"/>
<line x1="33" y2="-27" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="47" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="24V" tagg="none" rotation="270" x="210" y="4" size="7"/>
<text text="4" x="175" y="-20" size="5"/>
<circle diameter="5" antialias="true" x="167.5" y="-29.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="7.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="233" y2="-27" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="247" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="3" x="155" y="-20" size="5"/>
<circle diameter="5" antialias="true" x="147.5" y="-29.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="8" y2="42" length1="1.5" y1="42" end2="none" length2="1.5" antialias="false" x2="12" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="9" x="274" y="-20" size="5"/>
<input rotate="true" text="DIN2" tagg="none" rotation="270" x="190" y="6" size="7"/>
<input rotate="true" text="W" tagg="none" rotation="270" x="70" y="55" size="7"/>
<circle diameter="5" antialias="true" x="267.5" y="-29.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="7" x="235" y="-20" size="5"/>
<text text="8" x="254" y="-20" size="5"/>
<circle diameter="5" antialias="true" x="227.5" y="-29.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="27.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="247.5" y="-29.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="6" x="215" y="-20" size="5"/>
<line x1="9" y2="40" length1="1.5" y1="40" end2="none" length2="1.5" antialias="false" x2="11" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="207.5" y="-29.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="U" tagg="none" rotation="270" x="30" y="55" size="7"/>
<line x1="193" y2="-27" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="207" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="47.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="187.5" y="-29.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="6" y2="44" length1="1.5" y1="44" end2="none" length2="1.5" antialias="false" x2="14" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="5" x="195" y="-20" size="5"/>
<input rotate="true" text="V" tagg="none" rotation="270" x="50" y="55" size="7"/>
<circle diameter="5" antialias="true" x="67.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="10" y2="44" length1="1.5" y1="54" end2="none" length2="1.5" antialias="false" x2="10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="L1" tagg="none" rotation="270" x="30" y="-7" size="7"/>
<line x1="53" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="67" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="33" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="47" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="13" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="27" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="27.5" y="-29.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="13" y2="-27" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="27" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="7" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="190.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="DOUT+" tagg="none" rotation="270" x="193" y="56" size="7"/>
<circle diameter="5" antialias="true" x="170.5" y="54.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="-27" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="7" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="2" x="199" y="53" size="5"/>
<text text="1" x="178" y="53" size="5"/>
<circle diameter="5" antialias="true" x="7.5" y="-29.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="G110" tagg="none" x="-5" y="14.5" size="9"/>
<line x1="8" y2="-12" length1="1.5" y1="-12" end2="none" length2="1.5" antialias="false" x2="12" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="9" y2="-10" length1="1.5" y1="-10" end2="none" length2="1.5" antialias="false" x2="11" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="6" y2="-14" length1="1.5" y1="-14" end2="none" length2="1.5" antialias="false" x2="14" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="10" y2="-24" length1="1.5" y1="-14" end2="none" length2="1.5" antialias="false" x2="10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="5" antialias="true" x="287.5" y="-29.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="310" y2="-27" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="293" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="287" y2="-27" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="273" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="147" y2="-27" length1="1.5" y1="-27" end2="none" length2="1.5" antialias="false" x2="53" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="73" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="170" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="176" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="190" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="196" y2="57" length1="1.5" y1="57" end2="none" length2="1.5" antialias="false" x2="310" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input rotate="true" text="?U?" tagg="label" x="320" y="40" size="9"/>
<terminal orientation="n" x="10" y="-30"/>
<terminal orientation="s" x="193" y="59"/>
<terminal orientation="s" x="173" y="59"/>
<terminal orientation="n" x="30" y="-30"/>
<terminal orientation="s" x="10" y="60"/>
<terminal orientation="s" x="30" y="60"/>
<terminal orientation="s" x="50" y="60"/>
<terminal orientation="s" x="70" y="60"/>
<terminal orientation="n" x="170" y="-30"/>
<terminal orientation="n" x="150" y="-30"/>
<terminal orientation="n" x="190" y="-30"/>
<terminal orientation="n" x="230" y="-30"/>
<terminal orientation="n" x="210" y="-30"/>
<terminal orientation="n" x="50" y="-30"/>
<terminal orientation="n" x="270" y="-30"/>
<terminal orientation="n" x="250" y="-30"/>
<terminal orientation="n" x="290" y="-30"/>
</description>
</definition>

View File

@@ -0,0 +1,75 @@
<definition width="110" orientation="dyyy" version="0.5" height="170" type="element" hotspot_y="44" link_type="simple" hotspot_x="69">
<uuid uuid="{123e1ee3-a38d-448f-8b4d-a4a9945100ad}"/>
<names>
<name lang="en">Surge suppression module wago 230 AC 286-842</name>
<name lang="pl">Ogranicznik przepięć wago 230 AC 286-842</name>
</names>
<informations>EN 60617: 07-22-03</informations>
<description>
<rect width="101" height="150" antialias="false" x="-65" y="-35" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<rect width="10" height="4" antialias="false" x="-25" y="58" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="4" antialias="true" x="-52" y="88" style="line-style:normal;line-weight:normal;filling:black;color:black"/>
<text text="N" rotation="270" x="-14" y="108" size="5"/>
<rect width="10" height="4" antialias="false" x="-29" y="43" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<rect width="10" height="4" antialias="false" x="0" y="43" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-27.8452" y2="80" length1="1.5" y1="80" end2="none" length2="1.5" antialias="false" x2="-13.1677" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-50.05" y2="115.95" length1="1.5" y1="-36.05" end2="none" length2="1.5" antialias="false" x2="-50.05" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="7" y2="90" length1="1.5" y1="90" end2="none" length2="1.5" antialias="false" x2="20" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="N" rotation="270" x="-15" y="-23" size="5"/>
<text text="L out" rotation="270" x="16" y="113" size="5"/>
<text text="L in" rotation="270" x="16" y="-19" size="5"/>
<rect width="4" height="10" antialias="false" x="18" y="20" style="line-style:normal;line-weight:normal;filling:black;color:black"/>
<circle diameter="4" antialias="true" x="19" y="88" style="line-style:normal;line-weight:normal;filling:black;color:black"/>
<circle diameter="4" antialias="true" x="-12" y="3" style="line-style:normal;line-weight:normal;filling:black;color:black"/>
<circle diameter="4" antialias="true" x="-12" y="78" style="line-style:normal;line-weight:normal;filling:black;color:black"/>
<circle diameter="4" antialias="true" x="-52" y="58" style="line-style:normal;line-weight:normal;filling:black;color:black"/>
<circle diameter="4" antialias="true" x="-52" y="43" style="line-style:normal;line-weight:normal;filling:black;color:black"/>
<circle diameter="4" antialias="true" x="-52" y="78" style="line-style:normal;line-weight:normal;filling:black;color:black"/>
<circle diameter="4" antialias="true" x="-12" y="58" style="line-style:normal;line-weight:normal;filling:black;color:black"/>
<line x1="7" y2="-10" length1="1.5" y1="-10" end2="none" length2="1.5" antialias="false" x2="20" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="7" y2="-5.792" length1="1.5" y1="-14.192" end2="none" length2="1.5" antialias="false" x2="7" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="4" antialias="true" x="18" y="-12" style="line-style:normal;line-weight:normal;filling:black;color:black"/>
<circle diameter="4" antialias="true" x="-12" y="-12" style="line-style:normal;line-weight:normal;filling:black;color:black"/>
<circle diameter="4" antialias="true" x="18" y="43" style="line-style:normal;line-weight:normal;filling:black;color:black"/>
<line x1="7" y2="94.208" length1="1.5" y1="85.808" end2="none" length2="1.5" antialias="false" x2="7" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-28" y2="84.208" length1="1.5" y1="75.808" end2="none" length2="1.5" antialias="false" x2="-28" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="PE" rotation="270" x="-55" y="110" size="5"/>
<line x1="-29.2435" y2="45" length1="1.5" y1="45" end2="none" length2="1.5" antialias="false" x2="-50.006" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<rect width="10" height="4" antialias="false" x="-45" y="58" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="9" y2="50" length1="1.5" y1="40" end2="none" length2="1.5" antialias="false" x2="1" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-16" y2="65" length1="1.5" y1="55" end2="none" length2="1.5" antialias="false" x2="-24" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-49.6012" y2="90" length1="1.5" y1="90" end2="none" length2="1.5" antialias="false" x2="2.31791" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-49.6129" y2="80" length1="1.5" y1="80" end2="none" length2="1.5" antialias="false" x2="-32.4194" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<polygon x3="-19" x1="-22" y2="43" y1="45" x4="-22" closed="false" antialias="false" y4="45" x2="-19" y3="47" style="line-style:normal;line-weight:normal;filling:black;color:black"/>
<line x1="-2" y2="50" length1="1.5" y1="50" end2="none" length2="1.5" antialias="false" x2="1" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input text="_" tagg="label" x="43" y="95.5" size="9"/>
<line x1="3" y2="94.208" length1="1.5" y1="85.808" end2="none" length2="1.5" antialias="false" x2="3" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-32" y2="84.208" length1="1.5" y1="75.808" end2="none" length2="1.5" antialias="false" x2="-32" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-27" y2="65" length1="1.5" y1="65" end2="none" length2="1.5" antialias="false" x2="-24" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-18.4549" y2="45" length1="1.5" y1="45" end2="none" length2="1.5" antialias="false" x2="-0.673911" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-45.9907" y2="60" length1="1.5" y1="60" end2="none" length2="1.5" antialias="false" x2="-49.9316" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="10" y2="45" length1="1.5" y1="45" end2="none" length2="1.5" antialias="false" x2="20" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-14.7318" y2="60" length1="1.5" y1="60" end2="none" length2="1.5" antialias="false" x2="-10.2072" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<polygon x3="-35" x1="-38" y2="58" y1="60" x4="-38" closed="false" antialias="false" y4="60" x2="-35" y3="62" style="line-style:normal;line-weight:normal;filling:black;color:black"/>
<rect width="10" height="4" antialias="false" x="0" y="3" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="9" y2="10" length1="1.5" y1="0" end2="none" length2="1.5" antialias="false" x2="1" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-2" y2="10" length1="1.5" y1="10" end2="none" length2="1.5" antialias="false" x2="1" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="0" y2="5" length1="1.5" y1="5" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="10" y2="5" length1="1.5" y1="5" end2="none" length2="1.5" antialias="false" x2="20" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="-10" y2="-10" length1="1.5" y1="-10" end2="none" length2="1.5" antialias="false" x2="3" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="3" y2="-5.792" length1="1.5" y1="-14.192" end2="none" length2="1.5" antialias="false" x2="3" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<circle diameter="18" antialias="true" x="-4" y="16" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<rect width="4" height="10" antialias="false" x="-12" y="20" style="line-style:normal;line-weight:normal;filling:black;color:black"/>
<line x1="-33.8737" y2="60" length1="1.5" y1="60" end2="none" length2="1.5" antialias="false" x2="-26.1368" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="PE" rotation="270" x="-55" y="-20" size="5"/>
<circle diameter="4" antialias="true" x="18" y="3" style="line-style:normal;line-weight:normal;filling:black;color:black"/>
<line x1="-10" y2="116" length1="1.5" y1="-36" end2="none" length2="1.5" antialias="false" x2="-10" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line x1="20" y2="116" length1="1.5" y1="-35" end2="none" length2="1.5" antialias="false" x2="20" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<terminal orientation="n" x="-50" y="-40"/>
<terminal orientation="n" x="20" y="-40"/>
<terminal orientation="n" x="-10" y="-40"/>
<terminal orientation="s" x="20" y="120"/>
<terminal orientation="s" x="-10" y="120"/>
<terminal orientation="s" x="-50" y="120"/>
</description>
</definition>

Binary file not shown.

View File

@@ -545,7 +545,7 @@ Noot: Geen van deze opties bepalen het wel of niet automatisch nummeren, alleen
<message>
<location filename="../sources/ui/conductorpropertiesdialog.ui" line="20"/>
<source>Appliquer les propriétés à l&apos;ensemble des conducteurs de ce potentiel</source>
<translation type="unfinished">Eigenschappen toepassen op alle geleiders van hetzelfde potentiaal</translation>
<translation type="unfinished">Eigenschappen toepassen op alle geleiders met hetzelfde potentiaal</translation>
</message>
<message>
<location filename="../sources/ui/conductorpropertiesdialog.cpp" line="72"/>
@@ -866,7 +866,7 @@ Noot: Geen van deze opties bepalen het wel of niet automatisch nummeren, alleen
<location filename="../sources/ui/diagrampropertiesdialog.cpp" line="48"/>
<source>Propriétés du folio</source>
<comment>window title</comment>
<translation type="unfinished">Paginaeigenschappen</translation>
<translation type="unfinished">Pagina-eigenschappen</translation>
</message>
</context>
<context>
@@ -1593,7 +1593,8 @@ Noot: Geen van deze opties bepalen het wel of niet automatisch nummeren, alleen
<source>Êtes-vous sûr de vouloir supprimer cet élément ?
</source>
<comment>message box content</comment>
<translation type="unfinished">Wilt u dit element werkelijk verwijderen ?</translation>
<translation type="unfinished">Wilt u dit element werkelijk verwijderen ?
</translation>
</message>
<message>
<location filename="../sources/ElementsCollection/elementscollectionwidget.cpp" line="344"/>
@@ -1680,7 +1681,7 @@ Tout les éléments et les dossier contenus dans ce dossier seront supprimés.</
<location filename="../sources/elementspanel.cpp" line="153"/>
<source>Double-cliquez pour réduire ou développer cette collection de cartouches embarquée</source>
<comment>Status tip</comment>
<translation type="unfinished">Dubbelklik voor in- of uitvouwen van deze titelblokverzameling</translation>
<translation type="unfinished">Dubbelklik voor in- of uitvouwen van deze titelblokcollectie</translation>
</message>
<message>
<location filename="../sources/elementspanel.cpp" line="162"/>
@@ -1698,32 +1699,32 @@ Tout les éléments et les dossier contenus dans ce dossier seront supprimés.</
<location filename="../sources/elementspanel.cpp" line="199"/>
<source>Double-cliquez pour réduire ou développer la collection de cartouches QElectroTech</source>
<comment>Status tip</comment>
<translation type="unfinished">Dubbelklik voor in- of uitvouwen van QET titelblokken</translation>
<translation type="unfinished">Dubbelklik voor in- of uitvouwen van QET titelbloksjablonen</translation>
</message>
<message>
<location filename="../sources/elementspanel.cpp" line="200"/>
<source>Ceci est la collection de cartouches fournie avec QElectroTech. Installée en tant que composant système, vous ne pouvez normalement pas la personnaliser.</source>
<comment>&quot;What&apos;s this&quot; tip</comment>
<translation type="unfinished">Dit is de titelblokverzameling van QET. Deze zijn niet te wijzigen, wel te kopieren.</translation>
<translation type="unfinished">Dit is de titelbloksjablonencollectie van QET. Deze zijn niet te wijzigen, wel te kopieren.</translation>
</message>
<message>
<location filename="../sources/elementspanel.cpp" line="207"/>
<source>Double-cliquez pour réduire ou développer votre collection personnelle de cartouches</source>
<comment>Status tip</comment>
<translation type="unfinished">Dubbelklik voor in- of uitvouwen van titelblokverzameling</translation>
<translation type="unfinished">Dubbelklik voor in- of uitvouwen van uw persoonlijke titelblokcollectie</translation>
</message>
<message>
<location filename="../sources/elementspanel.cpp" line="208"/>
<source>Ceci est votre collection personnelle de cartouches -- utilisez-la pour créer, stocker et éditer vos propres cartouches.</source>
<comment>&quot;What&apos;s this&quot; tip</comment>
<translation type="unfinished">Dit is een gebruikerverzameling van titelblokken; gebruik deze voor het toevoegen,verwijderen en wijzigen van uw eigen titelblokken.</translation>
<translation type="unfinished">Dit is de gebruikercollectie van titelbloksjablonen; gebruik deze voor het toevoegen,verwijderen en wijzigen van uw eigen titelbloksjablonen.</translation>
</message>
</context>
<context>
<name>ElementsPanelWidget</name>
<message>
<source>Recharger les collections</source>
<translation type="unfinished">Herlaad verzamelingen</translation>
<translation type="unfinished">Herlaad collecties</translation>
</message>
<message>
<location filename="../sources/elementspanelwidget.cpp" line="46"/>
@@ -1763,7 +1764,7 @@ Tout les éléments et les dossier contenus dans ce dossier seront supprimés.</
<message>
<location filename="../sources/elementspanelwidget.cpp" line="51"/>
<source>Propriétés du folio</source>
<translation type="unfinished">Paginaeigenschappen</translation>
<translation type="unfinished">Pagina-eigenschappen</translation>
</message>
<message>
<location filename="../sources/elementspanelwidget.cpp" line="52"/>
@@ -2090,7 +2091,7 @@ Tout les éléments et les dossier contenus dans ce dossier seront supprimés.</
<message>
<location filename="../sources/autoNum/ui/folioautonumbering.ui" line="40"/>
<source>Numérotation automatique de Folio :</source>
<translation type="unfinished">Autonummering van pagina&apos;s</translation>
<translation type="unfinished">Autonummering van pagina&apos;s :</translation>
</message>
<message>
<location filename="../sources/autoNum/ui/folioautonumbering.cpp" line="173"/>
@@ -2124,7 +2125,8 @@ Le champs &quot;Incrémentation&quot; n&apos;est pas utilisé.
Als er in het veld &quot;Waarde&quot; een getal wordt ingevuld met minder decimalen dan het gekozen type wordt dit getal aangevuld met ervoor geplaatste nullen.
-Het type &quot;Tekst&quot; staat voor een vaste tekst.
Het veld &quot;Increment&quot; is nu niet van belang.</translation>
Het veld &quot;Increment&quot; is nu niet van belang.
</translation>
</message>
</context>
<context>
@@ -2215,7 +2217,7 @@ Teksten en nummers zijn ook beschikbaar.</translation>
<message>
<location filename="../sources/configpages.cpp" line="250"/>
<source>Utiliser les labels de folio à la place de leurs ID</source>
<translation type="unfinished">Gebruik paginalabels op de plaats van hun ID</translation>
<translation type="unfinished">Gebruik paginalabels in plaats van hun ID</translation>
</message>
<message>
<location filename="../sources/configpages.cpp" line="254"/>
@@ -3492,7 +3494,7 @@ Wilt u de wijzigingen opslaan?</translation>
<message>
<location filename="../sources/PropertiesEditor/propertieseditordockwidget.ui" line="14"/>
<source>Propriété de la séléction</source>
<translation type="unfinished">Eigenschappen van selectie</translation>
<translation type="unfinished">Eigenschappen</translation>
</message>
</context>
<context>
@@ -3619,14 +3621,15 @@ Wilt u de wijzigingen opslaan?</translation>
<location filename="../sources/qetapp.cpp" line="1602"/>
<source> --common-elements-dir=DIR Definir le dossier de la collection d&apos;elements
</source>
<translation type="unfinished"> --common-elements-dir=DIR Definieer de map voor de elementenverzameling
<translation type="unfinished"> --common-elements-dir=DIR Definieer de map voor de elementencollectie
</translation>
</message>
<message>
<location filename="../sources/qetapp.cpp" line="1605"/>
<source> --common-tbt-dir=DIR Definir le dossier de la collection de modeles de cartouches
</source>
<translation type="unfinished"> --common-tbt-dir=DIR Definieer de map voor titelbloksjablonenverzameling</translation>
<translation type="unfinished"> --common-tbt-dir=DIR Definieer de map voor de titelbloksjablonen
</translation>
</message>
<message>
<location filename="../sources/qetapp.cpp" line="1608"/>
@@ -3639,13 +3642,14 @@ Wilt u de wijzigingen opslaan?</translation>
<location filename="../sources/qetapp.cpp" line="1610"/>
<source> --lang-dir=DIR Definir le dossier contenant les fichiers de langue
</source>
<translation type="unfinished"> --lang-dir=DIR Definieer de taalbestandenmap</translation>
<translation type="unfinished"> --lang-dir=DIR Definieer de taalbestandenmap
</translation>
</message>
<message>
<location filename="../sources/qetapp.cpp" line="102"/>
<source>Chargement... Initialisation du cache des collections d&apos;éléments</source>
<comment>splash screen caption</comment>
<translation type="unfinished">Laden... Initialisatie van de elementenverzameling-cache </translation>
<translation type="unfinished">Laden... Initialisatie van de cache van de elementencollectie</translation>
</message>
<message>
<location filename="../sources/qetapp.cpp" line="111"/>
@@ -3699,13 +3703,13 @@ Wilt u de wijzigingen opslaan?</translation>
<location filename="../sources/qetapp.cpp" line="332"/>
<source>Cartouches QET</source>
<comment>title of the title block templates collection provided by QElectroTech</comment>
<translation type="unfinished">QET titelblokken</translation>
<translation type="unfinished">QET titelbloksjablonen</translation>
</message>
<message>
<location filename="../sources/qetapp.cpp" line="346"/>
<source>Cartouches utilisateur</source>
<comment>title of the user&apos;s title block templates collection</comment>
<translation type="unfinished">Gebruiker titelblokken</translation>
<translation type="unfinished">Gebruiker titelbloksjablonen</translation>
</message>
<message>
<location filename="../sources/qetapp.cpp" line="809"/>
@@ -3772,7 +3776,9 @@ Wilt u de wijzigingen opslaan?</translation>
<source> [options] [fichier]...
</source>
<translation type="unfinished">[opties] [bestanden].....</translation>
<translation type="unfinished"> [opties] [bestanden].....
</translation>
</message>
<message>
<location filename="../sources/qetapp.cpp" line="1596"/>
@@ -3892,7 +3898,7 @@ Opties :
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="313"/>
<source>&amp;Fermer</source>
<translation type="unfinished">&amp;Afsluiten</translation>
<translation type="unfinished">&amp;Sluiten</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="565"/>
@@ -3945,22 +3951,22 @@ Opties :
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="290"/>
<source>Propriétés du folio</source>
<translation type="unfinished">Paginaeigenschappen</translation>
<translation type="unfinished">Pagina-eigenschappen</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="293"/>
<source>Ajouter un folio</source>
<translation type="unfinished">Voeg een pagina toe</translation>
<translation type="unfinished">Pagina toevoegen</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="294"/>
<source>Supprimer le folio</source>
<translation type="unfinished">Verwijder de pagina</translation>
<translation type="unfinished">Pagina verwijderen</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="298"/>
<source>Lancer le plugin de creation de bornier</source>
<translation type="unfinished">Start de terminal-plugin om een terminal te maken</translation>
<translation type="unfinished">Start de terminal-plugin voor het maken van een terminal</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="302"/>
@@ -4127,7 +4133,7 @@ Opties :
<location filename="../sources/qetdiagrameditor.cpp" line="456"/>
<source>Édite les propriétés du folio (dimensions, informations du cartouche, propriétés des conducteurs...)</source>
<comment>status bar tip</comment>
<translation type="unfinished">Bewerk de paginaeigenschappen (afmetingen, titelblokinformatie, geleidereigenschappen...)</translation>
<translation type="unfinished">Bewerk de pagina-eigenschappen (afmetingen, titelblokinformatie, geleidereigenschappen...)</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="462"/>
@@ -4243,7 +4249,7 @@ Opties :
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="423"/>
<source>Ajouter un champ de texte</source>
<translation>Toevoegen van een tekstveld</translation>
<translation type="unfinished">Tekstveld toevoegen</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="183"/>
@@ -4296,7 +4302,7 @@ Opties :
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="902"/>
<source>Il semblerait que le fichier que vous essayez d&apos;ouvrir ne soit pas accessible en lecture. Il est donc impossible de l&apos;ouvrir. Veuillez vérifier les permissions du fichier.</source>
<translation type="unfinished">Bestand openen mislukt. Heeft u de juiste machtigingen?</translation>
<translation type="unfinished">Bestand openen mislukt. Controleer of u de juiste machtigingen heeft.</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="916"/>
@@ -4356,7 +4362,7 @@ Opties :
<location filename="../sources/qetdiagrameditor.cpp" line="187"/>
<source>Annulations</source>
<comment>dock title</comment>
<translation type="unfinished">Ongedaan maken</translation>
<translation type="unfinished">Geschiedenis</translation>
</message>
<message>
<location filename="../sources/qetdiagrameditor.cpp" line="184"/>
@@ -4971,7 +4977,7 @@ Opties :
<location filename="../sources/editor/qetelementeditor.cpp" line="520"/>
<source>Annulations</source>
<comment>dock title</comment>
<translation>Annuleer</translation>
<translation type="unfinished">Geschiedenis</translation>
</message>
<message>
<location filename="../sources/editor/qetelementeditor.cpp" line="538"/>
@@ -5858,7 +5864,7 @@ Que désirez vous faire ?</source>
<location filename="../sources/titleblock/qettemplateeditor.cpp" line="483"/>
<source>Annulations</source>
<comment>dock title</comment>
<translation>Annuleer</translation>
<translation type="unfinished">Geschiedenis</translation>
</message>
<message>
<location filename="../sources/titleblock/qettemplateeditor.cpp" line="502"/>
@@ -6497,7 +6503,7 @@ Que désirez vous faire ?</source>
<message>
<location filename="../sources/diagramcommands.h" line="51"/>
<source>Ajouter </source>
<translation type="unfinished">Voeg toe</translation>
<translation type="unfinished">Toevoegen </translation>
</message>
<message>
<location filename="../sources/editor/esevent/eseventaddarc.cpp" line="70"/>
@@ -6593,6 +6599,7 @@ Que désirez vous faire ?</source>
</source>
<translation type="unfinished">Kan bestand niet vervangen!
</translation>
</message>
<message>
@@ -6764,7 +6771,7 @@ Que désirez vous faire ?</source>
<message>
<location filename="../sources/editor/rectangleeditor.cpp" line="50"/>
<source>Coin supérieur gauche : </source>
<translation type="unfinished">Linkerbovenhoek</translation>
<translation type="unfinished">Linkerbovenhoek : </translation>
</message>
<message>
<location filename="../sources/editor/rectangleeditor.cpp" line="55"/>
@@ -8557,7 +8564,7 @@ Maximale afmeting : %2px</translation>
<message>
<location filename="../sources/ui/xrefpropertieswidget.cpp" line="99"/>
<source>Sous le label de l&apos;élément</source>
<translation type="unfinished">Onder het labelelement</translation>
<translation type="unfinished">Onder het elementlabel</translation>
</message>
</context>
<context>

View File

@@ -1,5 +1,7 @@
HEADERS += \
$$PWD/qetgraphicshandlerutility.h
$$PWD/qetgraphicshandlerutility.h \
$$PWD/qetgraphicshandleritem.h
SOURCES += \
$$PWD/qetgraphicshandlerutility.cpp
$$PWD/qetgraphicshandlerutility.cpp \
$$PWD/qetgraphicshandleritem.cpp

View File

@@ -0,0 +1,99 @@
/*
Copyright 2006-2017 The QElectroTech Team
This file is part of QElectroTech.
QElectroTech is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
QElectroTech is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
*/
#include "qetgraphicshandleritem.h"
#include <QPainter>
#include <QDebug>
/**
* @brief QetGraphicsHandlerItem::QetGraphicsHandlerItem
* @param size, the size of the handler
*/
QetGraphicsHandlerItem::QetGraphicsHandlerItem(qreal size) :
m_size(size)
{}
/**
* @brief QetGraphicsHandlerItem::boundingRect
* @return
*/
QRectF QetGraphicsHandlerItem::boundingRect() const
{
qreal rect_size = m_size * m_previous_zoom_factor;
QRectF rect(0-rect_size/2, 0-rect_size/2, rect_size, rect_size);
rect.adjust(-2, -2, 2, 2);
return rect;
}
/**
* @brief QetGraphicsHandlerItem::setColor
* @param color, set the color of the handler
*/
void QetGraphicsHandlerItem::setColor(QColor color)
{
m_color = color;
update();
}
/**
* @brief QetGraphicsHandlerItem::paint
* @param painter
* @param option
* @param widget
*/
void QetGraphicsHandlerItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
Q_UNUSED(option);
Q_UNUSED(widget);
qreal zoom_factor = 1.0/painter->transform().m11();
if(zoom_factor != m_previous_zoom_factor)
{
prepareGeometryChange();
m_previous_zoom_factor = zoom_factor;
}
qreal rect_size = m_size * m_previous_zoom_factor;
QRectF rect(0-rect_size/2, 0-rect_size/2, rect_size, rect_size);
painter->save();
painter->setBrush(QBrush(m_color));
QPen pen(QBrush(m_color), 2, Qt::SolidLine, Qt::SquareCap, Qt::MiterJoin);
pen.setCosmetic(true);
painter->setPen(pen);
painter->setRenderHint(QPainter::Antialiasing, true);
painter->drawEllipse(rect);
painter->restore();
}
/**
* @brief QetGraphicsHandlerItem::handlerForPoint
* @param points
* @return A list of handler with pos at point
*/
QVector<QetGraphicsHandlerItem *> QetGraphicsHandlerItem::handlerForPoint(const QVector<QPointF> &points, int size)
{
QVector <QetGraphicsHandlerItem *> list_;
for (QPointF point : points)
{
QetGraphicsHandlerItem *qghi = new QetGraphicsHandlerItem(size);
qghi->setPos(point);
list_ << qghi;
}
return list_;
}

View File

@@ -0,0 +1,53 @@
/*
Copyright 2006-2017 The QElectroTech Team
This file is part of QElectroTech.
QElectroTech is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
QElectroTech is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef QETGRAPHICSHANDLERITEM_H
#define QETGRAPHICSHANDLERITEM_H
#include <QGraphicsItem>
/**
* @brief The QetGraphicsHandlerItem class
* This graphics item represents a point, destined to be used as an handler,
* for modifie the geometrie of a another graphics item (like shapes).
* The graphics item to be modified, must call "installSceneEventFilter" of this item with itself for argument,.
* The ghraphics item to be modified, need to reimplement "sceneEventFilter" for create the modification behavior.
*/
class QetGraphicsHandlerItem : public QGraphicsItem
{
public:
QetGraphicsHandlerItem(qreal size = 15);
virtual QRectF boundingRect() const;
enum { Type = UserType + 1200};
virtual int type() const {return Type;}
void setColor(QColor color);
protected:
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
private:
qreal m_size,
m_previous_zoom_factor = 1;
QColor m_color;
public:
static QVector<QetGraphicsHandlerItem *> handlerForPoint(const QVector<QPointF> &points, int size = 15);
};
#endif // QETGRAPHICSHANDLERITEM_H

View File

@@ -16,111 +16,10 @@
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
*/
#include "qetgraphicshandlerutility.h"
#include <QPainter>
//#include <QVector>
//#include <QPointF>
#include <QPainterPath>
/**
* @brief QetGraphicsHandlerUtility::QetGraphicsHandlerUtility
* Constructor
* @param size : the size of the handler
*/
QetGraphicsHandlerUtility::QetGraphicsHandlerUtility(qreal size) :
m_size (size)
{}
/**
* @brief QetGraphicsHandlerUtility::drawHandler
* Draw the handler at pos @point, using the QPainter @painter.
* @param painter : painter to use for drawing the handler
* @param point : point to draw the handler
*/
void QetGraphicsHandlerUtility::drawHandler(QPainter *painter, const QPointF &point)
{
//Setup the zoom factor to draw the handler in the same size at screen,
//no matter the zoom of the QPainter
m_zoom_factor = 1.0/painter->transform().m11();
painter->save();
painter->setBrush(QBrush(m_inner_color));
QPen square_pen(QBrush(m_outer_color), 2, Qt::SolidLine, Qt::SquareCap, Qt::MiterJoin);
square_pen.setCosmetic(true);
painter->setPen(square_pen);
painter->drawRect(getRect(point));
painter->restore();
}
/**
* @brief QetGraphicsHandlerUtility::drawHandler
* Conveniance method for void QetGraphicsHandlerUtility::drawHandler(QPainter *painter, const QPointF &point)
* @param painter
* @param points
* @param color2
*/
void QetGraphicsHandlerUtility::drawHandler(QPainter *painter, const QVector<QPointF> &points) {
foreach(QPointF point, points)
drawHandler(painter, point);
}
/**
* @brief QetGraphicsHandlerUtility::pointIsInHandler
* @param point : point to compare
* @param key_point : point at the center of handler (the point to modify, for exemple the corner of a rectangle)
* @return true if point is in a handler. else false
*/
bool QetGraphicsHandlerUtility::pointIsInHandler(const QPointF &point, const QPointF &key_point) const {
return (getRect(key_point).contains(point));
}
/**
* @brief QetGraphicsHandlerUtility::pointIsHoverHandler
* @param point : point to compare
* @param vector : vector of key_point (the point to modify, for exemple the corners of a rectangle)
* @return if point is hover an handler, return the index of the hovered key_point in the vector, else return -1
*/
int QetGraphicsHandlerUtility::pointIsHoverHandler(const QPointF &point, const QVector<QPointF> &vector) const
{
foreach (QPointF key_point, vector)
if (pointIsInHandler(point, key_point))
return vector.indexOf(key_point);
return -1;
}
/**
* @brief QetGraphicsHandlerUtility::handlerRect
* Return the rect of the handler for all key_point in vector (the point to modify, for exemple the corners of a rectangle)
* The order of rect in the returned vector is the same as the given vector.
* @param vector
* @return
*/
QVector<QRectF> QetGraphicsHandlerUtility::handlerRect(const QVector<QPointF> &vector) const
{
QVector <QRectF> rect_vector;
foreach(QPointF point, vector)
rect_vector << getRect(point);
return rect_vector;
}
void QetGraphicsHandlerUtility::setInnerColor(QColor color) {
m_inner_color = color;
}
void QetGraphicsHandlerUtility::setOuterColor(QColor color) {
m_outer_color = color;
}
/**
* @brief QetGraphicsHandlerUtility::getRect
* @param point
* @return
*/
QRectF QetGraphicsHandlerUtility::getRect(const QPointF &point) const
{
qreal rect_size = m_size * m_zoom_factor;
QRectF rect(point.x() - rect_size/2, point.y() - rect_size/2, rect_size, rect_size);
return rect;
}
/**
* @brief QetGraphicsHandlerUtility::pointsForRect
@@ -169,7 +68,6 @@ QVector<QPointF> QetGraphicsHandlerUtility::pointsForLine(const QLineF &line) {
return (QVector<QPointF> {line.p1(), line.p2()});
}
#include <QDebug>
/**
* @brief QetGraphicsHandlerUtility::pointsForArc
* Return the points for the given arc.

View File

@@ -32,25 +32,6 @@ class QPainter;
*/
class QetGraphicsHandlerUtility
{
public:
QetGraphicsHandlerUtility (qreal size = 1);
void setSize(qreal size) {m_size = size;}
void drawHandler (QPainter *painter, const QPointF & point);
void drawHandler(QPainter *painter, const QVector<QPointF> &points);
QPointF posForHandler(const QPointF &point) const;
bool pointIsInHandler (const QPointF &point, const QPointF &key_point) const;
int pointIsHoverHandler (const QPointF &point, const QVector<QPointF> &vector) const;
QVector<QRectF> handlerRect (const QVector<QPointF> &vector) const;
void setInnerColor (QColor color);
void setOuterColor (QColor color);
private:
QRectF getRect (const QPointF &point) const;
qreal m_size;
qreal m_zoom_factor = 1;
QColor m_inner_color = Qt::white,
m_outer_color = Qt::blue;
public:
static QVector <QPointF> pointsForRect (const QRectF &rect);
static QVector <QPointF> pointsForLine (const QLineF &line);

View File

@@ -250,6 +250,7 @@ void ConductorProperties::toXml(QDomElement &e) const
if (color != QColor(Qt::black))
e.setAttribute("color", color.name());
if (type == Single)
singleLineProperties.toXml(e);
@@ -388,12 +389,14 @@ void ConductorProperties::setText(QString text) {
*/
void ConductorProperties::applyForEqualAttributes(QList<ConductorProperties> list)
{
if (list.isEmpty())
const QList<ConductorProperties> clist = list;
if (clist.isEmpty())
return;
if (list.size() == 1)
if (clist.size() == 1)
{
ConductorProperties cp = list.first();
ConductorProperties cp = clist.first();
color = cp.color;
text = cp.text;
m_formula = cp.m_formula;
@@ -410,9 +413,15 @@ void ConductorProperties::applyForEqualAttributes(QList<ConductorProperties> lis
}
bool equal = true;
QColor c_value;
bool b_value;
QString s_value;
int i_value;
double d_value;
//Color
QColor c_value = list.first().color;
foreach(ConductorProperties cp, list)
c_value = clist.first().color;
for(ConductorProperties cp : clist)
{
if (cp.color != c_value)
equal = false;
@@ -422,8 +431,8 @@ void ConductorProperties::applyForEqualAttributes(QList<ConductorProperties> lis
equal = true;
//text
QString s_value = list.first().text;
foreach(ConductorProperties cp, list)
s_value = clist.first().text;
for(ConductorProperties cp : clist)
{
if (cp.text != s_value)
equal = false;
@@ -433,8 +442,8 @@ void ConductorProperties::applyForEqualAttributes(QList<ConductorProperties> lis
equal = true;
//formula
s_value = list.first().m_formula;
foreach(ConductorProperties cp, list)
s_value = clist.first().m_formula;
for(ConductorProperties cp : clist)
{
if (cp.m_formula != s_value)
equal = false;
@@ -444,8 +453,8 @@ void ConductorProperties::applyForEqualAttributes(QList<ConductorProperties> lis
equal = true;
//function
s_value = list.first().m_function;
foreach(ConductorProperties cp, list)
s_value = clist.first().m_function;
for(ConductorProperties cp : clist)
{
if (cp.m_function != s_value)
equal = false;
@@ -455,8 +464,8 @@ void ConductorProperties::applyForEqualAttributes(QList<ConductorProperties> lis
equal = true;
//Tension protocol
s_value = list.first().m_tension_protocol;
foreach(ConductorProperties cp, list)
s_value = clist.first().m_tension_protocol;
for(ConductorProperties cp : clist)
{
if (cp.m_tension_protocol != s_value)
equal = false;
@@ -466,8 +475,8 @@ void ConductorProperties::applyForEqualAttributes(QList<ConductorProperties> lis
equal = true;
//text size
int i_value = list.first().text_size;
foreach(ConductorProperties cp, list)
i_value = clist.first().text_size;
for(ConductorProperties cp : clist)
{
if (cp.text_size != i_value)
equal = false;
@@ -477,8 +486,8 @@ void ConductorProperties::applyForEqualAttributes(QList<ConductorProperties> lis
equal = true;
//conductor size
double d_value = list.first().cond_size;
foreach(ConductorProperties cp, list)
d_value = clist.first().cond_size;
for(ConductorProperties cp : clist)
{
if (cp.cond_size != d_value)
equal = false;
@@ -488,8 +497,8 @@ void ConductorProperties::applyForEqualAttributes(QList<ConductorProperties> lis
equal = true;
//show text
bool b_value = list.first().m_show_text;
foreach(ConductorProperties cp, list)
b_value = clist.first().m_show_text;
for(ConductorProperties cp : clist)
{
if (cp.m_show_text != b_value)
equal = false;
@@ -499,8 +508,8 @@ void ConductorProperties::applyForEqualAttributes(QList<ConductorProperties> lis
equal = true;
//One text per folio
b_value = list.first().m_one_text_per_folio;
foreach(ConductorProperties cp, list)
b_value = clist.first().m_one_text_per_folio;
for(ConductorProperties cp : clist)
{
if (cp.m_one_text_per_folio != b_value)
equal = false;
@@ -510,8 +519,8 @@ void ConductorProperties::applyForEqualAttributes(QList<ConductorProperties> lis
equal = true;
//Text rotation for vertical conducor
d_value = list.first().verti_rotate_text;
foreach(ConductorProperties cp, list)
d_value = clist.first().verti_rotate_text;
for(ConductorProperties cp : clist)
{
if (cp.verti_rotate_text != d_value)
equal = false;
@@ -521,8 +530,8 @@ void ConductorProperties::applyForEqualAttributes(QList<ConductorProperties> lis
equal = true;
//Text rotation for horizontal conducor
d_value = list.first().horiz_rotate_text;
foreach(ConductorProperties cp, list)
d_value = clist.first().horiz_rotate_text;
for(ConductorProperties cp : clist)
{
if (cp.horiz_rotate_text != d_value)
equal = false;

View File

@@ -77,18 +77,25 @@ class ConductorProperties
//Attributes
ConductorType type;
QColor color;
QString text,
m_function,
m_tension_protocol,
m_formula;
int text_size;
double cond_size;
double verti_rotate_text;
double horiz_rotate_text;
bool m_show_text;
bool m_one_text_per_folio;
double cond_size,
verti_rotate_text,
horiz_rotate_text;
bool m_show_text,
m_one_text_per_folio;
Qt::PenStyle style;
SingleLineProperties singleLineProperties;
// methods

View File

@@ -91,10 +91,7 @@ Diagram::Diagram(QETProject *project) :
* @brief Diagram::~Diagram
* Destructor
*/
Diagram::~Diagram()
{
//First clear every selection to close an hypothetical editor
clearSelection();
Diagram::~Diagram() {
// clear undo stack to prevent errors, because contains pointers to this diagram and is elements.
undoStack().clear();
//delete of QGIManager, every elements he knows are removed
@@ -106,15 +103,19 @@ Diagram::~Diagram()
delete elements_mover_;
delete element_texts_mover_;
if (m_event_interface)
delete m_event_interface;
if (m_event_interface) delete m_event_interface;
// list removable items
QList<QGraphicsItem *> deletable_items;
for(QGraphicsItem *qgi : items())
{
if (qgi -> parentItem()) continue;
if (qgraphicsitem_cast<Conductor *>(qgi)) continue;
if (qgi->parentItem())
continue;
if (qgi->type() == Conductor::Type)
continue;
if (qgi->type() == QetGraphicsHandlerItem::Type)
continue;
deletable_items << qgi;
}
@@ -377,6 +378,8 @@ void Diagram::keyReleaseEvent(QKeyEvent *e)
* Diagram become the ownership of event_interface
* If there is a previous interface, they will be delete before
* and call init() to the new interface.
* The derivated class of DiagramEventInterface need to emit the signal "finish" when the job is done,
* diagram use this signal to delete the interface. If the signal isn't send, the interface will never be deleted.
* @param event_interface
*/
void Diagram::setEventInterface(DiagramEventInterface *event_interface)

View File

@@ -24,23 +24,24 @@
#include <QGraphicsSceneHoverEvent>
#include <QStyleOptionGraphicsItem>
#include <QGraphicsScene>
#include "QetGraphicsItemModeler/qetgraphicshandleritem.h"
/**
Constructor
@param parent Parent QGraphicsItem
*/
ElementPrimitiveDecorator::ElementPrimitiveDecorator(QGraphicsItem *parent):
QGraphicsObject(parent),
m_handler(10)
QGraphicsObject(parent)
{
init();
m_handler.setOuterColor(Qt::darkGreen);
}
/**
Destructor
*/
ElementPrimitiveDecorator::~ElementPrimitiveDecorator() {
ElementPrimitiveDecorator::~ElementPrimitiveDecorator()
{
removeHandler();
}
/**
@@ -68,12 +69,7 @@ QRectF ElementPrimitiveDecorator::internalBoundingRect() const {
*/
QRectF ElementPrimitiveDecorator::boundingRect() const
{
QVector<QRectF> rect_vector = m_handler.handlerRect(getResizingsPoints());
QRectF rect = effective_bounding_rect_;
rect |= rect_vector.first();
rect |= rect_vector.last();
return(rect);
return effective_bounding_rect_;
}
/**
@@ -97,9 +93,6 @@ void ElementPrimitiveDecorator::paint(QPainter *painter, const QStyleOptionGraph
painter -> setPen(pen);
painter -> drawRect(modified_bounding_rect_);
//Draw the handlers
m_handler.drawHandler(painter, getResizingsPoints());
// uncomment to draw the real bouding rect (=adjusted internal bounding rect)
// painter -> setBrush(QBrush(QColor(240, 0, 0, 127)));
// painter -> drawRect(boundingRect());
@@ -109,45 +102,28 @@ void ElementPrimitiveDecorator::paint(QPainter *painter, const QStyleOptionGraph
/**
@param items the new list of items this decorator is suposed to manipulate.
*/
void ElementPrimitiveDecorator::setItems(const QList<CustomElementPart *> &items) {
if (CustomElementPart *single_item = singleItem()) {
if (items.count() == 1 && items.first() == single_item) {
// no actual change
goto end_setItems;
}
// break any connection between the former single selected item (if any) and
// the decorator
single_item -> setDecorator(0);
if (QGraphicsObject *single_object = dynamic_cast<QGraphicsObject *>(single_item)) {
disconnect(single_object, 0, this, 0);
}
}
void ElementPrimitiveDecorator::setItems(const QList<CustomElementPart *> &items)
{
decorated_items_ = items;
// when only a single primitive is selected, the decorator behaves specially
// to enable extra features, such as text edition, internal points movements,
// etc.
if (CustomElementPart *single_item = singleItem()) {
single_item -> setDecorator(this);
}
end_setItems:
adjust();
show();
if (focusItem() != this) {
setFocus();
}
adjusteHandlerPos();
}
/**
@param items the new list of items this decorator is suposed to manipulate.
*/
void ElementPrimitiveDecorator::setItems(const QList<QGraphicsItem *> &items) {
void ElementPrimitiveDecorator::setItems(const QList<QGraphicsItem *> &items)
{
QList<CustomElementPart *> primitives;
foreach (QGraphicsItem *item, items) {
if (CustomElementPart *part_item = dynamic_cast<CustomElementPart *>(item)) {
for(QGraphicsItem *item : items)
{
if (CustomElementPart *part_item = dynamic_cast<CustomElementPart *>(item))
{
primitives << part_item;
}
}
@@ -178,76 +154,26 @@ QList<QGraphicsItem *> ElementPrimitiveDecorator::graphicsItems() const {
Adjust the visual decorator according to the currently assigned items.
It is notably called by setItems().
*/
void ElementPrimitiveDecorator::adjust() {
void ElementPrimitiveDecorator::adjust()
{
saveOriginalBoundingRect();
modified_bounding_rect_ = original_bounding_rect_;
adjustEffectiveBoundingRect();
}
/**
Handle events generated when the mouse hovers over the decorator.
@param event Object describing the hover event.
*/
void ElementPrimitiveDecorator::hoverMoveEvent(QGraphicsSceneHoverEvent *event)
{
int p = m_handler.pointIsHoverHandler(event->pos(), getResizingsPoints());
if (p == 0 || p == 7)
setCursor(Qt::SizeFDiagCursor);
else if (p == 2 || p == 5)
setCursor(Qt::SizeBDiagCursor);
else if (p == 1 || p ==6)
setCursor(Qt::SizeVerCursor);
else if (p == 3 || p == 4)
setCursor(Qt::SizeHorCursor);
else if (p == -1 && modified_bounding_rect_.normalized().contains(event->pos()))
setCursor(Qt::SizeAllCursor);
else
setCursor(Qt::ArrowCursor);
}
/**
Handle event generated when mouse buttons are pressed.
@param event Object describing the mouse event
*/
void ElementPrimitiveDecorator::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
QPointF pos = event -> pos();
QVector <QPointF> points = getResizingsPoints();
current_operation_square_ = m_handler.pointIsHoverHandler(pos, points);
bool accept = false;
if (current_operation_square_ != QET::NoOperation)
accept = true;
else
if (internalBoundingRect().contains(event->pos()))
{
if (internalBoundingRect().contains(pos))
{
if (CustomElementPart *single_item = singleItem())
{
bool event_accepted = single_item -> singleItemPressEvent(this, event);
if (event_accepted)
{
event -> ignore();
return;
}
}
current_operation_square_ = QET::MoveArea;
accept = true;
}
}
if (accept)
{
if (current_operation_square_ > QET::NoOperation)
first_pos_ = latest_pos_ = mapToScene(points.at(current_operation_square_));
else
{
first_pos_ = decorated_items_.at(0) -> toItem() -> scenePos();
latest_pos_ = event -> scenePos();
mouse_offset_ = event -> scenePos() - first_pos_;
}
startMovement();
event->accept();
}
@@ -255,21 +181,6 @@ void ElementPrimitiveDecorator::mousePressEvent(QGraphicsSceneMouseEvent *event)
event->ignore();
}
/**
Handle events generated when mouse buttons are double clicked.
@param event Object describing the mouse event
*/
void ElementPrimitiveDecorator::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) {
//QGraphicsObject::mouseDoubleClickEvent(event);
if (CustomElementPart *single_item = singleItem()) {
bool event_accepted = single_item -> singleItemDoubleClickEvent(this, event);
if (event_accepted) {
event -> ignore();
return;
}
}
}
/**
Handle event generated when the mouse is moved and the decorator is the mouse grabber item.
@param event Object describing the mouse event
@@ -280,57 +191,12 @@ void ElementPrimitiveDecorator::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
QPointF scene_pos = event -> scenePos();
QPointF movement = scene_pos - latest_pos_;
if (current_operation_square_ > QET::NoOperation) {
// This is a scaling operation.
// For convenience purposes, we may need to adjust mouse movements.
QET::ScalingMethod scaling_method = scalingMethod(event);
if (scaling_method > QET::FreeScaling) {
// real, non-rounded movement from the mouse press event
QPointF global_movement = scene_pos - first_pos_;
QPointF rounded_global_movement;
if (scaling_method == QET::SnapScalingPointToGrid) {
// real, rounded movement from the mouse press event
rounded_global_movement = snapConstPointToGrid(global_movement);
}
else {
QRectF new_bounding_rect = original_bounding_rect_;
applyMovementToRect(current_operation_square_, global_movement, new_bounding_rect);
const qreal scale_epsilon = 20.0; // rounds to 0.05
QPointF delta = deltaForRoundScaling(original_bounding_rect_, new_bounding_rect, scale_epsilon);
// real, rounded movement from the mouse press event
rounded_global_movement = global_movement + delta;
}
// rounded position of the current mouse move event
QPointF rounded_scene_pos = first_pos_ + rounded_global_movement;
// when scaling the selection, consider the center of the currently dragged resizing rectangle
QPointF current_position = mapToScene(getResizingsPoints().at(current_operation_square_));
// determine the final, effective movement
movement = rounded_scene_pos - current_position;
}
}
else if (current_operation_square_ == QET::MoveArea) {
if (current_operation_square_ == QET::MoveArea)
{
// When moving the selection, consider the position of the first selected item
QPointF current_position = scene_pos - mouse_offset_;
QPointF rounded_current_position = snapConstPointToGrid(current_position);
movement = rounded_current_position - decorated_items_.at(0) -> toItem() -> scenePos();
}
else {
// Neither a movement nor a scaling operation -- perhaps the underlying item
// is interested in the mouse event for custom operations?
if (CustomElementPart *single_item = singleItem()) {
bool event_accepted = single_item -> singleItemMoveEvent(this, event);
if (event_accepted) {
event -> ignore();
return;
}
}
}
QRectF bounding_rect = modified_bounding_rect_;
applyMovementToRect(current_operation_square_, movement, modified_bounding_rect_);
@@ -338,12 +204,12 @@ void ElementPrimitiveDecorator::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
adjustEffectiveBoundingRect();
}
latest_pos_ = event -> scenePos();
if (current_operation_square_ == QET::MoveArea) {
translateItems(movement);
} else {
scaleItems(original_bounding_rect_, modified_bounding_rect_);
}
}
/**
@@ -352,39 +218,25 @@ void ElementPrimitiveDecorator::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
@param event Object describing the mouse event
@see QGraphicsScene::mouseGrabberItem()
*/
void ElementPrimitiveDecorator::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) {
void ElementPrimitiveDecorator::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
{
Q_UNUSED(event)
ElementEditionCommand *command = 0;
if (current_operation_square_ > QET::NoOperation) {
ScalePartsCommand *scale_command = new ScalePartsCommand();
scale_command -> setScaledPrimitives(items());
scale_command -> setTransformation(
mapToScene(original_bounding_rect_).boundingRect(),
mapToScene(modified_bounding_rect_).boundingRect()
);
command = scale_command;
} else if (current_operation_square_ == QET::MoveArea) {
if (current_operation_square_ == QET::MoveArea)
{
QPointF movement = mapToScene(modified_bounding_rect_.topLeft()) - mapToScene(original_bounding_rect_.topLeft());
if (!movement.isNull()) {
if (!movement.isNull())
{
MovePartsCommand *move_command = new MovePartsCommand(movement, 0, graphicsItems());
command = move_command;
}
} else {
if (CustomElementPart *single_item = singleItem()) {
bool event_accepted = single_item -> singleItemReleaseEvent(this, event);
if (event_accepted) {
event -> ignore();
return;
}
}
}
if (command) {
emit(actionFinished(command));
}
if (current_operation_square_ != QET::NoOperation) {
adjust();
}
@@ -440,7 +292,8 @@ void ElementPrimitiveDecorator::keyReleaseEvent(QKeyEvent *e) {
/**
Initialize an ElementPrimitiveDecorator
*/
void ElementPrimitiveDecorator::init() {
void ElementPrimitiveDecorator::init()
{
setFlag(QGraphicsItem::ItemIsFocusable, true);
grid_step_x_ = grid_step_y_ = 1;
setAcceptHoverEvents(true);
@@ -461,6 +314,7 @@ void ElementPrimitiveDecorator::adjustEffectiveBoundingRect() {
prepareGeometryChange();
effective_bounding_rect_ = modified_bounding_rect_ | effective_bounding_rect_;
update();
adjusteHandlerPos();
}
/**
@@ -592,6 +446,152 @@ QVector<QPointF> ElementPrimitiveDecorator::getResizingsPoints() const
return vector;
}
/**
* @brief ElementPrimitiveDecorator::adjusteHandlerPos
*/
void ElementPrimitiveDecorator::adjusteHandlerPos()
{
QVector <QPointF> points_vector = mapToScene(getResizingsPoints());
for (int i = 0 ; i < points_vector.size() ; ++i)
m_handler_vector.at(i)->setPos(points_vector.at(i));
}
/**
* @brief ElementPrimitiveDecorator::handlerMousePressEvent
* @param qghi
* @param event
*/
void ElementPrimitiveDecorator::handlerMousePressEvent(QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event)
{
Q_UNUSED(event);
QVector <QPointF> points = getResizingsPoints();
current_operation_square_ = m_handler_vector.indexOf(qghi);
first_pos_ = latest_pos_ = mapToScene(points.at(current_operation_square_));
startMovement();
}
/**
* @brief ElementPrimitiveDecorator::handlerMouseMoveEvent
* @param qghi
* @param event
*/
void ElementPrimitiveDecorator::handlerMouseMoveEvent(QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event)
{
Q_UNUSED(qghi);
QPointF scene_pos = event -> scenePos();
QPointF movement = scene_pos - latest_pos_;
// For convenience purposes, we may need to adjust mouse movements.
QET::ScalingMethod scaling_method = scalingMethod(event);
if (scaling_method > QET::FreeScaling)
{
// real, non-rounded movement from the mouse press event
QPointF global_movement = scene_pos - first_pos_;
QPointF rounded_global_movement;
if (scaling_method == QET::SnapScalingPointToGrid)
{
// real, rounded movement from the mouse press event
rounded_global_movement = snapConstPointToGrid(global_movement);
}
else
{
QRectF new_bounding_rect = original_bounding_rect_;
applyMovementToRect(current_operation_square_, global_movement, new_bounding_rect);
const qreal scale_epsilon = 20.0; // rounds to 0.05
QPointF delta = deltaForRoundScaling(original_bounding_rect_, new_bounding_rect, scale_epsilon);
// real, rounded movement from the mouse press event
rounded_global_movement = global_movement + delta;
}
// rounded position of the current mouse move event
QPointF rounded_scene_pos = first_pos_ + rounded_global_movement;
// when scaling the selection, consider the center of the currently dragged resizing rectangle
QPointF current_position = mapToScene(getResizingsPoints().at(current_operation_square_));
// determine the final, effective movement
movement = rounded_scene_pos - current_position;
}
QRectF bounding_rect = modified_bounding_rect_;
applyMovementToRect(current_operation_square_, movement, modified_bounding_rect_);
if (modified_bounding_rect_ != bounding_rect) {
adjustEffectiveBoundingRect();
}
latest_pos_ = event -> scenePos();
scaleItems(original_bounding_rect_, modified_bounding_rect_);
}
/**
* @brief ElementPrimitiveDecorator::handlerMouseReleaseEvent
* @param qghi
* @param event
*/
void ElementPrimitiveDecorator::handlerMouseReleaseEvent(QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event)
{
Q_UNUSED(qghi);
Q_UNUSED(event);
ElementEditionCommand *command = 0;
if (current_operation_square_ > QET::NoOperation)
{
ScalePartsCommand *scale_command = new ScalePartsCommand();
scale_command -> setScaledPrimitives(items());
scale_command -> setTransformation(
mapToScene(original_bounding_rect_).boundingRect(),
mapToScene(modified_bounding_rect_).boundingRect()
);
command = scale_command;
}
if (command) {
emit(actionFinished(command));
}
adjust();
current_operation_square_ = QET::NoOperation;
}
/**
* @brief ElementPrimitiveDecorator::addHandler
* Add handlers for this item
*/
void ElementPrimitiveDecorator::addHandler()
{
if (m_handler_vector.isEmpty() && scene())
{
m_handler_vector = QetGraphicsHandlerItem::handlerForPoint(mapFromScene(getResizingsPoints()));
for(QetGraphicsHandlerItem *handler : m_handler_vector)
{
scene()->addItem(handler);
handler->setColor(Qt::darkGreen);
handler->installSceneEventFilter(this);
handler->setZValue(this->zValue()+1);
}
}
}
/**
* @brief ElementPrimitiveDecorator::removeHandler
* Remove the handlers of this item
*/
void ElementPrimitiveDecorator::removeHandler()
{
if (!m_handler_vector.isEmpty())
{
qDeleteAll(m_handler_vector);
m_handler_vector.clear();
}
}
/**
Receive two rects, assuming they share a common corner and current is a \a
scaled version of \a original.
@@ -661,3 +661,73 @@ QET::ScalingMethod ElementPrimitiveDecorator::scalingMethod(QGraphicsSceneMouseE
}
return QET::RoundScaleRatios;
}
/**
* @brief ElementPrimitiveDecorator::itemChange
* @param change
* @param value
* @return
*/
QVariant ElementPrimitiveDecorator::itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value)
{
if (change == ItemSceneHasChanged)
{
if(scene()) //Item is added to scene, we also add handlers
addHandler();
else //Item is removed from scene, we also remove the handlers
removeHandler();
}
else if (change == ItemVisibleHasChanged)
{
bool visible = value.toBool();
for(QetGraphicsHandlerItem *qghi : m_handler_vector)
qghi->setVisible(visible);
}
else if (change == ItemZValueHasChanged && !m_handler_vector.isEmpty())
{
for (QetGraphicsHandlerItem *qghi : m_handler_vector)
qghi->setZValue(this->zValue()+1);
}
return QGraphicsObject::itemChange(change, value);
}
/**
* @brief ElementPrimitiveDecorator::sceneEventFilter
* @param watched
* @param event
* @return
*/
bool ElementPrimitiveDecorator::sceneEventFilter(QGraphicsItem *watched, QEvent *event)
{
//Watched must be an handler
if(watched->type() == QetGraphicsHandlerItem::Type)
{
QetGraphicsHandlerItem *qghi = qgraphicsitem_cast<QetGraphicsHandlerItem *>(watched);
if(m_handler_vector.contains(qghi)) //Handler must be in m_vector_index, then we can start resize
{
m_vector_index = m_handler_vector.indexOf(qghi);
if (m_vector_index != -1)
{
if(event->type() == QEvent::GraphicsSceneMousePress) //Click
{
handlerMousePressEvent(qghi, static_cast<QGraphicsSceneMouseEvent *>(event));
return true;
}
else if(event->type() == QEvent::GraphicsSceneMouseMove) //Move
{
handlerMouseMoveEvent(qghi, static_cast<QGraphicsSceneMouseEvent *>(event));
return true;
}
else if (event->type() == QEvent::GraphicsSceneMouseRelease) //Release
{
handlerMouseReleaseEvent(qghi, static_cast<QGraphicsSceneMouseEvent *>(event));
return true;
}
}
}
}
return false;
}

View File

@@ -20,11 +20,11 @@
#include <QGraphicsObject>
#include "qet.h"
#include "QetGraphicsItemModeler/qetgraphicshandlerutility.h"
class ElementEditionCommand;
class ElementScene;
class CustomElementPart;
class QetGraphicsHandlerItem;
/**
This class represents a decorator rendered above selected items so users
@@ -64,9 +64,7 @@ class ElementPrimitiveDecorator : public QGraphicsObject
void actionFinished(ElementEditionCommand *);
protected:
void hoverMoveEvent(QGraphicsSceneHoverEvent *);
void mousePressEvent(QGraphicsSceneMouseEvent *);
void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *);
void mouseMoveEvent(QGraphicsSceneMouseEvent *);
void mouseReleaseEvent(QGraphicsSceneMouseEvent *);
void keyPressEvent(QKeyEvent *);
@@ -76,6 +74,8 @@ class ElementPrimitiveDecorator : public QGraphicsObject
void snapPointToGrid(QPointF &) const;
bool mustSnapToGrid(QGraphicsSceneMouseEvent *);
QET::ScalingMethod scalingMethod(QGraphicsSceneMouseEvent *);
virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value);
virtual bool sceneEventFilter(QGraphicsItem *watched, QEvent *event);
private:
void init();
@@ -89,8 +89,19 @@ class ElementPrimitiveDecorator : public QGraphicsObject
QRectF getSceneBoundingRect(QGraphicsItem *) const;
QVector <QPointF> getResizingsPoints() const;
// attributes
private:
void adjusteHandlerPos();
void handlerMousePressEvent (QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event);
void handlerMouseMoveEvent (QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event);
void handlerMouseReleaseEvent (QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event);
void addHandler();
void removeHandler();
QList<CustomElementPart *> decorated_items_;
QRectF effective_bounding_rect_; ///< actual, effective bounding rect -- never shrinks
QRectF original_bounding_rect_; ///< original bounding rect
@@ -108,7 +119,8 @@ class ElementPrimitiveDecorator : public QGraphicsObject
QPointF mouse_offset_; ///< Offset between the mouse position and the point to be snapped to grid when moving selection
bool moving_by_keys_; ///< Whether we are currently moving our decorated items using the arrow keys
QPointF keys_movement_; ///< Movement applied to our decorated items using the arrow keys
QetGraphicsHandlerUtility m_handler;
QVector<QetGraphicsHandlerItem *> m_handler_vector;
int m_vector_index = -1;
};
#endif

View File

@@ -32,8 +32,9 @@
#include "nameslist.h"
#include "ui/elementpropertieseditorwidget.h"
#include "eseventinterface.h"
#include <algorithm>
#include "QetGraphicsItemModeler/qetgraphicshandleritem.h"
#include <algorithm>
#include <QKeyEvent>
/**
@@ -524,26 +525,44 @@ QETElementEditor* ElementScene::editor() const {
}
/**
Selectionne une liste de parties
@param content liste des parties a selectionner
* @brief ElementScene::slot_select
* Select the item in content, every others items in the scene are deselected
* @param content
*/
void ElementScene::slot_select(const ElementContent &content) {
void ElementScene::slot_select(const ElementContent &content)
{
blockSignals(true);
//Befor clear selection, we must to remove the handlers items in @content,
//because if in @content there are a selected item, but also its handlers items,
//When item is deselected, the item delete its handlers items,
//then handlers in content doesn't exist anymore and cause segfault
QList<QGraphicsItem*> items_list;
for (QGraphicsItem *qgi : content)
{
if(qgi->type() != QetGraphicsHandlerItem::Type)
items_list << qgi;
}
clearSelection();
foreach(QGraphicsItem *qgi, content) qgi -> setSelected(true);
foreach(QGraphicsItem *qgi, items_list)
qgi -> setSelected(true);
blockSignals(false);
emit(selectionChanged());
}
/**
Selectionne tout
* @brief ElementScene::slot_selectAll
* Select all items
*/
void ElementScene::slot_selectAll() {
slot_select(items());
}
/**
Deselectionne tout
* @brief ElementScene::slot_deselectAll
* deselect all item
*/
void ElementScene::slot_deselectAll() {
slot_select(ElementContent());
@@ -811,7 +830,15 @@ void ElementScene::reset()
clearSelection();
undoStack().clear();
foreach (QGraphicsItem *qgi, items())
//We don't add handlers, because it's the role of the primitive or decorator to remove it.
QList<QGraphicsItem*> items_list;
for (QGraphicsItem *qgi : items())
{
if(qgi->type() != QetGraphicsHandlerItem::Type)
items_list << qgi;
}
for (QGraphicsItem *qgi : items_list)
{
removeItem(qgi);
qgiManager().release(qgi);
@@ -1064,14 +1091,17 @@ void ElementScene::managePrimitivesGroups()
// should we hide the decorator?
QList<QGraphicsItem *> selected_items = zItems(ElementScene::Selected | ElementScene::IncludeTerminals);
if (selected_items.size() == 0)
m_decorator -> hide();
else if (selected_items.size() == 1 &&
selected_items.first()->type() != PartText::Type &&
selected_items.first()->type() != PartTextField::Type)
if (selected_items.size() <= 1)
{
m_decorator -> hide();
}
else
{
for(QGraphicsItem *qgi : selected_items)
{
//We recall set selected, then every primitive will remove there handler because there are several item selected
qgi->setSelected(true);
}
m_decorator -> setZValue(1000000);
m_decorator -> setPos(0, 0);
m_decorator -> setItems(selected_items);

View File

@@ -82,7 +82,7 @@ class ElementScene : public QGraphicsScene
QETElementEditor *m_element_editor = nullptr;
/// Variables to manage the paste area on the scene
QGraphicsRectItem *m_paste_area = nullptr;
QGraphicsRectItem *m_paste_area;
QRectF m_defined_paste_area;
/// Variables to handle copy/paste with offset

View File

@@ -118,6 +118,7 @@ void AbstractPartEllipse::setRect(const QRectF &rect)
if (rect == m_rect) return;
prepareGeometryChange();
m_rect = rect;
emit rectChanged();
}

View File

@@ -20,6 +20,8 @@
#include "customelementgraphicpart.h"
class QetGraphicsHandlerItem;
/**
* @brief The AbstractPartEllipse class
* This is the base class for all ellipse based item like ellipse, circle, arc.
@@ -61,20 +63,21 @@ class AbstractPartEllipse : public CustomElementGraphicPart
virtual QPointF sceneTopLeft() const;
QRectF rect() const;
void setRect (const QRectF &rect);
virtual void setRect (const QRectF &rect);
virtual bool isUseless() const;
int startAngle() const {return m_start_angle;}
void setStartAngle (const int &start_angle);
virtual void setStartAngle (const int &start_angle);
int spanAngle () const {return m_span_angle;}
void setSpanAngle (const int &span_angle);
virtual void setSpanAngle (const int &span_angle);
protected:
QList<QPointF> saved_points_;
QRectF m_rect;
qreal m_start_angle;
qreal m_span_angle;
QVector<QetGraphicsHandlerItem *> m_handler_vector;
};
#endif // ABSTRACTPARTELLIPSE_H

View File

@@ -118,7 +118,7 @@ class CustomElementGraphicPart : public QGraphicsObject, public CustomElementPar
Filling _filling ;
Color _color;
bool _antialiased;
QPointF m_origin_pos, m_mouse_to_origin_pos;
QPointF m_origin_pos;
};
typedef CustomElementGraphicPart CEGP;

View File

@@ -49,16 +49,6 @@ QGraphicsItem *CustomElementPart::toItem() {
return(dynamic_cast<QGraphicsItem *>(this));
}
/**
This method is called by the decorator when it manages only a single
primitive. This brings the possibility to implement custom behaviour, such
as text edition, points edition or specific resizing.
The default implementation does nothing.
*/
void CustomElementPart::setDecorator(ElementPrimitiveDecorator *decorator) {
Q_UNUSED(decorator)
}
/**
This method is called by the decorator when it needs to determine the best
way to interactively scale a primitive. It is typically called when only a
@@ -70,46 +60,6 @@ QET::ScalingMethod CustomElementPart::preferredScalingMethod() const {
return(QET::SnapScalingPointToGrid);
}
/**
This method is called by the decorator when it manages only a single
primitive and it received a mouse press event.
The implementation should return true if the primitive accepts the event, false otherwise.
The default implementation returns false.
*/
bool CustomElementPart::singleItemPressEvent(ElementPrimitiveDecorator *, QGraphicsSceneMouseEvent *) {
return(false);
}
/**
This method is called by the decorator when it manages only a single
primitive and it received a mouse move event.
The implementation should return true if the primitive accepts the event, false otherwise.
The default implementation returns false.
*/
bool CustomElementPart::singleItemMoveEvent(ElementPrimitiveDecorator *, QGraphicsSceneMouseEvent *) {
return(false);
}
/**
This method is called by the decorator when it manages only a single
primitive and it received a mouse release event.
The implementation should return true if the primitive accepts the event, false otherwise.
The default implementation returns false.
*/
bool CustomElementPart::singleItemReleaseEvent(ElementPrimitiveDecorator *, QGraphicsSceneMouseEvent *) {
return(false);
}
/**
This method is called by the decorator when it manages only a single
primitive and it received a mouse double click event.
The implementation should return true if the primitive accepts the event, false otherwise.
The default implementation returns false.
*/
bool CustomElementPart::singleItemDoubleClickEvent(ElementPrimitiveDecorator *, QGraphicsSceneMouseEvent *) {
return(false);
}
/**
Helper method to map points in CustomElementPart::handleUserTransformation()
@param initial_selection_rect Selection rectangle when the movement started, in scene coordinates

View File

@@ -103,12 +103,7 @@ class CustomElementPart {
virtual QGraphicsItem *toItem();
virtual void setDecorator(ElementPrimitiveDecorator *);
virtual QET::ScalingMethod preferredScalingMethod() const;
virtual bool singleItemPressEvent(ElementPrimitiveDecorator *, QGraphicsSceneMouseEvent *);
virtual bool singleItemMoveEvent(ElementPrimitiveDecorator *, QGraphicsSceneMouseEvent *);
virtual bool singleItemReleaseEvent(ElementPrimitiveDecorator *, QGraphicsSceneMouseEvent *);
virtual bool singleItemDoubleClickEvent(ElementPrimitiveDecorator *, QGraphicsSceneMouseEvent *);
protected:
QList<QPointF> mapPoints(const QRectF &, const QRectF &, const QList<QPointF> &);

View File

@@ -18,6 +18,8 @@
#include "partarc.h"
#include "QPropertyUndoCommand/qpropertyundocommand.h"
#include "elementscene.h"
#include "QetGraphicsItemModeler/qetgraphicshandleritem.h"
#include "QetGraphicsItemModeler/qetgraphicshandlerutility.h"
/**
@@ -37,8 +39,10 @@ PartArc::PartArc(QETElementEditor *editor, QGraphicsItem *parent) :
* @brief PartArc::~PartArc
* Destructor
*/
PartArc::~PartArc() {
PartArc::~PartArc()
{
if(m_undo_command) delete m_undo_command;
removeHandler();
}
/**
@@ -82,15 +86,7 @@ void PartArc::paint(QPainter *painter, const QStyleOptionGraphicsItem *options,
drawShadowShape(painter);
if (isSelected())
{
drawCross(m_rect.center(), painter);
if (scene()->selectedItems().size() == 1) {
if (m_resize_mode == 3)
m_handler.drawHandler(painter, m_handler.pointsForArc(m_rect, m_start_angle /16, m_span_angle /16));
else
m_handler.drawHandler(painter, m_handler.pointsForRect(m_rect));
}
}
}
/**
@@ -129,16 +125,6 @@ void PartArc::fromXml(const QDomElement &qde) {
m_span_angle = qde.attribute("angle", "-1440").toDouble() * 16;
}
QRectF PartArc::boundingRect() const
{
QRectF r = AbstractPartEllipse::boundingRect();
foreach(QRectF rect, m_handler.handlerRect(m_handler.pointsForRect(m_rect)))
r |= rect;
return r;
}
/**
* @brief PartArc::shape
* @return the shape of this item
@@ -153,10 +139,6 @@ QPainterPath PartArc::shape() const
pps.setWidth(m_hovered? penWeight()+SHADOWS_HEIGHT : penWeight());
shape = pps.createStroke(shape);
if (isSelected())
foreach(QRectF rect, m_handler.handlerRect(m_handler.pointsForRect(m_rect)))
shape.addRect(rect);
return shape;
}
@@ -172,68 +154,173 @@ QPainterPath PartArc::shadowShape() const
return (pps.createStroke(shape));
}
void PartArc::hoverMoveEvent(QGraphicsSceneHoverEvent *event)
/**
* @brief PartArc::mouseReleaseEvent
* Handle mouse release event
* @param event
*/
void PartArc::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
{
if (!isSelected())
{
CustomElementGraphicPart::hoverMoveEvent(event);
return;
}
if (event->button() == Qt::LeftButton && event->buttonDownPos(Qt::LeftButton) == event->pos())
switchResizeMode();
if (m_resize_mode == 1 || m_resize_mode == 2) {
int handler = m_handler.pointIsHoverHandler(event->pos(), m_handler.pointsForRect(m_rect));
if (handler >= 0)
{
if (handler == 0 || handler == 2 || handler == 5 || handler == 7)
setCursor(Qt::SizeAllCursor);
else if (handler == 1 || handler == 6)
setCursor(Qt::SizeVerCursor);
else if (handler == 3 || handler == 4)
setCursor(Qt::SizeHorCursor);
return;
}
}
else if (m_resize_mode == 3) {
if (m_handler.pointIsHoverHandler(event->pos(), m_handler.pointsForArc(m_rect, m_start_angle /16, m_span_angle /16)) >= 0) {
setCursor(Qt::SizeAllCursor);
return;
}
}
CustomElementGraphicPart::hoverMoveEvent(event);
CustomElementGraphicPart::mouseReleaseEvent(event);
}
/**
* @brief PartArc::mousePressEvent
* Handle mouse press event
* @brief PartArc::itemChange
* @param change
* @param value
* @return
*/
QVariant PartArc::itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value)
{
if (change == ItemSelectedHasChanged && scene())
{
if (value.toBool() == true)
{
//When item is selected, he must to be up to date whene the selection in the scene change, for display or not the handler,
//according to the number of selected items.
connect(scene(), &QGraphicsScene::selectionChanged, this, &PartArc::sceneSelectionChanged);
if (scene()->selectedItems().size() == 1)
addHandler();
}
else
{
disconnect(scene(), &QGraphicsScene::selectionChanged, this, &PartArc::sceneSelectionChanged);
removeHandler();
}
}
else if (change == ItemPositionHasChanged)
{
adjusteHandlerPos();
}
else if (change == ItemSceneChange)
{
if(scene())
disconnect(scene(), &QGraphicsScene::selectionChanged, this, &PartArc::sceneSelectionChanged);
setSelected(false); //This is item removed from scene, then we deselect this, and so, the handlers is also removed.
}
return QGraphicsItem::itemChange(change, value);
}
/**
* @brief PartArc::sceneEventFilter
* @param watched
* @param event
* @return
*/
bool PartArc::sceneEventFilter(QGraphicsItem *watched, QEvent *event)
{
//Watched must be an handler
if(watched->type() == QetGraphicsHandlerItem::Type)
{
QetGraphicsHandlerItem *qghi = qgraphicsitem_cast<QetGraphicsHandlerItem *>(watched);
if(m_handler_vector.contains(qghi)) //Handler must be in m_vector_index, then we can start resize
{
m_vector_index = m_handler_vector.indexOf(qghi);
if (m_vector_index != -1)
{
if(event->type() == QEvent::GraphicsSceneMousePress) //Click
{
handlerMousePressEvent(qghi, static_cast<QGraphicsSceneMouseEvent *>(event));
return true;
}
else if(event->type() == QEvent::GraphicsSceneMouseMove) //Move
{
handlerMouseMoveEvent(qghi, static_cast<QGraphicsSceneMouseEvent *>(event));
return true;
}
else if (event->type() == QEvent::GraphicsSceneMouseRelease) //Release
{
handlerMouseReleaseEvent(qghi, static_cast<QGraphicsSceneMouseEvent *>(event));
return true;
}
}
}
}
return false;
}
/**
* @brief PartArc::switchResizeMode
*/
void PartArc::switchResizeMode()
{
if (m_resize_mode == 1)
{
m_resize_mode = 2;
for (QetGraphicsHandlerItem *qghi : m_handler_vector)
qghi->setColor(Qt::darkGreen);
}
else if (m_resize_mode == 2)
{
m_resize_mode = 3;
//From rect mode to angle mode, then numbers of handlers change
removeHandler();
addHandler();
for (QetGraphicsHandlerItem *qghi : m_handler_vector)
qghi->setColor(Qt::magenta);
}
else
{
m_resize_mode = 1;
//From angle mode to rect mode, then numbers of handlers change
removeHandler();
addHandler();
for (QetGraphicsHandlerItem *qghi : m_handler_vector)
qghi->setColor(Qt::blue);
}
}
/**
* @brief PartArc::adjusteHandlerPos
*/
void PartArc::adjusteHandlerPos()
{
if (m_handler_vector.isEmpty())
return;
QVector <QPointF> points_vector;
if(m_resize_mode == 3)
points_vector = QetGraphicsHandlerUtility::pointsForArc(m_rect, m_start_angle/16, m_span_angle/16);
else
points_vector = QetGraphicsHandlerUtility::pointsForRect(m_rect);
if (m_handler_vector.size() == points_vector.size())
{
points_vector = mapToScene(points_vector);
for (int i = 0 ; i < points_vector.size() ; ++i)
m_handler_vector.at(i)->setPos(points_vector.at(i));
}
}
/**
* @brief PartArc::handlerMousePressEvent
* @param qghi
* @param event
*/
void PartArc::mousePressEvent(QGraphicsSceneMouseEvent *event)
void PartArc::handlerMousePressEvent(QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event)
{
if (event->button() == Qt::LeftButton)
{
setCursor(Qt::ClosedHandCursor);
if (isSelected())
{
//resize rect
if (m_resize_mode == 1 || m_resize_mode == 2) {
m_handler_index = m_handler.pointIsHoverHandler(event->pos(), m_handler.pointsForRect(m_rect));
Q_UNUSED(qghi);
Q_UNUSED(event);
if(m_handler_index >= 0 && m_handler_index <= 7) //User click on an handler
if (m_resize_mode == 3) //Resize angle
{
m_undo_command = new QPropertyUndoCommand(this, "rect", QVariant(m_rect));
m_undo_command->setText(tr("Modifier un arc"));
m_undo_command->enableAnimation();
return;
}
}
//resize angle
if (m_resize_mode == 3) {
m_handler_index = m_handler.pointIsHoverHandler(event->pos(), m_handler.pointsForArc(m_rect, m_start_angle /16, m_span_angle /16));
if (m_handler_index == 0) {
m_span_point = m_handler.pointsForArc(m_rect, m_start_angle /16, m_span_angle /16).at(1);
if (m_vector_index == 0)
{
m_span_point = QetGraphicsHandlerUtility::pointsForArc(m_rect, m_start_angle /16, m_span_angle /16).at(1);
m_undo_command = new QPropertyUndoCommand(this, "startAngle", QVariant(m_start_angle));
m_undo_command->setText(tr("Modifier un arc"));
@@ -242,125 +329,149 @@ void PartArc::mousePressEvent(QGraphicsSceneMouseEvent *event)
m_undo_command2 = new QPropertyUndoCommand(this, "spanAngle", QVariant(m_span_angle), m_undo_command);
m_undo_command2->setText(tr("Modifier un arc"));
m_undo_command2->enableAnimation();
return;
}
else if (m_handler_index == 1) {
else if (m_vector_index == 1)
{
m_undo_command = new QPropertyUndoCommand(this, "spanAngle", QVariant(m_span_angle));
m_undo_command->setText(tr("Modifier un arc"));
m_undo_command->enableAnimation();
return;
}
}
else //resize rect
{
m_undo_command = new QPropertyUndoCommand(this, "rect", QVariant(m_rect));
m_undo_command->setText(tr("Modifier un arc"));
m_undo_command->enableAnimation();
}
}
CustomElementGraphicPart::mousePressEvent(event);
}
/**
* @brief PartArc::mouseMoveEvent
* Handle mouse move event
* @brief PartArc::handlerMouseMoveEvent
* @param qghi
* @param event
*/
void PartArc::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
void PartArc::handlerMouseMoveEvent(QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event)
{
if (m_resize_mode == 1 || m_resize_mode == 2) {
if (m_handler_index >= 0 && m_handler_index <= 7) {
QPointF pos_ = event->modifiers() == Qt::ControlModifier ? event->pos() : mapFromScene(elementScene()->snapToGrid(event->scenePos()));
prepareGeometryChange();
Q_UNUSED(qghi);
QPointF new_pos = event->scenePos();
if (event->modifiers() != Qt::ControlModifier)
new_pos = elementScene()->snapToGrid(event->scenePos());
new_pos = mapFromScene(new_pos);
if (m_resize_mode == 1)
setRect(m_handler.rectForPosAtIndex(m_rect, pos_, m_handler_index));
setRect(QetGraphicsHandlerUtility::rectForPosAtIndex(m_rect, new_pos, m_vector_index));
else if (m_resize_mode == 2)
setRect(QetGraphicsHandlerUtility::mirrorRectForPosAtIndex(m_rect, new_pos, m_vector_index));
else
setRect(m_handler.mirrorRectForPosAtIndex(m_rect, pos_, m_handler_index));
return;
}
}
else if (m_resize_mode == 3) {
if (m_handler_index == 0 || m_handler_index == 1) {
QLineF line(m_rect.center(), event->pos());
{
QLineF line(m_rect.center(), mapFromItem(qghi, event->pos()));
prepareGeometryChange();
if (m_handler_index == 0) {
if (m_vector_index == 0) {
setStartAngle(line.angle()*16);
setSpanAngle(line.angleTo(QLineF(m_rect.center(), m_span_point))*16);
}
else if (m_handler_index == 1) {
QLineF line2(m_rect.center(), m_handler.pointsForArc(m_rect, m_start_angle/16, m_span_angle/16).at(0));
else if (m_vector_index == 1) {
QLineF line2(m_rect.center(), QetGraphicsHandlerUtility::pointsForArc(m_rect, m_start_angle/16, m_span_angle/16).at(0));
setSpanAngle (line2.angleTo(line)*16);
}
return;
}
}
CustomElementGraphicPart::mouseMoveEvent(event);
}
/**
* @brief PartArc::mouseReleaseEvent
* Handle mouse release event
* @brief PartArc::handlerMouseReleaseEvent
* @param qghi
* @param event
*/
void PartArc::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
void PartArc::handlerMouseReleaseEvent(QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event)
{
if (event->button() == Qt::LeftButton) {
setCursor(Qt::OpenHandCursor);
if (event->buttonDownPos(Qt::LeftButton) == event->pos())
switchResizeMode();
}
Q_UNUSED(qghi);
Q_UNUSED(event);
if (m_resize_mode == 1 || m_resize_mode == 2) {
if (m_handler_index >= 0 && m_handler_index <= 7) {
if (m_resize_mode == 3)
{
if (m_vector_index == 0)
{
m_undo_command->setNewValue(QVariant(m_start_angle));
m_undo_command2->setNewValue(QVariant(m_span_angle));
elementScene()->undoStack().push(m_undo_command);
m_undo_command = nullptr;
m_undo_command2 = nullptr;
m_vector_index = -1;
}
else if (m_vector_index == 1)
{
m_undo_command->setNewValue(QVariant(m_span_angle));
elementScene()->undoStack().push(m_undo_command);
m_undo_command = nullptr;
m_vector_index = -1;
}
}
else
{
if (!m_rect.isValid())
m_rect = m_rect.normalized();
m_undo_command->setNewValue(QVariant(m_rect));
elementScene()->undoStack().push(m_undo_command);
m_undo_command = nullptr;
m_handler_index = -1;
return;
}
}
else if (m_resize_mode == 3) {
if (m_handler_index == 0) {
m_undo_command->setNewValue(QVariant(m_start_angle));
m_undo_command2->setNewValue(QVariant(m_span_angle));
elementScene()->undoStack().push(m_undo_command);
m_undo_command = nullptr;
m_undo_command2 = nullptr;
m_handler_index = -1;
return;
}
else if (m_handler_index == 1) {
m_undo_command->setNewValue(QVariant(m_span_angle));
elementScene()->undoStack().push(m_undo_command);
m_undo_command = nullptr;
m_handler_index = -1;
return;
m_vector_index = -1;
}
}
CustomElementGraphicPart::mouseReleaseEvent(event);
}
void PartArc::switchResizeMode()
/**
* @brief PartArc::sceneSelectionChanged
* When the scene selection change, if there are several primitive selected, we remove the handler of this item
*/
void PartArc::sceneSelectionChanged()
{
if (m_resize_mode == 1) {
m_resize_mode = 2;
m_handler.setOuterColor(Qt::darkGreen);
if (this->isSelected() && scene()->selectedItems().size() == 1)
addHandler();
else
removeHandler();
}
else if (m_resize_mode == 2 ) {
m_resize_mode = 3;
m_handler.setOuterColor(Qt::magenta);
/**
* @brief PartArc::addHandler
* Add handlers for this item
*/
void PartArc::addHandler()
{
if (m_handler_vector.isEmpty() && scene())
{
if(m_resize_mode == 3)
{
m_handler_vector = QetGraphicsHandlerItem::handlerForPoint(mapToScene(QetGraphicsHandlerUtility::pointsForArc(m_rect, m_start_angle/16, m_span_angle/16)));
}
else {
m_resize_mode = 1;
m_handler.setOuterColor(Qt::blue);
else
m_handler_vector = QetGraphicsHandlerItem::handlerForPoint(mapToScene(QetGraphicsHandlerUtility::pointsForRect(m_rect)));
for(QetGraphicsHandlerItem *handler : m_handler_vector)
{
QColor color = Qt::blue;
if (m_resize_mode == 2)
color = Qt::darkGreen;
else if (m_resize_mode == 3)
color = Qt::magenta;
handler->setColor(color);
scene()->addItem(handler);
handler->installSceneEventFilter(this);
handler->setZValue(this->zValue()+1);
}
}
}
/**
* @brief PartArc::removeHandler
* Remove the handlers of this item
*/
void PartArc::removeHandler()
{
if (!m_handler_vector.isEmpty())
{
qDeleteAll(m_handler_vector);
m_handler_vector.clear();
}
update();
}

View File

@@ -19,9 +19,9 @@
#define PART_ARC_H
#include "abstractpartellipse.h"
#include "QetGraphicsItemModeler/qetgraphicshandlerutility.h"
class QPropertyUndoCommand;
class QetGraphicsHandlerItem;
/**
* @brief The PartArc class
@@ -54,25 +54,34 @@ class PartArc : public AbstractPartEllipse
virtual const QDomElement toXml (QDomDocument &) const;
virtual void fromXml (const QDomElement &);
virtual QRectF boundingRect() const;
virtual QPainterPath shape() const;
virtual QPainterPath shadowShape() const;
virtual void setRect(const QRectF &rect) {AbstractPartEllipse::setRect(rect); adjusteHandlerPos();}
virtual void setStartAngle(const int &start_angle) {AbstractPartEllipse::setStartAngle(start_angle); adjusteHandlerPos();}
virtual void setSpanAngle(const int &span_angle) {AbstractPartEllipse::setSpanAngle(span_angle); adjusteHandlerPos();}
protected:
virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *event);
virtual void mousePressEvent(QGraphicsSceneMouseEvent *event);
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value);
virtual bool sceneEventFilter(QGraphicsItem *watched, QEvent *event);
private:
void switchResizeMode();
void adjusteHandlerPos();
void handlerMousePressEvent (QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event);
void handlerMouseMoveEvent (QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event);
void handlerMouseReleaseEvent (QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event);
void sceneSelectionChanged ();
void addHandler();
void removeHandler();
private:
QetGraphicsHandlerUtility m_handler = 10;
int m_handler_index = -1;
QPropertyUndoCommand *m_undo_command = nullptr;
QPropertyUndoCommand *m_undo_command2 = nullptr;
int m_resize_mode = 1;
int m_resize_mode = 1,
m_vector_index = -1;
QPointF m_span_point;
QVector<QetGraphicsHandlerItem *> m_handler_vector;
};
#endif

View File

@@ -18,6 +18,8 @@
#include "partellipse.h"
#include "QPropertyUndoCommand/qpropertyundocommand.h"
#include "elementscene.h"
#include "QetGraphicsItemModeler/qetgraphicshandleritem.h"
#include "QetGraphicsItemModeler/qetgraphicshandlerutility.h"
/**
* @brief PartEllipse::PartEllipse
@@ -27,8 +29,6 @@
*/
PartEllipse::PartEllipse(QETElementEditor *editor, QGraphicsItem *parent) :
AbstractPartEllipse(editor, parent),
m_handler(10),
m_handler_index(-1),
m_undo_command(nullptr)
{}
@@ -36,8 +36,10 @@ PartEllipse::PartEllipse(QETElementEditor *editor, QGraphicsItem *parent) :
* @brief PartEllipse::~PartEllipse
* Destructor
*/
PartEllipse::~PartEllipse() {
PartEllipse::~PartEllipse()
{
if(m_undo_command) delete m_undo_command;
removeHandler();
}
/**
@@ -65,11 +67,7 @@ void PartEllipse::paint(QPainter *painter, const QStyleOptionGraphicsItem *optio
drawShadowShape(painter);
if (isSelected())
{
drawCross(m_rect.center(), painter);
if (scene()->selectedItems().size() == 1)
m_handler.drawHandler(painter, m_handler.pointsForRect(m_rect));
}
}
/**
@@ -125,16 +123,6 @@ void PartEllipse::fromXml(const QDomElement &qde)
QSizeF(width, height));
}
QRectF PartEllipse::boundingRect() const
{
QRectF r = AbstractPartEllipse::boundingRect();
foreach(QRectF rect, m_handler.handlerRect(m_handler.pointsForRect(m_rect)))
r |= rect;
return r;
}
/**
* @brief PartEllipse::shape
* @return the shape of this item
@@ -148,10 +136,6 @@ QPainterPath PartEllipse::shape() const
pps.setWidth(m_hovered? penWeight()+SHADOWS_HEIGHT : penWeight());
shape = pps.createStroke(shape);
if (isSelected())
foreach(QRectF rect, m_handler.handlerRect(m_handler.pointsForRect(m_rect)))
shape.addRect(rect);
return shape;
}
@@ -166,77 +150,6 @@ QPainterPath PartEllipse::shadowShape() const
return (pps.createStroke(shape));
}
void PartEllipse::hoverMoveEvent(QGraphicsSceneHoverEvent *event)
{
if (!isSelected())
{
CustomElementGraphicPart::hoverMoveEvent(event);
return;
}
int handler = m_handler.pointIsHoverHandler(event->pos(), m_handler.pointsForRect(m_rect));
if (handler >= 0)
{
if (handler == 0 || handler == 2 || handler == 5 || handler == 7)
setCursor(Qt::SizeAllCursor);
else if (handler == 1 || handler == 6)
setCursor(Qt::SizeVerCursor);
else if (handler == 3 || handler == 4)
setCursor(Qt::SizeHorCursor);
}
else
CustomElementGraphicPart::hoverMoveEvent(event);
}
/**
* @brief PartEllipse::mousePressEvent
* Handle mouse press event
* @param event
*/
void PartEllipse::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
if (event->button() == Qt::LeftButton)
{
setCursor(Qt::ClosedHandCursor);
if (isSelected())
{
m_handler_index = m_handler.pointIsHoverHandler(event->pos(), m_handler.pointsForRect(m_rect));
if(m_handler_index >= 0 && m_handler_index <= 7) //User click on an handler
{
m_undo_command = new QPropertyUndoCommand(this, "rect", QVariant(m_rect));
m_undo_command->setText(tr("Modifier une ellipse"));
m_undo_command->enableAnimation();
return;
}
}
}
CustomElementGraphicPart::mousePressEvent(event);
}
/**
* @brief PartEllipse::mouseMoveEvent
* Handle mouse move event
* @param event
*/
void PartEllipse::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
{
if(m_handler_index >= 0 && m_handler_index <= 7)
{
QPointF pos_ = event->modifiers() == Qt::ControlModifier ? event->pos() : mapFromScene(elementScene()->snapToGrid(event->scenePos()));
prepareGeometryChange();
if (m_resize_mode == 1)
setRect(m_handler.rectForPosAtIndex(m_rect, pos_, m_handler_index));
else
setRect(m_handler.mirrorRectForPosAtIndex(m_rect, pos_, m_handler_index));
}
else
CustomElementGraphicPart::mouseMoveEvent(event);
}
/**
* @brief PartEllipse::mouseReleaseEvent
* Handle mouse release event
@@ -244,35 +157,225 @@ void PartEllipse::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
*/
void PartEllipse::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
{
if (event->button() == Qt::LeftButton) {
setCursor(Qt::OpenHandCursor);
if (event->buttonDownPos(Qt::LeftButton) == event->pos())
if (event->button() == Qt::LeftButton && event->buttonDownPos(Qt::LeftButton) == event->pos())
switchResizeMode();
CustomElementGraphicPart::mouseReleaseEvent(event);
}
if (m_handler_index >= 0 && m_handler_index <= 7)
/**
* @brief PartEllipse::itemChange
* @param change
* @param value
* @return
*/
QVariant PartEllipse::itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value)
{
if (!m_rect.isValid())
m_rect = m_rect.normalized();
if (change == ItemSelectedHasChanged && scene())
{
if (value.toBool() == true)
{
//When item is selected, he must to be up to date whene the selection in the scene change, for display or not the handler,
//according to the number of selected items.
connect(scene(), &QGraphicsScene::selectionChanged, this, &PartEllipse::sceneSelectionChanged);
m_undo_command->setNewValue(QVariant(m_rect));
elementScene()->undoStack().push(m_undo_command);
m_undo_command = nullptr;
m_handler_index = -1;
if (scene()->selectedItems().size() == 1)
addHandler();
}
else
CustomElementGraphicPart::mouseReleaseEvent(event);
{
disconnect(scene(), &QGraphicsScene::selectionChanged, this, &PartEllipse::sceneSelectionChanged);
removeHandler();
}
}
else if (change == ItemPositionHasChanged)
{
adjusteHandlerPos();
}
else if (change == ItemSceneChange)
{
if(scene())
disconnect(scene(), &QGraphicsScene::selectionChanged, this, &PartEllipse::sceneSelectionChanged);
setSelected(false); //This item is removed from scene, then we deselect this, and so, the handlers is also removed.
}
return QGraphicsItem::itemChange(change, value);
}
/**
* @brief PartEllipse::sceneEventFilter
* @param watched
* @param event
* @return
*/
bool PartEllipse::sceneEventFilter(QGraphicsItem *watched, QEvent *event)
{
//Watched must be an handler
if(watched->type() == QetGraphicsHandlerItem::Type)
{
QetGraphicsHandlerItem *qghi = qgraphicsitem_cast<QetGraphicsHandlerItem *>(watched);
if(m_handler_vector.contains(qghi)) //Handler must be in m_vector_index, then we can start resize
{
m_vector_index = m_handler_vector.indexOf(qghi);
if (m_vector_index != -1)
{
if(event->type() == QEvent::GraphicsSceneMousePress) //Click
{
handlerMousePressEvent(qghi, static_cast<QGraphicsSceneMouseEvent *>(event));
return true;
}
else if(event->type() == QEvent::GraphicsSceneMouseMove) //Move
{
handlerMouseMoveEvent(qghi, static_cast<QGraphicsSceneMouseEvent *>(event));
return true;
}
else if (event->type() == QEvent::GraphicsSceneMouseRelease) //Release
{
handlerMouseReleaseEvent(qghi, static_cast<QGraphicsSceneMouseEvent *>(event));
return true;
}
}
}
}
return false;
}
void PartEllipse::switchResizeMode()
{
if (m_resize_mode == 1) {
if (m_resize_mode == 1)
{
m_resize_mode = 2;
m_handler.setOuterColor(Qt::darkGreen);
for (QetGraphicsHandlerItem *qghi : m_handler_vector)
qghi->setColor(Qt::darkGreen);
}
else {
else
{
m_resize_mode = 1;
m_handler.setOuterColor(Qt::blue);
for (QetGraphicsHandlerItem *qghi : m_handler_vector)
qghi->setColor(Qt::blue);
}
}
/**
* @brief PartEllipse::adjusteHandlerPos
*/
void PartEllipse::adjusteHandlerPos()
{
if (m_handler_vector.isEmpty())
return;
QVector <QPointF> points_vector = QetGraphicsHandlerUtility::pointsForRect(m_rect);
if (m_handler_vector.size() == points_vector.size())
{
points_vector = mapToScene(points_vector);
for (int i = 0 ; i < points_vector.size() ; ++i)
m_handler_vector.at(i)->setPos(points_vector.at(i));
}
}
/**
* @brief PartEllipse::handlerMousePressEvent
* @param qghi
* @param event
*/
void PartEllipse::handlerMousePressEvent(QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event)
{
Q_UNUSED(qghi);
Q_UNUSED(event);
m_undo_command = new QPropertyUndoCommand(this, "rect", QVariant(m_rect));
m_undo_command->setText(tr("Modifier un rectangle"));
m_undo_command->enableAnimation();
return;
}
/**
* @brief PartEllipse::handlerMouseMoveEvent
* @param qghi
* @param event
*/
void PartEllipse::handlerMouseMoveEvent(QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event)
{
Q_UNUSED(qghi);
QPointF new_pos = event->scenePos();
if (event->modifiers() != Qt::ControlModifier)
new_pos = elementScene()->snapToGrid(event->scenePos());
new_pos = mapFromScene(new_pos);
if (m_resize_mode == 1)
setRect(QetGraphicsHandlerUtility::rectForPosAtIndex(m_rect, new_pos, m_vector_index));
else
setRect(QetGraphicsHandlerUtility::mirrorRectForPosAtIndex(m_rect, new_pos, m_vector_index));
adjusteHandlerPos();
}
/**
* @brief PartEllipse::handlerMouseReleaseEvent
* @param qghi
* @param event
*/
void PartEllipse::handlerMouseReleaseEvent(QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event)
{
Q_UNUSED(qghi);
Q_UNUSED(event);
m_undo_command->setNewValue(QVariant(m_rect));
elementScene()->undoStack().push(m_undo_command);
m_undo_command = nullptr;
m_vector_index = -1;
}
/**
* @brief PartEllipse::sceneSelectionChanged
* When the scene selection change, if there are several primitive selected, we remove the handler of this item
*/
void PartEllipse::sceneSelectionChanged()
{
if (this->isSelected() && scene()->selectedItems().size() == 1)
addHandler();
else
removeHandler();
}
/**
* @brief PartEllipse::addHandler
* Add handlers for this item
*/
void PartEllipse::addHandler()
{
if (m_handler_vector.isEmpty() && scene())
{
m_handler_vector = QetGraphicsHandlerItem::handlerForPoint(mapToScene(QetGraphicsHandlerUtility::pointsForRect(m_rect)));
for(QetGraphicsHandlerItem *handler : m_handler_vector)
{
QColor color = Qt::blue;
if (m_resize_mode == 2)
color = Qt::darkGreen;
handler->setColor(color);
scene()->addItem(handler);
handler->installSceneEventFilter(this);
handler->setZValue(this->zValue()+1);
}
}
}
/**
* @brief PartEllipse::removeHandler
* Remove the handlers of this item
*/
void PartEllipse::removeHandler()
{
if (!m_handler_vector.isEmpty())
{
qDeleteAll(m_handler_vector);
m_handler_vector.clear();
}
update();
}

View File

@@ -19,7 +19,6 @@
#define PART_ELLIPSE_H
#include "abstractpartellipse.h"
#include "QetGraphicsItemModeler/qetgraphicshandlerutility.h"
class QPropertyUndoCommand;
@@ -55,24 +54,29 @@ class PartEllipse : public AbstractPartEllipse
virtual QString xmlName() const { return(QString("ellipse")); }
virtual const QDomElement toXml (QDomDocument &) const;
virtual void fromXml (const QDomElement &);
virtual QRectF boundingRect() const;
virtual QPainterPath shape() const;
virtual QPainterPath shadowShape() const;
virtual void setRect(const QRectF &rect) {AbstractPartEllipse::setRect(rect); adjusteHandlerPos();}
protected:
virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *event);
virtual void mousePressEvent(QGraphicsSceneMouseEvent *event);
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value);
virtual bool sceneEventFilter(QGraphicsItem *watched, QEvent *event);
private:
void switchResizeMode();
void adjusteHandlerPos();
void handlerMousePressEvent (QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event);
void handlerMouseMoveEvent (QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event);
void handlerMouseReleaseEvent (QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event);
void sceneSelectionChanged ();
void addHandler();
void removeHandler();
private:
QetGraphicsHandlerUtility m_handler;
int m_handler_index;
QPropertyUndoCommand *m_undo_command;
int m_resize_mode = 1;
int m_resize_mode = 1,
m_vector_index = -1;
};
#endif

View File

@@ -19,6 +19,7 @@
#include <cmath>
#include "elementscene.h"
#include "QPropertyUndoCommand/qpropertyundocommand.h"
#include "QetGraphicsItemModeler/qetgraphicshandleritem.h"
/**
@@ -33,14 +34,16 @@ PartLine::PartLine(QETElementEditor *editor, QGraphicsItem *parent) :
first_length(1.5),
second_end(Qet::None),
second_length(1.5),
m_handler(10),
m_handler_index(-1),
m_undo_command(nullptr)
{}
/// Destructeur
PartLine::~PartLine() {
if(m_undo_command) delete m_undo_command;
PartLine::~PartLine()
{
if(m_undo_command)
delete m_undo_command;
removeHandler();
}
/**
@@ -90,9 +93,6 @@ void PartLine::paint(QPainter *painter, const QStyleOptionGraphicsItem *options,
if (m_hovered)
drawShadowShape(painter);
if (isSelected() && scene()->selectedItems().size() == 1)
m_handler.drawHandler(painter, m_handler.pointsForLine(m_line));
painter->restore();
}
@@ -140,69 +140,206 @@ void PartLine::fromXml(const QDomElement &qde) {
}
/**
* @brief PartLine::mousePressEvent
* Handle mouse press event
* @brief PartLine::itemChange
* @param change
* @param value
* @return
*/
QVariant PartLine::itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value)
{
if (change == ItemSelectedHasChanged && scene())
{
if (value.toBool() == true)
{
//When item is selected, he must to be up to date whene the selection in the scene change, for display or not the handler,
//according to the number of selected items.
connect(scene(), &QGraphicsScene::selectionChanged, this, &PartLine::sceneSelectionChanged);
if (scene()->selectedItems().size() == 1)
addHandler();
}
else
{
disconnect(scene(), &QGraphicsScene::selectionChanged, this, &PartLine::sceneSelectionChanged);
removeHandler();
}
}
else if (change == ItemPositionHasChanged)
{
adjusteHandlerPos();
}
else if (change == ItemSceneChange)
{
if(scene())
disconnect(scene(), &QGraphicsScene::selectionChanged, this, &PartLine::sceneSelectionChanged);
setSelected(false); //This is item removed from scene, then we deselect this, and so, the handlers is also removed.
}
return QGraphicsItem::itemChange(change, value);
}
/**
* @brief PartLine::sceneEventFilter
* @param watched
* @param event
* @return
*/
bool PartLine::sceneEventFilter(QGraphicsItem *watched, QEvent *event)
{
//Watched must be an handler
if(watched->type() == QetGraphicsHandlerItem::Type)
{
QetGraphicsHandlerItem *qghi = qgraphicsitem_cast<QetGraphicsHandlerItem *>(watched);
if(m_handler_vector.contains(qghi)) //Handler must be in m_vector_index, then we can start resize
{
m_vector_index = m_handler_vector.indexOf(qghi);
if (m_vector_index != -1)
{
if(event->type() == QEvent::GraphicsSceneMousePress) //Click
{
handlerMousePressEvent(qghi, static_cast<QGraphicsSceneMouseEvent *>(event));
return true;
}
else if(event->type() == QEvent::GraphicsSceneMouseMove) //Move
{
handlerMouseMoveEvent(qghi, static_cast<QGraphicsSceneMouseEvent *>(event));
return true;
}
else if (event->type() == QEvent::GraphicsSceneMouseRelease) //Release
{
handlerMouseReleaseEvent(qghi, static_cast<QGraphicsSceneMouseEvent *>(event));
return true;
}
}
}
}
return false;
}
/**
* @brief PartLine::adjusteHandlerPos
* Adjust the position of the handler item
*/
void PartLine::adjusteHandlerPos()
{
if(m_handler_vector.isEmpty())
return;
QVector<QPointF> points_vector;
points_vector << m_line.p1() << m_line.p2();
if (m_handler_vector.size() == points_vector.size())
{
points_vector = mapToScene(points_vector);
for (int i = 0 ; i < points_vector.size() ; ++i)
m_handler_vector.at(i)->setPos(points_vector.at(i));
}
}
/**
* @brief PartLine::handlerMousePressEvent
* @param qghi
* @param event
*/
void PartLine::mousePressEvent(QGraphicsSceneMouseEvent *event)
void PartLine::handlerMousePressEvent(QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event)
{
if(event->button() == Qt::LeftButton)
{
setCursor(Qt::ClosedHandCursor);
Q_UNUSED(qghi);
Q_UNUSED(event);
if (isSelected())
{
m_handler_index = m_handler.pointIsHoverHandler(event->pos(), m_handler.pointsForLine(m_line));
if(m_handler_index >= 0 && m_handler_index <= 1) //User click on an handler
{
m_undo_command = new QPropertyUndoCommand(this, "line", QVariant(m_line));
m_undo_command->setText(tr("Modifier une ligne"));
m_undo_command->enableAnimation();
return;
}
}
}
CustomElementGraphicPart::mousePressEvent(event);
}
/**
* @brief PartLine::mouseMoveEvent
* Handle pouse move event
* @brief PartLine::handlerMouseMoveEvent
* @param qghi
* @param event
*/
void PartLine::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
void PartLine::handlerMouseMoveEvent(QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event)
{
if(m_handler_index >= 0 && m_handler_index <= 1)
{
QPointF pos_ = event->modifiers() == Qt::ControlModifier ? event->pos() : mapFromScene(elementScene()->snapToGrid(event->scenePos()));
Q_UNUSED(qghi);
QPointF new_pos = event->scenePos();
if (event->modifiers() != Qt::ControlModifier)
new_pos = elementScene()->snapToGrid(event->scenePos());
new_pos = mapFromScene(new_pos);
prepareGeometryChange();
setLine(m_handler.lineForPosAtIndex(m_line, pos_, m_handler_index));
}
if (m_vector_index == 0)
m_line.setP1(new_pos);
else
CustomElementGraphicPart::mouseMoveEvent(event);
m_line.setP2(new_pos);
adjusteHandlerPos();
}
/**
* @brief PartLine::mouseReleaseEvent
* Handle mouse release event
* @brief PartLine::handlerMouseReleaseEvent
* @param qghi
* @param event
*/
void PartLine::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
void PartLine::handlerMouseReleaseEvent(QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event)
{
if (event->button() == Qt::LeftButton)
setCursor(Qt::OpenHandCursor);
Q_UNUSED(qghi);
Q_UNUSED(event);
if (m_handler_index >= 0 && m_handler_index <= 1)
{
m_undo_command->setNewValue(QVariant(m_line));
elementScene()->undoStack().push(m_undo_command);
m_undo_command = nullptr;
m_handler_index = -1;
m_vector_index = -1;
}
/**
* @brief PartLine::sceneSelectionChanged
* When the scene selection change, if there are several primitive selected, we remove the handler of this item
*/
void PartLine::sceneSelectionChanged()
{
if (this->isSelected() && scene()->selectedItems().size() == 1)
addHandler();
else
CustomElementGraphicPart::mouseReleaseEvent(event);
removeHandler();
}
/**
* @brief PartLine::addHandler
* Add handlers for this item
*/
void PartLine::addHandler()
{
if (m_handler_vector.isEmpty() && scene())
{
QVector<QPointF> points_vector;
points_vector << m_line.p1() << m_line.p2();
m_handler_vector = QetGraphicsHandlerItem::handlerForPoint(mapToScene(points_vector));
for(QetGraphicsHandlerItem *handler : m_handler_vector)
{
handler->setColor(Qt::blue);
scene()->addItem(handler);
handler->installSceneEventFilter(this);
handler->setZValue(this->zValue()+1);
}
}
}
/**
* @brief PartLine::removeHandler
* Remove the handlers of this item
*/
void PartLine::removeHandler()
{
if (!m_handler_vector.isEmpty())
{
qDeleteAll(m_handler_vector);
m_handler_vector.clear();
}
}
/**
@@ -243,10 +380,6 @@ QPainterPath PartLine::shape() const
pps.setWidth(m_hovered? penWeight()+SHADOWS_HEIGHT : penWeight());
shape = pps.createStroke(shape);
if (isSelected())
foreach(QRectF rect, m_handler.handlerRect(m_handler.pointsForLine(m_line)))
shape.addRect(rect);
return shape;
}
@@ -402,9 +535,6 @@ QRectF PartLine::boundingRect() const
bound = bound.normalized();
bound.adjust(-adjust, -adjust, adjust, adjust);
foreach(QRectF rect, m_handler.handlerRect(m_handler.pointsForLine(m_line)))
bound |= rect;
return bound;
}
@@ -496,6 +626,7 @@ void PartLine::setLine(const QLineF &line)
if (m_line == line) return;
prepareGeometryChange();
m_line = line;
adjusteHandlerPos();
emit lineChanged();
}
@@ -533,20 +664,6 @@ void PartLine::setSecondEndLength(const qreal &l)
emit secondEndLengthChanged();
}
void PartLine::hoverMoveEvent(QGraphicsSceneHoverEvent *event)
{
if (!isSelected())
{
CustomElementGraphicPart::hoverMoveEvent(event);
return;
}
if (m_handler.pointIsHoverHandler(event->pos(), m_handler.pointsForLine(m_line)) >= 0)
setCursor(Qt::SizeAllCursor);
else
CustomElementGraphicPart::hoverMoveEvent(event);
}
/**
* @brief PartLine::path
* @return this line has a QPainterPath.

View File

@@ -20,9 +20,9 @@
#include "customelementgraphicpart.h"
#include "qet.h"
#include "QetGraphicsItemModeler/qetgraphicshandlerutility.h"
class QPropertyUndoCommand;
class QetGraphicsHandlerItem;
/**
This class represents a line primitive which may be used to compose the
@@ -96,19 +96,26 @@ class PartLine : public CustomElementGraphicPart
void setSecondEndLength(const qreal &l);
protected:
virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *event);
virtual void mousePressEvent(QGraphicsSceneMouseEvent *event);
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value);
virtual bool sceneEventFilter(QGraphicsItem *watched, QEvent *event);
private:
QPainterPath path() const;
void adjusteHandlerPos();
void handlerMousePressEvent (QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event);
void handlerMouseMoveEvent (QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event);
void handlerMouseReleaseEvent (QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event);
void sceneSelectionChanged ();
void addHandler();
void removeHandler();
QPainterPath path() const;
QList<QPointF> fourShapePoints() const;
QRectF firstEndCircleRect() const;
QRectF secondEndCircleRect() const;
void debugPaint(QPainter *);
/*****************/
Qet::EndType first_end;
qreal first_length;
@@ -116,8 +123,8 @@ class PartLine : public CustomElementGraphicPart
qreal second_length;
QList<QPointF> saved_points_;
QLineF m_line;
QetGraphicsHandlerUtility m_handler;
int m_handler_index;
int m_vector_index = -1;
QPropertyUndoCommand *m_undo_command;
QVector<QetGraphicsHandlerItem *> m_handler_vector;
};
#endif

View File

@@ -18,6 +18,7 @@
#include "partpolygon.h"
#include "QPropertyUndoCommand/qpropertyundocommand.h"
#include "elementscene.h"
#include "QetGraphicsItemModeler/qetgraphicshandleritem.h"
/**
@@ -29,16 +30,16 @@
PartPolygon::PartPolygon(QETElementEditor *editor, QGraphicsItem *parent) :
CustomElementGraphicPart(editor, parent),
m_closed(false),
m_handler(10),
m_handler_index(-1),
m_undo_command(nullptr)
{}
/**
* @brief PartPolygon::~PartPolygon
*/
PartPolygon::~PartPolygon() {
PartPolygon::~PartPolygon()
{
if(m_undo_command) delete m_undo_command;
removeHandler();
}
/**
@@ -64,9 +65,6 @@ void PartPolygon::paint(QPainter *painter, const QStyleOptionGraphicsItem *optio
if (m_hovered)
drawShadowShape(painter);
if (isSelected() && scene()->selectedItems().size() == 1)
m_handler.drawHandler(painter, m_polygon);
}
/**
@@ -199,6 +197,7 @@ void PartPolygon::setPolygon(const QPolygonF &polygon)
if (m_polygon == polygon) return;
prepareGeometryChange();
m_polygon = polygon;
adjusteHandlerPos();
emit polygonChanged();
}
@@ -248,83 +247,195 @@ void PartPolygon::setClosed(bool close)
emit closedChange();
}
void PartPolygon::hoverMoveEvent(QGraphicsSceneHoverEvent *event)
/**
* @brief PartPolygon::itemChange
* @param change
* @param value
* @return
*/
QVariant PartPolygon::itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value)
{
if (!isSelected())
if (change == ItemSelectedHasChanged && scene())
{
CustomElementGraphicPart::hoverMoveEvent(event);
return;
if (value.toBool() == true)
{
//When item is selected, he must to be up to date whene the selection in the scene change, for display or not the handler,
//according to the number of selected items.
connect(scene(), &QGraphicsScene::selectionChanged, this, &PartPolygon::sceneSelectionChanged);
if (scene()->selectedItems().size() == 1)
addHandler();
}
else
{
disconnect(scene(), &QGraphicsScene::selectionChanged, this, &PartPolygon::sceneSelectionChanged);
removeHandler();
}
}
else if (change == ItemPositionHasChanged)
{
adjusteHandlerPos();
}
else if (change == ItemSceneChange)
{
if(scene())
disconnect(scene(), &QGraphicsScene::selectionChanged, this, &PartPolygon::sceneSelectionChanged);
setSelected(false); //This is item removed from scene, then we deselect this, and so, the handlers is also removed.
}
if (m_handler.pointIsHoverHandler(event->pos(), m_polygon) >= 0)
setCursor(Qt::SizeAllCursor);
else
CustomElementGraphicPart::hoverMoveEvent(event);
return QGraphicsItem::itemChange(change, value);
}
/**
* @brief PartPolygon::mousePressEvent
* Handle mouse press event
* @brief PartPolygon::sceneEventFilter
* @param watched
* @param event
* @return
*/
bool PartPolygon::sceneEventFilter(QGraphicsItem *watched, QEvent *event)
{
//Watched must be an handler
if(watched->type() == QetGraphicsHandlerItem::Type)
{
QetGraphicsHandlerItem *qghi = qgraphicsitem_cast<QetGraphicsHandlerItem *>(watched);
if(m_handler_vector.contains(qghi)) //Handler must be in m_vector_index, then we can start resize
{
m_vector_index = m_handler_vector.indexOf(qghi);
if (m_vector_index != -1)
{
if(event->type() == QEvent::GraphicsSceneMousePress) //Click
{
handlerMousePressEvent(qghi, static_cast<QGraphicsSceneMouseEvent *>(event));
return true;
}
else if(event->type() == QEvent::GraphicsSceneMouseMove) //Move
{
handlerMouseMoveEvent(qghi, static_cast<QGraphicsSceneMouseEvent *>(event));
return true;
}
else if (event->type() == QEvent::GraphicsSceneMouseRelease) //Release
{
handlerMouseReleaseEvent(qghi, static_cast<QGraphicsSceneMouseEvent *>(event));
return true;
}
}
}
}
return false;
}
/**
* @brief PartPolygon::adjusteHandlerPos
*/
void PartPolygon::adjusteHandlerPos()
{
if(m_handler_vector.isEmpty())
return;
if (m_handler_vector.size() == m_polygon.size())
{
QVector <QPointF> points_vector = mapToScene(m_polygon);
for (int i = 0 ; i < points_vector.size() ; ++i)
m_handler_vector.at(i)->setPos(points_vector.at(i));
}
}
/**
* @brief PartPolygon::handlerMousePressEvent
* @param qghi
* @param event
*/
void PartPolygon::mousePressEvent(QGraphicsSceneMouseEvent *event)
void PartPolygon::handlerMousePressEvent(QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event)
{
if (event->button() == Qt::LeftButton)
{
setCursor(Qt::ClosedHandCursor);
if(isSelected())
{
m_handler_index = m_handler.pointIsHoverHandler(event->pos(), m_polygon);
Q_UNUSED(qghi);
Q_UNUSED(event);
if(m_handler_index >= 0) //User click on an handler
{
m_undo_command = new QPropertyUndoCommand(this, "polygon", QVariant(m_polygon));
m_undo_command->setText(tr("Modifier un polygone"));
return;
}
}
}
CustomElementGraphicPart::mousePressEvent(event);
}
/**
* @brief PartPolygon::mouseMoveEvent
* Handle mouse move event
* @brief PartPolygon::handlerMouseMoveEvent
* @param qghi
* @param event
*/
void PartPolygon::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
void PartPolygon::handlerMouseMoveEvent(QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event)
{
if(m_handler_index >= 0)
{
QPointF pos_ = event->modifiers() == Qt::ControlModifier ? event->pos() : mapFromScene(elementScene()->snapToGrid(event->scenePos()));
Q_UNUSED(qghi);
QPointF new_pos = event->scenePos();
if (event->modifiers() != Qt::ControlModifier)
new_pos = elementScene()->snapToGrid(event->scenePos());
new_pos = mapFromScene(new_pos);
prepareGeometryChange();
m_polygon.replace(m_handler_index, pos_);
m_polygon.replace(m_vector_index, new_pos);
adjusteHandlerPos();
emit polygonChanged();
}
else
CustomElementGraphicPart::mouseMoveEvent(event);
}
/**
* @brief PartPolygon::mouseReleaseEvent
* Handle mouse release event
* @brief PartPolygon::handlerMouseReleaseEvent
* @param qghi
* @param event
*/
void PartPolygon::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
void PartPolygon::handlerMouseReleaseEvent(QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event)
{
if (event->button() == Qt::LeftButton)
setCursor(Qt::OpenHandCursor);
Q_UNUSED(qghi);
Q_UNUSED(event);
if (m_handler_index >= 0)
{
m_undo_command->setNewValue(QVariant(m_polygon));
elementScene()->undoStack().push(m_undo_command);
m_undo_command = nullptr;
m_handler_index = -1;
m_vector_index = -1;
}
/**
* @brief PartPolygon::sceneSelectionChanged
* When the scene selection change, if there are several primitive selected, we remove the handler of this item
*/
void PartPolygon::sceneSelectionChanged()
{
if (this->isSelected() && scene()->selectedItems().size() == 1)
addHandler();
else
CustomElementGraphicPart::mouseReleaseEvent(event);
removeHandler();
}
/**
* @brief PartPolygon::addHandler
* Add handlers for this item
*/
void PartPolygon::addHandler()
{
if (m_handler_vector.isEmpty() && scene())
{
m_handler_vector = QetGraphicsHandlerItem::handlerForPoint(mapToScene(m_polygon));
for(QetGraphicsHandlerItem *handler : m_handler_vector)
{
handler->setColor(Qt::blue);
scene()->addItem(handler);
handler->installSceneEventFilter(this);
handler->setZValue(this->zValue()+1);
}
}
}
/**
* @brief PartPolygon::removeHandler
* Remove the handlers of this item
*/
void PartPolygon::removeHandler()
{
if (!m_handler_vector.isEmpty())
{
qDeleteAll(m_handler_vector);
m_handler_vector.clear();
}
}
/**
@@ -343,10 +454,6 @@ QPainterPath PartPolygon::shape() const
pps.setWidth(m_hovered? penWeight()+SHADOWS_HEIGHT : penWeight());
shape = pps.createStroke(shape);
if (isSelected())
foreach(QRectF rect, m_handler.handlerRect(m_polygon))
shape.addRect(rect);
return shape;
}
@@ -379,8 +486,5 @@ QRectF PartPolygon::boundingRect() const
r.adjust(-adjust, -adjust, adjust, adjust);
foreach(QRectF rect, m_handler.handlerRect(m_polygon))
r |=rect;
return(r);
}

View File

@@ -20,10 +20,9 @@
#include <QPolygonF>
#include "customelementgraphicpart.h"
#include "QetGraphicsItemModeler/qetgraphicshandlerutility.h"
class QPropertyUndoCommand;
class QetGraphicsHandlerItem;
/**
* @brief The PartPolygon class
@@ -85,17 +84,25 @@ class PartPolygon : public CustomElementGraphicPart
void setClosed (bool close);
protected:
virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *event);
virtual void mousePressEvent(QGraphicsSceneMouseEvent *event);
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value);
virtual bool sceneEventFilter(QGraphicsItem *watched, QEvent *event);
private:
void adjusteHandlerPos();
void handlerMousePressEvent (QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event);
void handlerMouseMoveEvent (QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event);
void handlerMouseReleaseEvent (QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event);
void sceneSelectionChanged ();
void addHandler();
void removeHandler();
bool m_closed;
QList<QPointF> saved_points_;
QPolygonF m_polygon;
QetGraphicsHandlerUtility m_handler;
int m_handler_index;
QPropertyUndoCommand *m_undo_command;
int m_vector_index = -1;
QVector<QetGraphicsHandlerItem *> m_handler_vector;
};
#endif

View File

@@ -18,6 +18,8 @@
#include "partrectangle.h"
#include "elementscene.h"
#include "QPropertyUndoCommand/qpropertyundocommand.h"
#include "QetGraphicsItemModeler/qetgraphicshandleritem.h"
#include "QetGraphicsItemModeler/qetgraphicshandlerutility.h"
/**
* @brief PartRectangle::PartRectangle
@@ -27,16 +29,16 @@
*/
PartRectangle::PartRectangle(QETElementEditor *editor, QGraphicsItem *parent) :
CustomElementGraphicPart(editor, parent),
m_handler(10),
m_handler_index(-1),
m_undo_command(nullptr)
{}
/**
* @brief PartRectangle::~PartRectangle
*/
PartRectangle::~PartRectangle() {
PartRectangle::~PartRectangle()
{
if(m_undo_command) delete m_undo_command;
removeHandler();
}
/**
@@ -69,11 +71,7 @@ void PartRectangle::paint(QPainter *painter, const QStyleOptionGraphicsItem *opt
drawShadowShape(painter);
if (isSelected())
{
drawCross(m_rect.center(), painter);
if (scene()->selectedItems().size() == 1)
m_handler.drawHandler(painter, m_handler.pointsForRect(m_rect));
}
}
/**
@@ -129,6 +127,7 @@ void PartRectangle::setRect(const QRectF &rect)
if (rect == m_rect) return;
prepareGeometryChange();
m_rect = rect;
adjusteHandlerPos();
emit rectChanged();
}
@@ -164,10 +163,6 @@ QPainterPath PartRectangle::shape() const
pps.setWidth(m_hovered? penWeight()+SHADOWS_HEIGHT : penWeight());
shape = pps.createStroke(shape);
if (isSelected())
foreach(QRectF rect, m_handler.handlerRect(m_handler.pointsForRect(m_rect)))
shape.addRect(rect);
return shape;
}
@@ -196,9 +191,6 @@ QRectF PartRectangle::boundingRect() const
QRectF r = m_rect.normalized();
r.adjust(-adjust, -adjust, adjust, adjust);
foreach(QRectF rect, m_handler.handlerRect(m_handler.pointsForRect(m_rect)))
r |= rect;
return(r);
}
@@ -237,77 +229,6 @@ void PartRectangle::handleUserTransformation(const QRectF &initial_selection_rec
setRect(QRectF(mapFromScene(mapped_points.at(0)), mapFromScene(mapped_points.at(1))));
}
void PartRectangle::hoverMoveEvent(QGraphicsSceneHoverEvent *event)
{
if (!isSelected())
{
CustomElementGraphicPart::hoverMoveEvent(event);
return;
}
int handler = m_handler.pointIsHoverHandler(event->pos(), m_handler.pointsForRect(m_rect));
if (handler >= 0)
{
if (handler == 0 || handler == 2 || handler == 5 || handler == 7)
setCursor(Qt::SizeAllCursor);
else if (handler == 1 || handler == 6)
setCursor(Qt::SizeVerCursor);
else if (handler == 3 || handler == 4)
setCursor(Qt::SizeHorCursor);
}
else
CustomElementGraphicPart::hoverMoveEvent(event);
}
/**
* @brief PartRectangle::mousePressEvent
* Handle mouse press event
* @param event
*/
void PartRectangle::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
if (event->button() == Qt::LeftButton)
{
setCursor(Qt::ClosedHandCursor);
if(isSelected())
{
m_handler_index = m_handler.pointIsHoverHandler(event->pos(), m_handler.pointsForRect(m_rect));
if(m_handler_index >= 0 && m_handler_index <= 7) //User click on an handler
{
m_undo_command = new QPropertyUndoCommand(this, "rect", QVariant(m_rect));
m_undo_command->setText(tr("Modifier un rectangle"));
m_undo_command->enableAnimation();
return;
}
}
}
CustomElementGraphicPart::mousePressEvent(event);
}
/**
* @brief PartRectangle::mouseMoveEvent
* Handle mouse press event
* @param event
*/
void PartRectangle::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
{
if(m_handler_index >= 0 && m_handler_index <= 7)
{
QPointF pos_ = event->modifiers() == Qt::ControlModifier ? event->pos() : mapFromScene(elementScene()->snapToGrid(event->scenePos()));
prepareGeometryChange();
if (m_resize_mode == 1)
setRect(m_handler.rectForPosAtIndex(m_rect, pos_, m_handler_index));
else
setRect(m_handler.mirrorRectForPosAtIndex(m_rect, pos_, m_handler_index));
}
else
CustomElementGraphicPart::mouseMoveEvent(event);
}
/**
* @brief PartRectangle::mouseReleaseEvent
* Handle mouse release event
@@ -315,35 +236,223 @@ void PartRectangle::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
*/
void PartRectangle::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
{
if (event->button() == Qt::LeftButton) {
setCursor(Qt::OpenHandCursor);
if (event->buttonDownPos(Qt::LeftButton) == event->pos())
if (event->button() == Qt::LeftButton && event->buttonDownPos(Qt::LeftButton) == event->pos())
switchResizeMode();
CustomElementGraphicPart::mouseReleaseEvent(event);
}
if (m_handler_index >= 0 && m_handler_index <= 7)
/**
* @brief PartRectangle::itemChange
* @param change
* @param value
* @return
*/
QVariant PartRectangle::itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value)
{
if (!m_rect.isValid())
m_rect = m_rect.normalized();
if (change == ItemSelectedHasChanged && scene())
{
if (value.toBool() == true)
{
//When item is selected, he must to be up to date whene the selection in the scene change, for display or not the handler,
//according to the number of selected items.
connect(scene(), &QGraphicsScene::selectionChanged, this, &PartRectangle::sceneSelectionChanged);
if (scene()->selectedItems().size() == 1)
addHandler();
}
else
{
disconnect(scene(), &QGraphicsScene::selectionChanged, this, &PartRectangle::sceneSelectionChanged);
removeHandler();
}
}
else if (change == ItemPositionHasChanged)
{
adjusteHandlerPos();
}
else if (change == ItemSceneChange)
{
if(scene())
disconnect(scene(), &QGraphicsScene::selectionChanged, this, &PartRectangle::sceneSelectionChanged);
setSelected(false); //This item is removed from scene, then we deselect this, and so, the handlers is also removed.
}
return QGraphicsItem::itemChange(change, value);
}
/**
* @brief PartRectangle::sceneEventFilter
* @param watched
* @param event
* @return
*/
bool PartRectangle::sceneEventFilter(QGraphicsItem *watched, QEvent *event)
{
//Watched must be an handler
if(watched->type() == QetGraphicsHandlerItem::Type)
{
QetGraphicsHandlerItem *qghi = qgraphicsitem_cast<QetGraphicsHandlerItem *>(watched);
if(m_handler_vector.contains(qghi)) //Handler must be in m_vector_index, then we can start resize
{
m_vector_index = m_handler_vector.indexOf(qghi);
if (m_vector_index != -1)
{
if(event->type() == QEvent::GraphicsSceneMousePress) //Click
{
handlerMousePressEvent(qghi, static_cast<QGraphicsSceneMouseEvent *>(event));
return true;
}
else if(event->type() == QEvent::GraphicsSceneMouseMove) //Move
{
handlerMouseMoveEvent(qghi, static_cast<QGraphicsSceneMouseEvent *>(event));
return true;
}
else if (event->type() == QEvent::GraphicsSceneMouseRelease) //Release
{
handlerMouseReleaseEvent(qghi, static_cast<QGraphicsSceneMouseEvent *>(event));
return true;
}
}
}
}
return false;
}
/**
* @brief PartRectangle::switchResizeMode
*/
void PartRectangle::switchResizeMode()
{
if (m_resize_mode == 1)
{
m_resize_mode = 2;
for (QetGraphicsHandlerItem *qghi : m_handler_vector)
qghi->setColor(Qt::darkGreen);
}
else
{
m_resize_mode = 1;
for (QetGraphicsHandlerItem *qghi : m_handler_vector)
qghi->setColor(Qt::blue);
}
}
/**
* @brief PartRectangle::adjusteHandlerPos
*/
void PartRectangle::adjusteHandlerPos()
{
if (m_handler_vector.isEmpty())
return;
QVector <QPointF> points_vector = QetGraphicsHandlerUtility::pointsForRect(m_rect);
if (m_handler_vector.size() == points_vector.size())
{
points_vector = mapToScene(points_vector);
for (int i = 0 ; i < points_vector.size() ; ++i)
m_handler_vector.at(i)->setPos(points_vector.at(i));
}
}
/**
* @brief PartRectangle::handlerMousePressEvent
* @param qghi
* @param event
*/
void PartRectangle::handlerMousePressEvent(QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event)
{
Q_UNUSED(qghi);
Q_UNUSED(event);
m_undo_command = new QPropertyUndoCommand(this, "rect", QVariant(m_rect));
m_undo_command->setText(tr("Modifier un rectangle"));
m_undo_command->enableAnimation();
return;
}
/**
* @brief PartRectangle::handlerMouseMoveEvent
* @param qghi
* @param event
*/
void PartRectangle::handlerMouseMoveEvent(QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event)
{
Q_UNUSED(qghi);
QPointF new_pos = event->scenePos();
if (event->modifiers() != Qt::ControlModifier)
new_pos = elementScene()->snapToGrid(event->scenePos());
new_pos = mapFromScene(new_pos);
if (m_resize_mode == 1)
setRect(QetGraphicsHandlerUtility::rectForPosAtIndex(m_rect, new_pos, m_vector_index));
else
setRect(QetGraphicsHandlerUtility::mirrorRectForPosAtIndex(m_rect, new_pos, m_vector_index));
adjusteHandlerPos();
}
void PartRectangle::handlerMouseReleaseEvent(QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event)
{
Q_UNUSED(qghi);
Q_UNUSED(event);
m_undo_command->setNewValue(QVariant(m_rect));
elementScene()->undoStack().push(m_undo_command);
m_undo_command = nullptr;
m_handler_index = -1;
}
else
CustomElementGraphicPart::mouseReleaseEvent(event);
m_vector_index = -1;
}
void PartRectangle::switchResizeMode()
/**
* @brief PartRectangle::sceneSelectionChanged
* When the scene selection change, if there are several primitive selected, we remove the handler of this item
*/
void PartRectangle::sceneSelectionChanged()
{
if (m_resize_mode == 1) {
m_resize_mode = 2;
m_handler.setOuterColor(Qt::darkGreen);
if (this->isSelected() && scene()->selectedItems().size() == 1)
addHandler();
else
removeHandler();
}
else {
m_resize_mode = 1;
m_handler.setOuterColor(Qt::blue);
/**
* @brief PartRectangle::addHandler
* Add handlers for this item
*/
void PartRectangle::addHandler()
{
if (m_handler_vector.isEmpty() && scene())
{
m_handler_vector = QetGraphicsHandlerItem::handlerForPoint(mapToScene(QetGraphicsHandlerUtility::pointsForRect(m_rect)));
for(QetGraphicsHandlerItem *handler : m_handler_vector)
{
QColor color = Qt::blue;
if (m_resize_mode == 2)
color = Qt::darkGreen;
handler->setColor(color);
scene()->addItem(handler);
handler->installSceneEventFilter(this);
handler->setZValue(this->zValue()+1);
}
}
}
/**
* @brief PartRectangle::removeHandler
* Remove the handlers of this item
*/
void PartRectangle::removeHandler()
{
if (!m_handler_vector.isEmpty())
{
qDeleteAll(m_handler_vector);
m_handler_vector.clear();
}
update();
}

View File

@@ -19,9 +19,9 @@
#define PART_RECTANGLE_H
#include "customelementgraphicpart.h"
#include "QetGraphicsItemModeler/qetgraphicshandlerutility.h"
class QPropertyUndoCommand;
class QetGraphicsHandlerItem;
/**
* This class represents a rectangle primitive which may be used to compose the
@@ -75,20 +75,27 @@ class PartRectangle : public CustomElementGraphicPart
virtual void handleUserTransformation(const QRectF &, const QRectF &);
protected:
virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *event);
virtual void mousePressEvent(QGraphicsSceneMouseEvent *event);
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value);
virtual bool sceneEventFilter(QGraphicsItem *watched, QEvent *event);
private:
void switchResizeMode();
void adjusteHandlerPos();
void handlerMousePressEvent (QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event);
void handlerMouseMoveEvent (QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event);
void handlerMouseReleaseEvent (QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event);
void sceneSelectionChanged ();
void addHandler();
void removeHandler();
private:
QRectF m_rect;
QList<QPointF> saved_points_;
QetGraphicsHandlerUtility m_handler;
int m_handler_index;
QPropertyUndoCommand *m_undo_command;
int m_resize_mode = 1;
int m_resize_mode = 1,
m_vector_index = -1;
QVector<QetGraphicsHandlerItem *> m_handler_vector;
};
#endif

View File

@@ -26,20 +26,17 @@
Constructeur
@param editor L'editeur d'element concerne
@param parent Le QGraphicsItem parent de ce texte statique
@param scene La scene sur laquelle figure ce texte statique
*/
PartText::PartText(QETElementEditor *editor, QGraphicsItem *parent, ElementScene *scene) :
PartText::PartText(QETElementEditor *editor, QGraphicsItem *parent) :
QGraphicsTextItem(parent),
CustomElementPart(editor),
previous_text(),
decorator_(0)
previous_text()
{
Q_UNUSED(scene)
document() -> setDocumentMargin(1.0);
setDefaultTextColor(Qt::black);
setFont(QETApp::diagramTextsFont());
real_font_size_ = font().pointSize();
setFlags(QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemSendsGeometryChanges);
setFlags(QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemSendsGeometryChanges | QGraphicsItem::ItemIsMovable);
setAcceptHoverEvents(true);
setDefaultTextColor(Qt::black);
setPlainText(QObject::tr("T", "default text when adding a text in the element editor"));
@@ -231,150 +228,37 @@ void PartText::handleUserTransformation(const QRectF &initial_selection_rect, co
setProperty("real_size", qMax(1, qRound(new_font_size)));
}
/**
Dessine le texte statique.
@param painter QPainter a utiliser pour effectuer le rendu
@param qsogi Pptions de dessin
@param widget Widget sur lequel on dessine (facultatif)
*/
void PartText::paint(QPainter *painter, const QStyleOptionGraphicsItem *qsogi, QWidget *widget) {
// According to the source code of QGraphicsTextItem::paint(), this should
// avoid the drawing of the dashed rectangle around the text.
QStyleOptionGraphicsItem our_qsogi(*qsogi);
our_qsogi.state = QStyle::State_None;
QGraphicsTextItem::paint(painter, &our_qsogi, widget);
#ifdef QET_DEBUG_EDITOR_TEXTS
painter -> setPen(Qt::blue);
painter -> drawRect(boundingRect());
painter -> setPen(Qt::red);
drawPoint(painter, QPointF(0, 0));
painter -> setPen(Qt::green);
drawPoint(painter, mapFromScene(pos()));
#endif
void PartText::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
{
if((event->buttons() & Qt::LeftButton) && (flags() & QGraphicsItem::ItemIsMovable))
{
QPointF pos = event->scenePos() + (m_origine_pos - event->buttonDownScenePos(Qt::LeftButton));
event->modifiers() == Qt::ControlModifier ? setPos(pos) : setPos(elementScene()->snapToGrid(pos));
}
else
QGraphicsObject::mouseMoveEvent(event);
}
/**
Handle context menu events.
@param event Object describing the context menu event to handle.
*/
void PartText::contextMenuEvent(QGraphicsSceneContextMenuEvent *event) {
Q_UNUSED(event);
void PartText::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
if(event->button() == Qt::LeftButton)
m_origine_pos = this->pos();
QGraphicsObject::mousePressEvent(event);
}
/**
Handle events generated when the mouse hovers over the decorator.
@param event Object describing the hover event.
*/
void PartText::hoverMoveEvent(QGraphicsSceneHoverEvent *event) {
// force the cursor when the text is being edited
if (hasFocus() && decorator_) {
decorator_ -> setCursor(Qt::IBeamCursor);
}
QGraphicsTextItem::hoverMoveEvent(event);
void PartText::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
{
if((event->button() & Qt::LeftButton) && (flags() & QGraphicsItem::ItemIsMovable) && m_origine_pos != pos())
{
QPropertyUndoCommand *undo = new QPropertyUndoCommand(this, "pos", QVariant(m_origine_pos), QVariant(pos()));
undo->setText(tr("Déplacer un texte"));
undo->enableAnimation();
elementScene()->undoStack().push(undo);
}
/**
@reimp CustomElementPart::setDecorator(ElementPrimitiveDecorator *)
Install or remove a sceneEventFilter on the decorator and ensure it will
adjust itself while the text is being edited.
*/
void PartText::setDecorator(ElementPrimitiveDecorator *decorator) {
if (decorator) {
decorator -> installSceneEventFilter(this);
// ensure the decorator will adjust itself when the text area expands or shrinks
connect(document(), SIGNAL(contentsChanged()), decorator, SLOT(adjust()));
}
else {
decorator_ -> removeSceneEventFilter(this);
endEdition();
}
decorator_ = decorator;
}
/**
@reimp QGraphicsItem::sceneEventFilter(QGraphicsItem *, QEvent *).
Intercepts events before they reach the watched target, i.e. typically the
primitives decorator.
This method mainly works with key strokes (F2, escape) and double clicks to
begin or end text edition.
*/
bool PartText::sceneEventFilter(QGraphicsItem *watched, QEvent *event) {
if (watched != decorator_) return(false);
QPointF event_scene_pos = QET::graphicsSceneEventPos(event);
if (!event_scene_pos.isNull()) {
if (contains(mapFromScene(event_scene_pos))) {
if (hasFocus()) {
return sceneEvent(event); // manually deliver the event to this item
return(true); // prevent this event from being delivered to any item
} else {
if (event -> type() == QEvent::GraphicsSceneMouseDoubleClick) {
mouseDoubleClickEvent(static_cast<QGraphicsSceneMouseEvent *>(event));
}
}
}
}
else if (event -> type() == QEvent::KeyRelease || event -> type() == QEvent::KeyPress) {
// Intercept F2 and escape keystrokes to focus in and out
QKeyEvent *key_event = static_cast<QKeyEvent *>(event);
if (!hasFocus() && key_event -> key() == Qt::Key_F2) {
setEditable(true);
QTextCursor qtc = textCursor();
qtc.setPosition(qMax(0, document()->characterCount() - 1));
setTextCursor(qtc);
} else if (hasFocus() && key_event -> key() == Qt::Key_Escape) {
endEdition();
}
if (hasFocus()) {
sceneEvent(event); // manually deliver the event to this item
return(true); // prevent this event from being delivered to any item
}
}
return(false);
}
/**
Accept the mouse \a event relayed by \a decorator if this text item has focus.
*/
bool PartText::singleItemPressEvent(ElementPrimitiveDecorator *decorator, QGraphicsSceneMouseEvent *event) {
Q_UNUSED(decorator)
Q_UNUSED(event)
return(hasFocus());
}
/**
Accept the mouse \a event relayed by \a decorator if this text item has focus.
*/
bool PartText::singleItemMoveEvent(ElementPrimitiveDecorator *decorator, QGraphicsSceneMouseEvent *event) {
Q_UNUSED(decorator)
Q_UNUSED(event)
return(hasFocus());
}
/**
Accept the mouse \a event relayed by \a decorator if this text item has focus.
*/
bool PartText::singleItemReleaseEvent(ElementPrimitiveDecorator *decorator, QGraphicsSceneMouseEvent *event) {
Q_UNUSED(decorator)
Q_UNUSED(event)
return(hasFocus());
}
/**
Accept the mouse \a event relayed by \a decorator if this text item has focus.
*/
bool PartText::singleItemDoubleClickEvent(ElementPrimitiveDecorator *decorator, QGraphicsSceneMouseEvent *event) {
Q_UNUSED(decorator)
// calling mouseDoubleClickEvent() will set this text item editable and grab keyboard focus
if (event -> button() == Qt::LeftButton) {
mouseDoubleClickEvent(event);
return(true);
}
return(false);
QGraphicsObject::mouseReleaseEvent(event);
}
/**
@@ -442,27 +326,4 @@ void PartText::endEdition()
setTextCursor(qtc);
setEditable(false);
if (decorator_) {
decorator_ -> setFocus();
}
}
#ifdef QET_DEBUG_EDITOR_TEXTS
/**
Dessine deux petites fleches pour mettre un point en valeur
@param painter QPainter a utiliser pour effectuer le rendu
@param point Point a dessiner
*/
void PartText::drawPoint(QPainter *painter, const QPointF &point) {
qreal px = point.x();
qreal py = point.y();
qreal size_1 = 5.0;
qreal size_2 = 1.0;
painter -> drawLine(QLineF(px, py, px + size_1, py));
painter -> drawLine(QLineF(px + size_1 - size_2, py - size_2, px + size_1, py));
painter -> drawLine(QLineF(px + size_1 - size_2, py + size_2, px + size_1, py));
painter -> drawLine(QLineF(px, py, px, py + size_1));
painter -> drawLine(QLineF(px, py + size_1, px - size_2, py + size_1 - size_2));
painter -> drawLine(QLineF(px, py + size_1, px + size_2, py + size_1 - size_2));
}
#endif

View File

@@ -31,7 +31,7 @@ class PartText : public QGraphicsTextItem, public CustomElementPart {
// constructors, destructor
public:
PartText(QETElementEditor *, QGraphicsItem * = 0, ElementScene * = 0);
PartText(QETElementEditor *, QGraphicsItem * = 0);
virtual ~PartText();
private:
@@ -55,12 +55,6 @@ class PartText : public QGraphicsTextItem, public CustomElementPart {
virtual QRectF sceneGeometricRect() const;
virtual void startUserTransformation(const QRectF &);
virtual void handleUserTransformation(const QRectF &, const QRectF &);
virtual void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget * = 0 );
virtual void setDecorator(ElementPrimitiveDecorator *);
virtual bool singleItemPressEvent(ElementPrimitiveDecorator *, QGraphicsSceneMouseEvent *);
virtual bool singleItemMoveEvent(ElementPrimitiveDecorator *, QGraphicsSceneMouseEvent *);
virtual bool singleItemReleaseEvent(ElementPrimitiveDecorator *, QGraphicsSceneMouseEvent *);
virtual bool singleItemDoubleClickEvent(ElementPrimitiveDecorator *, QGraphicsSceneMouseEvent *);
///PROPERTY
void setProperty(const char *name, const QVariant &value) {QGraphicsTextItem::setProperty(name, value);}
@@ -87,9 +81,9 @@ class PartText : public QGraphicsTextItem, public CustomElementPart {
void endEdition();
protected:
virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *);
virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *);
virtual bool sceneEventFilter(QGraphicsItem *, QEvent *);
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
virtual void mousePressEvent(QGraphicsSceneMouseEvent *event);
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
virtual void focusInEvent(QFocusEvent *);
virtual void focusOutEvent(QFocusEvent *);
virtual void keyPressEvent(QKeyEvent *);
@@ -99,13 +93,11 @@ class PartText : public QGraphicsTextItem, public CustomElementPart {
private:
QPointF margin() const;
#ifdef QET_DEBUG_EDITOR_TEXTS
void drawPoint(QPainter *, const QPointF &);
#endif
QString previous_text;
qreal real_font_size_;
QPointF saved_point_;
qreal saved_font_size_;
QGraphicsItem *decorator_;
QPointF m_origine_pos;
};
#endif

View File

@@ -20,26 +20,24 @@
#include "elementprimitivedecorator.h"
#include "qetapp.h"
#include "QPropertyUndoCommand/qpropertyundocommand.h"
#include "elementscene.h"
/**
Constructeur
@param editor L'editeur d'element concerne
@param parent Le QGraphicsItem parent de ce champ de texte
@param scene La scene sur laquelle figure ce champ de texte
*/
PartTextField::PartTextField(QETElementEditor *editor, QGraphicsItem *parent, QGraphicsScene *scene) :
PartTextField::PartTextField(QETElementEditor *editor, QGraphicsItem *parent) :
QGraphicsTextItem(parent),
CustomElementPart(editor),
follow_parent_rotations(true),
m_tagg("none"),
previous_text(),
decorator_(0)
previous_text()
{
Q_UNUSED(scene);
setDefaultTextColor(Qt::black);
setFont(QETApp::diagramTextsFont());
real_font_size_ = font().pointSize();
setFlags(QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemSendsGeometryChanges);
setFlags(QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemSendsGeometryChanges | QGraphicsItem::ItemIsMovable);
setAcceptHoverEvents(true);
setPlainText(QObject::tr("_", "default text when adding a textfield in the element editor"));
@@ -112,71 +110,41 @@ QPointF PartTextField::margin() const {
return(QPointF(0.0, boundingRect().bottom() / 2.0));
}
/**
Handle context menu events.
@param event Object describing the context menu event to handle.
*/
void PartTextField::contextMenuEvent(QGraphicsSceneContextMenuEvent *event) {
Q_UNUSED(event);
void PartTextField::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
{
if((event->buttons() & Qt::LeftButton) && (flags() & QGraphicsItem::ItemIsMovable))
{
QPointF pos = event->scenePos() + (m_origine_pos - event->buttonDownScenePos(Qt::LeftButton));
event->modifiers() == Qt::ControlModifier ? setPos(pos) : setPos(elementScene()->snapToGrid(pos));
}
else
QGraphicsObject::mouseMoveEvent(event);
}
void PartTextField::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
if(event->button() == Qt::LeftButton)
m_origine_pos = this->pos();
QGraphicsObject::mousePressEvent(event);
}
void PartTextField::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
{
if((event->button() & Qt::LeftButton) && (flags() & QGraphicsItem::ItemIsMovable) && m_origine_pos != pos())
{
QPropertyUndoCommand *undo = new QPropertyUndoCommand(this, "pos", QVariant(m_origine_pos), QVariant(pos()));
undo->setText(tr("Déplacer un champ texte"));
undo->enableAnimation();
elementScene()->undoStack().push(undo);
}
QGraphicsObject::mouseReleaseEvent(event);
}
/**
Handle events generated when the mouse hovers over the decorator.
@param event Object describing the hover event.
*/
void PartTextField::hoverMoveEvent(QGraphicsSceneHoverEvent *event) {
// force the cursor when the text is being edited
if (hasFocus() && decorator_) {
decorator_ -> setCursor(Qt::IBeamCursor);
}
QGraphicsTextItem::hoverMoveEvent(event);
}
/**
@reimp QGraphicsItem::sceneEventFilter(QGraphicsItem *, QEvent *).
Intercepts events before they reach the watched target, i.e. typically the
primitives decorator.
This method mainly works with key strokes (F2, escape) and double clicks to
begin or end text edition.
*/
bool PartTextField::sceneEventFilter(QGraphicsItem *watched, QEvent *event) {
if (watched != decorator_) return(false);
QPointF event_scene_pos = QET::graphicsSceneEventPos(event);
if (!event_scene_pos.isNull()) {
if (contains(mapFromScene(event_scene_pos))) {
if (hasFocus()) {
return sceneEvent(event); // manually deliver the event to this item
return(true); // prevent this event from being delivered to any item
} else {
if (event -> type() == QEvent::GraphicsSceneMouseDoubleClick) {
mouseDoubleClickEvent(static_cast<QGraphicsSceneMouseEvent *>(event));
}
}
}
}
else if (event -> type() == QEvent::KeyRelease || event -> type() == QEvent::KeyPress) {
// Intercept F2 and escape keystrokes to focus in and out
QKeyEvent *key_event = static_cast<QKeyEvent *>(event);
if (!hasFocus() && key_event -> key() == Qt::Key_F2) {
setEditable(true);
QTextCursor qtc = textCursor();
qtc.setPosition(qMax(0, document()->characterCount() - 1));
setTextCursor(qtc);
} else if (hasFocus() && key_event -> key() == Qt::Key_Escape) {
endEdition();
}
if (hasFocus()) {
sceneEvent(event); // manually deliver the event to this item
return(true); // prevent this event from being delivered to any item
}
}
return(false);
}
/*
@reimp QGraphicsItem::focusInEvent(QFocusEvent *)
@param e The QFocusEvent object describing the focus gain.
* @brief PartTextField::focusInEvent
* @param e The QFocusEvent object describing the focus gain.
Start text edition when the item gains focus.
*/
void PartTextField::focusInEvent(QFocusEvent *e) {
@@ -286,88 +254,6 @@ void PartTextField::handleUserTransformation(const QRectF &initial_selection_rec
qreal new_font_size = saved_font_size_ * sy;
setProperty("real_size", qMax(1, qRound(new_font_size)));
}
/**
Dessine le texte statique.
@param painter QPainter a utiliser pour effectuer le rendu
@param qsogi Pptions de dessin
@param widget Widget sur lequel on dessine (facultatif)
*/
void PartTextField::paint(QPainter *painter, const QStyleOptionGraphicsItem *qsogi, QWidget *widget) {
// According to the source code of QGraphicsTextItem::paint(), this should
// avoid the drawing of the dashed rectangle around the text.
QStyleOptionGraphicsItem our_qsogi(*qsogi);
our_qsogi.state = QStyle::State_None;
QGraphicsTextItem::paint(painter, &our_qsogi, widget);
#ifdef QET_DEBUG_EDITOR_TEXTS
painter -> setPen(Qt::blue);
painter -> drawRect(boundingRect());
painter -> setPen(Qt::red);
drawPoint(painter, QPointF(0, 0));
painter -> setPen(QColor("#800000"));
drawPoint(painter, mapFromScene(pos()));
#endif
}
/**
@reimp CustomElementPart::setDecorator(ElementPrimitiveDecorator *)
Install or remove a sceneEventFilter on the decorator and ensure it will
adjust itself while the text is being edited.
*/
void PartTextField::setDecorator(ElementPrimitiveDecorator *decorator) {
if (decorator) {
decorator -> installSceneEventFilter(this);
// ensure the decorator will adjust itself when the text area expands or shrinks
connect(document(), SIGNAL(contentsChanged()), decorator, SLOT(adjust()));
}
else {
decorator_ -> removeSceneEventFilter(this);
endEdition();
}
decorator_ = decorator;
}
/**
Accept the mouse \a event relayed by \a decorator if this text item has focus.
*/
bool PartTextField::singleItemPressEvent(ElementPrimitiveDecorator *decorator, QGraphicsSceneMouseEvent *event) {
Q_UNUSED(decorator)
Q_UNUSED(event)
return(hasFocus());
}
/**
Accept the mouse \a event relayed by \a decorator if this text item has focus.
*/
bool PartTextField::singleItemMoveEvent(ElementPrimitiveDecorator *decorator, QGraphicsSceneMouseEvent *event) {
Q_UNUSED(decorator)
Q_UNUSED(event)
return(hasFocus());
}
/**
Accept the mouse \a event relayed by \a decorator if this text item has focus.
*/
bool PartTextField::singleItemReleaseEvent(ElementPrimitiveDecorator *decorator, QGraphicsSceneMouseEvent *event) {
Q_UNUSED(decorator)
Q_UNUSED(event)
return(hasFocus());
}
/**
Accept the mouse \a event relayed by \a decorator if this text item has focus.
*/
bool PartTextField::singleItemDoubleClickEvent(ElementPrimitiveDecorator *decorator, QGraphicsSceneMouseEvent *event) {
Q_UNUSED(decorator)
// calling mouseDoubleClickEvent() will set this text item editable and grab keyboard focus
if (event -> button() == Qt::LeftButton) {
mouseDoubleClickEvent(event);
return(true);
}
return(false);
}
/**
Cette methode s'assure que la position du champ de texte est coherente
@@ -434,27 +320,4 @@ void PartTextField::endEdition()
setTextCursor(qtc);
setEditable(false);
if (decorator_) {
decorator_ -> setFocus();
}
}
#ifdef QET_DEBUG_EDITOR_TEXTS
/**
Dessine deux petites fleches pour mettre un point en valeur
@param painter QPainter a utiliser pour effectuer le rendu
@param point Point a dessiner
*/
void PartTextField::drawPoint(QPainter *painter, const QPointF &point) {
qreal px = point.x();
qreal py = point.y();
qreal size_1 = 5.0;
qreal size_2 = 1.0;
painter -> drawLine(QLineF(px, py, px + size_1, py));
painter -> drawLine(QLineF(px + size_1 - size_2, py - size_2, px + size_1, py));
painter -> drawLine(QLineF(px + size_1 - size_2, py + size_2, px + size_1, py));
painter -> drawLine(QLineF(px, py, px, py + size_1));
painter -> drawLine(QLineF(px, py + size_1, px - size_2, py + size_1 - size_2));
painter -> drawLine(QLineF(px, py + size_1, px + size_2, py + size_1 - size_2));
}
#endif

View File

@@ -29,12 +29,13 @@ class ElementPrimitiveDecorator;
a default value. The field will remain editable once the element is added onto
a diagram. lorsque l'element sera pose sur un schema.
*/
class PartTextField : public QGraphicsTextItem, public CustomElementPart {
class PartTextField : public QGraphicsTextItem, public CustomElementPart
{
Q_OBJECT
// constructors, destructor
public:
PartTextField(QETElementEditor *, QGraphicsItem * = 0, QGraphicsScene * = 0);
PartTextField(QETElementEditor *, QGraphicsItem * = 0);
virtual ~PartTextField();
private:
@@ -61,12 +62,6 @@ class PartTextField : public QGraphicsTextItem, public CustomElementPart {
virtual QRectF sceneGeometricRect() const;
virtual void startUserTransformation(const QRectF &);
virtual void handleUserTransformation(const QRectF &, const QRectF &);
virtual void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget * = 0 );
virtual void setDecorator(ElementPrimitiveDecorator *);
virtual bool singleItemPressEvent(ElementPrimitiveDecorator *, QGraphicsSceneMouseEvent *);
virtual bool singleItemMoveEvent(ElementPrimitiveDecorator *, QGraphicsSceneMouseEvent *);
virtual bool singleItemReleaseEvent(ElementPrimitiveDecorator *, QGraphicsSceneMouseEvent *);
virtual bool singleItemDoubleClickEvent(ElementPrimitiveDecorator *, QGraphicsSceneMouseEvent *);
///PROPERTY
virtual void setProperty(const char *name, const QVariant &value) {QGraphicsTextItem::setProperty(name, value);}
@@ -102,9 +97,9 @@ class PartTextField : public QGraphicsTextItem, public CustomElementPart {
void endEdition();
protected:
virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *);
virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *);
virtual bool sceneEventFilter(QGraphicsItem *, QEvent *);
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
virtual void mousePressEvent(QGraphicsSceneMouseEvent *event);
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
virtual void focusInEvent(QFocusEvent *);
virtual void focusOutEvent(QFocusEvent *);
virtual void keyPressEvent(QKeyEvent *);
@@ -114,13 +109,10 @@ class PartTextField : public QGraphicsTextItem, public CustomElementPart {
private:
QPointF margin() const;
#ifdef QET_DEBUG_EDITOR_TEXTS
void drawPoint(QPainter *, const QPointF &);
#endif
QString previous_text;
qreal real_font_size_;
QPointF saved_point_;
qreal saved_font_size_;
QGraphicsItem *decorator_;
QPointF m_origine_pos;
};
#endif

View File

@@ -27,7 +27,7 @@ namespace QET {
/// QElectroTech version (as string, used to mark projects and elements XML documents)
const QString version = "0.60";
/// QElectroTech displayed version
const QString displayedVersion = "0.60-RC2";
const QString displayedVersion = "0.60-RC3";
QString license();
/// Oriented movements

View File

@@ -2180,7 +2180,7 @@ QMessageBox::warning(0,
"\n"
"Requires python 3.5 or above.\n"
">> First install on Linux\n"
"1. check you have pip3 installed: pip3 --version.\n"
"1. check you have pip3 installed: pip3 --version\n"
"If not install with: sudo apt-get install python3-pip\n"
"2. Install the program: sudo pip3 install qet_tb_generator\n"
"3. Run the program: qet_tb_generator\n"
@@ -2189,18 +2189,19 @@ QMessageBox::warning(0,
"\n"
">> First install on Windows\n"
"1. Install, if required, python 3.5 or above \n"
"2. pip install qet_generator\n"
"2. pip install qet_tb_generator\n"
">> Update on Windows\n"
"python -m pip install --upgrade qet_tb_generator\n"
">>user could launch in a terminal this script in this directory \n"
" C:\\users\\XXXX\\AppData\\Local\\Programs\\Python\\Python36-32\\Scripts \n"
"\n"
">> First install on macOSX \n"
"1. Install, if required, python 3.5 or above \n"
"2. Install tkinter with Tcl/Tk\n"
"3. Visit https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674\n"
"2. pip3 install qet_generator\n"
" Visit https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674 \n"
"2. pip3 install qet_tb_generator \n"
">> Update on macOSX \n"
" pip3 install --upgrade qet_tb_generator \n"
);
}
}

View File

@@ -78,17 +78,16 @@ Conductor::Conductor(Terminal *p1, Terminal* p2) :
terminal1(p1),
terminal2(p2),
m_mouse_over(false),
m_handler(10),
m_text_item(0),
segments(NULL),
moving_segment(false),
m_moving_segment(false),
modified_path(false),
has_to_save_profile(false),
must_highlight_(Conductor::None)
{
//set Zvalue at 11 to be upper than the DiagramImageItem and element
setZValue(11);
previous_z_value = zValue();
m_previous_z_value = zValue();
//Add this conductor to the list of conductor of each of the two terminal
bool ajout_p1 = terminal1 -> addConductor(this);
@@ -117,7 +116,7 @@ Conductor::Conductor(Terminal *p1, Terminal* p2) :
//Generate the path of this conductor.
generateConductorPath(terminal1 -> dockConductor(), terminal1 -> orientation(), terminal2 -> dockConductor(), terminal2 -> orientation());
setFlags(QGraphicsItem::ItemIsSelectable);
setFlags(QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemSendsScenePositionChanges);
setAcceptHoverEvents(true);
// Add the text field
@@ -137,6 +136,7 @@ Conductor::Conductor(Terminal *p1, Terminal* p2) :
*/
Conductor::~Conductor()
{
removeHandler();
terminal1->removeConductor(this);
terminal2->removeConductor(this);
deleteSegments();
@@ -171,30 +171,39 @@ void Conductor::updatePath(const QRectF &rect) {
}
/**
Genere le QPainterPath a partir de la liste des points
* @brief Conductor::segmentsToPath
* Generate the QPainterPath from the list of points
*/
void Conductor::segmentsToPath() {
// chemin qui sera dessine
void Conductor::segmentsToPath()
{
QPainterPath path;
// s'il n'y a pa des segments, on arrete la
if (segments == NULL) setPath(path);
if (segments == NULL)
setPath(path);
// demarre le chemin
//Start the path
path.moveTo(segments -> firstPoint());
// parcourt les segments pour dessiner le chemin
//Each segments
ConductorSegment *segment = segments;
while(segment -> hasNextSegment()) {
path.lineTo(segment -> secondPoint());
segment = segment -> nextSegment();
}
// termine le chemin
//Finish the path
path.lineTo(segment -> secondPoint());
// affecte le chemin au conducteur
setPath(path);
//If conductor is selected and he's not being modified
//we update the position of the handlers
if (isSelected() && !m_moving_segment)
{
if(handlerPoints().size() == m_handler_vector.size())
adjusteHandlerPos();
else
removeHandler();
addHandler();
}
}
/**
@@ -467,7 +476,7 @@ void Conductor::paint(QPainter *qp, const QStyleOptionGraphicsItem *options, QWi
qp -> save();
qp -> setRenderHint(QPainter::Antialiasing, false);
// determine la couleur du conducteur
// Set the color of conductor
QColor final_conductor_color(m_properties.color);
if (must_highlight_ == Normal) {
final_conductor_color = QColor::fromRgb(69, 137, 255, 255);
@@ -486,24 +495,25 @@ void Conductor::paint(QPainter *qp, const QStyleOptionGraphicsItem *options, QWi
//Draw the conductor bigger when is hovered
conductor_pen.setWidthF(m_mouse_over? (m_properties.cond_size) +4 : (m_properties.cond_size));
// affectation du QPen et de la QBrush modifies au QPainter
//Set the QPen and QBrush to the QPainter
qp -> setBrush(conductor_brush);
QPen final_conductor_pen = conductor_pen;
// modification du QPen generique pour lui affecter la couleur et le style adequats
//Set the conductor style
final_conductor_pen.setColor(final_conductor_color);
final_conductor_pen.setStyle(m_properties.style);
final_conductor_pen.setJoinStyle(Qt::SvgMiterJoin); // meilleur rendu des pointilles
final_conductor_pen.setJoinStyle(Qt::SvgMiterJoin); // better rendering with dot
// utilisation d'un trait "cosmetique" en-dessous d'un certain zoom
//Use a cosmetique line, below a certain zoom
if (options && options -> levelOfDetail < 1.0) {
final_conductor_pen.setCosmetic(true);
}
qp -> setPen(final_conductor_pen);
// dessin du conducteur
//Draw the conductor
qp -> drawPath(path());
if (m_properties.type == ConductorProperties::Single) {
qp -> setBrush(final_conductor_color);
m_properties.singleLineProperties.draw(
@@ -514,11 +524,7 @@ void Conductor::paint(QPainter *qp, const QStyleOptionGraphicsItem *options, QWi
if (isSelected()) qp -> setBrush(Qt::NoBrush);
}
//Draw the squares used to modify the path of conductor when he is selected
if (isSelected())
m_handler.drawHandler(qp, handlerPoints());
// dessine les eventuelles jonctions
//Draw the junctions
QList<QPointF> junctions_list = junctions();
if (!junctions_list.isEmpty()) {
final_conductor_pen.setStyle(Qt::SolidLine);
@@ -587,70 +593,18 @@ void Conductor::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) {
*/
void Conductor::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
//Left clic
if (event->buttons() & Qt::LeftButton)
{
//If user click on a handler (square used to modify the path of conductor),
//we get the segment corresponding to the handler
int index = m_handler.pointIsHoverHandler(event->pos(), handlerPoints());
if (index > -1)
{
moving_segment = true;
moved_segment = segmentsList().at(index+1);
before_mov_text_pos_ = m_text_item -> pos();
}
}
QGraphicsPathItem::mousePressEvent(event);
if (event->modifiers() & Qt::ControlModifier)
setSelected(!isSelected());
}
/**
* @brief Conductor::mouseMoveEvent
* Manage the mouse move event
* @param event
*/
void Conductor::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
{
//Left clic
if ((event->buttons() & Qt::LeftButton) && moving_segment)
{
//Snap the mouse pos to grid
QPointF pos_ = Diagram::snapToGrid(event->pos());
//Position of the last point
QPointF p = moved_segment -> middle();
//Calcul the movement
moved_segment -> moveX(pos_.x() - p.x());
moved_segment -> moveY(pos_.y() - p.y());
//Apply the movement
modified_path = true;
has_to_save_profile = true;
segmentsToPath();
calculateTextItemPosition();
}
QGraphicsPathItem::mouseMoveEvent(event);
}
/**
* @brief Conductor::mouseReleaseEvent
* Manage the mouse release event
* @param event
*/
void Conductor::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
{
moving_segment = false;
if (has_to_save_profile)
{
saveProfile();
has_to_save_profile = false;
}
if (!(event -> modifiers() & Qt::ControlModifier))
QGraphicsPathItem::mouseReleaseEvent(event);
}
@@ -678,56 +632,214 @@ void Conductor::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) {
}
/**
* @brief Conductor::hoverMoveEvent conductor
* @param e QGraphicsSceneHoverEvent describing the event
* @brief Conductor::itemChange
* @param change
* @param value
* @return
*/
void Conductor::hoverMoveEvent(QGraphicsSceneHoverEvent *event)
QVariant Conductor::itemChange(GraphicsItemChange change, const QVariant &value)
{
if (isSelected())
if (change == QGraphicsItem::ItemSelectedChange)
{
//If user hover an handler (square used to modify the path of conductor),
//we get the segment corresponding to the handler
int index = m_handler.pointIsHoverHandler(event->pos(), handlerPoints());
if (index > -1)
if (value.toBool())
{
ConductorSegment *segment_ = segmentsList().at(index+1);
if (m_handler.pointIsInHandler(event->pos(), segment_->secondPoint()))
setCursor(Qt::ForbiddenCursor);
else if (m_handler.pointIsInHandler(event->pos(), segment_->middle()))
setCursor(segmentsList().at(index+1)->isVertical() ? Qt::SplitHCursor : Qt::SplitVCursor);
m_previous_z_value = zValue();
setZValue(qAbs(m_previous_z_value) + 10000);
addHandler();
}
else
setCursor(Qt::ArrowCursor);
{
setZValue(m_previous_z_value);
removeHandler();
}
}
else if (change == QGraphicsItem::ItemSceneHasChanged)
{
calculateTextItemPosition();
if(!scene())
removeHandler();
else if (scene() && isSelected())
addHandler();
}
else if (change == QGraphicsItem::ItemVisibleHasChanged) {
calculateTextItemPosition();
}
else if (change == QGraphicsItem::ItemPositionHasChanged && isSelected()) {
adjusteHandlerPos();
}
QGraphicsPathItem::hoverMoveEvent(event);
return(QGraphicsPathItem::itemChange(change, value));
}
/**
Gere les changements relatifs au conducteur
Reimplemente ici pour :
* positionner le conducteur en avant-plan lorsqu'il est selectionne
@param change Type de changement
@param value Valeur relative au changement
* @brief Conductor::sceneEventFilter
* @param watched
* @param event
* @return
*/
QVariant Conductor::itemChange(GraphicsItemChange change, const QVariant &value) {
if (change == QGraphicsItem::ItemSelectedChange) {
if (value.toBool()) {
// le conducteur vient de se faire selectionner
previous_z_value = zValue();
setZValue(qAbs(previous_z_value) + 10000);
} else {
// le conducteur vient de se faire deselectionner
setZValue(previous_z_value);
bool Conductor::sceneEventFilter(QGraphicsItem *watched, QEvent *event)
{
//Watched must be an handler
if(watched->type() == QetGraphicsHandlerItem::Type)
{
QetGraphicsHandlerItem *qghi = qgraphicsitem_cast<QetGraphicsHandlerItem *>(watched);
if(m_handler_vector.contains(qghi)) //Handler must be in m_vector_index, then we can start resize
{
m_vector_index = m_handler_vector.indexOf(qghi);
if (m_vector_index != -1)
{
if(event->type() == QEvent::GraphicsSceneMousePress) //Click
{
handlerMousePressEvent(qghi, static_cast<QGraphicsSceneMouseEvent *>(event));
return true;
}
} else if (change == QGraphicsItem::ItemSceneHasChanged) {
// permet de positionner correctement le texte du conducteur lors de son ajout a un schema
calculateTextItemPosition();
} else if (change == QGraphicsItem::ItemVisibleHasChanged) {
// permet de positionner correctement le texte du conducteur lors de son ajout a un schema
calculateTextItemPosition();
else if(event->type() == QEvent::GraphicsSceneMouseMove) //Move
{
handlerMouseMoveEvent(qghi, static_cast<QGraphicsSceneMouseEvent *>(event));
return true;
}
else if (event->type() == QEvent::GraphicsSceneMouseRelease) //Release
{
handlerMouseReleaseEvent(qghi, static_cast<QGraphicsSceneMouseEvent *>(event));
return true;
}
else if (event->type() == QEvent::GraphicsSceneMouseDoubleClick) //Double click
{
editProperty();
return true;
}
}
}
}
return false;
}
/**
* @brief Conductor::adjusteHandlerPos
* Adjust the position of the handler item
*/
void Conductor::adjusteHandlerPos()
{
if (m_handler_vector.isEmpty())
return;
if (m_handler_vector.size() == handlerPoints().size())
{
QVector <QPointF> points_vector = mapToScene(handlerPoints());
for (int i = 0 ; i < points_vector.size() ; ++i)
m_handler_vector.at(i)->setPos(points_vector.at(i));
}
}
/**
* @brief Conductor::handlerMousePressEvent
* @param qghi
* @param event
*/
void Conductor::handlerMousePressEvent(QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event)
{
Q_UNUSED(event);
//we get the segment corresponding to the handler
if (m_vector_index > -1)
{
qghi->setColor(Qt::cyan);
m_moving_segment = true;
m_moved_segment = segmentsList().at(m_vector_index+1);
before_mov_text_pos_ = m_text_item -> pos();
for(QetGraphicsHandlerItem *handler : m_handler_vector)
if(handler != qghi)
handler->hide();
}
}
/**
* @brief Conductor::handlerMouseMoveEvent
* @param qghi
* @param event
*/
void Conductor::handlerMouseMoveEvent(QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event)
{
if (m_moving_segment)
{
//Snap the mouse pos to grid
QPointF pos_ = Diagram::snapToGrid(mapFromItem(qghi, event->pos()));
//Position of the last point
QPointF p = m_moved_segment -> middle();
//Calcul the movement
m_moved_segment -> moveX(pos_.x() - p.x());
m_moved_segment -> moveY(pos_.y() - p.y());
//Apply the movement
modified_path = true;
has_to_save_profile = true;
segmentsToPath();
calculateTextItemPosition();
qghi->setPos(mapToScene(m_moved_segment->middle()));
}
}
/**
* @brief Conductor::handlerMouseReleaseEvent
* @param qghi
* @param event
*/
void Conductor::handlerMouseReleaseEvent(QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event)
{
Q_UNUSED(event);
Q_UNUSED(qghi);
m_vector_index = -1;
m_moving_segment = false;
if (has_to_save_profile)
{
saveProfile();
has_to_save_profile = false;
}
//When handler is released, the conductor can have more segment than befor the handler was moved
//then we remove all handles and new ones are added
removeHandler();
addHandler();
}
/**
* @brief Conductor::addHandler
* Add handlers for this item
*/
void Conductor::addHandler()
{
if (m_handler_vector.isEmpty() && scene())
{
m_handler_vector = QetGraphicsHandlerItem::handlerForPoint(mapToScene(handlerPoints()));
for(QetGraphicsHandlerItem *handler : m_handler_vector)
{
handler->setColor(Qt::blue);
scene()->addItem(handler);
handler->installSceneEventFilter(this);
handler->setZValue(this->zValue()+1);
}
}
}
/**
* @brief Conductor::removeHandler
* Remove the handlers of this item
*/
void Conductor::removeHandler()
{
if (!m_handler_vector.isEmpty())
{
qDeleteAll(m_handler_vector);
m_handler_vector.clear();
}
return(QGraphicsPathItem::itemChange(change, value));
}
/**
@@ -753,22 +865,6 @@ QPainterPath Conductor::shape() const
QPainterPath shape_(pps.createStroke(path()));
/**
Add handle rect to path, occur a weird bug.
when the conductor is removed from the scene he continue to be painted in the scene and make artefact.
If we save (exactly when we clear the undo stack of project when saving), Qet crash,
Don't add the handle rect to the path seem to work well.
More information here :
https://qelectrotech.org/bugtracker/view.php?id=107
https://qelectrotech.org/forum/viewtopic.php?pid=5619#p5619
https://qelectrotech.org/forum/viewtopic.php?pid=5067#p5067
**/
// if (isSelected()) {
// foreach (QRectF rect, m_handler.handlerRect(handlerPoints())) {
// shape_.addRect(rect);
// }
// }
return shape_;
}

View File

@@ -20,7 +20,6 @@
#include "conductorproperties.h"
#include <QGraphicsPathItem>
#include "QetGraphicsItemModeler/qetgraphicshandlerutility.h"
#include "assignvariables.h"
class ConductorProfile;
@@ -32,6 +31,8 @@ class ConductorTextItem;
class Element;
class QETDiagramEditor;
class NumerotationContext;
class QetGraphicsHandlerItem;
typedef QPair<QPointF, Qt::Corner> ConductorBend;
typedef QHash<Qt::Corner, ConductorProfile> ConductorProfilesGroup;
/**
@@ -133,16 +134,25 @@ class Conductor : public QObject, public QGraphicsPathItem
protected:
virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event);
virtual void mousePressEvent(QGraphicsSceneMouseEvent *event);
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event);
virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event);
virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *event);
virtual QVariant itemChange(GraphicsItemChange, const QVariant &);
virtual bool sceneEventFilter(QGraphicsItem *watched, QEvent *event);
private:
void adjusteHandlerPos();
void handlerMousePressEvent (QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event);
void handlerMouseMoveEvent (QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event);
void handlerMouseReleaseEvent (QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event);
void addHandler();
void removeHandler();
QVector<QetGraphicsHandlerItem *> m_handler_vector;
int m_vector_index = -1;
bool m_mouse_over;
QetGraphicsHandlerUtility m_handler;
/// Functional properties
ConductorProperties m_properties;
/// Text input for non simple, non-singleline conductors
@@ -150,10 +160,10 @@ class Conductor : public QObject, public QGraphicsPathItem
/// Segments composing the conductor
ConductorSegment *segments;
/// Attributs related to mouse interaction
bool moving_segment;
bool m_moving_segment;
int moved_point;
qreal previous_z_value;
ConductorSegment *moved_segment;
qreal m_previous_z_value;
ConductorSegment *m_moved_segment;
QPointF before_mov_text_pos_;
/// Whether the conductor was manually modified by users
bool modified_path;

View File

@@ -22,6 +22,7 @@
#include "shapegraphicsitempropertieswidget.h"
#include "PropertiesEditor/propertieseditordialog.h"
#include "QPropertyUndoCommand/qpropertyundocommand.h"
#include "QetGraphicsItemModeler/qetgraphicshandlerutility.h"
#include "qetxml.h"
/**
@@ -37,18 +38,20 @@ QetShapeItem::QetShapeItem(QPointF p1, QPointF p2, ShapeType type, QGraphicsItem
m_shapeType(type),
m_P1 (p1),
m_P2 (p2),
m_hovered(false),
m_mouse_grab_handler(false),
m_handler(10)
m_hovered(false)
{
if (type == Polygon) m_polygon << m_P1 << m_P2;
setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable);
setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemSendsGeometryChanges);
setAcceptHoverEvents(true);
m_pen.setStyle(Qt::DashLine);
}
QetShapeItem::~QetShapeItem() {}
QetShapeItem::~QetShapeItem()
{
if(!m_handler_vector.isEmpty())
qDeleteAll(m_handler_vector);
}
/**
* @brief QetShapeItem::setPen
@@ -109,6 +112,7 @@ bool QetShapeItem::setLine(const QLineF &line)
prepareGeometryChange();
m_P1 = line.p1();
m_P2 = line.p2();
adjusteHandlerPos();
return true;
}
@@ -125,6 +129,7 @@ bool QetShapeItem::setRect(const QRectF &rect)
prepareGeometryChange();
m_P1 = rect.topLeft();
m_P2 = rect.bottomRight();
adjusteHandlerPos();
return true;
}
@@ -142,6 +147,7 @@ bool QetShapeItem::setPolygon(const QPolygonF &polygon)
if (Q_UNLIKELY(m_shapeType != Polygon)) return false;
prepareGeometryChange();
m_polygon = polygon;
adjusteHandlerPos();
return true;
}
@@ -246,23 +252,6 @@ QPainterPath QetShapeItem::shape() const
pps.setJoinStyle(Qt::RoundJoin);
path = pps.createStroke(path);
if (isSelected())
{
QVector <QPointF> vector;
if (m_shapeType == Line)
vector << m_P1 << m_P2;
else if (m_shapeType == Rectangle || m_shapeType == Ellipse) {
QRectF rect (m_P1, m_P2);
vector << rect.topLeft() << rect.topRight() << rect.bottomRight() << rect.bottomLeft();
}
else
vector = m_polygon;
foreach(QRectF r, m_handler.handlerRect(vector))
path.addRect(r);
}
return (path);
}
@@ -294,33 +283,14 @@ void QetShapeItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *opti
painter -> restore ();
}
//Draw the shape and handlers if is selected
switch (m_shapeType)
{
case Line:
painter->drawLine(QLineF(m_P1, m_P2));
if (isSelected())
m_handler.drawHandler(painter, QVector<QPointF>{m_P1, m_P2});
break;
case Rectangle:
painter->drawRect(QRectF(m_P1, m_P2));
if (isSelected())
m_handler.drawHandler(painter, m_handler.pointsForRect(QRectF(m_P1, m_P2)));
break;
case Ellipse:
painter->drawEllipse(QRectF(m_P1, m_P2));
if (isSelected())
m_handler.drawHandler(painter, m_handler.pointsForRect(QRectF(m_P1, m_P2)));
break;
case Polygon:
m_close ? painter->drawPolygon(m_polygon) : painter->drawPolyline(m_polygon);
if (isSelected())
m_handler.drawHandler(painter, m_polygon);
break;
case Line: painter->drawLine(QLineF(m_P1, m_P2)); break;
case Rectangle: painter->drawRect(QRectF(m_P1, m_P2)); break;
case Ellipse: painter->drawEllipse(QRectF(m_P1, m_P2)); break;
case Polygon: m_close ? painter->drawPolygon(m_polygon) : painter->drawPolyline(m_polygon); break;
}
painter->restore();
}
@@ -329,142 +299,23 @@ void QetShapeItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *opti
* Handle hover enter event
* @param event
*/
void QetShapeItem::hoverEnterEvent(QGraphicsSceneHoverEvent *event) {
void QetShapeItem::hoverEnterEvent(QGraphicsSceneHoverEvent *event)
{
m_hovered = true;
QetGraphicsItem::hoverEnterEvent(event);
}
void QetShapeItem::hoverMoveEvent(QGraphicsSceneHoverEvent *event)
{
if (!isSelected()) return;
QVector <QPointF> vector;
switch (m_shapeType)
{
case Line: vector << m_P1 << m_P2; break;
case Rectangle: vector = m_handler.pointsForRect(QRectF(m_P1, m_P2)); break;
case Ellipse: vector = m_handler.pointsForRect(QRectF(m_P1, m_P2)); break;
case Polygon: vector = m_polygon; break;
}
int handler = m_handler.pointIsHoverHandler(event->pos(), vector);
if (handler >= 0)
{
if (m_shapeType & (Line | Polygon)) {
setCursor(Qt::SizeAllCursor);
return;
}
if (handler == 0 || handler == 2 || handler == 5 || handler == 7)
setCursor(Qt::SizeAllCursor);
else if (handler == 1 || handler == 6)
setCursor(Qt::SizeVerCursor);
else if (handler == 3 || handler == 4)
setCursor(Qt::SizeHorCursor);
}
else
setCursor(Qt::OpenHandCursor);
}
/**
* @brief QetShapeItem::hoverLeaveEvent
* Handle hover leave event
* @param event
*/
void QetShapeItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) {
void QetShapeItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
{
m_hovered = false;
unsetCursor();
QetGraphicsItem::hoverLeaveEvent(event);
}
/**
* @brief QetShapeItem::mousePressEvent
* Handle mouse press event
* @param event
*/
void QetShapeItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
if (event->button() == Qt::LeftButton)
{
setCursor(Qt::ClosedHandCursor);
//Shape is selected, we see if user click in a handler
if (isSelected())
{
QVector <QPointF> vector;
switch (m_shapeType)
{
case Line: vector << m_P1 << m_P2; break;
case Rectangle: vector = m_handler.pointsForRect(QRectF(m_P1, m_P2)); break;
case Ellipse: vector = m_handler.pointsForRect(QRectF(m_P1, m_P2)); break;
case Polygon: vector = m_polygon; break;
}
m_vector_index = m_handler.pointIsHoverHandler(event->pos(), vector);
if (m_vector_index != -1)
{
//User click on an handler
m_mouse_grab_handler = true;
m_old_P1 = m_P1;
m_old_P2 = m_P2;
m_old_polygon = m_polygon;
return;
}
}
}
QetGraphicsItem::mousePressEvent(event);
}
/**
* @brief QetShapeItem::mouseMoveEvent
* Handle move event
* @param event
*/
void QetShapeItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
{
if (m_mouse_grab_handler)
{
QPointF new_pos = event->pos();
if (event->modifiers() != Qt::ControlModifier)
new_pos = mapFromScene(Diagram::snapToGrid(event->scenePos()));
switch (m_shapeType)
{
case Line:
prepareGeometryChange();
m_vector_index == 0 ? m_P1 = new_pos : m_P2 = new_pos;
break;
case Rectangle:
if (m_resize_mode == 1) {
setRect(m_handler.rectForPosAtIndex(QRectF(m_P1, m_P2), new_pos, m_vector_index));
break;
}
else {
setRect(m_handler.mirrorRectForPosAtIndex(QRectF(m_P1, m_P2), new_pos, m_vector_index));
break;
}
case Ellipse:
if (m_resize_mode == 1) {
setRect(m_handler.rectForPosAtIndex(QRectF(m_P1, m_P2), new_pos, m_vector_index));
break;
}
else {
setRect(m_handler.mirrorRectForPosAtIndex(QRectF(m_P1, m_P2), new_pos, m_vector_index));
break;
}
case Polygon:
prepareGeometryChange();
m_polygon.replace(m_vector_index, new_pos);
break;
} //End switch
return;
}
QetGraphicsItem::mouseMoveEvent(event);
}
/**
* @brief QetShapeItem::mouseReleaseEvent
* Handle mouse release event
@@ -472,12 +323,228 @@ void QetShapeItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
*/
void QetShapeItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
{
if ((m_shapeType & (Rectangle | Ellipse)) && event->buttonDownPos(Qt::LeftButton) == event->pos())
if (event->buttonDownPos(Qt::LeftButton) == event->pos())
switchResizeMode();
if (m_mouse_grab_handler)
QetGraphicsItem::mouseReleaseEvent(event);
}
/**
* @brief QetShapeItem::itemChange
* @param change
* @param value
* @return
*/
QVariant QetShapeItem::itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value)
{
m_mouse_grab_handler = false;
if (change == ItemSelectedHasChanged)
{
if (value.toBool() == true) //If this is selected, wa add handlers.
{
QVector <QPointF> points_vector;
switch (m_shapeType)
{
case Line: points_vector << m_P1 << m_P2; break;
case Rectangle: points_vector = QetGraphicsHandlerUtility::pointsForRect(QRectF(m_P1, m_P2)); break;
case Ellipse: points_vector = QetGraphicsHandlerUtility::pointsForRect(QRectF(m_P1, m_P2)); break;
case Polygon: points_vector = m_polygon; break;
}
if(!points_vector.isEmpty() && scene())
{
m_handler_vector = QetGraphicsHandlerItem::handlerForPoint(mapToScene(points_vector));
for(QetGraphicsHandlerItem *handler : m_handler_vector)
{
handler->setColor(Qt::blue);
scene()->addItem(handler);
handler->installSceneEventFilter(this);
}
}
}
else //Else this is deselected, we remove handlers
{
if(!m_handler_vector.isEmpty())
{
qDeleteAll(m_handler_vector);
m_handler_vector.clear();
}
}
}
else if (change == ItemPositionHasChanged)
{
adjusteHandlerPos();
}
else if (change == ItemSceneHasChanged)
{
if (!scene()) //This is removed from scene, then we deselect this, and so, the handlers is also removed.
{
setSelected(false);
}
}
return QGraphicsItem::itemChange(change, value);
}
/**
* @brief QetShapeItem::sceneEventFilter
* @param watched
* @param event
* @return
*/
bool QetShapeItem::sceneEventFilter(QGraphicsItem *watched, QEvent *event)
{
//Watched must be an handler
if(watched->type() == QetGraphicsHandlerItem::Type)
{
QetGraphicsHandlerItem *qghi = qgraphicsitem_cast<QetGraphicsHandlerItem *>(watched);
if(m_handler_vector.contains(qghi)) //Handler must be in m_vector_index, then we can start resize
{
m_vector_index = m_handler_vector.indexOf(qghi);
if (m_vector_index != -1)
{
if(event->type() == QEvent::GraphicsSceneMousePress) //Click
{
handlerMousePressEvent(qghi, static_cast<QGraphicsSceneMouseEvent *>(event));
return true;
}
else if(event->type() == QEvent::GraphicsSceneMouseMove) //Move
{
handlerMouseMoveEvent(qghi, static_cast<QGraphicsSceneMouseEvent *>(event));
return true;
}
else if (event->type() == QEvent::GraphicsSceneMouseRelease) //Release
{
handlerMouseReleaseEvent(qghi, static_cast<QGraphicsSceneMouseEvent *>(event));
return true;
}
}
}
}
return false;
}
/**
* @brief QetShapeItem::switchResizeMode
*/
void QetShapeItem::switchResizeMode()
{
if (m_shapeType & (Rectangle | Ellipse))
{
if (m_resize_mode == 1)
{
m_resize_mode = 2;
for (QetGraphicsHandlerItem *qghi : m_handler_vector)
qghi->setColor(Qt::darkGreen);
}
else
{
m_resize_mode = 1;
for (QetGraphicsHandlerItem *qghi : m_handler_vector)
qghi->setColor(Qt::blue);
}
}
}
/**
* @brief QetShapeItem::adjusteHandlerPos
* Adjust the position of the handler item
*/
void QetShapeItem::adjusteHandlerPos()
{
QVector <QPointF> points_vector;
switch (m_shapeType)
{
case Line: points_vector << m_P1 << m_P2; break;
case Rectangle: points_vector = QetGraphicsHandlerUtility::pointsForRect(QRectF(m_P1, m_P2)); break;
case Ellipse: points_vector = QetGraphicsHandlerUtility::pointsForRect(QRectF(m_P1, m_P2)); break;
case Polygon: points_vector = m_polygon; break;
}
if (m_handler_vector.size() == points_vector.size())
{
points_vector = mapToScene(points_vector);
for (int i = 0 ; i < points_vector.size() ; ++i)
m_handler_vector.at(i)->setPos(points_vector.at(i));
}
}
/**
* @brief QetShapeItem::handlerMousePressEvent
* @param qghi
* @param event
*/
void QetShapeItem::handlerMousePressEvent(QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event)
{
Q_UNUSED(qghi);
Q_UNUSED(event);
m_old_P1 = m_P1;
m_old_P2 = m_P2;
m_old_polygon = m_polygon;
}
/**
* @brief QetShapeItem::handlerMouseMoveEvent
* @param qghi
* @param event
*/
void QetShapeItem::handlerMouseMoveEvent(QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event)
{
Q_UNUSED(qghi);
QPointF new_pos = event->scenePos();
if (event->modifiers() != Qt::ControlModifier)
new_pos = Diagram::snapToGrid(event->scenePos());
new_pos = mapFromScene(new_pos);
switch (m_shapeType)
{
case Line:
prepareGeometryChange();
m_vector_index == 0 ? m_P1 = new_pos : m_P2 = new_pos;
adjusteHandlerPos();
break;
case Rectangle:
if (m_resize_mode == 1) {
setRect(QetGraphicsHandlerUtility::rectForPosAtIndex(QRectF(m_P1, m_P2), new_pos, m_vector_index));
break;
}
else {
setRect(QetGraphicsHandlerUtility::mirrorRectForPosAtIndex(QRectF(m_P1, m_P2), new_pos, m_vector_index));
break;
}
case Ellipse:
if (m_resize_mode == 1) {
setRect(QetGraphicsHandlerUtility::rectForPosAtIndex(QRectF(m_P1, m_P2), new_pos, m_vector_index));
break;
}
else {
setRect(QetGraphicsHandlerUtility::mirrorRectForPosAtIndex(QRectF(m_P1, m_P2), new_pos, m_vector_index));
break;
}
case Polygon:
prepareGeometryChange();
m_polygon.replace(m_vector_index, new_pos);
adjusteHandlerPos();
break;
} //End switch
}
/**
* @brief QetShapeItem::handlerMouseReleaseEvent
* @param qghi
* @param event
*/
void QetShapeItem::handlerMouseReleaseEvent(QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event)
{
Q_UNUSED(qghi);
Q_UNUSED(event);
if (diagram())
{
QPropertyUndoCommand *undo = nullptr;
@@ -501,23 +568,6 @@ void QetShapeItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
diagram()->undoStack().push(undo);
}
}
setCursor(Qt::OpenHandCursor);
}
QetGraphicsItem::mouseReleaseEvent(event);
}
void QetShapeItem::switchResizeMode()
{
if (m_resize_mode == 1) {
m_resize_mode = 2;
m_handler.setOuterColor(Qt::darkGreen);
}
else {
m_resize_mode = 1;
m_handler.setOuterColor(Qt::blue);
}
update();
}
/**

View File

@@ -20,10 +20,11 @@
#include <QPen>
#include "qetgraphicsitem.h"
#include "QetGraphicsItemModeler/qetgraphicshandlerutility.h"
#include "QetGraphicsItemModeler/qetgraphicshandleritem.h"
class QDomElement;
class QDomDocument;
class QetGraphicsHandlerItem;
/**
* @brief The QetShapeItem class
@@ -96,14 +97,18 @@ class QetShapeItem : public QetGraphicsItem
protected:
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
virtual void hoverEnterEvent (QGraphicsSceneHoverEvent *event);
virtual void hoverMoveEvent (QGraphicsSceneHoverEvent *event);
virtual void hoverLeaveEvent (QGraphicsSceneHoverEvent *event);
virtual void mousePressEvent (QGraphicsSceneMouseEvent *event);
virtual void mouseMoveEvent (QGraphicsSceneMouseEvent *event);
virtual void mouseReleaseEvent (QGraphicsSceneMouseEvent *event);
virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value);
virtual bool sceneEventFilter(QGraphicsItem *watched, QEvent *event);
private:
void switchResizeMode();
void adjusteHandlerPos();
void handlerMousePressEvent (QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event);
void handlerMouseMoveEvent (QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event);
void handlerMouseReleaseEvent (QetGraphicsHandlerItem *qghi, QGraphicsSceneMouseEvent *event);
///ATTRIBUTES
private:
@@ -112,11 +117,10 @@ class QetShapeItem : public QetGraphicsItem
QBrush m_brush;
QPointF m_P1, m_P2, m_old_P1, m_old_P2;
QPolygonF m_polygon, m_old_polygon;
bool m_hovered,
m_mouse_grab_handler;
bool m_hovered;
int m_vector_index;
QetGraphicsHandlerUtility m_handler;
bool m_close = false;
int m_resize_mode = 1;
QVector<QetGraphicsHandlerItem *> m_handler_vector;
};
#endif // QETSHAPEITEM_H

View File

@@ -68,7 +68,9 @@ ConductorPropertiesWidget::~ConductorPropertiesWidget()
*/
void ConductorPropertiesWidget::setProperties(const ConductorProperties &properties)
{
if (m_properties == properties) return;
if (m_properties == properties)
return;
m_properties = properties;
setColorButton(m_properties.color);