diff --git a/src/Mod/BIM/Arch.py b/src/Mod/BIM/Arch.py index 0ccc7ab635..6dd9422cf6 100644 --- a/src/Mod/BIM/Arch.py +++ b/src/Mod/BIM/Arch.py @@ -34,9 +34,11 @@ __url__ = "https://www.freecad.org" '''The Arch module provides tools specialized in BIM modeling.''' import FreeCAD + if FreeCAD.GuiUp: import FreeCADGui FreeCADGui.updateLocale() + QT_TRANSLATE_NOOP = FreeCAD.Qt.QT_TRANSLATE_NOOP translate = FreeCAD.Qt.translate @@ -51,6 +53,7 @@ from ArchWindowPresets import * from ArchStructure import * + # make functions def makeAxis(num=1,size=1000,name=None): diff --git a/src/Mod/BIM/ArchAxis.py b/src/Mod/BIM/ArchAxis.py index 71cbaaa16c..43ad905999 100644 --- a/src/Mod/BIM/ArchAxis.py +++ b/src/Mod/BIM/ArchAxis.py @@ -19,29 +19,6 @@ #* * #*************************************************************************** -import math - -import FreeCAD -import ArchCommands -import Draft -import Part -from FreeCAD import Vector -from draftutils import params - -if FreeCAD.GuiUp: - import FreeCADGui, re - from PySide import QtCore, QtGui - from draftutils.translate import translate - from pivy import coin - from PySide.QtCore import QT_TRANSLATE_NOOP -else: - # \cond - def translate(ctxt,txt): - return txt - def QT_TRANSLATE_NOOP(ctxt,txt): - return txt - # \endcond - __title__ = "FreeCAD Axis System" __author__ = "Yorik van Havre" __url__ = "https://www.freecad.org" @@ -53,6 +30,31 @@ __url__ = "https://www.freecad.org" # This module provides tools to build axis # An axis is a collection of planar axes with a number/tag +import math + +import FreeCAD +import ArchCommands +import Draft +import Part + +from FreeCAD import Vector +from draftutils import params + +if FreeCAD.GuiUp: + import re + from pivy import coin + from PySide import QtCore, QtGui + from PySide.QtCore import QT_TRANSLATE_NOOP + import FreeCADGui + from draftutils.translate import translate +else: + # \cond + def translate(ctxt,txt): + return txt + def QT_TRANSLATE_NOOP(ctxt,txt): + return txt + # \endcond + class _Axis: @@ -789,4 +791,3 @@ class _AxisTaskPanel: QtGui.QApplication.translate("Arch", "Distance", None), QtGui.QApplication.translate("Arch", "Angle", None), QtGui.QApplication.translate("Arch", "Label", None)]) - diff --git a/src/Mod/BIM/ArchAxisSystem.py b/src/Mod/BIM/ArchAxisSystem.py index df12fbb93d..dbafd5b984 100644 --- a/src/Mod/BIM/ArchAxisSystem.py +++ b/src/Mod/BIM/ArchAxisSystem.py @@ -19,23 +19,6 @@ #* * #*************************************************************************** -import FreeCAD -import DraftGeomUtils -if FreeCAD.GuiUp: - import FreeCADGui - import Draft - from PySide import QtCore, QtGui - from draftutils.translate import translate - from pivy import coin - from PySide.QtCore import QT_TRANSLATE_NOOP -else: - # \cond - def translate(ctxt,txt): - return txt - def QT_TRANSLATE_NOOP(ctxt,txt): - return txt - # \endcond - __title__ = "FreeCAD Axis System" __author__ = "Yorik van Havre" __url__ = "https://www.freecad.org" @@ -47,6 +30,24 @@ __url__ = "https://www.freecad.org" # This module provides tools to build axis systems # An axis system is a collection of multiple axes +import FreeCAD +import DraftGeomUtils + +if FreeCAD.GuiUp: + from pivy import coin + from PySide import QtCore, QtGui + from PySide.QtCore import QT_TRANSLATE_NOOP + import FreeCADGui + import Draft + from draftutils.translate import translate +else: + # \cond + def translate(ctxt,txt): + return txt + def QT_TRANSLATE_NOOP(ctxt,txt): + return txt + # \endcond + class _AxisSystem: diff --git a/src/Mod/BIM/ArchBuilding.py b/src/Mod/BIM/ArchBuilding.py index 652f958594..fa34f5e013 100644 --- a/src/Mod/BIM/ArchBuilding.py +++ b/src/Mod/BIM/ArchBuilding.py @@ -20,25 +20,6 @@ #* * #*************************************************************************** -import FreeCAD -import ArchCommands -import ArchFloor -import Draft -from draftutils import params - -if FreeCAD.GuiUp: - import FreeCADGui - from PySide import QtCore - from draftutils.translate import translate - from PySide.QtCore import QT_TRANSLATE_NOOP -else: - # \cond - def translate(ctxt,txt): - return txt - def QT_TRANSLATE_NOOP(ctxt,txt): - return txt - # \endcond - __title__ = "FreeCAD Building" __author__ = "Yorik van Havre" __url__ = "https://www.freecad.org" @@ -50,6 +31,27 @@ __url__ = "https://www.freecad.org" # This module provides tools to build building objects. # Buildings are primarily containers for Arch objects +import FreeCAD +import ArchCommands +import ArchFloor +import Draft + +from draftutils import params + +if FreeCAD.GuiUp: + from PySide import QtCore + from PySide.QtCore import QT_TRANSLATE_NOOP + import FreeCADGui + from draftutils.translate import translate +else: + # \cond + def translate(ctxt,txt): + return txt + def QT_TRANSLATE_NOOP(ctxt,txt): + return txt + # \endcond + + BuildingTypes = ['Undefined', 'Agricultural - Barn', 'Agricultural - Chicken coop or chickenhouse', diff --git a/src/Mod/BIM/ArchBuildingPart.py b/src/Mod/BIM/ArchBuildingPart.py index 14f340e1fa..47d75930f9 100644 --- a/src/Mod/BIM/ArchBuildingPart.py +++ b/src/Mod/BIM/ArchBuildingPart.py @@ -20,19 +20,32 @@ #* * #*************************************************************************** -import FreeCAD -import Draft -import ArchCommands -import DraftVecUtils -import ArchIFC -import tempfile +__title__ = "FreeCAD Arch BuildingPart" +__author__ = "Yorik van Havre" +__url__ = "https://www.freecad.org" + +## @package ArchBuildingPart +# \ingroup ARCH +# \brief The BuildingPart object and tools +# +# This module provides tools to build BuildingPart objects. +# BuildingParts are used to group different Arch objects + import os +import tempfile + +import FreeCAD +import ArchCommands +import ArchIFC +import Draft +import DraftVecUtils + from draftutils import params if FreeCAD.GuiUp: + from PySide.QtCore import QT_TRANSLATE_NOOP import FreeCADGui from draftutils.translate import translate - from PySide.QtCore import QT_TRANSLATE_NOOP import draftutils.units as units else: # \cond @@ -43,17 +56,6 @@ else: # \endcond unicode = str -## @package ArchBuildingPart -# \ingroup ARCH -# \brief The BuildingPart object and tools -# -# This module provides tools to build BuildingPart objects. -# BuildingParts are used to group different Arch objects - -__title__ = "FreeCAD Arch BuildingPart" -__author__ = "Yorik van Havre" -__url__ = "https://www.freecad.org" - BuildingTypes = ['Undefined', 'Agricultural - Barn', diff --git a/src/Mod/BIM/ArchCommands.py b/src/Mod/BIM/ArchCommands.py index 5878504fd8..8dfbf682f2 100644 --- a/src/Mod/BIM/ArchCommands.py +++ b/src/Mod/BIM/ArchCommands.py @@ -20,23 +20,6 @@ #* * #*************************************************************************** -import FreeCAD -import ArchComponent -import Draft -import DraftVecUtils -from FreeCAD import Vector -from draftutils import params - -if FreeCAD.GuiUp: - import FreeCADGui - from PySide import QtGui,QtCore - from draftutils.translate import translate -else: - # \cond - def translate(ctxt,txt): - return txt - # \endcond - __title__ = "FreeCAD Arch Commands" __author__ = "Yorik van Havre" __url__ = "https://www.freecad.org" @@ -48,6 +31,25 @@ __url__ = "https://www.freecad.org" # This module provides general functions used by Arch tools # and utility commands +import FreeCAD +import ArchComponent +import Draft +import DraftVecUtils + +from FreeCAD import Vector +from draftutils import params + +if FreeCAD.GuiUp: + from PySide import QtGui,QtCore + import FreeCADGui + from draftutils.translate import translate +else: + # \cond + def translate(ctxt,txt): + return txt + # \endcond + + # module functions ############################################### def getStringList(objects): @@ -1379,4 +1381,3 @@ def makeIfcSpreadsheet(archobj=None): FreeCAD.ActiveDocument.removeObject(ifc_spreadsheet) else : return ifc_spreadsheet - diff --git a/src/Mod/BIM/ArchComponent.py b/src/Mod/BIM/ArchComponent.py index 93a8d32d57..2cbc411130 100644 --- a/src/Mod/BIM/ArchComponent.py +++ b/src/Mod/BIM/ArchComponent.py @@ -19,6 +19,17 @@ #* * #*************************************************************************** +__title__ = "FreeCAD Arch Component" +__author__ = "Yorik van Havre" +__url__ = "https://www.freecad.org" + +## @package ArchComponent +# \ingroup ARCH +# \brief The base class of all Arch objects +# +# This module provides the base Arch component class, that +# is shared by all of the Arch BIM objects + """This module provides the base Arch component class, that is shared by all of the Arch BIM objects. @@ -27,21 +38,18 @@ Examples TODO put examples here. """ -__title__ = "FreeCAD Arch Component" -__author__ = "Yorik van Havre" -__url__ = "https://www.freecad.org" - import FreeCAD import ArchCommands import ArchIFC import Draft + from draftutils import params if FreeCAD.GuiUp: - import FreeCADGui from PySide import QtGui,QtCore - from draftutils.translate import translate from PySide.QtCore import QT_TRANSLATE_NOOP + import FreeCADGui + from draftutils.translate import translate else: # \cond def translate(ctxt,txt): @@ -50,12 +58,6 @@ else: return txt # \endcond -## @package ArchComponent -# \ingroup ARCH -# \brief The base class of all Arch objects -# -# This module provides the base Arch component class, that -# is shared by all of the Arch BIM objects def addToComponent(compobject,addobject,mod=None): """Add an object to a component's properties. @@ -606,7 +608,8 @@ class Component(ArchIFC.IfcProduct): before being rotated. """ - import DraftGeomUtils,math + import math + import DraftGeomUtils # Get the object's center. if not isinstance(shape,list): @@ -1994,9 +1997,9 @@ class ComponentTaskPanel: return if not isinstance(self.obj.IfcProperties,dict): return - import Arch_rc import csv import os + import Arch_rc import ArchIFCSchema # get presets diff --git a/src/Mod/BIM/ArchCurtainWall.py b/src/Mod/BIM/ArchCurtainWall.py index e72a460e35..d5e4be93ae 100644 --- a/src/Mod/BIM/ArchCurtainWall.py +++ b/src/Mod/BIM/ArchCurtainWall.py @@ -24,27 +24,6 @@ __title__ = "FreeCAD Arch Curtain Wall" __author__ = "Yorik van Havre" __url__ = "https://www.freecad.org" -import math -import FreeCAD -import ArchComponent -import ArchCommands -import DraftVecUtils -from draftutils import params - -if FreeCAD.GuiUp: - import FreeCADGui - from draftutils.translate import translate - from PySide.QtCore import QT_TRANSLATE_NOOP -else: - # \cond - def translate(ctxt,txt): - return txt - def QT_TRANSLATE_NOOP(ctxt,txt): - return txt - # \endcond - -ANGLETOLERANCE = 0.67 # vectors with angles below this are considered going in same dir - ## @package ArchCurtainWall # \ingroup ARCH # \brief The Curtain Wall object and tools @@ -69,6 +48,29 @@ the facet is triangulated and receives a third mullion (diagonal mullion). """ +import math + +import FreeCAD +import ArchCommands +import ArchComponent +import DraftVecUtils + +from draftutils import params + +if FreeCAD.GuiUp: + from PySide.QtCore import QT_TRANSLATE_NOOP + import FreeCADGui + from draftutils.translate import translate +else: + # \cond + def translate(ctxt,txt): + return txt + def QT_TRANSLATE_NOOP(ctxt,txt): + return txt + # \endcond + +ANGLETOLERANCE = 0.67 # vectors with angles below this are considered going in same dir + class CurtainWall(ArchComponent.Component): @@ -198,7 +200,8 @@ class CurtainWall(ArchComponent.Component): if not self.ensureBase(obj): return - import Part,DraftGeomUtils + import Part + import DraftGeomUtils pl = obj.Placement @@ -470,7 +473,8 @@ class CurtainWall(ArchComponent.Component): """returns a profile shape already properly oriented, ready for extrude""" - import Part,DraftGeomUtils + import Part + import DraftGeomUtils prof = getattr(obj,direction+"MullionProfile") proh = getattr(obj,direction+"MullionHeight").Value @@ -562,4 +566,3 @@ class ViewProviderCurtainWall(ArchComponent.ViewProviderComponent): colors.append(panelcolor) if self.areDifferentColors(colors,obj.ViewObject.DiffuseColor) or force: obj.ViewObject.DiffuseColor = colors - diff --git a/src/Mod/BIM/ArchCutPlane.py b/src/Mod/BIM/ArchCutPlane.py index 9e5e67ecfa..8257f57f0b 100644 --- a/src/Mod/BIM/ArchCutPlane.py +++ b/src/Mod/BIM/ArchCutPlane.py @@ -21,20 +21,6 @@ #* * #***************************************************************************** -import FreeCAD -import Part -import Draft -import ArchCommands -if FreeCAD.GuiUp: - import FreeCADGui - from PySide import QtCore, QtGui - from draftutils.translate import translate -else: - # \cond - def translate(ctxt, txt): - return txt - # \endcond - __title__="FreeCAD CutPlane" __author__ = "Jonathan Wiedemann" __url__ = "https://www.freecad.org" @@ -45,6 +31,22 @@ __url__ = "https://www.freecad.org" # # This module handles the Cut Plane object +import FreeCAD +import ArchCommands +import Draft +import Part + +if FreeCAD.GuiUp: + from PySide import QtCore, QtGui + import FreeCADGui + from draftutils.translate import translate +else: + # \cond + def translate(ctxt, txt): + return txt + # \endcond + + # _getShapes(FreeCADGui.Selection.getSelectionEx("", 0)) def _getShapes(sels): """Check and process the user selection. diff --git a/src/Mod/BIM/ArchEquipment.py b/src/Mod/BIM/ArchEquipment.py index 401df591bc..866382b4ab 100644 --- a/src/Mod/BIM/ArchEquipment.py +++ b/src/Mod/BIM/ArchEquipment.py @@ -24,22 +24,6 @@ __title__ = "FreeCAD Equipment" __author__ = "Yorik van Havre" __url__ = "https://www.freecad.org" -import FreeCAD -import ArchComponent -import DraftVecUtils -if FreeCAD.GuiUp: - import FreeCADGui - from PySide import QtGui - from draftutils.translate import translate - from PySide.QtCore import QT_TRANSLATE_NOOP -else: - # \cond - def translate(ctxt,txt): - return txt - def QT_TRANSLATE_NOOP(ctxt,txt): - return txt - # \endcond - ## @package ArchEquipment # \ingroup ARCH # \brief The Equipment object and tools @@ -48,7 +32,22 @@ else: # Equipment is used to represent furniture and all kinds of electrical # or hydraulic appliances in a building +import FreeCAD +import ArchComponent +import DraftVecUtils +if FreeCAD.GuiUp: + from PySide import QtGui + from PySide.QtCore import QT_TRANSLATE_NOOP + import FreeCADGui + from draftutils.translate import translate +else: + # \cond + def translate(ctxt,txt): + return txt + def QT_TRANSLATE_NOOP(ctxt,txt): + return txt + # \endcond def createMeshView(obj,direction=FreeCAD.Vector(0,0,-1),outeronly=False,largestonly=False): @@ -305,4 +304,3 @@ class _ViewProviderEquipment(ArchComponent.ViewProviderComponent): self.coords.point.setValues([[p.x,p.y,p.z] for p in obj.SnapPoints]) else: self.coords.point.deleteValues(0) - diff --git a/src/Mod/BIM/ArchFence.py b/src/Mod/BIM/ArchFence.py index 49901eeddb..5ed8653aa0 100644 --- a/src/Mod/BIM/ArchFence.py +++ b/src/Mod/BIM/ArchFence.py @@ -28,9 +28,9 @@ import ArchComponent import draftobjects.patharray as patharray if FreeCAD.GuiUp: - import FreeCADGui from PySide.QtCore import QT_TRANSLATE_NOOP import PySide.QtGui as QtGui + import FreeCADGui else: # \cond def translate(ctxt, txt): diff --git a/src/Mod/BIM/ArchFloor.py b/src/Mod/BIM/ArchFloor.py index cbde18279c..653c416ac5 100644 --- a/src/Mod/BIM/ArchFloor.py +++ b/src/Mod/BIM/ArchFloor.py @@ -20,6 +20,18 @@ #* * #*************************************************************************** +__title__ = "FreeCAD Arch Floor" +__author__ = "Yorik van Havre" +__url__ = "https://www.freecad.org" + +## @package ArchFloor +# \ingroup ARCH +# \brief The Floor object and tools +# +# This module provides tools to build Floor objects. +# Floors are used to group different Arch objects situated +# at a same level + """This module provides tools to build Floor objects. Floors are used to group different Arch objects situated at a same level. @@ -33,12 +45,13 @@ import ArchCommands import ArchIFC import Draft import DraftVecUtils + from draftutils import params if FreeCAD.GuiUp: + from PySide.QtCore import QT_TRANSLATE_NOOP import FreeCADGui from draftutils.translate import translate - from PySide.QtCore import QT_TRANSLATE_NOOP else: # \cond def translate(ctxt,txt): @@ -47,17 +60,6 @@ else: return txt # \endcond -## @package ArchFloor -# \ingroup ARCH -# \brief The Floor object and tools -# -# This module provides tools to build Floor objects. -# Floors are used to group different Arch objects situated -# at a same level - -__title__ = "FreeCAD Arch Floor" -__author__ = "Yorik van Havre" -__url__ = "https://www.freecad.org" def makeFloor(objectslist=None,baseobj=None,name=None): """Obsolete, superseded by ArchBuildingPart.makeFloor. diff --git a/src/Mod/BIM/ArchFrame.py b/src/Mod/BIM/ArchFrame.py index c7e09460b9..cc26b181db 100644 --- a/src/Mod/BIM/ArchFrame.py +++ b/src/Mod/BIM/ArchFrame.py @@ -19,21 +19,9 @@ #* * #*************************************************************************** -import FreeCAD -import ArchComponent -import Draft -import DraftVecUtils -if FreeCAD.GuiUp: - import FreeCADGui - from draftutils.translate import translate - from PySide.QtCore import QT_TRANSLATE_NOOP -else: - # \cond - def translate(ctxt,txt): - return txt - def QT_TRANSLATE_NOOP(ctxt,txt): - return txt - # \endcond +__title__ = "FreeCAD Arch Frame" +__author__ = "Yorik van Havre" +__url__ = "https://www.freecad.org" ## @package ArchFrame # \ingroup ARCH @@ -43,10 +31,22 @@ else: # Frames are objects made of a profile and an object with # edges along which the profile gets extruded -__title__ = "FreeCAD Arch Frame" -__author__ = "Yorik van Havre" -__url__ = "https://www.freecad.org" +import FreeCAD +import ArchComponent +import Draft +import DraftVecUtils +if FreeCAD.GuiUp: + from PySide.QtCore import QT_TRANSLATE_NOOP + import FreeCADGui + from draftutils.translate import translate +else: + # \cond + def translate(ctxt,txt): + return txt + def QT_TRANSLATE_NOOP(ctxt,txt): + return txt + # \endcond class _Frame(ArchComponent.Component): @@ -228,4 +228,3 @@ class _ViewProviderFrame(ArchComponent.ViewProviderComponent): if self.Object.Profile: p = [self.Object.Profile] return ArchComponent.ViewProviderComponent.claimChildren(self)+p - diff --git a/src/Mod/BIM/ArchGrid.py b/src/Mod/BIM/ArchGrid.py index dd14d12c5f..6873fe651a 100644 --- a/src/Mod/BIM/ArchGrid.py +++ b/src/Mod/BIM/ArchGrid.py @@ -19,23 +19,6 @@ #* * #*************************************************************************** -import math - -import FreeCAD -import Part -if FreeCAD.GuiUp: - import FreeCADGui - from PySide import QtCore, QtGui - from draftutils.translate import translate - from PySide.QtCore import QT_TRANSLATE_NOOP -else: - # \cond - def translate(ctxt,txt): - return txt - def QT_TRANSLATE_NOOP(ctxt,txt): - return txt - # \endcond - __title__ = "FreeCAD Axis System" __author__ = "Yorik van Havre" __url__ = "https://www.freecad.org" @@ -46,6 +29,24 @@ __url__ = "https://www.freecad.org" # # This module provides tools to build grid systems +import math + +import FreeCAD +import Part + +if FreeCAD.GuiUp: + from PySide import QtCore, QtGui + from PySide.QtCore import QT_TRANSLATE_NOOP + import FreeCADGui + from draftutils.translate import translate +else: + # \cond + def translate(ctxt,txt): + return txt + def QT_TRANSLATE_NOOP(ctxt,txt): + return txt + # \endcond + class ArchGrid: diff --git a/src/Mod/BIM/ArchIFC.py b/src/Mod/BIM/ArchIFC.py index 2f96f4aff0..5b417b2acb 100644 --- a/src/Mod/BIM/ArchIFC.py +++ b/src/Mod/BIM/ArchIFC.py @@ -36,6 +36,7 @@ else: def QT_TRANSLATE_NOOP(ctx,txt): return txt + def uncamel(t): return ''.join(map(lambda x: x if x.islower() else " "+x, t[3:]))[1:] diff --git a/src/Mod/BIM/ArchIFCSchema.py b/src/Mod/BIM/ArchIFCSchema.py index 48aade83ca..affaa1fe73 100644 --- a/src/Mod/BIM/ArchIFCSchema.py +++ b/src/Mod/BIM/ArchIFCSchema.py @@ -26,10 +26,11 @@ Provides the data as IfcContexts, IfcProducts and IfcTypes. """ -import os import json +import os import FreeCAD + from draftutils import params ifcVersions = ["IFC4", "IFC2X3"] diff --git a/src/Mod/BIM/ArchIFCView.py b/src/Mod/BIM/ArchIFCView.py index 47325a2cd5..24ab0ac370 100644 --- a/src/Mod/BIM/ArchIFCView.py +++ b/src/Mod/BIM/ArchIFCView.py @@ -25,8 +25,8 @@ import FreeCAD import ArchIFC if FreeCAD.GuiUp: - import FreeCADGui from PySide import QtCore, QtGui + import FreeCADGui from draftutils.translate import translate else: def translate(ctxt,txt): diff --git a/src/Mod/BIM/ArchMaterial.py b/src/Mod/BIM/ArchMaterial.py index 30b0be4c36..77f3819ae9 100644 --- a/src/Mod/BIM/ArchMaterial.py +++ b/src/Mod/BIM/ArchMaterial.py @@ -19,23 +19,6 @@ #* * #*************************************************************************** -import FreeCAD -from draftutils import params - -if FreeCAD.GuiUp: - import FreeCADGui, os - import Arch_rc # Needed for access to icons # lgtm [py/unused_import] - from PySide import QtCore, QtGui - from draftutils.translate import translate - from PySide.QtCore import QT_TRANSLATE_NOOP -else: - # \cond - def translate(ctxt,txt): - return txt - def QT_TRANSLATE_NOOP(ctxt,txt): - return txt - # \endcond - __title__ = "Arch Material Management" __author__ = "Yorik van Havre" __url__ = "https://www.freecad.org" @@ -47,6 +30,25 @@ __url__ = "https://www.freecad.org" # This module provides tools to add materials to # Arch objects +import FreeCAD + +from draftutils import params + +if FreeCAD.GuiUp: + import os + from PySide import QtCore, QtGui + from PySide.QtCore import QT_TRANSLATE_NOOP + import FreeCADGui + import Arch_rc # Needed for access to icons # lgtm [py/unused_import] + from draftutils.translate import translate +else: + # \cond + def translate(ctxt,txt): + return txt + def QT_TRANSLATE_NOOP(ctxt,txt): + return txt + # \endcond + class _ArchMaterialContainer: @@ -895,5 +897,3 @@ class _ArchMultiMaterialTaskPanel: def reject(self): FreeCADGui.ActiveDocument.resetEdit() return True - - diff --git a/src/Mod/BIM/ArchPanel.py b/src/Mod/BIM/ArchPanel.py index d2b7f60f42..65be53c4d4 100644 --- a/src/Mod/BIM/ArchPanel.py +++ b/src/Mod/BIM/ArchPanel.py @@ -19,29 +19,9 @@ #* * #*************************************************************************** -import math - -import FreeCAD -import ArchCommands -import ArchComponent -import Draft -import DraftVecUtils -import Part -from FreeCAD import Vector -from draftutils import params - -if FreeCAD.GuiUp: - import FreeCADGui - from PySide import QtCore, QtGui - from draftutils.translate import translate - from PySide.QtCore import QT_TRANSLATE_NOOP -else: - # \cond - def translate(ctxt,txt): - return txt - def QT_TRANSLATE_NOOP(ctxt,txt): - return txt - # \endcond +__title__ = "FreeCAD Panel" +__author__ = "Yorik van Havre" +__url__ = "https://www.freecad.org" ## @package ArchPanel # \ingroup ARCH @@ -51,9 +31,30 @@ else: # Panels consist of a closed shape that gets extruded to # produce a flat object. -__title__ = "FreeCAD Panel" -__author__ = "Yorik van Havre" -__url__ = "https://www.freecad.org" +import math + +import FreeCAD +import ArchCommands +import ArchComponent +import Draft +import DraftVecUtils +import Part + +from FreeCAD import Vector +from draftutils import params + +if FreeCAD.GuiUp: + from PySide import QtCore, QtGui + from PySide.QtCore import QT_TRANSLATE_NOOP + import FreeCADGui + from draftutils.translate import translate +else: + # \cond + def translate(ctxt,txt): + return txt + def QT_TRANSLATE_NOOP(ctxt,txt): + return txt + # \endcond class _Panel(ArchComponent.Component): @@ -1075,6 +1076,3 @@ class SheetTaskPanel(ArchComponent.ComponentTaskPanel): FreeCADGui.Control.closeDialog() FreeCADGui.runCommand("Draft_Edit") - - - diff --git a/src/Mod/BIM/ArchPipe.py b/src/Mod/BIM/ArchPipe.py index 0d3f67d9a7..f04506516c 100644 --- a/src/Mod/BIM/ArchPipe.py +++ b/src/Mod/BIM/ArchPipe.py @@ -20,22 +20,9 @@ #* * #*************************************************************************** -import FreeCAD -import ArchComponent -from draftutils import params - -if FreeCAD.GuiUp: - import FreeCADGui - import Arch_rc - from draftutils.translate import translate - from PySide.QtCore import QT_TRANSLATE_NOOP -else: - # \cond - def translate(ctxt,txt): - return txt - def QT_TRANSLATE_NOOP(ctxt,txt): - return txt - # \endcond +__title__ = "Arch Pipe tools" +__author__ = "Yorik van Havre" +__url__ = "https://www.freecad.org" ## @package ArchPipe # \ingroup ARCH @@ -44,10 +31,23 @@ else: # This module provides tools to build Pipe and Pipe connector objects. # Pipes are tubular objects extruded along a base line. -__title__ = "Arch Pipe tools" -__author__ = "Yorik van Havre" -__url__ = "https://www.freecad.org" +import FreeCAD +import ArchComponent +from draftutils import params + +if FreeCAD.GuiUp: + from PySide.QtCore import QT_TRANSLATE_NOOP + import FreeCADGui + import Arch_rc + from draftutils.translate import translate +else: + # \cond + def translate(ctxt,txt): + return txt + def QT_TRANSLATE_NOOP(ctxt,txt): + return txt + # \endcond class _ArchPipe(ArchComponent.Component): @@ -451,5 +451,3 @@ class _ArchPipeConnector(ArchComponent.Component): if pipe.OffsetEnd != offset: pipe.OffsetEnd = offset pipe.Proxy.execute(pipe) - - diff --git a/src/Mod/BIM/ArchPrecast.py b/src/Mod/BIM/ArchPrecast.py index 138772679d..687d60c34c 100644 --- a/src/Mod/BIM/ArchPrecast.py +++ b/src/Mod/BIM/ArchPrecast.py @@ -23,16 +23,26 @@ __title__ = "FreeCAD Precast concrete module" __author__ = "Yorik van Havre" __url__ = "https://www.freecad.org" +## @package ArchPrecast +# \ingroup ARCH +# \brief Precast options for ArchStructure +# +# This module provides additional presets for the Arch Structure +# tool, to build a series of precast concrete elements + """This module contains tools to build basic precast concrete elements: Beams, pillars, slabs and panels""" -import ArchCommands,ArchComponent,FreeCAD +import FreeCAD +import ArchCommands +import ArchComponent + from FreeCAD import Vector from draftutils import params if FreeCAD.GuiUp: - from draftutils.translate import translate from PySide.QtCore import QT_TRANSLATE_NOOP + from draftutils.translate import translate else: # \cond def translate(ctxt,txt): @@ -41,12 +51,6 @@ else: return txt # \endcond -## @package ArchPrecast -# \ingroup ARCH -# \brief Precast options for ArchStructure -# -# This module provides additional presets for the Arch Structure -# tool, to build a series of precast concrete elements class _Precast(ArchComponent.Component): @@ -684,7 +688,8 @@ class _PrecastStairs(_Precast): if length < tread: length = tread # minimum - import math,Part + import math + import Part p = [Vector(0,0,0)] # relative moves if downlength: diff --git a/src/Mod/BIM/ArchProfile.py b/src/Mod/BIM/ArchProfile.py index 7e34aa8bbd..d9395cd7be 100644 --- a/src/Mod/BIM/ArchProfile.py +++ b/src/Mod/BIM/ArchProfile.py @@ -35,14 +35,15 @@ import os import FreeCAD import Draft + from FreeCAD import Vector from draftutils import params if FreeCAD.GuiUp: - import FreeCADGui from PySide import QtCore, QtGui - from draftutils.translate import translate from PySide.QtCore import QT_TRANSLATE_NOOP + import FreeCADGui + from draftutils.translate import translate else: # \cond def translate(ctxt,txt): @@ -465,5 +466,3 @@ class ProfileTaskPanel: def retranslateUi(self, TaskPanel): self.form.setWindowTitle(self.type+" "+QtGui.QApplication.translate("Arch", "Profile", None)) - - diff --git a/src/Mod/BIM/ArchProject.py b/src/Mod/BIM/ArchProject.py index feb2279e58..70c281867e 100644 --- a/src/Mod/BIM/ArchProject.py +++ b/src/Mod/BIM/ArchProject.py @@ -20,6 +20,16 @@ #* * #*************************************************************************** +__title__ = "FreeCAD Project" +__author__ = "Yorik van Havre" +__url__ = "https://www.freecad.org" + +## @package ArchProject +# \ingroup ARCH +# \brief The Project object and tools +# +# This module provides tools to build Project objects. + """This module provides tools to build Project objects. Project objects are objects specifically for better IFC compatibility, allowing the user to tweak certain IFC relevant values. @@ -28,26 +38,17 @@ certain IFC relevant values. import FreeCAD import ArchIFC import ArchIFCView + if FreeCAD.GuiUp: + from PySide.QtCore import QT_TRANSLATE_NOOP import FreeCADGui from draftutils.translate import translate - from PySide.QtCore import QT_TRANSLATE_NOOP else: def translate(ctxt,txt): return txt def QT_TRANSLATE_NOOP(ctxt,txt): return txt -## @package ArchProject -# \ingroup ARCH -# \brief The Project object and tools -# -# This module provides tools to build Project objects. - -__title__ = "FreeCAD Project" -__author__ = "Yorik van Havre" -__url__ = "https://www.freecad.org" - class _Project(ArchIFC.IfcContext): """The project object. diff --git a/src/Mod/BIM/ArchRebar.py b/src/Mod/BIM/ArchRebar.py index 83e6f235b0..ca7e7a40ec 100644 --- a/src/Mod/BIM/ArchRebar.py +++ b/src/Mod/BIM/ArchRebar.py @@ -20,17 +20,30 @@ #*************************************************************************** # Modified Amritpal Singh on 07-07-2017 +__title__ = "FreeCAD Rebar" +__author__ = "Yorik van Havre" +__url__ = "https://www.freecad.org" + +## @package ArchRebar +# \ingroup ARCH +# \brief The Rebar object and tools +# +# This module provides tools to build Rebar objects. +# Rebars (or Reinforcing Bars) are metallic bars placed +# inside concrete structures to reinforce them. + import FreeCAD -import Draft -import ArchComponent -import DraftVecUtils import ArchCommands +import ArchComponent +import Draft +import DraftVecUtils + from draftutils import params if FreeCAD.GuiUp: + from PySide.QtCore import QT_TRANSLATE_NOOP import FreeCADGui from draftutils.translate import translate - from PySide.QtCore import QT_TRANSLATE_NOOP else: # \cond def translate(ctxt,txt): @@ -43,18 +56,6 @@ else: from bimcommands import BimRebar _CommandRebar = BimRebar.Arch_Rebar -## @package ArchRebar -# \ingroup ARCH -# \brief The Rebar object and tools -# -# This module provides tools to build Rebar objects. -# Rebars (or Reinforcing Bars) are metallic bars placed -# inside concrete structures to reinforce them. - -__title__ = "FreeCAD Rebar" -__author__ = "Yorik van Havre" -__url__ = "https://www.freecad.org" - class _Rebar(ArchComponent.Component): @@ -447,9 +448,9 @@ class _ViewProviderRebar(ArchComponent.ViewProviderComponent): self.centerlinegroup.removeChild(self.centerline) if hasattr(obj.Proxy,"wires"): if obj.Proxy.wires: + import re from pivy import coin import Part - import re self.centerline = coin.SoSeparator() comp = Part.makeCompound(obj.Proxy.wires) buf = re.findall(r"point \[(.*?)\]",comp.writeInventor().replace("\n","")) @@ -570,4 +571,3 @@ def getLengthOfRebar(rebar): else: FreeCAD.Console.PrintError("Cannot calculate rebar length from its base object\n") return None - diff --git a/src/Mod/BIM/ArchReference.py b/src/Mod/BIM/ArchReference.py index 2a6fa18396..f5ffe91445 100644 --- a/src/Mod/BIM/ArchReference.py +++ b/src/Mod/BIM/ArchReference.py @@ -23,26 +23,6 @@ __title__ = "FreeCAD Arch External Reference" __author__ = "Yorik van Havre" __url__ = "https://www.freecad.org" - -import FreeCAD -import os -import zipfile -import re -from draftutils import params - -if FreeCAD.GuiUp: - import FreeCADGui - from PySide import QtCore, QtGui - from draftutils.translate import translate - from PySide.QtCore import QT_TRANSLATE_NOOP -else: - # \cond - def translate(ctxt,txt): - return txt - def QT_TRANSLATE_NOOP(ctxt,txt): - return txt - # \endcond - ## @package ArchReference # \ingroup ARCH # \brief The Reference object and tools @@ -51,6 +31,27 @@ else: # References can take a shape from a Part-based object in # another file. +import os +import re +import zipfile + +import FreeCAD + +from draftutils import params + +if FreeCAD.GuiUp: + from PySide import QtCore, QtGui + from PySide.QtCore import QT_TRANSLATE_NOOP + import FreeCADGui + from draftutils.translate import translate +else: + # \cond + def translate(ctxt,txt): + return txt + def QT_TRANSLATE_NOOP(ctxt,txt): + return txt + # \endcond + class ArchReference: @@ -973,6 +974,3 @@ class ArchReferenceTaskPanel: FreeCAD.loadFile(self.obj.File) FreeCADGui.Control.closeDialog() FreeCADGui.ActiveDocument.resetEdit() - - - diff --git a/src/Mod/BIM/ArchRoof.py b/src/Mod/BIM/ArchRoof.py index a5392ec381..8509a557d0 100644 --- a/src/Mod/BIM/ArchRoof.py +++ b/src/Mod/BIM/ArchRoof.py @@ -19,28 +19,9 @@ #* * #*************************************************************************** -import math - -import ArchComponent -import DraftGeomUtils -import DraftVecUtils -import FreeCAD -import Part - -from FreeCAD import Vector - -if FreeCAD.GuiUp: - import FreeCADGui - from PySide import QtCore, QtGui - from draftutils.translate import translate - from PySide.QtCore import QT_TRANSLATE_NOOP -else: - # \cond - def translate(ctxt, txt): - return txt - def QT_TRANSLATE_NOOP(ctxt, txt): - return txt - # \endcond +__title__ = "FreeCAD Roof" +__author__ = "Yorik van Havre", "Jonathan Wiedemann" +__url__ = "https://www.freecad.org" ## @package ArchRoof # \ingroup ARCH @@ -50,9 +31,28 @@ else: # Roofs are built from a closed contour and a series of # slopes. -__title__ = "FreeCAD Roof" -__author__ = "Yorik van Havre", "Jonathan Wiedemann" -__url__ = "https://www.freecad.org" +import math + +import FreeCAD +import ArchComponent +import DraftGeomUtils +import DraftVecUtils +import Part + +from FreeCAD import Vector + +if FreeCAD.GuiUp: + from PySide import QtCore, QtGui + from PySide.QtCore import QT_TRANSLATE_NOOP + import FreeCADGui + from draftutils.translate import translate +else: + # \cond + def translate(ctxt, txt): + return txt + def QT_TRANSLATE_NOOP(ctxt, txt): + return txt + # \endcond def adjust_list_len (lst, newLn, val): @@ -955,4 +955,3 @@ class _RoofTaskPanel: QtGui.QApplication.translate("Arch", "Thickness (mm)", None), QtGui.QApplication.translate("Arch", "Overhang (mm)", None), QtGui.QApplication.translate("Arch", "Height (mm)", None)]) - diff --git a/src/Mod/BIM/ArchSchedule.py b/src/Mod/BIM/ArchSchedule.py index 6cf4e8384d..efd6a3534e 100644 --- a/src/Mod/BIM/ArchSchedule.py +++ b/src/Mod/BIM/ArchSchedule.py @@ -20,21 +20,9 @@ #* * #*************************************************************************** -import FreeCAD -from draftutils import params - -if FreeCAD.GuiUp: - import FreeCADGui - from PySide import QtCore, QtGui - from draftutils.translate import translate - from PySide.QtCore import QT_TRANSLATE_NOOP -else: - # \cond - def translate(ctxt,txt): - return txt - def QT_TRANSLATE_NOOP(ctxt,txt): - return txt - # \endcond +__title__ = "Arch Schedule" +__author__ = "Yorik van Havre" +__url__ = "https://www.freecad.org" ## @package ArchSchedule # \ingroup ARCH @@ -44,16 +32,28 @@ else: # Schedules are objects that can count and gather information # about objects in the document, and fill a spreadsheet with the result -__title__ = "Arch Schedule" -__author__ = "Yorik van Havre" -__url__ = "https://www.freecad.org" +import FreeCAD + +from draftutils import params + +if FreeCAD.GuiUp: + from PySide import QtCore, QtGui + from PySide.QtCore import QT_TRANSLATE_NOOP + import FreeCADGui + from draftutils.translate import translate +else: + # \cond + def translate(ctxt,txt): + return txt + def QT_TRANSLATE_NOOP(ctxt,txt): + return txt + # \endcond PARAMS = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/BIM") VERBOSE = True # change this for silent recomputes - class _ArchScheduleDocObserver: "doc observer to monitor all recomputes" @@ -254,7 +254,8 @@ class _ArchSchedule: ifcfile = None elts = None if val: - import Draft,Arch + import Draft + import Arch if objs: objs = objs.split(";") objs = [FreeCAD.ActiveDocument.getObject(o) for o in objs] @@ -1000,5 +1001,3 @@ class ArchScheduleTaskPanel: self.obj.AutoUpdate = self.form.checkAutoUpdate.isChecked() FreeCAD.ActiveDocument.commitTransaction() FreeCAD.ActiveDocument.recompute() - - diff --git a/src/Mod/BIM/ArchSectionPlane.py b/src/Mod/BIM/ArchSectionPlane.py index 8a6bd08d73..be7c487266 100644 --- a/src/Mod/BIM/ArchSectionPlane.py +++ b/src/Mod/BIM/ArchSectionPlane.py @@ -19,34 +19,6 @@ #* * #*************************************************************************** -import FreeCAD -import math -import Draft -import ArchCommands -import DraftVecUtils -import ArchComponent -import re -import tempfile -import uuid -import time - -from FreeCAD import Vector -from draftutils import params - -if FreeCAD.GuiUp: - import FreeCADGui - from PySide import QtCore, QtGui - from draftutils.translate import translate - from pivy import coin - from PySide.QtCore import QT_TRANSLATE_NOOP -else: - # \cond - def translate(ctxt,txt): - return txt - def QT_TRANSLATE_NOOP(ctxt,txt): - return txt - # \endcond - ## @package ArchSectionPlane # \ingroup ARCH # \brief The Section plane object and tools @@ -55,6 +27,35 @@ else: # It also contains functionality to produce SVG rendering of # section planes, to be used in the TechDraw module +import math +import re +import tempfile +import time +import uuid + +import FreeCAD +import ArchCommands +import ArchComponent +import Draft +import DraftVecUtils + +from FreeCAD import Vector +from draftutils import params + +if FreeCAD.GuiUp: + from pivy import coin + from PySide import QtCore, QtGui + from PySide.QtCore import QT_TRANSLATE_NOOP + import FreeCADGui + from draftutils.translate import translate +else: + # \cond + def translate(ctxt,txt): + return txt + def QT_TRANSLATE_NOOP(ctxt,txt): + return txt + # \endcond + ISRENDERING = False # flag to prevent concurrent runs of the coin renderer @@ -94,7 +95,8 @@ def getCutShapes(objs,cutplane,onlySolids,clip,joinArch,showHidden,groupSshapesB obtained from performing a series of booleans against the given cut plane """ - import Part,DraftGeomUtils + import Part + import DraftGeomUtils shapes = [] hshapes = [] sshapes = [] @@ -364,7 +366,8 @@ def getSVG(source, if should_update_svg_cache: svgcache = '' # render using the Arch Vector Renderer - import ArchVRM, WorkingPlane + import ArchVRM + import WorkingPlane wp = WorkingPlane.PlaneBase() pl = FreeCAD.Placement(source.Placement) if source.ViewObject and hasattr(source.ViewObject,"CutMargin"): @@ -416,7 +419,8 @@ def getSVG(source, if should_update_svg_cache: svgcache = "" # render using the TechDraw module - import TechDraw, Part + import TechDraw + import Part if vshapes: baseshape = Part.makeCompound(vshapes) style = {'stroke': "SVGLINECOLOR", @@ -560,7 +564,8 @@ def getDXF(obj): allOn = getattr(obj, "AllOn", True) showHidden = getattr(obj, "ShowHidden", False) result = [] - import TechDraw, Part + import TechDraw + import Part if not obj.Source: return result source = obj.Source @@ -1348,4 +1353,3 @@ class SectionPlaneTaskPanel: self.resizeButton.setToolTip(QtGui.QApplication.translate("Arch", "Resizes the plane to fit the objects in the list above", None)) self.recenterButton.setText(QtGui.QApplication.translate("Arch", "Center", None)) self.recenterButton.setToolTip(QtGui.QApplication.translate("Arch", "Centers the plane on the objects in the list above", None)) - diff --git a/src/Mod/BIM/ArchSite.py b/src/Mod/BIM/ArchSite.py index ee67ead19f..5854471da5 100644 --- a/src/Mod/BIM/ArchSite.py +++ b/src/Mod/BIM/ArchSite.py @@ -20,6 +20,18 @@ #* * #*************************************************************************** +__title__= "FreeCAD Site" +__author__ = "Yorik van Havre" +__url__ = "https://www.freecad.org" + +## @package ArchSite +# \ingroup ARCH +# \brief The Site object and tools +# +# This module provides tools to build Site objects. +# Sites are containers for Arch objects, and also define a +# terrain surface + """This module provides tools to build Site objects. Sites are containers for Arch objects, and also define a terrain surface. """ @@ -33,13 +45,14 @@ import ArchCommands import ArchComponent import ArchIFC import Draft + from draftutils import params if FreeCAD.GuiUp: - import FreeCADGui from PySide import QtGui,QtCore - from draftutils.translate import translate from PySide.QtCore import QT_TRANSLATE_NOOP + import FreeCADGui + from draftutils.translate import translate else: # \cond def translate(ctxt,txt): @@ -48,18 +61,6 @@ else: return txt # \endcond -## @package ArchSite -# \ingroup ARCH -# \brief The Site object and tools -# -# This module provides tools to build Site objects. -# Sites are containers for Arch objects, and also define a -# terrain surface - -__title__= "FreeCAD Site" -__author__ = "Yorik van Havre" -__url__ = "https://www.freecad.org" - def toNode(shape): @@ -1180,4 +1181,3 @@ class _ViewProviderSite: def loads(self,state): return None - diff --git a/src/Mod/BIM/ArchSpace.py b/src/Mod/BIM/ArchSpace.py index 7c6f74a608..b6e97f59fa 100644 --- a/src/Mod/BIM/ArchSpace.py +++ b/src/Mod/BIM/ArchSpace.py @@ -24,6 +24,36 @@ __title__= "FreeCAD Arch Space" __author__ = "Yorik van Havre" __url__ = "https://www.freecad.org" +## @package ArchSpace +# \ingroup ARCH +# \brief The Space object and tools +# +# This module provides tools to build Space objects. +# Spaces define an open volume inside or outside a +# building, ie. a room. + +import re + +import FreeCAD +import ArchComponent +import ArchCommands +import Draft + +from draftutils import params + +if FreeCAD.GuiUp: + from PySide import QtCore, QtGui + from PySide.QtCore import QT_TRANSLATE_NOOP + import FreeCADGui + from draftutils.translate import translate +else: + # \cond + def translate(ctxt,txt): + return txt + def QT_TRANSLATE_NOOP(ctxt,txt): + return txt + # \endcond + SpaceTypes = [ "Undefined", "Exterior", @@ -151,35 +181,6 @@ AreaCalculationType = [ ] -import FreeCAD -import ArchComponent -import ArchCommands -import Draft -from draftutils import params -import re - -if FreeCAD.GuiUp: - import FreeCADGui - from PySide import QtCore, QtGui - from draftutils.translate import translate - from PySide.QtCore import QT_TRANSLATE_NOOP -else: - # \cond - def translate(ctxt,txt): - return txt - def QT_TRANSLATE_NOOP(ctxt,txt): - return txt - # \endcond - -## @package ArchSpace -# \ingroup ARCH -# \brief The Space object and tools -# -# This module provides tools to build Space objects. -# Spaces define an open volume inside or outside a -# building, ie. a room. - - class _Space(ArchComponent.Component): "A space object" diff --git a/src/Mod/BIM/ArchStairs.py b/src/Mod/BIM/ArchStairs.py index ec504b237f..590166d1bc 100644 --- a/src/Mod/BIM/ArchStairs.py +++ b/src/Mod/BIM/ArchStairs.py @@ -23,17 +23,29 @@ __title__= "FreeCAD Arch Stairs" __author__ = "Yorik van Havre" __url__ = "https://www.freecad.org" +## @package ArchStairs +# \ingroup ARCH +# \brief The Stairs object and tools +# +# This module provides tools to build Stairs objects. -import FreeCAD,ArchComponent,Draft,DraftVecUtils,math,ArchPipe -import Part, DraftGeomUtils +import math + +import FreeCAD +import ArchComponent +import ArchPipe +import Draft +import DraftVecUtils +import DraftGeomUtils +import Part from FreeCAD import Vector from draftutils import params if FreeCAD.GuiUp: + from PySide.QtCore import QT_TRANSLATE_NOOP import FreeCADGui from draftutils.translate import translate - from PySide.QtCore import QT_TRANSLATE_NOOP else: # \cond def translate(ctxt,txt): @@ -42,16 +54,9 @@ else: return txt # \endcond -## @package ArchStairs -# \ingroup ARCH -# \brief The Stairs object and tools -# -# This module provides tools to build Stairs objects. - zeroMM = FreeCAD.Units.Quantity('0mm') - class _Stairs(ArchComponent.Component): "A stairs object" @@ -373,7 +378,7 @@ class _Stairs(ArchComponent.Component): if baseProxy and obj.ArchSketchData and \ hasattr(baseProxy, 'getStairsBaseShapeEdgesInfo'): propSetUuid = self.ArchSkPropSetPickedUuid - info = baseProxy.getStairsBaseShapeEdgesInfo(obj.Base, + info = baseProxy.getStairsBaseShapeEdgesInfo(obj.Base, propSetUuid=propSetUuid) if info: flightAxis = info.get('flightAxis') @@ -443,7 +448,7 @@ class _Stairs(ArchComponent.Component): edgeL = [Part.sortEdges(obj.Base.Shape.Edges)[0]] else: # Should not happen? edgeL = [] - #lenAxis = len(flightAxis) + len(landingAxis) + #lenAxis = len(flightAxis) + len(landingAxis) # Build Stairs if there is no obj.Base or even obj.Base is not valid else: @@ -1570,5 +1575,3 @@ class _ViewProviderStairs(ArchComponent.ViewProviderComponent): lst.extend(obj.Subtractions) return lst return [] - - diff --git a/src/Mod/BIM/ArchStructure.py b/src/Mod/BIM/ArchStructure.py index dd67c0407c..f1750a26d0 100644 --- a/src/Mod/BIM/ArchStructure.py +++ b/src/Mod/BIM/ArchStructure.py @@ -20,26 +20,9 @@ #*************************************************************************** #Modified 2016-01-03 JAndersM -import FreeCAD,Draft,ArchComponent,DraftVecUtils,ArchCommands -from FreeCAD import Vector -import ArchProfile -from draftutils import params -from draftutils import gui_utils - -if FreeCAD.GuiUp: - import FreeCADGui - from PySide import QtCore, QtGui - from draftutils.translate import translate - from PySide.QtCore import QT_TRANSLATE_NOOP - import ArchPrecast - import draftguitools.gui_trackers as DraftTrackers -else: - # \cond - def translate(ctxt,txt): - return txt - def QT_TRANSLATE_NOOP(ctxt,txt): - return txt - # \endcond +__title__= "FreeCAD Structure" +__author__ = "Yorik van Havre" +__url__ = "https://www.freecad.org" ## @package ArchStructure # \ingroup ARCH @@ -50,9 +33,31 @@ else: # elements that have a structural function, that is, that # support other parts of the building. -__title__= "FreeCAD Structure" -__author__ = "Yorik van Havre" -__url__ = "https://www.freecad.org" +import FreeCAD +import ArchComponent +import ArchCommands +import ArchProfile +import Draft +import DraftVecUtils + +from FreeCAD import Vector +from draftutils import params +from draftutils import gui_utils + +if FreeCAD.GuiUp: + from PySide import QtCore, QtGui + from PySide.QtCore import QT_TRANSLATE_NOOP + import FreeCADGui + import ArchPrecast + import draftguitools.gui_trackers as DraftTrackers + from draftutils.translate import translate +else: + # \cond + def translate(ctxt,txt): + return txt + def QT_TRANSLATE_NOOP(ctxt,txt): + return txt + # \endcond #Reads preset profiles and categorizes them @@ -786,7 +791,8 @@ class _Structure(ArchComponent.Component): "creates the structure shape" - import Part, DraftGeomUtils + import Part + import DraftGeomUtils if self.clone(obj): return @@ -905,7 +911,8 @@ class _Structure(ArchComponent.Component): IfcType = obj.IfcType else: IfcType = None - import Part,DraftGeomUtils + import Part + import DraftGeomUtils data = ArchComponent.Component.getExtrusionData(self,obj) if data: if not isinstance(data[0],list): @@ -1544,7 +1551,8 @@ class _StructuralSystem(ArchComponent.Component): # OBSOLETE - All Arch objects def execute(self,obj): "creates the structure shape" - import Part, DraftGeomUtils + import Part + import DraftGeomUtils # creating base shape pl = obj.Placement diff --git a/src/Mod/BIM/ArchTruss.py b/src/Mod/BIM/ArchTruss.py index 51b189b723..5db3bf06bf 100644 --- a/src/Mod/BIM/ArchTruss.py +++ b/src/Mod/BIM/ArchTruss.py @@ -24,14 +24,21 @@ __title__ = "FreeCAD Arch Truss" __author__ = "Yorik van Havre" __url__ = "https://www.freecad.org" +## @package ArchTruss +# \ingroup ARCH +# \brief The Truss object and tools +# +# This module provides tools to build Truss objects. + import math + import FreeCAD import ArchComponent if FreeCAD.GuiUp: + from PySide.QtCore import QT_TRANSLATE_NOOP import FreeCADGui from draftutils.translate import translate - from PySide.QtCore import QT_TRANSLATE_NOOP else: # \cond def translate(ctxt,txt): @@ -40,12 +47,6 @@ else: return txt # \endcond -## @package ArchTruss -# \ingroup ARCH -# \brief The Truss object and tools -# -# This module provides tools to build Truss objects. - rodmodes = ("/|/|/|", "/\\/\\/\\", "/|\\|/|\\", @@ -328,4 +329,3 @@ class ViewProviderTruss(ArchComponent.ViewProviderComponent): import Arch_rc return ":/icons/Arch_Truss_Tree.svg" - diff --git a/src/Mod/BIM/ArchVRM.py b/src/Mod/BIM/ArchVRM.py index 4ce391b912..a670c09078 100644 --- a/src/Mod/BIM/ArchVRM.py +++ b/src/Mod/BIM/ArchVRM.py @@ -21,15 +21,6 @@ "The FreeCAD Arch Vector Rendering Module" -import math - -import FreeCAD -import ArchCommands -import DraftVecUtils -import DraftGeomUtils -import Part -from draftutils import params - ## @package ArchVRM # \ingroup ARCH # \brief The Arch Vector Rendering Module @@ -39,6 +30,16 @@ from draftutils import params # It is used by the "Solid" mode of Arch views in TechDraw and Drawing, # and is called from ArchSectionPlane code. +import math + +import FreeCAD +import ArchCommands +import DraftVecUtils +import DraftGeomUtils +import Part + +from draftutils import params + MAXLOOP = 10 # the max number of loop before abort # WARNING: in this module, faces are lists whose first item is the actual OCC face, the diff --git a/src/Mod/BIM/ArchWall.py b/src/Mod/BIM/ArchWall.py index c839b3e9ca..76fc74d122 100644 --- a/src/Mod/BIM/ArchWall.py +++ b/src/Mod/BIM/ArchWall.py @@ -19,6 +19,18 @@ #* * #*************************************************************************** +__title__ = "FreeCAD Wall" +__author__ = "Yorik van Havre" +__url__ = "https://www.freecad.org" + +## @package ArchWall +# \ingroup ARCH +# \brief The Wall object and tools +# +# This module provides tools to build Wall objects. Walls are simple objects, +# usually vertical, typically obtained by giving a thickness to a base line, +# then extruding it vertically. + """This module provides tools to build Wall objects. Walls are simple objects, usually vertical, typically obtained by giving a thickness to a base line, then extruding it vertically. @@ -29,17 +41,24 @@ TODO put examples here. """ -import FreeCAD,Draft,ArchComponent,DraftVecUtils,ArchCommands,math +import math + +import FreeCAD +import ArchCommands +import ArchComponent +import ArchSketchObject +import Draft +import DraftVecUtils + from FreeCAD import Vector from draftutils import params -import ArchSketchObject if FreeCAD.GuiUp: - import FreeCADGui from PySide import QtCore, QtGui - from draftutils.translate import translate from PySide.QtCore import QT_TRANSLATE_NOOP + import FreeCADGui import draftguitools.gui_trackers as DraftTrackers + from draftutils.translate import translate else: # \cond def translate(ctxt,txt): @@ -48,19 +67,6 @@ else: return txt # \endcond -## @package ArchWall -# \ingroup ARCH -# \brief The Wall object and tools -# -# This module provides tools to build Wall objects. Walls are simple objects, -# usually vertical, typically obtained by giving a thickness to a base line, -# then extruding it vertically. - -__title__ = "FreeCAD Wall" -__author__ = "Yorik van Havre" -__url__ = "https://www.freecad.org" - - def mergeShapes(w1,w2): """Not currently implemented. @@ -905,7 +911,7 @@ class _Wall(ArchComponent.Component): elif hasattr(obj.Base, 'Proxy') and obj.ArchSketchData and \ hasattr(obj.Base.Proxy, 'getWallBaseShapeEdgesInfo'): - wallBaseShapeEdgesInfo = obj.Base.Proxy.getWallBaseShapeEdgesInfo(obj.Base, + wallBaseShapeEdgesInfo = obj.Base.Proxy.getWallBaseShapeEdgesInfo(obj.Base, propSetUuid=propSetUuid) #get wall edges (not wires); use original edges if getWallBaseShapeEdgesInfo() provided none if wallBaseShapeEdgesInfo: diff --git a/src/Mod/BIM/ArchWindow.py b/src/Mod/BIM/ArchWindow.py index 93eea82a52..051674dd56 100644 --- a/src/Mod/BIM/ArchWindow.py +++ b/src/Mod/BIM/ArchWindow.py @@ -19,32 +19,9 @@ #* * #*************************************************************************** -import os - -import FreeCAD -import ArchCommands -import ArchComponent -import Draft -import DraftVecUtils -import ArchWindowPresets -from FreeCAD import Units -from FreeCAD import Vector -from draftutils import params -from draftutils.messages import _wrn - -if FreeCAD.GuiUp: - import FreeCADGui - from PySide import QtCore, QtGui - from draftutils.translate import translate - from PySide.QtCore import QT_TRANSLATE_NOOP - import draftguitools.gui_trackers as DraftTrackers -else: - # \cond - def translate(ctxt,txt): - return txt - def QT_TRANSLATE_NOOP(ctxt,txt): - return txt - # \endcond +__title__ = "FreeCAD Window" +__author__ = "Yorik van Havre" +__url__ = "https://www.freecad.org" ## @package ArchWindow # \ingroup ARCH @@ -55,9 +32,33 @@ else: # of wires, and that can be inserted into other Arch objects, # by defining a volume that gets subtracted from them. -__title__ = "FreeCAD Window" -__author__ = "Yorik van Havre" -__url__ = "https://www.freecad.org" +import os + +import FreeCAD +import ArchCommands +import ArchComponent +import ArchWindowPresets +import Draft +import DraftVecUtils + +from FreeCAD import Units +from FreeCAD import Vector +from draftutils import params +from draftutils.messages import _wrn + +if FreeCAD.GuiUp: + from PySide import QtCore, QtGui + from PySide.QtCore import QT_TRANSLATE_NOOP + import FreeCADGui + import draftguitools.gui_trackers as DraftTrackers + from draftutils.translate import translate +else: + # \cond + def translate(ctxt,txt): + return txt + def QT_TRANSLATE_NOOP(ctxt,txt): + return txt + # \endcond # presets WindowPartTypes = ["Frame","Solid panel","Glass panel","Louvre"] @@ -66,8 +67,6 @@ WindowOpeningModes = ["None","Arc 90","Arc 90 inv","Arc 45","Arc 45 inv","Arc 18 WindowPresets = ArchWindowPresets.WindowPresets - - def recolorize(attr): # names is [docname,objname] """Recolorizes an object or a [documentname,objectname] list @@ -1417,6 +1416,3 @@ class _ArchWindowTaskPanel: if self.obj: self.obj.ViewObject.Proxy.invertHinge() - - - diff --git a/src/Mod/BIM/BimStatus.py b/src/Mod/BIM/BimStatus.py index 9da009da0d..e4bb4dd66d 100644 --- a/src/Mod/BIM/BimStatus.py +++ b/src/Mod/BIM/BimStatus.py @@ -25,6 +25,7 @@ """This module contains FreeCAD commands for the BIM workbench""" import os + import FreeCAD import FreeCADGui diff --git a/src/Mod/BIM/InitGui.py b/src/Mod/BIM/InitGui.py index 2add05b491..d07c2296c2 100644 --- a/src/Mod/BIM/InitGui.py +++ b/src/Mod/BIM/InitGui.py @@ -23,6 +23,7 @@ """The BIM workbench""" import os + import FreeCAD import FreeCADGui import Arch_rc @@ -315,7 +316,9 @@ class BIMWorkbench(Workbench): # load webtools try: - import BIMServer, Git, Sketchfab + import BIMServer + import Git + import Sketchfab except ImportError: pass else: @@ -330,7 +333,9 @@ class BIMWorkbench(Workbench): # load flamingo try: - import CommandsPolar, CommandsFrame, CommandsPipe + import CommandsPolar + import CommandsFrame + import CommandsPipe except ImportError: flamingo = None else: @@ -369,7 +374,8 @@ class BIMWorkbench(Workbench): # load fasteners try: - import FastenerBase, FastenersCmd + import FastenerBase + import FastenersCmd except ImportError: fasteners = None else: diff --git a/src/Mod/BIM/OfflineRenderingUtils.py b/src/Mod/BIM/OfflineRenderingUtils.py index 1f566bf5be..2a490aa5f9 100755 --- a/src/Mod/BIM/OfflineRenderingUtils.py +++ b/src/Mod/BIM/OfflineRenderingUtils.py @@ -102,14 +102,13 @@ OfflineRenderingUtils.viewer(scene) OfflineRenderingUtils.save(doc,filename=baseFileName+"_exported.FCStd",colors=colors,camera=camera) """ -import sys +import binascii +import inspect import os +import sys +import tempfile import xml.sax import zipfile -import tempfile -import inspect -import binascii - diff --git a/src/Mod/BIM/TestArch.py b/src/Mod/BIM/TestArch.py index 31b6e55e9f..9057faee09 100644 --- a/src/Mod/BIM/TestArch.py +++ b/src/Mod/BIM/TestArch.py @@ -27,8 +27,6 @@ import os import unittest import FreeCAD as App -from FreeCAD import Units - import Arch import Draft import Part @@ -36,6 +34,7 @@ import Sketcher import TechDraw import WorkingPlane +from FreeCAD import Units from draftutils.messages import _msg if App.GuiUp: @@ -841,7 +840,7 @@ class ArchTest(unittest.TestCase): App.ActiveDocument.recompute() # To calculate area # Create the wall - trace = Part.LineSegment(App.Vector (3000.0, 1000.0, 0.0), + trace = Part.LineSegment(App.Vector (3000.0, 1000.0, 0.0), App.Vector (-3000.0, 1000.0, 0.0)) wp = WorkingPlane.get_working_plane() base = App.ActiveDocument.addObject("Sketcher::SketchObject","WallTrace") @@ -862,7 +861,7 @@ class ArchTest(unittest.TestCase): self.assertAlmostEqual( expectedArea.Value, actualArea.Value, - msg = (f"Invalid area value. " + + msg = (f"Invalid area value. " + f"Expected: {expectedArea.UserString}, actual: {actualArea.UserString}")) def test_SpaceFromSingleWall(self):