123 lines
7.3 KiB
Python
123 lines
7.3 KiB
Python
#***************************************************************************
|
|
#* *
|
|
#* Copyright (c) 2011 *
|
|
#* Yorik van Havre <yorik@uncreated.net> *
|
|
#* *
|
|
#* This program is free software; you can redistribute it and/or modify *
|
|
#* it under the terms of the GNU Lesser General Public License (LGPL) *
|
|
#* as published by the Free Software Foundation; either version 2 of *
|
|
#* the License, or (at your option) any later version. *
|
|
#* for detail see the LICENCE text file. *
|
|
#* *
|
|
#* This program is distributed in the hope that it will be useful, *
|
|
#* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
#* GNU Library General Public License for more details. *
|
|
#* *
|
|
#* You should have received a copy of the GNU Library General Public *
|
|
#* License along with this program; if not, write to the Free Software *
|
|
#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
|
|
#* USA *
|
|
#* *
|
|
#***************************************************************************
|
|
|
|
class ArchWorkbench(Workbench):
|
|
"Arch workbench object"
|
|
def __init__(self):
|
|
self.__class__.Icon = FreeCAD.getResourceDir() + "Mod/Arch/Resources/icons/ArchWorkbench.svg"
|
|
self.__class__.MenuText = "Arch"
|
|
self.__class__.ToolTip = "Architecture workbench"
|
|
|
|
def Initialize(self):
|
|
import DraftTools,DraftGui,Arch_rc,Arch,Draft_rc
|
|
from DraftTools import translate
|
|
|
|
# arch tools
|
|
self.archtools = ["Arch_Wall","Arch_Structure","Arch_Rebar",
|
|
"Arch_Floor","Arch_Building","Arch_Site",
|
|
"Arch_Window","Arch_Roof","Arch_Axis",
|
|
"Arch_SectionPlane","Arch_Space","Arch_Stairs",
|
|
"Arch_PanelTools","Arch_Equipment",
|
|
"Arch_Frame","Arch_Material","Arch_Schedule","Arch_PipeTools",
|
|
"Arch_CutPlane","Arch_Add","Arch_Remove","Arch_Survey"]
|
|
self.utilities = ["Arch_Component","Arch_CloneComponent","Arch_SplitMesh","Arch_MeshToShape",
|
|
"Arch_SelectNonSolidMeshes","Arch_RemoveShape",
|
|
"Arch_CloseHoles","Arch_MergeWalls","Arch_Check",
|
|
"Arch_IfcExplorer","Arch_ToggleIfcBrepFlag","Arch_3Views",
|
|
"Arch_Bimserver","Arch_Git","Arch_IfcSpreadsheet","Arch_ToggleSubs"]
|
|
|
|
# draft tools
|
|
self.drafttools = ["Draft_Line","Draft_Wire","Draft_Circle","Draft_Arc","Draft_Ellipse",
|
|
"Draft_Polygon","Draft_Rectangle", "Draft_Text",
|
|
"Draft_Dimension", "Draft_BSpline","Draft_Point",
|
|
"Draft_Facebinder","Draft_BezCurve"]
|
|
self.draftmodtools = ["Draft_Move","Draft_Rotate","Draft_Offset",
|
|
"Draft_Trimex", "Draft_Upgrade", "Draft_Downgrade", "Draft_Scale",
|
|
"Draft_Shape2DView","Draft_Draft2Sketch","Draft_Array",
|
|
"Draft_Clone"]
|
|
self.draftextratools = ["Draft_WireToBSpline","Draft_AddPoint","Draft_DelPoint","Draft_ShapeString",
|
|
"Draft_PathArray","Draft_Mirror","Draft_Stretch"]
|
|
self.draftcontexttools = ["Draft_ApplyStyle","Draft_ToggleDisplayMode","Draft_AddToGroup",
|
|
"Draft_SelectGroup","Draft_SelectPlane",
|
|
"Draft_ShowSnapBar","Draft_ToggleGrid","Draft_UndoLine",
|
|
"Draft_FinishLine","Draft_CloseLine"]
|
|
self.draftutils = ["Draft_VisGroup","Draft_Heal","Draft_FlipDimension",
|
|
"Draft_ToggleConstructionMode","Draft_ToggleContinueMode","Draft_Edit",
|
|
"Draft_Slope"]
|
|
self.snapList = ['Draft_Snap_Lock','Draft_Snap_Midpoint','Draft_Snap_Perpendicular',
|
|
'Draft_Snap_Grid','Draft_Snap_Intersection','Draft_Snap_Parallel',
|
|
'Draft_Snap_Endpoint','Draft_Snap_Angle','Draft_Snap_Center',
|
|
'Draft_Snap_Extension','Draft_Snap_Near','Draft_Snap_Ortho','Draft_Snap_Special',
|
|
'Draft_Snap_Dimensions','Draft_Snap_WorkingPlane']
|
|
|
|
def QT_TRANSLATE_NOOP(scope, text): return text
|
|
self.appendToolbar(QT_TRANSLATE_NOOP("Workbench","Arch tools"),self.archtools)
|
|
self.appendToolbar(QT_TRANSLATE_NOOP("Workbench","Draft tools"),self.drafttools)
|
|
self.appendToolbar(QT_TRANSLATE_NOOP("Workbench","Draft mod tools"),self.draftmodtools)
|
|
self.appendMenu([QT_TRANSLATE_NOOP("arch","&Arch"),QT_TRANSLATE_NOOP("arch","Utilities")],self.utilities)
|
|
self.appendMenu(QT_TRANSLATE_NOOP("arch","&Arch"),self.archtools)
|
|
self.appendMenu(QT_TRANSLATE_NOOP("arch","&Draft"),self.drafttools+self.draftmodtools+self.draftextratools)
|
|
self.appendMenu([QT_TRANSLATE_NOOP("arch","&Draft"),QT_TRANSLATE_NOOP("arch","Utilities")],self.draftutils+self.draftcontexttools)
|
|
self.appendMenu([QT_TRANSLATE_NOOP("arch","&Draft"),QT_TRANSLATE_NOOP("arch","Snapping")],self.snapList)
|
|
FreeCADGui.addIconPath(":/icons")
|
|
FreeCADGui.addLanguagePath(":/translations")
|
|
FreeCADGui.addPreferencePage(":/ui/preferences-arch.ui","Arch")
|
|
FreeCADGui.addPreferencePage(":/ui/preferences-archdefaults.ui","Arch")
|
|
if hasattr(FreeCADGui,"draftToolBar"):
|
|
if not hasattr(FreeCADGui.draftToolBar,"loadedPreferences"):
|
|
FreeCADGui.addPreferencePage(":/ui/preferences-draft.ui","Draft")
|
|
FreeCADGui.addPreferencePage(":/ui/preferences-draftsnap.ui","Draft")
|
|
FreeCADGui.addPreferencePage(":/ui/preferences-draftvisual.ui","Draft")
|
|
FreeCADGui.addPreferencePage(":/ui/preferences-drafttexts.ui","Draft")
|
|
FreeCADGui.draftToolBar.loadedPreferences = True
|
|
Log ('Loading Arch module... done\n')
|
|
|
|
def Activated(self):
|
|
if hasattr(FreeCADGui,"draftToolBar"):
|
|
FreeCADGui.draftToolBar.Activated()
|
|
if hasattr(FreeCADGui,"Snapper"):
|
|
FreeCADGui.Snapper.show()
|
|
Msg("Arch workbench activated\n")
|
|
|
|
def Deactivated(self):
|
|
if hasattr(FreeCADGui,"draftToolBar"):
|
|
FreeCADGui.draftToolBar.Deactivated()
|
|
if hasattr(FreeCADGui,"Snapper"):
|
|
FreeCADGui.Snapper.hide()
|
|
Msg("Arch workbench deactivated\n")
|
|
|
|
def ContextMenu(self, recipient):
|
|
self.appendContextMenu("Utilities",self.draftcontexttools)
|
|
|
|
def GetClassName(self):
|
|
return "Gui::PythonWorkbench"
|
|
|
|
FreeCADGui.addWorkbench(ArchWorkbench)
|
|
|
|
# File format pref pages are independent and can be loaded at startup
|
|
import Arch_rc
|
|
FreeCADGui.addPreferencePage(":/ui/preferences-ifc.ui","Import-Export")
|
|
FreeCADGui.addPreferencePage(":/ui/preferences-dae.ui","Import-Export")
|
|
|
|
|