From 4f7925580ac6d871e240a0410f1c40b2f38a5a88 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Thu, 12 Dec 2019 18:17:39 +1100 Subject: [PATCH] Implement dimension text rotation, technical font, and dimension position --- src/ifcblenderexport/blenderbim/cut_ifc.py | 23 +++++++++++++++--- .../data/fonts/OpenGost Type B TT.ttf | Bin 0 -> 54076 bytes 2 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 src/ifcblenderexport/blenderbim/data/fonts/OpenGost Type B TT.ttf diff --git a/src/ifcblenderexport/blenderbim/cut_ifc.py b/src/ifcblenderexport/blenderbim/cut_ifc.py index 3c2f6094b6..47ea6e47d5 100644 --- a/src/ifcblenderexport/blenderbim/cut_ifc.py +++ b/src/ifcblenderexport/blenderbim/cut_ifc.py @@ -6,6 +6,7 @@ import pickle import sys from pathlib import Path from mathutils import Vector +from math import degrees import xml.etree.ElementTree as ET import svgwrite @@ -679,13 +680,29 @@ class SvgWriter(): end = Vector(((x_offset + v1.x), (y_offset - v1.y))) mid = ((end - start) / 2) + start # TODO: hardcoded meters to mm conversion, until I properly do units - dimension = (end - start).length * 1000 + vector = end - start + if (end.y - start.y) * self.scale > 1: + perpendicular = Vector((-vector.y, vector.x)).normalized() + else: + perpendicular = Vector((vector.y, -vector.x)).normalized() + text_position = (mid * self.scale) + perpendicular + dimension = vector.length * 1000 + rotation = -degrees(vector.angle(Vector((1, 0)))) line = self.svg.add(self.svg.line(start=tuple(start * self.scale), end=tuple(end * self.scale), class_=' '.join(classes))) line['marker-start'] = 'url(#dimension-marker)' line['marker-end'] = 'url(#dimension-marker)' - self.svg.add(self.svg.text(str(round(dimension)), insert=tuple(mid * self.scale), **{ - 'font-size': '0.2mm' + # Standard font sizes 1.8, 2.5, 3.5, 5, 7 + # Equivalent for OpenGost Type B: 2.97, 4.13, 5.78, 8.25, 11.55 + self.svg.add(self.svg.text(str(round(dimension)), insert=tuple(text_position), **{ + 'transform': 'rotate({} {} {})'.format( + rotation, + text_position.x, + text_position.y + ), + 'font-size': '4.13', # 2.5 + 'font-family': 'OpenGost Type B TT', + 'text-anchor': 'middle' })) def draw_cut_polygons(self): diff --git a/src/ifcblenderexport/blenderbim/data/fonts/OpenGost Type B TT.ttf b/src/ifcblenderexport/blenderbim/data/fonts/OpenGost Type B TT.ttf new file mode 100644 index 0000000000000000000000000000000000000000..f4d86985cff7024c482ba0510da0b34fced8d494 GIT binary patch literal 54076 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

W*Uu-PQ&fKmR^2Hwc zf`z#lFQhMSIz2cKye!QZGr7UexTVw=w+^WDxYQPBa>IiXH*^%@hFovl*irZ@4UHqR zNDmFp^&(!JG-N6bi!r1P^9{uZ+BI9Pd9+ZkY3eAv%VyIKrMNYxUswabrvHij2OfTR AZvX%Q literal 0 HcmV?d00001