diff --git a/src/ifcblenderexport/blenderbim/cut_ifc.py b/src/ifcblenderexport/blenderbim/cut_ifc.py index b3710a6c0b..bf488eb4fd 100644 --- a/src/ifcblenderexport/blenderbim/cut_ifc.py +++ b/src/ifcblenderexport/blenderbim/cut_ifc.py @@ -778,7 +778,6 @@ class SvgWriter(): text_position = (end * self.scale) + perpendicular + (3 * vector.normalized()) else: text_position = (mid * self.scale) + perpendicular - print(sheet_dimension) rotation = degrees(vector.angle_signed(Vector((1, 0)))) line = self.svg.add(self.svg.line(start=tuple(start * self.scale), end=tuple(end * self.scale), class_=' '.join(classes))) @@ -881,17 +880,17 @@ class SvgWriter(): path['stroke-dasharray'] = '12.5, 3, 3, 3' text_position = Vector(( (x_offset + spline.points[0].co.x) * self.scale, - ((y_offset - spline.points[0].co.y) * self.scale) - 7 + ((y_offset - spline.points[0].co.y) * self.scale) - 3.5 )) - # TODO: unhardcode mm unit - rl = round(((self.ifc_cutter.section_level_obj.matrix_world @ - spline.points[0].co).xyz + self.ifc_cutter.section_level_obj.location).z * 1000) - self.svg.add(self.svg.text('RL +{}'.format(rl), insert=tuple(text_position), **{ + # TODO: unhardcode m unit + rl = ((self.ifc_cutter.section_level_obj.matrix_world @ + spline.points[0].co).xyz + self.ifc_cutter.section_level_obj.location).z + self.svg.add(self.svg.text('RL +{:.3f}m'.format(rl), insert=tuple(text_position), **{ 'font-size': '4.13', # 2.5 'font-family': 'OpenGost Type B TT', - 'text-anchor': 'middle', - 'alignment-baseline': 'middle', - 'dominant-baseline': 'middle' + 'text-anchor': 'start', + 'alignment-baseline': 'baseline', + 'dominant-baseline': 'baseline' })) if self.ifc_cutter.stair_obj: @@ -932,13 +931,18 @@ class SvgWriter(): else: alignment_baseline = 'baseline' - self.svg.add(self.svg.text(text_obj.data.body, insert=tuple(text_position * self.scale), **{ - 'font-size': '4.13', # 2.5 - 'font-family': 'OpenGost Type B TT', - 'text-anchor': text_anchor, - 'alignment-baseline': alignment_baseline, - 'dominant-baseline': alignment_baseline - })) + for line_number, text_line in enumerate(text_obj.data.body.split('\n')): + self.svg.add(self.svg.text( + text_line, + insert=tuple((text_position * self.scale) + Vector((0, 3.5*line_number))), + **{ + 'font-size': '4.13', # 2.5 + 'font-family': 'OpenGost Type B TT', + 'text-anchor': text_anchor, + 'alignment-baseline': alignment_baseline, + 'dominant-baseline': alignment_baseline + } + )) def draw_cut_polygons(self): for polygon in self.ifc_cutter.cut_polygons: diff --git a/src/ifcblenderexport/blenderbim/data/templates/defs.svg b/src/ifcblenderexport/blenderbim/data/templates/defs.svg index ded39efb68..7b42231f77 100644 --- a/src/ifcblenderexport/blenderbim/data/templates/defs.svg +++ b/src/ifcblenderexport/blenderbim/data/templates/defs.svg @@ -47,9 +47,10 @@ - - - + + + + diff --git a/src/ifcblenderexport/blenderbim/operator.py b/src/ifcblenderexport/blenderbim/operator.py index d4248a0f69..ced7e0ce35 100644 --- a/src/ifcblenderexport/blenderbim/operator.py +++ b/src/ifcblenderexport/blenderbim/operator.py @@ -761,7 +761,7 @@ class CutSection(bpy.types.Operator): bl_label = 'Cut Section' def execute(self, context): - camera = bpy.context.active_object + camera = bpy.context.scene.camera if not (camera.type == 'CAMERA' and camera.data.type == 'ORTHO'): return {'FINISHED'} self.diagram_name = camera.name