mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-18 22:33:33 +00:00
Introduces a toggle to turn on/off material layers in printed svg.
This commit is contained in:
@@ -627,7 +627,7 @@ class CreateDrawing(bpy.types.Operator):
|
|||||||
path.attrib["d"] = d
|
path.attrib["d"] = d
|
||||||
group.append(g)
|
group.append(g)
|
||||||
|
|
||||||
def generate_wall_layers(self, context: bpy.types.Context, root) -> None:
|
def generate_material_layers(self, context: bpy.types.Context, root) -> None:
|
||||||
for el in root.findall(".//{http://www.w3.org/2000/svg}g[@{http://www.ifcopenshell.org/ns}guid]"):
|
for el in root.findall(".//{http://www.w3.org/2000/svg}g[@{http://www.ifcopenshell.org/ns}guid]"):
|
||||||
if "projection" in el.get("class", "").split():
|
if "projection" in el.get("class", "").split():
|
||||||
continue
|
continue
|
||||||
@@ -842,7 +842,8 @@ class CreateDrawing(bpy.types.Operator):
|
|||||||
|
|
||||||
if tool.Drawing.is_camera_orthographic():
|
if tool.Drawing.is_camera_orthographic():
|
||||||
self.generate_bisect_linework(context, root)
|
self.generate_bisect_linework(context, root)
|
||||||
self.generate_wall_layers(context, root)
|
if self.cprops.generate_material_layers:
|
||||||
|
self.generate_material_layers(context, root)
|
||||||
self.merge_linework_and_add_metadata(root)
|
self.merge_linework_and_add_metadata(root)
|
||||||
self.move_elements_to_top(root)
|
self.move_elements_to_top(root)
|
||||||
|
|
||||||
@@ -940,12 +941,14 @@ class CreateDrawing(bpy.types.Operator):
|
|||||||
if self.cprops.cut_mode == "BISECT":
|
if self.cprops.cut_mode == "BISECT":
|
||||||
self.remove_cut_linework(root)
|
self.remove_cut_linework(root)
|
||||||
self.generate_bisect_linework(context, root)
|
self.generate_bisect_linework(context, root)
|
||||||
self.generate_wall_layers(context, root)
|
if self.cprops.generate_material_layers:
|
||||||
|
self.generate_material_layers(context, root)
|
||||||
self.merge_linework_and_add_metadata(root)
|
self.merge_linework_and_add_metadata(root)
|
||||||
self.move_elements_to_top(root)
|
self.move_elements_to_top(root)
|
||||||
elif self.cprops.cut_mode == "OPENCASCADE":
|
elif self.cprops.cut_mode == "OPENCASCADE":
|
||||||
self.move_projection_to_bottom(root)
|
self.move_projection_to_bottom(root)
|
||||||
self.generate_wall_layers(context, root)
|
if self.cprops.generate_material_layers:
|
||||||
|
self.generate_material_layers(context, root)
|
||||||
self.merge_linework_and_add_metadata(root)
|
self.merge_linework_and_add_metadata(root)
|
||||||
self.move_elements_to_top(root)
|
self.move_elements_to_top(root)
|
||||||
|
|
||||||
|
|||||||
@@ -498,6 +498,11 @@ class BIMCameraProperties(PropertyGroup):
|
|||||||
name="Linework Mode",
|
name="Linework Mode",
|
||||||
update=get_update_layer_callback("linework_mode", "LineworkMode"),
|
update=get_update_layer_callback("linework_mode", "LineworkMode"),
|
||||||
)
|
)
|
||||||
|
generate_material_layers: bpy.props.BoolProperty(
|
||||||
|
name="Generate Material Layers",
|
||||||
|
description="Generate material layer linework in drawings",
|
||||||
|
default=True
|
||||||
|
)
|
||||||
fill_mode: EnumProperty(
|
fill_mode: EnumProperty(
|
||||||
items=[
|
items=[
|
||||||
("NONE", "None", "Disable filling areas seen in projection"),
|
("NONE", "None", "Disable filling areas seen in projection"),
|
||||||
|
|||||||
@@ -99,12 +99,13 @@ class BIM_PT_camera(Panel):
|
|||||||
|
|
||||||
row = self.layout.row()
|
row = self.layout.row()
|
||||||
row.prop(props, "linework_mode")
|
row.prop(props, "linework_mode")
|
||||||
|
row = self.layout.row()
|
||||||
|
row.prop(props, "generate_material_layers")
|
||||||
if props.linework_mode == "OPENCASCADE":
|
if props.linework_mode == "OPENCASCADE":
|
||||||
row = self.layout.row()
|
row = self.layout.row()
|
||||||
row.prop(props, "fill_mode")
|
row.prop(props, "fill_mode")
|
||||||
row = self.layout.row()
|
row = self.layout.row()
|
||||||
row.prop(props, "cut_mode")
|
row.prop(props, "cut_mode")
|
||||||
|
|
||||||
row = self.layout.row()
|
row = self.layout.row()
|
||||||
row.prop(props, "width")
|
row.prop(props, "width")
|
||||||
row = self.layout.row()
|
row = self.layout.row()
|
||||||
|
|||||||
Reference in New Issue
Block a user