mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-26 02:07:36 +00:00
Fix #882. All SVG scales are now standardised to human units with appropriate spacing and placement. Views now appear within the titleblock border.
This commit is contained in:
@@ -5,10 +5,11 @@
|
|||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
width="841mm"
|
viewBox="0 0 841 594"
|
||||||
height="594mm"
|
id="root"
|
||||||
version="1.1"
|
version="1.1"
|
||||||
id="root">
|
height="594mm"
|
||||||
|
width="841mm">
|
||||||
<defs
|
<defs
|
||||||
id="defs901" />
|
id="defs901" />
|
||||||
<metadata
|
<metadata
|
||||||
@@ -26,176 +27,182 @@
|
|||||||
<desc
|
<desc
|
||||||
id="desc89610">/home/dion/Projects/IfcOpenShell/src/ifcblenderexport/titleblock.dxf - scale = 1.000000, origin = (0.000000, 0.000000), method = manual</desc>
|
id="desc89610">/home/dion/Projects/IfcOpenShell/src/ifcblenderexport/titleblock.dxf - scale = 1.000000, origin = (0.000000, 0.000000), method = manual</desc>
|
||||||
<rect
|
<rect
|
||||||
y="3.1719057e-05"
|
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2.07874;stroke-linecap:round;stroke-linejoin:round;stop-color:#000000"
|
||||||
x="-4.3253262e-05"
|
|
||||||
height="2245.0393"
|
|
||||||
width="3178.5828"
|
|
||||||
id="rect1036"
|
id="rect1036"
|
||||||
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2.07874;stroke-linecap:round;stroke-linejoin:round;stop-color:#000000" />
|
width="841"
|
||||||
|
height="594"
|
||||||
|
x="-4.3253262e-05"
|
||||||
|
y="3.1719057e-05" />
|
||||||
<g
|
<g
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458334,-3.180917e-5,297.00003)"
|
||||||
id="g90667"
|
id="g90667"
|
||||||
transform="translate(0,1122.5197)">
|
style="stroke-width:0.94488188;stroke-miterlimit:4;stroke-dasharray:none">
|
||||||
<rect
|
<rect
|
||||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.88976383;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
y="-1046.7792"
|
||||||
id="rect116616"
|
|
||||||
width="3027.1016"
|
|
||||||
height="2093.5583"
|
|
||||||
x="75.740562"
|
x="75.740562"
|
||||||
y="-1046.7792" />
|
height="2093.5583"
|
||||||
|
width="3027.1016"
|
||||||
|
id="rect116616"
|
||||||
|
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.88976377;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
id="text116526"
|
||||||
style="font-style:normal;font-weight:normal;font-size:15.15362644px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
y="909.15491"
|
||||||
x="113.70713"
|
x="113.70713"
|
||||||
y="909.15491"
|
style="font-style:normal;font-weight:normal;font-size:15.1536px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.94488188;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
id="text116526"><tspan
|
xml:space="preserve"><tspan
|
||||||
id="tspan116524"
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.1536px;line-height:100%;font-family:'OpenGost Type B TT';-inkscape-font-specification:'OpenGost Type B TT';text-align:center;text-anchor:middle;stroke-width:0.94488188;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
y="909.15491"
|
||||||
x="113.70713"
|
x="113.70713"
|
||||||
y="909.15491"
|
id="tspan116524">REV. NO.</tspan></text>
|
||||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.15362644px;line-height:100%;font-family:'OpenGost Type B TT';-inkscape-font-specification:'OpenGost Type B TT';text-align:center;text-anchor:middle;stroke-width:1px">REV. NO.</tspan></text>
|
|
||||||
<path
|
<path
|
||||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.75590551;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
id="path116530"
|
||||||
d="M 75.590564,895.24802 H 3102.9921"
|
d="M 75.590564,895.24802 H 3102.9921"
|
||||||
id="path116530" />
|
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.94488188;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
<path
|
<path
|
||||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.75590551;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
id="path116532"
|
||||||
d="M 151.6811,895.24802 V 1046.9291"
|
d="M 151.6811,895.24802 V 1046.9291"
|
||||||
id="path116532" />
|
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.94488188;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
<path
|
<path
|
||||||
id="path116534"
|
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.94488188;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="M 454.04331,895.24802 V 1046.9291"
|
d="M 454.04331,895.24802 V 1046.9291"
|
||||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.75590551;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
id="path116534" />
|
||||||
<path
|
<path
|
||||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.75590551;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
id="path116536"
|
||||||
d="M 529.63386,895.24802 V 1046.4302"
|
d="M 529.63386,895.24802 V 1046.4302"
|
||||||
id="path116536" />
|
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.94488188;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
<path
|
<path
|
||||||
id="path116538"
|
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.94488188;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="M 605.22441,895.24802 V 1046.9291"
|
d="M 605.22441,895.24802 V 1046.9291"
|
||||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.75590551;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
id="path116538" />
|
||||||
<path
|
<path
|
||||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.75590551;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
id="path116540"
|
||||||
d="M 75.590564,914.14565 H 605.22441"
|
d="M 75.590564,914.14565 H 605.22441"
|
||||||
id="path116540" />
|
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.94488188;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
<path
|
<path
|
||||||
id="path116542"
|
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.94488188;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="M 75.590564,933.04329 H 605.22441"
|
d="M 75.590564,933.04329 H 605.22441"
|
||||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.75590551;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
id="path116542" />
|
||||||
<path
|
<path
|
||||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.75590551;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
id="path116544"
|
||||||
d="M 75.590564,951.94093 H 605.22441"
|
d="M 75.590564,951.94093 H 605.22441"
|
||||||
id="path116544" />
|
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.94488188;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
<path
|
<path
|
||||||
id="path116546"
|
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.94488188;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="M 75.590564,970.83857 H 605.22441"
|
d="M 75.590564,970.83857 H 605.22441"
|
||||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.75590551;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
id="path116546" />
|
||||||
<path
|
<path
|
||||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.75590551;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
id="path116548"
|
||||||
d="M 75.590564,989.73621 H 605.22441"
|
d="M 75.590564,989.73621 H 605.22441"
|
||||||
id="path116548" />
|
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.94488188;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
<path
|
<path
|
||||||
id="path116550"
|
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.94488188;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
d="M 75.590564,1008.6338 H 605.22441"
|
d="M 75.590564,1008.6338 H 605.22441"
|
||||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.75590551;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
id="path116550" />
|
||||||
<path
|
<path
|
||||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.75590551;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
id="path116552"
|
||||||
d="M 75.590564,1027.5315 H 605.22441"
|
d="M 75.590564,1027.5315 H 605.22441"
|
||||||
id="path116552" />
|
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.94488188;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
<path
|
<path
|
||||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.75590551;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
id="path116576"
|
||||||
d="M 2800.5,895.24802 V 1046.9291"
|
d="M 2800.5,895.24802 V 1046.9291"
|
||||||
id="path116576" />
|
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.94488188;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
<path
|
<path
|
||||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.75590551;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
id="path116578"
|
||||||
d="m 2800.5,1008.6338 h 302.4921"
|
d="m 2800.5,1008.6338 h 302.4921"
|
||||||
id="path116578" />
|
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.94488188;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
<path
|
<path
|
||||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.75590551;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
id="path116598"
|
||||||
d="m 3027.4027,1008.6338 v 38.2953"
|
d="m 3027.4027,1008.6338 v 38.2953"
|
||||||
id="path116598" />
|
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.94488188;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
<text
|
<text
|
||||||
id="text1395"
|
xml:space="preserve"
|
||||||
y="909.15491"
|
style="font-style:normal;font-weight:normal;font-size:15.1536px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.94488188;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
x="302.86591"
|
x="302.86591"
|
||||||
style="font-style:normal;font-weight:normal;font-size:15.15362644px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
|
||||||
xml:space="preserve"><tspan
|
|
||||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.15362644px;line-height:100%;font-family:'OpenGost Type B TT';-inkscape-font-specification:'OpenGost Type B TT';text-align:center;text-anchor:middle;stroke-width:1px"
|
|
||||||
y="909.15491"
|
|
||||||
x="302.86591"
|
|
||||||
id="tspan1393">DESCRIPTION</tspan></text>
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
style="font-style:normal;font-weight:normal;font-size:15.15362644px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
|
||||||
x="491.97513"
|
|
||||||
y="909.15491"
|
y="909.15491"
|
||||||
id="text1399"><tspan
|
id="text1395"><tspan
|
||||||
id="tspan1397"
|
id="tspan1393"
|
||||||
x="491.97513"
|
x="302.86591"
|
||||||
y="909.15491"
|
y="909.15491"
|
||||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.15362644px;line-height:100%;font-family:'OpenGost Type B TT';-inkscape-font-specification:'OpenGost Type B TT';text-align:center;text-anchor:middle;stroke-width:1px">AUTHOR</tspan></text>
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.1536px;line-height:100%;font-family:'OpenGost Type B TT';-inkscape-font-specification:'OpenGost Type B TT';text-align:center;text-anchor:middle;stroke-width:0.94488188;stroke-miterlimit:4;stroke-dasharray:none">DESCRIPTION</tspan></text>
|
||||||
<text
|
<text
|
||||||
id="text1403"
|
id="text1399"
|
||||||
y="909.15485"
|
y="909.15491"
|
||||||
|
x="491.97513"
|
||||||
|
style="font-style:normal;font-weight:normal;font-size:15.1536px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.94488188;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.1536px;line-height:100%;font-family:'OpenGost Type B TT';-inkscape-font-specification:'OpenGost Type B TT';text-align:center;text-anchor:middle;stroke-width:0.94488188;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
y="909.15491"
|
||||||
|
x="491.97513"
|
||||||
|
id="tspan1397">AUTHOR</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-weight:normal;font-size:16.0591px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.94488188;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
x="568.05585"
|
x="568.05585"
|
||||||
style="font-style:normal;font-weight:normal;font-size:16.05907059px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
y="909.15485"
|
||||||
xml:space="preserve"><tspan
|
id="text1403"><tspan
|
||||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.05907059px;line-height:100%;font-family:'OpenGost Type B TT';-inkscape-font-specification:'OpenGost Type B TT';text-align:center;text-anchor:middle;stroke-width:0.99999994px"
|
id="tspan1401"
|
||||||
y="909.15485"
|
|
||||||
x="568.05585"
|
x="568.05585"
|
||||||
id="tspan1401">DATE</tspan></text>
|
y="909.15485"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.0591px;line-height:100%;font-family:'OpenGost Type B TT';-inkscape-font-specification:'OpenGost Type B TT';text-align:center;text-anchor:middle;stroke-width:0.94488188;stroke-miterlimit:4;stroke-dasharray:none">DATE</tspan></text>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-style:normal;font-weight:normal;font-size:13.39182091px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
style="font-style:normal;font-weight:normal;font-size:11.2271px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.94488188;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
x="2829.6274"
|
|
||||||
y="1037.4314"
|
|
||||||
id="text1417"><tspan
|
|
||||||
id="tspan1415"
|
|
||||||
x="2829.6274"
|
|
||||||
y="1037.4314"
|
|
||||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.39182091px;line-height:100%;font-family:'OpenGost Type B TT';-inkscape-font-specification:'OpenGost Type B TT';text-align:center;text-anchor:middle;stroke-width:1px">{{number}}</tspan></text>
|
|
||||||
<text
|
|
||||||
id="text1421"
|
|
||||||
y="1020.4988"
|
|
||||||
x="2839.5081"
|
x="2839.5081"
|
||||||
style="font-style:normal;font-weight:normal;font-size:11.22711563px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
y="1020.4988"
|
||||||
xml:space="preserve"><tspan
|
id="text1421"><tspan
|
||||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.22711563px;line-height:100%;font-family:'OpenGost Type B TT';-inkscape-font-specification:'OpenGost Type B TT';text-align:center;text-anchor:middle;stroke-width:0.99999994px"
|
id="tspan1419"
|
||||||
y="1020.4988"
|
|
||||||
x="2839.5081"
|
x="2839.5081"
|
||||||
id="tspan1419">DRAWING NUMBER</tspan></text>
|
y="1020.4988"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.2271px;line-height:100%;font-family:'OpenGost Type B TT';-inkscape-font-specification:'OpenGost Type B TT';text-align:center;text-anchor:middle;stroke-width:0.94488188;stroke-miterlimit:4;stroke-dasharray:none">DRAWING NUMBER</tspan></text>
|
||||||
<text
|
<text
|
||||||
id="text1425"
|
id="text1429"
|
||||||
y="1037.4314"
|
y="1020.4988"
|
||||||
x="3056.6086"
|
x="3038.5586"
|
||||||
style="font-style:normal;font-weight:normal;font-size:13.39182091px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
style="font-style:normal;font-weight:normal;font-size:11.2271px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.94488188;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
xml:space="preserve"><tspan
|
xml:space="preserve"><tspan
|
||||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.39182091px;line-height:100%;font-family:'OpenGost Type B TT';-inkscape-font-specification:'OpenGost Type B TT';text-align:center;text-anchor:middle;stroke-width:1px"
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.2271px;line-height:100%;font-family:'OpenGost Type B TT';-inkscape-font-specification:'OpenGost Type B TT';text-align:center;text-anchor:middle;stroke-width:0.94488188;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
y="1037.4314"
|
y="1020.4988"
|
||||||
x="3056.6086"
|
x="3038.5586"
|
||||||
id="tspan1423">{{revision}}</tspan></text>
|
id="tspan1427">REV</tspan></text>
|
||||||
|
<text
|
||||||
|
id="text2529"
|
||||||
|
y="1036.1166"
|
||||||
|
x="3030.9653"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3918px;line-height:125%;font-family:'OpenGost Type B TT';-inkscape-font-specification:'OpenGost Type B TT';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.999999px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
style="stroke-width:0.999999px"
|
||||||
|
y="1036.1166"
|
||||||
|
x="3030.9653"
|
||||||
|
id="tspan2527">{{revision}}</tspan></text>
|
||||||
<text
|
<text
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
style="font-style:normal;font-weight:normal;font-size:11.22711563px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3918px;line-height:125%;font-family:'OpenGost Type B TT';-inkscape-font-specification:'OpenGost Type B TT';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.999999px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
x="3038.5586"
|
x="2804.7021"
|
||||||
y="1020.4988"
|
y="1036.1166"
|
||||||
id="text1429"><tspan
|
id="text2533"><tspan
|
||||||
id="tspan1427"
|
id="tspan2531"
|
||||||
x="3038.5586"
|
x="2804.7021"
|
||||||
y="1020.4988"
|
y="1036.1166"
|
||||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.22711563px;line-height:100%;font-family:'OpenGost Type B TT';-inkscape-font-specification:'OpenGost Type B TT';text-align:center;text-anchor:middle;stroke-width:0.99999994px">REV</tspan></text>
|
style="stroke-width:0.999999px">{{number}}</tspan></text>
|
||||||
</g>
|
</g>
|
||||||
<g
|
<g
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458334,-3.180917e-5,297.00003)"
|
||||||
id="g90669"
|
id="g90669"
|
||||||
transform="translate(0,1122.5197)" />
|
style="stroke-width:3.77953" />
|
||||||
<g
|
<g
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458334,-3.180917e-5,297.00003)"
|
||||||
id="g90671"
|
id="g90671"
|
||||||
transform="translate(0,1122.5197)" />
|
style="stroke-width:3.77953" />
|
||||||
<g
|
<g
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458334,-3.180917e-5,297.00003)"
|
||||||
id="g90673"
|
id="g90673"
|
||||||
transform="translate(0,1122.5197)" />
|
style="stroke-width:3.77953" />
|
||||||
<g
|
<g
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458334,-3.180917e-5,297.00003)"
|
||||||
id="g90675"
|
id="g90675"
|
||||||
transform="translate(0,1122.5197)" />
|
style="stroke-width:3.77953" />
|
||||||
<g
|
<g
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458334,-3.180917e-5,297.00003)"
|
||||||
id="g90677"
|
id="g90677"
|
||||||
transform="translate(0,1122.5197)" />
|
style="stroke-width:3.77953" />
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
@@ -150,6 +150,8 @@ def getDiagramScales(self, context):
|
|||||||
|
|
||||||
|
|
||||||
def updateDrawingName(self, context):
|
def updateDrawingName(self, context):
|
||||||
|
if not self.camera:
|
||||||
|
return
|
||||||
if self.camera.name == self.name:
|
if self.camera.name == self.name:
|
||||||
return
|
return
|
||||||
self.camera.name = 'IfcGroup/{}'.format(self.name)
|
self.camera.name = 'IfcGroup/{}'.format(self.name)
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ class SheetBuilder:
|
|||||||
root.attrib['version'] = '1.1'
|
root.attrib['version'] = '1.1'
|
||||||
root.attrib['width'] = '841mm'
|
root.attrib['width'] = '841mm'
|
||||||
root.attrib['height'] = '594mm'
|
root.attrib['height'] = '594mm'
|
||||||
|
root.attrib['viewBox'] = '0 0 841 594'
|
||||||
|
|
||||||
view = ET.SubElement(root, 'g')
|
view = ET.SubElement(root, 'g')
|
||||||
view.attrib['data-type'] = 'titleblock'
|
view.attrib['data-type'] = 'titleblock'
|
||||||
@@ -27,8 +28,8 @@ class SheetBuilder:
|
|||||||
titleblock.attrib['xlink:href'] = '../templates/titleblock.svg'
|
titleblock.attrib['xlink:href'] = '../templates/titleblock.svg'
|
||||||
titleblock.attrib['x'] = '0'
|
titleblock.attrib['x'] = '0'
|
||||||
titleblock.attrib['y'] = '0'
|
titleblock.attrib['y'] = '0'
|
||||||
titleblock.attrib['width'] = '841mm'
|
titleblock.attrib['width'] = '841'
|
||||||
titleblock.attrib['height'] = '594mm'
|
titleblock.attrib['height'] = '594'
|
||||||
|
|
||||||
with open(sheet_path, 'w') as f:
|
with open(sheet_path, 'w') as f:
|
||||||
f.write(minidom.parseString(ET.tostring(root)).toprettyxml(indent=' '))
|
f.write(minidom.parseString(ET.tostring(root)).toprettyxml(indent=' '))
|
||||||
@@ -51,26 +52,24 @@ class SheetBuilder:
|
|||||||
# here to accommodate browsers which do not nest images.
|
# here to accommodate browsers which do not nest images.
|
||||||
view = ET.SubElement(sheet_root, 'g')
|
view = ET.SubElement(sheet_root, 'g')
|
||||||
view.attrib['data-type'] = 'drawing'
|
view.attrib['data-type'] = 'drawing'
|
||||||
|
view_width = self.convert_to_mm(view_root.attrib.get('width'))
|
||||||
|
view_height = self.convert_to_mm(view_root.attrib.get('height'))
|
||||||
|
|
||||||
background = ET.SubElement(view, 'image')
|
background = ET.SubElement(view, 'image')
|
||||||
background.attrib['xlink:href'] = '../diagrams/{}.png'.format(view_name)
|
background.attrib['xlink:href'] = '../diagrams/{}.png'.format(view_name)
|
||||||
background.attrib['x'] = '0'
|
background.attrib['x'] = '30'
|
||||||
background.attrib['y'] = '0'
|
background.attrib['y'] = '30'
|
||||||
background.attrib['width'] = view_root.attrib.get('width')
|
background.attrib['width'] = str(view_width)
|
||||||
background.attrib['height'] = view_root.attrib.get('height')
|
background.attrib['height'] = str(view_height)
|
||||||
|
|
||||||
foreground = ET.SubElement(view, 'image')
|
foreground = ET.SubElement(view, 'image')
|
||||||
foreground.attrib['xlink:href'] = '../diagrams/{}.svg'.format(view_name)
|
foreground.attrib['xlink:href'] = '../diagrams/{}.svg'.format(view_name)
|
||||||
foreground.attrib['x'] = '0'
|
foreground.attrib['x'] = '30'
|
||||||
foreground.attrib['y'] = '0'
|
foreground.attrib['y'] = '30'
|
||||||
foreground.attrib['width'] = view_root.attrib.get('width')
|
foreground.attrib['width'] = str(view_width)
|
||||||
foreground.attrib['height'] = view_root.attrib.get('height')
|
foreground.attrib['height'] = str(view_height)
|
||||||
|
|
||||||
title = ET.SubElement(view, 'image')
|
|
||||||
title.attrib['xlink:href'] = '../templates/view-title.svg'
|
|
||||||
title.attrib['x'] = '0'
|
|
||||||
title.attrib['y'] = view_root.attrib.get('height')
|
|
||||||
|
|
||||||
|
self.add_view_title(30, view_height+35, view)
|
||||||
sheet_tree.write(sheet_path)
|
sheet_tree.write(sheet_path)
|
||||||
|
|
||||||
def add_schedule(self, schedule_name, sheet_name):
|
def add_schedule(self, schedule_name, sheet_name):
|
||||||
@@ -85,24 +84,33 @@ class SheetBuilder:
|
|||||||
|
|
||||||
view_tree = ET.parse(view_path)
|
view_tree = ET.parse(view_path)
|
||||||
view_root = view_tree.getroot()
|
view_root = view_tree.getroot()
|
||||||
|
view_width = self.convert_to_mm(view_root.attrib.get('width'))
|
||||||
|
view_height = self.convert_to_mm(view_root.attrib.get('height'))
|
||||||
|
|
||||||
group = ET.SubElement(sheet_root, 'g')
|
group = ET.SubElement(sheet_root, 'g')
|
||||||
group.attrib['data-type'] = 'schedule'
|
group.attrib['data-type'] = 'schedule'
|
||||||
|
|
||||||
foreground = ET.SubElement(group, 'image')
|
foreground = ET.SubElement(group, 'image')
|
||||||
foreground.attrib['xlink:href'] = '../schedules/{}.svg'.format(schedule_name)
|
foreground.attrib['xlink:href'] = '../schedules/{}.svg'.format(schedule_name)
|
||||||
foreground.attrib['x'] = '0'
|
foreground.attrib['x'] = '30'
|
||||||
foreground.attrib['y'] = '0'
|
foreground.attrib['y'] = '30'
|
||||||
foreground.attrib['width'] = view_root.attrib.get('width')
|
foreground.attrib['width'] = str(view_width)
|
||||||
foreground.attrib['height'] = view_root.attrib.get('height')
|
foreground.attrib['height'] = str(view_height)
|
||||||
|
|
||||||
title = ET.SubElement(group, 'image')
|
|
||||||
title.attrib['xlink:href'] = '../templates/view-title.svg'
|
|
||||||
title.attrib['x'] = '0'
|
|
||||||
title.attrib['y'] = view_root.attrib.get('height')
|
|
||||||
|
|
||||||
|
self.add_view_title(30, view_height+35, group)
|
||||||
sheet_tree.write(sheet_path)
|
sheet_tree.write(sheet_path)
|
||||||
|
|
||||||
|
def add_view_title(self, x, y, parent):
|
||||||
|
title_tree = ET.parse(os.path.join(self.data_dir, 'templates', 'view-title.svg'))
|
||||||
|
title_root = title_tree.getroot()
|
||||||
|
title = ET.SubElement(parent, 'image')
|
||||||
|
title.attrib['xlink:href'] = '../templates/view-title.svg'
|
||||||
|
title.attrib['x'] = str(x)
|
||||||
|
title.attrib['y'] = str(y)
|
||||||
|
title.attrib['width'] = str(self.convert_to_mm(title_root.attrib.get('width')))
|
||||||
|
title.attrib['height'] = str(self.convert_to_mm(title_root.attrib.get('height')))
|
||||||
|
|
||||||
|
|
||||||
def build(self, sheet_name):
|
def build(self, sheet_name):
|
||||||
os.makedirs('{}build/{}/'.format(self.data_dir, sheet_name), exist_ok=True)
|
os.makedirs('{}build/{}/'.format(self.data_dir, sheet_name), exist_ok=True)
|
||||||
|
|
||||||
@@ -184,11 +192,14 @@ class SheetBuilder:
|
|||||||
def parse_embedded_svg(self, image, data):
|
def parse_embedded_svg(self, image, data):
|
||||||
group = ET.Element('g')
|
group = ET.Element('g')
|
||||||
group.attrib['transform'] = 'translate({},{})'.format(
|
group.attrib['transform'] = 'translate({},{})'.format(
|
||||||
self.mm_to_px(self.convert_to_mm(image.attrib.get('x'))),
|
self.convert_to_mm(image.attrib.get('x')),
|
||||||
self.mm_to_px(self.convert_to_mm(image.attrib.get('y'))))
|
self.convert_to_mm(image.attrib.get('y')))
|
||||||
svg_path = self.get_href(image)
|
svg_path = self.get_href(image)
|
||||||
with open('{}sheets/{}'.format(self.data_dir, svg_path), 'r') as template:
|
with open('{}sheets/{}'.format(self.data_dir, svg_path), 'r') as template:
|
||||||
embedded = ET.fromstring(pystache.render(template.read(), data))
|
embedded = ET.fromstring(pystache.render(template.read(), data))
|
||||||
|
# viewBox should not be nested
|
||||||
|
embedded.attrib['viewBox'] = ''
|
||||||
|
# TODO: This should not be in this function
|
||||||
self.scale = embedded.attrib.get('data-scale')
|
self.scale = embedded.attrib.get('data-scale')
|
||||||
images = embedded.findall('{http://www.w3.org/2000/svg}image')
|
images = embedded.findall('{http://www.w3.org/2000/svg}image')
|
||||||
for image in images:
|
for image in images:
|
||||||
@@ -198,8 +209,6 @@ class SheetBuilder:
|
|||||||
return group
|
return group
|
||||||
|
|
||||||
def convert_to_mm(self, value):
|
def convert_to_mm(self, value):
|
||||||
if value.isnumeric():
|
|
||||||
return float(value)
|
|
||||||
if 'cm' in value:
|
if 'cm' in value:
|
||||||
return float(value[0:-2]) * 10
|
return float(value[0:-2]) * 10
|
||||||
elif 'mm' in value:
|
elif 'mm' in value:
|
||||||
@@ -214,6 +223,7 @@ class SheetBuilder:
|
|||||||
return float(value[0:-2]) * (1/72) * 2.54 * 10
|
return float(value[0:-2]) * (1/72) * 2.54 * 10
|
||||||
elif 'px' in value:
|
elif 'px' in value:
|
||||||
return float(value[0:-2]) * (1/96) * 2.54 * 10
|
return float(value[0:-2]) * (1/96) * 2.54 * 10
|
||||||
|
return float(value)
|
||||||
|
|
||||||
def mm_to_px(self, value):
|
def mm_to_px(self, value):
|
||||||
return (value / 25.4) * 96
|
return (value / 25.4) * 96
|
||||||
|
|||||||
Reference in New Issue
Block a user