mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-09 17:31:45 +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_slab.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():
|
||||
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_slab.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 math import radians, atan, tan, cos, sin, atan2
|
||||
from pathlib import Path
|
||||
from bpy.app.handlers import persistent
|
||||
|
||||
colour_list = [
|
||||
(.651, .81, .892, 1),
|
||||
@@ -40,6 +41,22 @@ colour_list = [
|
||||
(.993, .999, .6, 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):
|
||||
bl_idname = "export_ifc.bim"
|
||||
bl_label = "Export IFC"
|
||||
|
||||
@@ -543,6 +543,8 @@ class BIMCameraProperties(PropertyGroup):
|
||||
view_name: StringProperty(name="View Name")
|
||||
diagram_scale: EnumProperty(items=getDiagramScales, name='Drawing 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')
|
||||
cut_objects: EnumProperty(items=[
|
||||
('.IfcWall|.IfcSlab|.IfcCurtainWall|.IfcStair|.IfcStairFlight|.IfcColumn|.IfcBeam|.IfcMember|.IfcCovering',
|
||||
|
||||
@@ -906,6 +906,11 @@ class BIM_PT_camera(Panel):
|
||||
row = layout.row()
|
||||
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.prop(props, 'diagram_scale')
|
||||
if props.diagram_scale == 'CUSTOM':
|
||||
|
||||
Reference in New Issue
Block a user