BIM: refactor whitespace between parameters and operators for improved

readability
This commit is contained in:
Furgo
2025-05-07 11:55:47 +02:00
committed by Yorik van Havre
parent ffd53ee75f
commit 8344fe599f

View File

@@ -59,17 +59,16 @@ from ArchStructure import *
# make functions
def makeAxis(num=1,size=1000,name=None):
'''makeAxis([num],[size],[name]): makes an Axis set
based on the given number of axes and interval distances'''
def makeAxis(num=1, size=1000, name=None):
"""makeAxis([num], [size], [name]): makes an Axis set based on the given number of axes and
interval distances"""
import ArchAxis
if not FreeCAD.ActiveDocument:
FreeCAD.Console.PrintError("No active document. Aborting\n")
return
obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython","Axis")
obj.Label = name if name else translate("Arch","Axes")
obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython", "Axis")
obj.Label = name if name else translate("Arch", "Axes")
ArchAxis._Axis(obj)
if FreeCAD.GuiUp:
ArchAxis._ViewProviderAxis(obj.ViewObject)
@@ -88,15 +87,15 @@ def makeAxis(num=1,size=1000,name=None):
return obj
def makeAxisSystem(axes,name=None):
def makeAxisSystem(axes, name=None):
'''makeAxisSystem(axes,[name]): makes a system from the given list of axes'''
import ArchAxisSystem
if not isinstance(axes,list):
if not isinstance(axes, list):
axes = [axes]
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython","AxisSystem")
obj.Label = name if name else translate("Arch","Axis System")
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "AxisSystem")
obj.Label = name if name else translate("Arch", "Axis System")
ArchAxisSystem._AxisSystem(obj)
obj.Axes = axes
if FreeCAD.GuiUp:
@@ -105,49 +104,49 @@ def makeAxisSystem(axes,name=None):
return obj
def makeBuildingPart(objectslist=None,baseobj=None,name=None):
def makeBuildingPart(objectslist=None, baseobj=None, name=None):
'''makeBuildingPart([objectslist],[name]): creates a buildingPart including the
objects from the given list.'''
import ArchBuildingPart
obj = FreeCAD.ActiveDocument.addObject("App::GeometryPython","BuildingPart")
obj = FreeCAD.ActiveDocument.addObject("App::GeometryPython", "BuildingPart")
#obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython","BuildingPart")
obj.Label = name if name else translate("Arch","BuildingPart")
obj.Label = name if name else translate("Arch", "BuildingPart")
ArchBuildingPart.BuildingPart(obj)
obj.IfcType = "Building Element Part"
if FreeCAD.GuiUp:
ArchBuildingPart.ViewProviderBuildingPart(obj.ViewObject)
if objectslist:
if isinstance(objectslist,(list,tuple)):
if isinstance(objectslist, (list, tuple)):
obj.addObjects(objectslist)
else:
obj.addObject(objectslist)
return obj
def makeFloor(objectslist=None,baseobj=None,name=None):
def makeFloor(objectslist=None, baseobj=None, name=None):
"""makes a BuildingPart and turns it into a Floor/Level"""
obj = makeBuildingPart(objectslist)
obj.Label = name if name else translate("Arch","Level")
obj.Label = name if name else translate("Arch", "Level")
obj.IfcType = "Building Storey"
obj.CompositionType = "ELEMENT"
return obj
def makeBuilding(objectslist=None,baseobj=None,name=None):
def makeBuilding(objectslist=None, baseobj=None, name=None):
"""makes a BuildingPart and turns it into a Building"""
import ArchBuildingPart
obj = makeBuildingPart(objectslist)
obj.Label = name if name else translate("Arch","Building")
obj.Label = name if name else translate("Arch", "Building")
obj.IfcType = "Building"
obj.CompositionType = "ELEMENT"
t = QT_TRANSLATE_NOOP("App::Property","The type of this building")
obj.addProperty("App::PropertyEnumeration","BuildingType","Building",t, locked=True)
t = QT_TRANSLATE_NOOP("App::Property", "The type of this building")
obj.addProperty("App::PropertyEnumeration", "BuildingType", "Building", t, locked=True)
obj.BuildingType = ArchBuildingPart.BuildingTypes
if FreeCAD.GuiUp:
obj.ViewObject.ShowLevel = False
@@ -155,19 +154,19 @@ def makeBuilding(objectslist=None,baseobj=None,name=None):
return obj
def make2DDrawing(objectslist=None,baseobj=None,name=None):
def make2DDrawing(objectslist=None, baseobj=None, name=None):
"""makes a BuildingPart and turns it into a 2D drawing view"""
obj = makeBuildingPart(objectslist)
obj.Label = name if name else translate("Arch","Drawing")
obj.Label = name if name else translate("Arch", "Drawing")
obj.IfcType = "Annotation"
obj.ObjectType = "DRAWING"
obj.setEditorMode("Area",2)
obj.setEditorMode("Height",2)
obj.setEditorMode("LevelOffset",2)
obj.setEditorMode("OnlySolids",2)
obj.setEditorMode("HeightPropagate",2)
obj.setEditorMode("Area", 2)
obj.setEditorMode("Height", 2)
obj.setEditorMode("LevelOffset", 2)
obj.setEditorMode("OnlySolids", 2)
obj.setEditorMode("HeightPropagate", 2)
if FreeCAD.GuiUp:
obj.ViewObject.DisplayOffset = FreeCAD.Placement()
obj.ViewObject.ShowLevel = False
@@ -187,7 +186,7 @@ def convertFloors(floor=None):
else:
objset = FreeCAD.ActiveDocument.Objects
for obj in objset:
if Draft.getType(obj) in ["Floor","Building"]:
if Draft.getType(obj) in ["Floor", "Building"]:
nobj = makeBuildingPart(obj.Group)
if Draft.getType(obj) == "Floor":
nobj.IfcType = "Building Storey"
@@ -195,12 +194,12 @@ def convertFloors(floor=None):
else:
nobj.IfcType = "Building"
nobj.CompositionType = "ELEMENT"
t = QT_TRANSLATE_NOOP("App::Property","The type of this building")
nobj.addProperty("App::PropertyEnumeration","BuildingType","Building",t, locked=True)
t = QT_TRANSLATE_NOOP("App::Property", "The type of this building")
nobj.addProperty("App::PropertyEnumeration", "BuildingType", "Building", t, locked=True)
nobj.BuildingType = ArchBuildingPart.BuildingTypes
label = obj.Label
for parent in obj.InList:
if hasattr(parent,"Group"):
if hasattr(parent, "Group"):
if obj in parent.Group:
parent.addObject(nobj)
#g = parent.Group
@@ -211,14 +210,14 @@ def convertFloors(floor=None):
# some bug makes this trigger even efter the object has been deleted...
obj.ViewObject.Proxy.Object = None
# in case FreeCAD doesn't allow 2 objs with same label
obj.Label = obj.Label+" to delete"
obj.Label = obj.Label + " to delete"
nobj.Label = label
for n in todel:
from draftutils import todo
todo.ToDo.delay(FreeCAD.ActiveDocument.removeObject,n)
todo.ToDo.delay(FreeCAD.ActiveDocument.removeObject, n)
def makeCurtainWall(baseobj=None,name=None):
def makeCurtainWall(baseobj=None, name=None):
"""makeCurtainWall([baseobj],[name]): Creates a curtain wall in the active document"""
@@ -226,8 +225,8 @@ def makeCurtainWall(baseobj=None,name=None):
if not FreeCAD.ActiveDocument:
FreeCAD.Console.PrintError("No active document. Aborting\n")
return
obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython","CurtainWall")
obj.Label = name if name else translate("Arch","Curtain Wall")
obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython", "CurtainWall")
obj.Label = name if name else translate("Arch", "Curtain Wall")
ArchCurtainWall.CurtainWall(obj)
if FreeCAD.GuiUp:
ArchCurtainWall.ViewProviderCurtainWall(obj.ViewObject)
@@ -238,7 +237,7 @@ def makeCurtainWall(baseobj=None,name=None):
return obj
def makeEquipment(baseobj=None,placement=None,name=None):
def makeEquipment(baseobj=None, placement=None, name=None):
"""makeEquipment([baseobj],[placement],[name]): creates an equipment object
from the given base object."""
@@ -247,8 +246,8 @@ def makeEquipment(baseobj=None,placement=None,name=None):
if not FreeCAD.ActiveDocument:
FreeCAD.Console.PrintError("No active document. Aborting\n")
return
obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython","Equipment")
obj.Label = name if name else translate("Arch","Equipment")
obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython", "Equipment")
obj.Label = name if name else translate("Arch", "Equipment")
ArchEquipment._Equipment(obj)
if baseobj:
if baseobj.isDerivedFrom("Mesh::Feature"):
@@ -282,7 +281,7 @@ def makeFence(section, post, path):
return obj
def makeFrame(baseobj,profile,name=None):
def makeFrame(baseobj, profile, name=None):
"""makeFrame(baseobj,profile,[name]): creates a frame object from a base sketch (or any other object
containing wires) and a profile object (an extrudable 2D object containing faces or closed wires)"""
@@ -291,8 +290,8 @@ def makeFrame(baseobj,profile,name=None):
if not FreeCAD.ActiveDocument:
FreeCAD.Console.PrintError("No active document. Aborting\n")
return
obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython","Frame")
obj.Label = name if name else translate("Arch","Frame")
obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython", "Frame")
obj.Label = name if name else translate("Arch", "Frame")
ArchFrame._Frame(obj)
if FreeCAD.GuiUp:
ArchFrame._ViewProviderFrame(obj.ViewObject)
@@ -310,8 +309,8 @@ def makeGrid(name=None):
'''makeGrid([name]): makes a grid object'''
import ArchGrid
obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython","Grid")
obj.Label = name if name else translate("Arch","Grid")
obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython", "Grid")
obj.Label = name if name else translate("Arch", "Grid")
ArchGrid.ArchGrid(obj)
if FreeCAD.GuiUp:
ArchGrid.ViewProviderArchGrid(obj.ViewObject)
@@ -320,7 +319,7 @@ def makeGrid(name=None):
return obj
def makeMaterial(name=None,color=None,transparency=None):
def makeMaterial(name=None, color=None, transparency=None):
'''makeMaterial([name],[color],[transparency]): makes an Material object'''
@@ -328,8 +327,8 @@ def makeMaterial(name=None,color=None,transparency=None):
if not FreeCAD.ActiveDocument:
FreeCAD.Console.PrintError("No active document. Aborting\n")
return
obj = FreeCAD.ActiveDocument.addObject("App::MaterialObjectPython","Material")
obj.Label = name if name else translate("Arch","Material")
obj = FreeCAD.ActiveDocument.addObject("App::MaterialObjectPython", "Material")
obj.Label = name if name else translate("Arch", "Material")
ArchMaterial._ArchMaterial(obj)
if FreeCAD.GuiUp:
ArchMaterial._ViewProviderArchMaterial(obj.ViewObject)
@@ -337,7 +336,7 @@ def makeMaterial(name=None,color=None,transparency=None):
if color:
obj.Color = color[:3]
if len(color) > 3:
obj.Transparency = color[3]*100
obj.Transparency = color[3] * 100
if transparency:
obj.Transparency = transparency
return obj
@@ -348,8 +347,8 @@ def makeMultiMaterial(name=None):
'''makeMultiMaterial([name]): makes an MultiMaterial object'''
import ArchMaterial
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython","MultiMaterial")
obj.Label = name if name else translate("Arch","MultiMaterial")
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "MultiMaterial")
obj.Label = name if name else translate("Arch", "MultiMaterial")
ArchMaterial._ArchMultiMaterial(obj)
if FreeCAD.GuiUp:
ArchMaterial._ViewProviderArchMultiMaterial(obj.ViewObject)
@@ -365,7 +364,7 @@ def getMaterialContainer():
for obj in FreeCAD.ActiveDocument.Objects:
if obj.Name == "MaterialContainer":
return obj
obj = FreeCAD.ActiveDocument.addObject("App::DocumentObjectGroupPython","MaterialContainer")
obj = FreeCAD.ActiveDocument.addObject("App::DocumentObjectGroupPython", "MaterialContainer")
obj.Label = "Materials"
ArchMaterial._ArchMaterialContainer(obj)
if FreeCAD.GuiUp:
@@ -387,7 +386,7 @@ def getDocumentMaterials():
return []
def makePanel(baseobj=None,length=0,width=0,thickness=0,placement=None,name=None):
def makePanel(baseobj=None, length=0, width=0, thickness=0, placement=None, name=None):
'''makePanel([baseobj],[length],[width],[thickness],[placement],[name]): creates a
panel element based on the given profile object and the given
@@ -398,8 +397,8 @@ def makePanel(baseobj=None,length=0,width=0,thickness=0,placement=None,name=None
if not FreeCAD.ActiveDocument:
FreeCAD.Console.PrintError("No active document. Aborting\n")
return
obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython","Panel")
obj.Label = name if name else translate("Arch","Panel")
obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython", "Panel")
obj.Label = name if name else translate("Arch", "Panel")
ArchPanel._Panel(obj)
if FreeCAD.GuiUp:
ArchPanel._ViewProviderPanel(obj.ViewObject)
@@ -416,14 +415,14 @@ def makePanel(baseobj=None,length=0,width=0,thickness=0,placement=None,name=None
return obj
def makePanelCut(panel,name=None):
def makePanelCut(panel, name=None):
"""makePanelCut(panel,[name]) : Creates a 2D view of the given panel
in the 3D space, positioned at the origin."""
import ArchPanel
view = FreeCAD.ActiveDocument.addObject("Part::FeaturePython","PanelCut")
view.Label = name if name else translate("Arch","View of")+" "+panel.Label
view = FreeCAD.ActiveDocument.addObject("Part::FeaturePython", "PanelCut")
view.Label = name if name else translate("Arch", "View of") + " " + panel.Label
ArchPanel.PanelCut(view)
view.Source = panel
if FreeCAD.GuiUp:
@@ -431,14 +430,14 @@ def makePanelCut(panel,name=None):
return view
def makePanelSheet(panels=[],name=None):
def makePanelSheet(panels=[], name=None):
"""makePanelSheet([panels],[name]) : Creates a sheet with the given panel cuts
in the 3D space, positioned at the origin."""
import ArchPanel
sheet = FreeCAD.ActiveDocument.addObject("Part::FeaturePython","PanelSheet")
sheet.Label = name if name else translate("Arch","PanelSheet")
sheet = FreeCAD.ActiveDocument.addObject("Part::FeaturePython", "PanelSheet")
sheet.Label = name if name else translate("Arch", "PanelSheet")
ArchPanel.PanelSheet(sheet)
if panels:
sheet.Group = panels
@@ -447,7 +446,7 @@ def makePanelSheet(panels=[],name=None):
return sheet
def makePipe(baseobj=None,diameter=0,length=0,placement=None,name=None):
def makePipe(baseobj=None, diameter=0, length=0, placement=None, name=None):
"makePipe([baseobj],[diameter],[length],[placement],[name]): creates an pipe object from the given base object"
@@ -455,8 +454,8 @@ def makePipe(baseobj=None,diameter=0,length=0,placement=None,name=None):
if not FreeCAD.ActiveDocument:
FreeCAD.Console.PrintError("No active document. Aborting\n")
return
obj= FreeCAD.ActiveDocument.addObject("Part::FeaturePython","Pipe")
obj.Label = name if name else translate("Arch","Pipe")
obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython", "Pipe")
obj.Label = name if name else translate("Arch", "Pipe")
ArchPipe._ArchPipe(obj)
if FreeCAD.GuiUp:
ArchPipe._ViewProviderPipe(obj.ViewObject)
@@ -480,7 +479,7 @@ def makePipe(baseobj=None,diameter=0,length=0,placement=None,name=None):
return obj
def makePipeConnector(pipes,radius=0,name=None):
def makePipeConnector(pipes, radius=0, name=None):
"makePipeConnector(pipes,[radius],[name]): creates a connector between the given pipes"
@@ -488,8 +487,8 @@ def makePipeConnector(pipes,radius=0,name=None):
if not FreeCAD.ActiveDocument:
FreeCAD.Console.PrintError("No active document. Aborting\n")
return
obj= FreeCAD.ActiveDocument.addObject("Part::FeaturePython","Connector")
obj.Label = name if name else translate("Arch","Connector")
obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython", "Connector")
obj.Label = name if name else translate("Arch", "Connector")
ArchPipe._ArchPipeConnector(obj)
obj.Pipes = pipes
if not radius:
@@ -500,7 +499,7 @@ def makePipeConnector(pipes,radius=0,name=None):
return obj
def makeProfile(profile=[0,'REC','REC100x100','R',100,100]):
def makeProfile(profile=[0, 'REC', 'REC100x100', 'R', 100, 100]):
'''makeProfile(profile): returns a shape with the face defined by the profile data'''
@@ -510,21 +509,21 @@ def makeProfile(profile=[0,'REC','REC100x100','R',100,100]):
return
obj = FreeCAD.ActiveDocument.addObject("Part::Part2DObjectPython", "Profile")
obj.Label = profile[2] + "_"
if profile[3]=="C":
if profile[3] == "C":
ArchProfile._ProfileC(obj, profile)
elif profile[3]=="H":
elif profile[3] == "H":
ArchProfile._ProfileH(obj, profile)
elif profile[3]=="R":
elif profile[3] == "R":
ArchProfile._ProfileR(obj, profile)
elif profile[3]=="RH":
elif profile[3] == "RH":
ArchProfile._ProfileRH(obj, profile)
elif profile[3]=="U":
elif profile[3] == "U":
ArchProfile._ProfileU(obj, profile)
elif profile[3]=="L":
elif profile[3] == "L":
ArchProfile._ProfileL(obj, profile)
elif profile[3]=="T":
elif profile[3] == "T":
ArchProfile._ProfileT(obj, profile)
else :
else:
print("Profile not supported")
if FreeCAD.GuiUp:
ArchProfile.ViewProviderProfile(obj.ViewObject)
@@ -567,7 +566,7 @@ def makeProject(sites=None, name=None):
return obj
def makeRebar(baseobj=None,sketch=None,diameter=None,amount=1,offset=None,name=None):
def makeRebar(baseobj=None, sketch=None, diameter=None, amount=1, offset=None, name=None):
"""makeRebar([baseobj],[sketch],[diameter],[amount],[offset],[name]):
adds a Reinforcement Bar object to the given structural object,
@@ -577,15 +576,15 @@ def makeRebar(baseobj=None,sketch=None,diameter=None,amount=1,offset=None,name=N
if not FreeCAD.ActiveDocument:
FreeCAD.Console.PrintError("No active document. Aborting\n")
return
obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython","Rebar")
obj.Label = name if name else translate("Arch","Rebar")
obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython", "Rebar")
obj.Label = name if name else translate("Arch", "Rebar")
ArchRebar._Rebar(obj)
if FreeCAD.GuiUp:
ArchRebar._ViewProviderRebar(obj.ViewObject)
if baseobj and sketch:
if hasattr(sketch,"AttachmentSupport"):
if hasattr(sketch, "AttachmentSupport"):
if sketch.AttachmentSupport:
if isinstance(sketch.AttachmentSupport,tuple):
if isinstance(sketch.AttachmentSupport, tuple):
if sketch.AttachmentSupport[0] == baseobj:
sketch.AttachmentSupport = None
elif sketch.AttachmentSupport == baseobj:
@@ -626,8 +625,8 @@ def makeReference(filepath=None, partname=None, name=None):
if not FreeCAD.ActiveDocument:
FreeCAD.Console.PrintError("No active document. Aborting\n")
return
obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython","ArchReference")
obj.Label = name if name else translate("Arch","External Reference")
obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython", "ArchReference")
obj.Label = name if name else translate("Arch", "External Reference")
ArchReference.ArchReference(obj)
if FreeCAD.GuiUp:
ArchReference.ViewProviderArchReference(obj.ViewObject)
@@ -679,7 +678,7 @@ def makeRoof(baseobj=None,
obj.Base.ViewObject.hide()
else:
if (obj.Base.Shape.Faces and obj.Face):
baseWire = obj.Base.Shape.Faces[obj.Face-1].Wires[0]
baseWire = obj.Base.Shape.Faces[obj.Face - 1].Wires[0]
if FreeCAD.GuiUp:
obj.Base.ViewObject.hide()
elif obj.Base.Shape.Wires:
@@ -705,17 +704,17 @@ def makeSchedule():
"""makeSchedule(): Creates a schedule object in the active document"""
import ArchSchedule
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython","Schedule")
obj.Label = translate("Arch","Schedule")
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "Schedule")
obj.Label = translate("Arch", "Schedule")
ArchSchedule._ArchSchedule(obj)
if FreeCAD.GuiUp:
ArchSchedule._ViewProviderArchSchedule(obj.ViewObject)
if hasattr(obj,"CreateSpreadsheet") and obj.CreateSpreadsheet:
if hasattr(obj, "CreateSpreadsheet") and obj.CreateSpreadsheet:
obj.Proxy.getSpreadSheet(obj, force=True)
return obj
def makeSectionPlane(objectslist=None,name=None):
def makeSectionPlane(objectslist=None, name=None):
"""makeSectionPlane([objectslist],[name]) : Creates a Section plane objects including the
given objects. If no object is given, the whole document will be considered."""
@@ -726,8 +725,8 @@ def makeSectionPlane(objectslist=None,name=None):
if not FreeCAD.ActiveDocument:
FreeCAD.Console.PrintError("No active document. Aborting\n")
return
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython","Section")
obj.Label = name if name else translate("Arch","Section")
obj = FreeCAD.ActiveDocument.addObject("App::FeaturePython", "Section")
obj.Label = name if name else translate("Arch", "Section")
ArchSectionPlane._SectionPlane(obj)
if FreeCAD.GuiUp:
ArchSectionPlane._ViewProviderSectionPlane(obj.ViewObject)
@@ -735,18 +734,18 @@ def makeSectionPlane(objectslist=None,name=None):
obj.Objects = objectslist
bb = FreeCAD.BoundBox()
for o in Draft.get_group_contents(objectslist):
if hasattr(o,"Shape") and hasattr(o.Shape,"BoundBox"):
if hasattr(o, "Shape") and hasattr(o.Shape, "BoundBox"):
bb.add(o.Shape.BoundBox)
obj.Placement = WorkingPlane.get_working_plane().get_placement()
obj.Placement.Base = bb.Center
if FreeCAD.GuiUp:
margin = bb.XLength*0.1
obj.ViewObject.DisplayLength = bb.XLength+margin
obj.ViewObject.DisplayHeight = bb.YLength+margin
margin = bb.XLength * 0.1
obj.ViewObject.DisplayLength = bb.XLength + margin
obj.ViewObject.DisplayHeight = bb.YLength + margin
return obj
def makeSite(objectslist=None,baseobj=None,name=None):
def makeSite(objectslist=None, baseobj=None, name=None):
'''makeBuilding([objectslist],[baseobj],[name]): creates a site including the
objects from the given list.'''
@@ -756,8 +755,8 @@ def makeSite(objectslist=None,baseobj=None,name=None):
FreeCAD.Console.PrintError("No active document. Aborting\n")
return
import Part
obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython","Site")
obj.Label = name if name else translate("Arch","Site")
obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython", "Site")
obj.Label = name if name else translate("Arch", "Site")
ArchSite._Site(obj)
if FreeCAD.GuiUp:
ArchSite._ViewProviderSite(obj.ViewObject)
@@ -765,14 +764,14 @@ def makeSite(objectslist=None,baseobj=None,name=None):
obj.Group = objectslist
if baseobj:
import Part
if isinstance(baseobj,Part.Shape):
if isinstance(baseobj, Part.Shape):
obj.Shape = baseobj
else:
obj.Terrain = baseobj
return obj
def makeSpace(objects=None,baseobj=None,name=None):
def makeSpace(objects=None, baseobj=None, name=None):
"""Creates a space object from the given objects.
Parameters
@@ -814,15 +813,15 @@ def makeSpace(objects=None,baseobj=None,name=None):
if not FreeCAD.ActiveDocument:
FreeCAD.Console.PrintError("No active document. Aborting\n")
return
space = FreeCAD.ActiveDocument.addObject("Part::FeaturePython","Space")
space.Label = name if name else translate("Arch","Space")
space = FreeCAD.ActiveDocument.addObject("Part::FeaturePython", "Space")
space.Label = name if name else translate("Arch", "Space")
ArchSpace._Space(space)
if FreeCAD.GuiUp:
ArchSpace._ViewProviderSpace(space.ViewObject)
if baseobj:
objects = baseobj
if objects:
if not isinstance(objects,list):
if not isinstance(objects, list):
objects = [objects]
isSingleObject = lambda objs: len(objs) == 1
@@ -861,7 +860,7 @@ def makeSpace(objects=None,baseobj=None,name=None):
space.Proxy.addSubobjects(space, boundaries)
return space
def addSpaceBoundaries(space,subobjects):
def addSpaceBoundaries(space, subobjects):
"""Adds the given subobjects as defining boundaries of the given space.
Parameters
@@ -888,9 +887,9 @@ def addSpaceBoundaries(space,subobjects):
"""
import Draft
if Draft.getType(space) == "Space":
space.Proxy.addSubobjects(space,subobjects)
space.Proxy.addSubobjects(space, subobjects)
def removeSpaceBoundaries(space,subobjects):
def removeSpaceBoundaries(space, subobjects):
"""Remove the given subobjects as defining boundaries of the given space.
Parameters
@@ -917,9 +916,9 @@ def removeSpaceBoundaries(space,subobjects):
"""
import Draft
if Draft.getType(space) == "Space":
space.Proxy.removeSubobjects(space,subobjects)
space.Proxy.removeSubobjects(space, subobjects)
def makeStairs(baseobj=None,length=None,width=None,height=None,steps=None,name=None):
def makeStairs(baseobj=None, length=None, width=None, height=None, steps=None, name=None):
"""makeStairs([baseobj],[length],[width],[height],[steps],[name]): creates a Stairs
objects with given attributes."""
@@ -931,9 +930,9 @@ def makeStairs(baseobj=None,length=None,width=None,height=None,steps=None,name=N
stairs = []
additions = []
label = name if name else translate("Arch","Stairs")
label = name if name else translate("Arch", "Stairs")
def setProperty(obj,length,width,height,steps):
def setProperty(obj, length, width, height, steps):
"""setProperty(obj,length,width,height,steps): sets up the basic properties for this stair"""
if length:
obj.Length = length
@@ -960,11 +959,11 @@ def makeStairs(baseobj=None,length=None,width=None,height=None,steps=None,name=N
obj.RailingHeightRight = 900
if baseobj:
if not isinstance(baseobj,list):
if not isinstance(baseobj, list):
baseobj = [baseobj]
lenSelection = len(baseobj)
if lenSelection > 1:
stair = FreeCAD.ActiveDocument.addObject("Part::FeaturePython","Stairs")
stair = FreeCAD.ActiveDocument.addObject("Part::FeaturePython", "Stairs")
stair.Label = label
ArchStairs._Stairs(stair)
stairs.append(stair)
@@ -972,7 +971,7 @@ def makeStairs(baseobj=None,length=None,width=None,height=None,steps=None,name=N
else:
i = 0
for baseobjI in baseobj:
stair = FreeCAD.ActiveDocument.addObject("Part::FeaturePython","Stairs")
stair = FreeCAD.ActiveDocument.addObject("Part::FeaturePython", "Stairs")
stair.Label = label
ArchStairs._Stairs(stair)
stairs.append(stair)
@@ -981,10 +980,10 @@ def makeStairs(baseobj=None,length=None,width=None,height=None,steps=None,name=N
stepsI = steps
else:
stepsI = 20
setProperty(stairs[i],None,width,height,stepsI)
setProperty(stairs[i], None, width, height, stepsI)
if i > 1:
additions.append(stairs[i])
stairs[i].LastSegment = stairs[i-1]
stairs[i].LastSegment = stairs[i - 1]
else:
if len(stairs) > 1: # i.e. length >1, have a 'master' staircase created
stairs[0].Base = stairs[1]
@@ -992,10 +991,10 @@ def makeStairs(baseobj=None,length=None,width=None,height=None,steps=None,name=N
if lenSelection > 1:
stairs[0].Additions = additions
else:
obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython","Stairs")
obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython", "Stairs")
obj.Label = label
ArchStairs._Stairs(obj)
setProperty(obj,length,width,height,steps)
setProperty(obj, length, width, height, steps)
stairs.append(obj)
if FreeCAD.GuiUp:
if baseobj:
@@ -1020,7 +1019,7 @@ def makeRailing(stairs):
import ArchPipe
def makeRailingLorR(stairs,side="L"):
def makeRailingLorR(stairs, side="L"):
"""makeRailingLorR(stairs,side="L"): Creates a railing on the given side of the stairs, L or R"""
for stair in reversed(stairs):
if side == "L":
@@ -1032,7 +1031,7 @@ def makeRailing(stairs):
outlineLRAll = stair.OutlineRightAll
stairRailingLR = "RailingRight"
if outlineLR or outlineLRAll:
lrRail = makePipe(baseobj=None,diameter=0,length=0,placement=None,name=translate("Arch","Railing"))
lrRail = makePipe(baseobj=None, diameter=0, length=0, placement=None, name=translate("Arch", "Railing"))
if outlineLRAll:
setattr(stair, stairRailingLR, lrRail)
break
@@ -1058,11 +1057,11 @@ def makeRailing(stairs):
print("No Stairs object selected")
return
makeRailingLorR(stairs,"L")
makeRailingLorR(stairs,"R")
makeRailingLorR(stairs, "L")
makeRailingLorR(stairs, "R")
def makeTruss(baseobj=None,name=None):
def makeTruss(baseobj=None, name=None):
"""
makeTruss([baseobj],[name]): Creates a space object from the given object (a line)
@@ -1072,8 +1071,8 @@ def makeTruss(baseobj=None,name=None):
if not FreeCAD.ActiveDocument:
FreeCAD.Console.PrintError("No active document. Aborting\n")
return
obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython","Truss")
obj.Label = name if name else translate("Arch","Truss")
obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython", "Truss")
obj.Label = name if name else translate("Arch", "Truss")
ArchTruss.Truss(obj)
if FreeCAD.GuiUp:
ArchTruss.ViewProviderTruss(obj.ViewObject)
@@ -1084,7 +1083,7 @@ def makeTruss(baseobj=None,name=None):
return obj
def makeWall(baseobj=None,height=None,length=None,width=None,align=None,face=None,name=None):
def makeWall(baseobj=None, height=None, length=None, width=None, align=None, face=None, name=None):
"""Create a wall based on a given object, and returns the generated wall.
TODO: It is unclear what defines which units this function uses.
@@ -1132,19 +1131,19 @@ def makeWall(baseobj=None,height=None,length=None,width=None,align=None,face=Non
if not FreeCAD.ActiveDocument:
FreeCAD.Console.PrintError("No active document. Aborting\n")
return
obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython","Wall")
obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython", "Wall")
if name:
obj.Label = name
else:
obj.Label = translate("Arch","Wall")
obj.Label = translate("Arch", "Wall")
ArchWall._Wall(obj)
if FreeCAD.GuiUp:
ArchWall._ViewProviderWall(obj.ViewObject)
if baseobj:
if hasattr(baseobj,'Shape') or baseobj.isDerivedFrom("Mesh::Feature"):
if hasattr(baseobj, 'Shape') or baseobj.isDerivedFrom("Mesh::Feature"):
obj.Base = baseobj
else:
FreeCAD.Console.PrintWarning(str(translate("Arch","Walls can only be based on Part or Mesh objects")))
FreeCAD.Console.PrintWarning(str(translate("Arch", "Walls can only be based on Part or Mesh objects")))
if face:
obj.Face = face
if length:
@@ -1160,14 +1159,14 @@ def makeWall(baseobj=None,height=None,length=None,width=None,align=None,face=Non
if align:
obj.Align = align
else:
obj.Align = ["Center","Left","Right"][params.get_param_arch("WallAlignment")]
obj.Align = ["Center", "Left", "Right"][params.get_param_arch("WallAlignment")]
if obj.Base and FreeCAD.GuiUp:
if Draft.getType(obj.Base) != "Space":
obj.Base.ViewObject.hide()
return obj
def joinWalls(walls,delete=False):
def joinWalls(walls, delete=False):
"""Join the given list of walls into one sketch-based wall.
Take the first wall in the list, and adds on the other walls in the list.
@@ -1194,7 +1193,7 @@ def joinWalls(walls,delete=False):
import ArchWall
if not walls:
return None
if not isinstance(walls,list):
if not isinstance(walls, list):
walls = [walls]
if not ArchWall.areSameWallTypes(walls):
return None
@@ -1209,14 +1208,14 @@ def joinWalls(walls,delete=False):
else:
try:
import ArchSketchObject
newSk=ArchSketchObject.makeArchSketch()
newSk = ArchSketchObject.makeArchSketch()
except:
if Draft.getType(base.Base) != "Sketcher::SketchObject":
newSk=FreeCAD.ActiveDocument.addObject("Sketcher::SketchObject","WallTrace")
newSk = FreeCAD.ActiveDocument.addObject("Sketcher::SketchObject", "WallTrace")
else:
newSk=None
newSk = None
if newSk:
sk = Draft.makeSketch(base.Base,autoconstraints=True, addTo=newSk)
sk = Draft.makeSketch(base.Base, autoconstraints=True, addTo=newSk)
base.Base = sk
else:
sk = base.Base
@@ -1225,8 +1224,8 @@ def joinWalls(walls,delete=False):
if not w.Base.Shape.Faces:
for e in w.Base.Shape.Edges:
l = e.Curve
if isinstance(l,Part.Line):
l = Part.LineSegment(e.Vertexes[0].Point,e.Vertexes[-1].Point)
if isinstance(l, Part.Line):
l = Part.LineSegment(e.Vertexes[0].Point, e.Vertexes[-1].Point)
sk.addGeometry(l)
deleteList.append(w.Name)
if delete:
@@ -1237,7 +1236,7 @@ def joinWalls(walls,delete=False):
return base
def makeWindow(baseobj=None,width=None,height=None,parts=None,name=None):
def makeWindow(baseobj=None, width=None, height=None, parts=None, name=None):
'''makeWindow(baseobj,[width,height,parts,name]): creates a window based on the
given base 2D object (sketch or draft).'''
@@ -1252,12 +1251,12 @@ def makeWindow(baseobj=None,width=None,height=None,parts=None,name=None):
if Draft.getType(baseobj) == "Window":
obj = Draft.clone(baseobj)
return obj
obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython","Window")
obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython", "Window")
ArchWindow._Window(obj)
if name:
obj.Label = name
else:
obj.Label = translate("Arch","Window")
obj.Label = translate("Arch", "Window")
if FreeCAD.GuiUp:
ArchWindow._ViewProviderWindow(obj.ViewObject)
if width:
@@ -1265,7 +1264,7 @@ def makeWindow(baseobj=None,width=None,height=None,parts=None,name=None):
if height:
obj.Height = height
if baseobj:
obj.Normal = baseobj.Placement.Rotation.multVec(FreeCAD.Vector(0,0,-1))
obj.Normal = baseobj.Placement.Rotation.multVec(FreeCAD.Vector(0, 0, -1))
obj.Base = baseobj
if parts is not None:
obj.WindowParts = parts
@@ -1284,16 +1283,16 @@ def makeWindow(baseobj=None,width=None,height=None,parts=None,name=None):
if ws: ws += ","
ws += "Wire" + str(i)
i += 1
obj.WindowParts = ["Default",tp,ws,"1","0"]
obj.WindowParts = ["Default", tp, ws, "1", "0"]
else:
# bind properties from base obj if existing
for prop in ["Height","Width","Subvolume","Tag","Description","Material"]:
for prop in ["Height", "Width", "Subvolume", "Tag", "Description", "Material"]:
for p in baseobj.PropertiesList:
if (p == prop) or p.endswith("_"+prop):
obj.setExpression(prop, baseobj.Name+"."+p)
if (p == prop) or p.endswith("_" + prop):
obj.setExpression(prop, baseobj.Name + "." + p)
if obj.Base and FreeCAD.GuiUp:
obj.Base.ViewObject.DisplayMode = "Wireframe"
obj.Base.ViewObject.hide()
todo.ToDo.delay(ArchWindow.recolorize,[obj.Document.Name,obj.Name])
todo.ToDo.delay(ArchWindow.recolorize, [obj.Document.Name, obj.Name])
return obj