mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-19 14:41:25 +00:00
Different drawings can now have different aspect ratios. Finally!
This commit is contained in:
@@ -341,6 +341,7 @@ if bpy is not None:
|
|||||||
bpy.types.VIEW3D_MT_mesh_add.append(model_window.add_object_button)
|
bpy.types.VIEW3D_MT_mesh_add.append(model_window.add_object_button)
|
||||||
bpy.types.VIEW3D_MT_mesh_add.append(model_slab.add_object_button)
|
bpy.types.VIEW3D_MT_mesh_add.append(model_slab.add_object_button)
|
||||||
bpy.types.VIEW3D_MT_mesh_add.append(model_opening.add_object_button)
|
bpy.types.VIEW3D_MT_mesh_add.append(model_opening.add_object_button)
|
||||||
|
bpy.app.handlers.depsgraph_update_pre.append(operator.depsgraph_update_pre_handler)
|
||||||
|
|
||||||
def unregister():
|
def unregister():
|
||||||
for cls in reversed(classes):
|
for cls in reversed(classes):
|
||||||
@@ -367,3 +368,4 @@ if bpy is not None:
|
|||||||
bpy.types.VIEW3D_MT_mesh_add.remove(model_window.add_object_button)
|
bpy.types.VIEW3D_MT_mesh_add.remove(model_window.add_object_button)
|
||||||
bpy.types.VIEW3D_MT_mesh_add.remove(model_slab.add_object_button)
|
bpy.types.VIEW3D_MT_mesh_add.remove(model_slab.add_object_button)
|
||||||
bpy.types.VIEW3D_MT_mesh_add.remove(model_opening.add_object_button)
|
bpy.types.VIEW3D_MT_mesh_add.remove(model_opening.add_object_button)
|
||||||
|
bpy.app.handlers.depsgraph_update_pre.remove(operator.depsgraph_update_pre_handler)
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ from itertools import cycle
|
|||||||
from mathutils import Vector, Matrix, Euler
|
from mathutils import Vector, Matrix, Euler
|
||||||
from math import radians, atan, tan, cos, sin, atan2
|
from math import radians, atan, tan, cos, sin, atan2
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
from bpy.app.handlers import persistent
|
||||||
|
|
||||||
colour_list = [
|
colour_list = [
|
||||||
(.651, .81, .892, 1),
|
(.651, .81, .892, 1),
|
||||||
@@ -40,6 +41,22 @@ colour_list = [
|
|||||||
(.993, .999, .6, 1),
|
(.993, .999, .6, 1),
|
||||||
(.693, .349, .157, 1)]
|
(.693, .349, .157, 1)]
|
||||||
|
|
||||||
|
|
||||||
|
@persistent
|
||||||
|
def depsgraph_update_pre_handler(scene):
|
||||||
|
set_active_camera_resolution(scene)
|
||||||
|
|
||||||
|
|
||||||
|
def set_active_camera_resolution(scene):
|
||||||
|
if not scene.camera \
|
||||||
|
or '/' not in scene.camera.name:
|
||||||
|
return
|
||||||
|
if scene.render.resolution_x != scene.camera.data.BIMCameraProperties.raster_x \
|
||||||
|
or scene.render.resolution_y != scene.camera.data.BIMCameraProperties.raster_y:
|
||||||
|
scene.render.resolution_x = scene.camera.data.BIMCameraProperties.raster_x
|
||||||
|
scene.render.resolution_y = scene.camera.data.BIMCameraProperties.raster_y
|
||||||
|
|
||||||
|
|
||||||
class ExportIFC(bpy.types.Operator):
|
class ExportIFC(bpy.types.Operator):
|
||||||
bl_idname = "export_ifc.bim"
|
bl_idname = "export_ifc.bim"
|
||||||
bl_label = "Export IFC"
|
bl_label = "Export IFC"
|
||||||
|
|||||||
@@ -543,6 +543,8 @@ class BIMCameraProperties(PropertyGroup):
|
|||||||
view_name: StringProperty(name="View Name")
|
view_name: StringProperty(name="View Name")
|
||||||
diagram_scale: EnumProperty(items=getDiagramScales, name='Drawing Scale')
|
diagram_scale: EnumProperty(items=getDiagramScales, name='Drawing Scale')
|
||||||
custom_diagram_scale: StringProperty(name='Custom Scale')
|
custom_diagram_scale: StringProperty(name='Custom Scale')
|
||||||
|
raster_x: IntProperty(name='Raster X', default=1000)
|
||||||
|
raster_y: IntProperty(name='Raster Y', default=1000)
|
||||||
is_nts: BoolProperty(name='Is NTS')
|
is_nts: BoolProperty(name='Is NTS')
|
||||||
cut_objects: EnumProperty(items=[
|
cut_objects: EnumProperty(items=[
|
||||||
('.IfcWall|.IfcSlab|.IfcCurtainWall|.IfcStair|.IfcStairFlight|.IfcColumn|.IfcBeam|.IfcMember|.IfcCovering',
|
('.IfcWall|.IfcSlab|.IfcCurtainWall|.IfcStair|.IfcStairFlight|.IfcColumn|.IfcBeam|.IfcMember|.IfcCovering',
|
||||||
|
|||||||
@@ -906,6 +906,11 @@ class BIM_PT_camera(Panel):
|
|||||||
row = layout.row()
|
row = layout.row()
|
||||||
row.prop(props, 'cut_objects_custom')
|
row.prop(props, 'cut_objects_custom')
|
||||||
|
|
||||||
|
row = layout.row()
|
||||||
|
row.prop(props, 'raster_x')
|
||||||
|
row = layout.row()
|
||||||
|
row.prop(props, 'raster_y')
|
||||||
|
|
||||||
row = layout.row()
|
row = layout.row()
|
||||||
row.prop(props, 'diagram_scale')
|
row.prop(props, 'diagram_scale')
|
||||||
if props.diagram_scale == 'CUSTOM':
|
if props.diagram_scale == 'CUSTOM':
|
||||||
|
|||||||
Reference in New Issue
Block a user