mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-10 17:58:20 +00:00
Changed x_angle subtype to degrees
Now BIMModelProperties.x_angle stores data in radians internally but for user it still appears as degrees
This commit is contained in:
@@ -140,11 +140,11 @@ def update_bim_tool_props():
|
|||||||
axis = tool.Model.get_wall_axis(obj)["reference"]
|
axis = tool.Model.get_wall_axis(obj)["reference"]
|
||||||
props.extrusion_depth = extrusion.Depth * si_conversion * cos(x_angle)
|
props.extrusion_depth = extrusion.Depth * si_conversion * cos(x_angle)
|
||||||
props.length = (axis[1] - axis[0]).length
|
props.length = (axis[1] - axis[0]).length
|
||||||
props.x_angle = degrees(x_angle)
|
props.x_angle = x_angle
|
||||||
|
|
||||||
elif AuthoringData.data["active_material_usage"] == "LAYER3":
|
elif AuthoringData.data["active_material_usage"] == "LAYER3":
|
||||||
x_angle = get_x_angle(extrusion)
|
x_angle = get_x_angle(extrusion)
|
||||||
props.x_angle = degrees(x_angle)
|
props.x_angle = x_angle
|
||||||
|
|
||||||
elif AuthoringData.data["active_material_usage"] == "PROFILE":
|
elif AuthoringData.data["active_material_usage"] == "PROFILE":
|
||||||
props.extrusion_depth = extrusion.Depth * si_conversion
|
props.extrusion_depth = extrusion.Depth * si_conversion
|
||||||
|
|||||||
@@ -126,7 +126,7 @@ class BIMModelProperties(PropertyGroup):
|
|||||||
z: bpy.props.FloatProperty(name="Z", default=0.5)
|
z: bpy.props.FloatProperty(name="Z", default=0.5)
|
||||||
rl1: bpy.props.FloatProperty(name="RL", default=1) # Used for things like walls, doors, flooring, skirting, etc
|
rl1: bpy.props.FloatProperty(name="RL", default=1) # Used for things like walls, doors, flooring, skirting, etc
|
||||||
rl2: bpy.props.FloatProperty(name="RL", default=1) # Used for things like windows, other hosted furniture
|
rl2: bpy.props.FloatProperty(name="RL", default=1) # Used for things like windows, other hosted furniture
|
||||||
x_angle: bpy.props.FloatProperty(name="X Angle", default=0)
|
x_angle: bpy.props.FloatProperty(name="X Angle", default=0, subtype="ANGLE")
|
||||||
type_page: bpy.props.IntProperty(name="Type Page", default=1, update=update_type_page)
|
type_page: bpy.props.IntProperty(name="Type Page", default=1, update=update_type_page)
|
||||||
type_template: bpy.props.EnumProperty(
|
type_template: bpy.props.EnumProperty(
|
||||||
items=(
|
items=(
|
||||||
|
|||||||
@@ -139,7 +139,7 @@ class DumbSlabGenerator:
|
|||||||
self.length = 3
|
self.length = 3
|
||||||
self.rotation = 0
|
self.rotation = 0
|
||||||
self.location = Vector((0, 0, 0))
|
self.location = Vector((0, 0, 0))
|
||||||
self.x_angle = 0 if tool.Cad.is_x(props.x_angle, 0, tolerance=0.001) else radians(props.x_angle)
|
self.x_angle = 0 if tool.Cad.is_x(props.x_angle, 0, tolerance=0.001) else props.x_angle
|
||||||
return self.derive_from_cursor()
|
return self.derive_from_cursor()
|
||||||
|
|
||||||
def derive_from_cursor(self):
|
def derive_from_cursor(self):
|
||||||
@@ -274,7 +274,7 @@ class DumbSlabPlaner:
|
|||||||
extrusion.Depth = thickness
|
extrusion.Depth = thickness
|
||||||
else:
|
else:
|
||||||
props = bpy.context.scene.BIMModelProperties
|
props = bpy.context.scene.BIMModelProperties
|
||||||
x_angle = 0 if tool.Cad.is_x(props.x_angle, 0, tolerance=0.001) else radians(props.x_angle)
|
x_angle = 0 if tool.Cad.is_x(props.x_angle, 0, tolerance=0.001) else props.x_angle
|
||||||
new_rep = ifcopenshell.api.run(
|
new_rep = ifcopenshell.api.run(
|
||||||
"geometry.add_slab_representation",
|
"geometry.add_slab_representation",
|
||||||
tool.Ifc.get(),
|
tool.Ifc.get(),
|
||||||
@@ -299,7 +299,7 @@ class DumbSlabPlaner:
|
|||||||
return
|
return
|
||||||
else:
|
else:
|
||||||
props = bpy.context.scene.BIMModelProperties
|
props = bpy.context.scene.BIMModelProperties
|
||||||
x_angle = 0 if tool.Cad.is_x(props.x_angle, 0, tolerance=0.001) else radians(props.x_angle)
|
x_angle = 0 if tool.Cad.is_x(props.x_angle, 0, tolerance=0.001) else props.x_angle
|
||||||
representation = ifcopenshell.api.run(
|
representation = ifcopenshell.api.run(
|
||||||
"geometry.add_slab_representation",
|
"geometry.add_slab_representation",
|
||||||
tool.Ifc.get(),
|
tool.Ifc.get(),
|
||||||
|
|||||||
@@ -249,7 +249,7 @@ class ChangeExtrusionXAngle(bpy.types.Operator, tool.Ifc.Operator):
|
|||||||
def _execute(self, context):
|
def _execute(self, context):
|
||||||
layer2_objs = []
|
layer2_objs = []
|
||||||
other_objs = []
|
other_objs = []
|
||||||
x_angle = radians(self.x_angle)
|
x_angle = self.x_angle
|
||||||
unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get())
|
unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get())
|
||||||
for obj in context.selected_objects:
|
for obj in context.selected_objects:
|
||||||
element = tool.Ifc.get_entity(obj)
|
element = tool.Ifc.get_entity(obj)
|
||||||
@@ -440,7 +440,7 @@ class DumbWallGenerator:
|
|||||||
self.length = props.length
|
self.length = props.length
|
||||||
self.rotation = 0.0
|
self.rotation = 0.0
|
||||||
self.location = Vector((0, 0, 0))
|
self.location = Vector((0, 0, 0))
|
||||||
self.x_angle = 0 if tool.Cad.is_x(props.x_angle, 0, tolerance=0.001) else radians(props.x_angle)
|
self.x_angle = 0 if tool.Cad.is_x(props.x_angle, 0, tolerance=0.001) else props.x_angle
|
||||||
|
|
||||||
return self.derive_from_cursor()
|
return self.derive_from_cursor()
|
||||||
|
|
||||||
|
|||||||
@@ -182,6 +182,7 @@ class BimToolUI:
|
|||||||
row.prop(data=cls.props, property="x_angle", text="X Angle")
|
row.prop(data=cls.props, property="x_angle", text="X Angle")
|
||||||
op = row.operator("bim.change_extrusion_x_angle", icon="FILE_REFRESH", text="")
|
op = row.operator("bim.change_extrusion_x_angle", icon="FILE_REFRESH", text="")
|
||||||
op.x_angle = cls.props.x_angle
|
op.x_angle = cls.props.x_angle
|
||||||
|
|
||||||
elif AuthoringData.data["active_material_usage"] == "PROFILE":
|
elif AuthoringData.data["active_material_usage"] == "PROFILE":
|
||||||
row = cls.layout.row(align=True)
|
row = cls.layout.row(align=True)
|
||||||
row.prop(data=cls.props, property="cardinal_point", text="Axis")
|
row.prop(data=cls.props, property="cardinal_point", text="Axis")
|
||||||
|
|||||||
Reference in New Issue
Block a user