mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-17 22:11:36 +00:00
black .
This commit is contained in:
@@ -217,7 +217,6 @@ class DumbSlabPlaner:
|
|||||||
|
|
||||||
self.change_thickness(element, total_thickness)
|
self.change_thickness(element, total_thickness)
|
||||||
|
|
||||||
|
|
||||||
def regenerate_from_layer(self, usecase_path, ifc_file, settings):
|
def regenerate_from_layer(self, usecase_path, ifc_file, settings):
|
||||||
self.unit_scale = ifcopenshell.util.unit.calculate_unit_scale(ifc_file)
|
self.unit_scale = ifcopenshell.util.unit.calculate_unit_scale(ifc_file)
|
||||||
|
|
||||||
@@ -329,7 +328,6 @@ class DumbSlabPlaner:
|
|||||||
rot_offset = offset_vector @ rot_matrix
|
rot_offset = offset_vector @ rot_matrix
|
||||||
extrusion.Position.Location.Coordinates = tuple(rot_offset)
|
extrusion.Position.Location.Coordinates = tuple(rot_offset)
|
||||||
|
|
||||||
|
|
||||||
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 props.x_angle
|
x_angle = 0 if tool.Cad.is_x(props.x_angle, 0, tolerance=0.001) else props.x_angle
|
||||||
@@ -380,7 +378,6 @@ class DumbSlabPlaner:
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class EnableEditingSketchExtrusionProfile(bpy.types.Operator, tool.Ifc.Operator):
|
class EnableEditingSketchExtrusionProfile(bpy.types.Operator, tool.Ifc.Operator):
|
||||||
bl_idname = "bim.enable_editing_sketch_extrusion_profile"
|
bl_idname = "bim.enable_editing_sketch_extrusion_profile"
|
||||||
bl_label = "Enable Editing Sketch Extrusion Profile"
|
bl_label = "Enable Editing Sketch Extrusion Profile"
|
||||||
|
|||||||
@@ -244,10 +244,14 @@ class ChangeExtrusionXAngle(bpy.types.Operator, tool.Ifc.Operator):
|
|||||||
else:
|
else:
|
||||||
if tool.Model.get_usage_type(element) == "LAYER3":
|
if tool.Model.get_usage_type(element) == "LAYER3":
|
||||||
# Reset the transformation and returns to the original points with 0 degrees
|
# Reset the transformation and returns to the original points with 0 degrees
|
||||||
extrusion.SweptArea.OuterCurve.Points.CoordList = [(p[0], p[1] * (cos(existing_x_angle))) for p in extrusion.SweptArea.OuterCurve.Points.CoordList]
|
extrusion.SweptArea.OuterCurve.Points.CoordList = [
|
||||||
|
(p[0], p[1] * (cos(existing_x_angle))) for p in extrusion.SweptArea.OuterCurve.Points.CoordList
|
||||||
|
]
|
||||||
|
|
||||||
# Apply the transformation for the new x_angle
|
# Apply the transformation for the new x_angle
|
||||||
extrusion.SweptArea.OuterCurve.Points.CoordList = [(p[0], p[1] * (1 / cos(x_angle))) for p in extrusion.SweptArea.OuterCurve.Points.CoordList]
|
extrusion.SweptArea.OuterCurve.Points.CoordList = [
|
||||||
|
(p[0], p[1] * (1 / cos(x_angle))) for p in extrusion.SweptArea.OuterCurve.Points.CoordList
|
||||||
|
]
|
||||||
|
|
||||||
# The extrusion direction calculated previously default to the positive direction
|
# The extrusion direction calculated previously default to the positive direction
|
||||||
# Here we set the extrusion direction to negative it that's the case
|
# Here we set the extrusion direction to negative it that's the case
|
||||||
@@ -271,7 +275,6 @@ class ChangeExtrusionXAngle(bpy.types.Operator, tool.Ifc.Operator):
|
|||||||
rot_offset = offset_vector @ rot_matrix
|
rot_offset = offset_vector @ rot_matrix
|
||||||
extrusion.Position.Location.Coordinates = tuple(rot_offset)
|
extrusion.Position.Location.Coordinates = tuple(rot_offset)
|
||||||
|
|
||||||
|
|
||||||
bonsai.core.geometry.switch_representation(
|
bonsai.core.geometry.switch_representation(
|
||||||
tool.Ifc,
|
tool.Ifc,
|
||||||
tool.Geometry,
|
tool.Geometry,
|
||||||
@@ -284,7 +287,7 @@ class ChangeExtrusionXAngle(bpy.types.Operator, tool.Ifc.Operator):
|
|||||||
|
|
||||||
# Object rotation
|
# Object rotation
|
||||||
local_rot_mat = obj.rotation_euler.to_matrix()
|
local_rot_mat = obj.rotation_euler.to_matrix()
|
||||||
rot_mat = mathutils.Matrix.Rotation(x_angle - existing_x_angle, 4, 'X')
|
rot_mat = mathutils.Matrix.Rotation(x_angle - existing_x_angle, 4, "X")
|
||||||
new_rot_mat = local_rot_mat.to_4x4() @ rot_mat
|
new_rot_mat = local_rot_mat.to_4x4() @ rot_mat
|
||||||
new_rot_euler = new_rot_mat.to_euler()
|
new_rot_euler = new_rot_mat.to_euler()
|
||||||
obj.rotation_euler = new_rot_euler
|
obj.rotation_euler = new_rot_euler
|
||||||
|
|||||||
@@ -586,11 +586,13 @@ class BIMFacet(PropertyGroup):
|
|||||||
class BIMFilterGroup(PropertyGroup):
|
class BIMFilterGroup(PropertyGroup):
|
||||||
filters: CollectionProperty(type=BIMFacet, name="filters")
|
filters: CollectionProperty(type=BIMFacet, name="filters")
|
||||||
|
|
||||||
|
|
||||||
class BIMSnapGroups(PropertyGroup):
|
class BIMSnapGroups(PropertyGroup):
|
||||||
object: BoolProperty(name="Object")
|
object: BoolProperty(name="Object")
|
||||||
polyline: BoolProperty(name="Polyline")
|
polyline: BoolProperty(name="Polyline")
|
||||||
measure: BoolProperty(name="Measure")
|
measure: BoolProperty(name="Measure")
|
||||||
|
|
||||||
|
|
||||||
class BIMSnapProperties(PropertyGroup):
|
class BIMSnapProperties(PropertyGroup):
|
||||||
vertex: BoolProperty(name="Vertex")
|
vertex: BoolProperty(name="Vertex")
|
||||||
edge: BoolProperty(name="Edge")
|
edge: BoolProperty(name="Edge")
|
||||||
|
|||||||
@@ -2063,12 +2063,7 @@ class Model(bonsai.core.tool.Model):
|
|||||||
# The existing angle result can change when the direction sense in Negative because the DirectionRatios may have negative y and z.
|
# The existing angle result can change when the direction sense in Negative because the DirectionRatios may have negative y and z.
|
||||||
# For instance, a 30 degree angled slab, with negative direction will show as -150 degrees. To prevent that we do the following transformations
|
# For instance, a 30 degree angled slab, with negative direction will show as -150 degrees. To prevent that we do the following transformations
|
||||||
existing_x_angle = Vector((0, 1)).angle_signed(Vector((y, z)))
|
existing_x_angle = Vector((0, 1)).angle_signed(Vector((y, z)))
|
||||||
existing_x_angle = (
|
existing_x_angle = existing_x_angle + radians(180) if existing_x_angle < -radians(90) else existing_x_angle
|
||||||
existing_x_angle + radians(180) if existing_x_angle < -radians(90) else existing_x_angle
|
existing_x_angle = existing_x_angle - radians(180) if existing_x_angle > radians(90) else existing_x_angle
|
||||||
)
|
|
||||||
existing_x_angle = (
|
|
||||||
existing_x_angle - radians(180) if existing_x_angle > radians(90) else existing_x_angle
|
|
||||||
)
|
|
||||||
|
|
||||||
return existing_x_angle
|
return existing_x_angle
|
||||||
|
|
||||||
|
|||||||
@@ -586,7 +586,9 @@ class Snap(bonsai.core.tool.Snap):
|
|||||||
cls.update_snapping_point(point[0], point[1])
|
cls.update_snapping_point(point[0], point[1])
|
||||||
return filtered_snapping_points
|
return filtered_snapping_points
|
||||||
|
|
||||||
cls.update_snapping_point(filtered_snapping_points[0][0], filtered_snapping_points[0][1], filtered_snapping_points[0][2])
|
cls.update_snapping_point(
|
||||||
|
filtered_snapping_points[0][0], filtered_snapping_points[0][1], filtered_snapping_points[0][2]
|
||||||
|
)
|
||||||
return filtered_snapping_points
|
return filtered_snapping_points
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|||||||
@@ -84,7 +84,10 @@ class Usecase:
|
|||||||
size = self.convert_si_to_unit(1)
|
size = self.convert_si_to_unit(1)
|
||||||
points = ((0.0, 0.0), (size, 0.0), (size, size), (0.0, size), (0.0, 0.0))
|
points = ((0.0, 0.0), (size, 0.0), (size, size), (0.0, size), (0.0, 0.0))
|
||||||
if self.settings["polyline"]:
|
if self.settings["polyline"]:
|
||||||
points = [(self.convert_si_to_unit(p[0]), self.convert_si_to_unit(p[1] * (1 / cos(self.settings["x_angle"])))) for p in self.settings["polyline"]]
|
points = [
|
||||||
|
(self.convert_si_to_unit(p[0]), self.convert_si_to_unit(p[1] * (1 / cos(self.settings["x_angle"]))))
|
||||||
|
for p in self.settings["polyline"]
|
||||||
|
]
|
||||||
if self.file.schema == "IFC2X3":
|
if self.file.schema == "IFC2X3":
|
||||||
curve = self.file.createIfcPolyline([self.file.createIfcCartesianPoint(p) for p in points])
|
curve = self.file.createIfcPolyline([self.file.createIfcCartesianPoint(p) for p in points])
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -84,7 +84,9 @@ def add_layer(
|
|||||||
settings = {"layer_set": layer_set, "material": material}
|
settings = {"layer_set": layer_set, "material": material}
|
||||||
|
|
||||||
layers = list(settings["layer_set"].MaterialLayers or [])
|
layers = list(settings["layer_set"].MaterialLayers or [])
|
||||||
layer = file.create_entity("IfcMaterialLayer", **{"Material": settings["material"], "LayerThickness": 0.1 / unit_scale})
|
layer = file.create_entity(
|
||||||
|
"IfcMaterialLayer", **{"Material": settings["material"], "LayerThickness": 0.1 / unit_scale}
|
||||||
|
)
|
||||||
layers.append(layer)
|
layers.append(layer)
|
||||||
settings["layer_set"].MaterialLayers = layers
|
settings["layer_set"].MaterialLayers = layers
|
||||||
return layer
|
return layer
|
||||||
|
|||||||
Reference in New Issue
Block a user