Skip to content

Commit

Permalink
Arch: allow for equipment objects to be part shapes
Browse files Browse the repository at this point in the history
  • Loading branch information
yorikvanhavre committed Aug 30, 2014
1 parent 7c89591 commit 80e80fe
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 22 deletions.
56 changes: 36 additions & 20 deletions src/Mod/Arch/ArchEquipment.py
Expand Up @@ -41,9 +41,12 @@ def translate(ctxt,txt):
Roles = ["Furniture", "Hydro Equipment", "Electric Equipment"]


def makeEquipment(baseobj=None,placement=None,name=translate("Arch","Equipment")):
"makeEquipment([baseobj,placement,name]): creates an equipment object from the given base object"
obj = FreeCAD.ActiveDocument.addObject("Mesh::FeaturePython",name)
def makeEquipment(baseobj=None,placement=None,name=translate("Arch","Equipment"),type="Part"):
"makeEquipment([baseobj,placement,name,type]): creates an equipment object from the given base object"
if type == "Part":
obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython",name)
else:
obj = FreeCAD.ActiveDocument.addObject("Mesh::FeaturePython",name)
obj.Label = name
_Equipment(obj)
if baseobj:
Expand All @@ -52,6 +55,8 @@ def makeEquipment(baseobj=None,placement=None,name=translate("Arch","Equipment")
obj.Placement = placement
if FreeCAD.GuiUp:
_ViewProviderEquipment(obj.ViewObject)
if baseobj:
baseobj.ViewObject.hide()


def createMeshView(obj,direction=FreeCAD.Vector(0,0,-1),outeronly=False,largestonly=False):
Expand Down Expand Up @@ -230,25 +235,36 @@ def onChanged(self,obj,prop):

def execute(self,obj):
pl = obj.Placement
m = None
if obj.Base:

if obj.Base.isDerivedFrom("Part::Feature"):
base = obj.Base.Shape.copy()
base = self.processSubShapes(obj,base,pl)
if obj.isDerivedFrom("Mesh::Feature"):
m = None
if obj.Base.isDerivedFrom("Part::Feature"):
base = obj.Base.Shape.copy()
base = self.processSubShapes(obj,base,pl)
if base:
import Mesh
m = Mesh.Mesh(base.tessellate(1))

elif obj.Base.isDerivedFrom("Mesh::Feature"):
m = obj.Base.Mesh.copy()
if m:
if not pl.isNull():
m.Placement = pl
obj.Mesh = m
else:
base = None
if obj.Base.isDerivedFrom("Part::Feature"):
base = obj.Base.Shape.copy()
elif obj.Base.isDerivedFrom("Mesh::Feature"):
import Part
base = Part.Shape()
base.makeShapeFromMesh(obj.Base.Mesh.Topology,0.05)
base = base.removeSplitteR()
if base:
import Mesh
m = Mesh.Mesh(base.tessellate(1))

elif obj.Base.isDerivedFrom("Mesh::Feature"):
m = obj.Base.Mesh.copy()

if m:
if not pl.isNull():
m.Placement = pl
obj.Mesh = m


base = self.processSubShapes(obj,base,pl)
self.applyShape(obj,base,pl)


class _ViewProviderEquipment(ArchComponent.ViewProviderComponent):
"A View Provider for the Equipment object"

Expand Down
4 changes: 2 additions & 2 deletions src/Mod/Arch/InitGui.py
Expand Up @@ -89,7 +89,7 @@ def Initialize(self):
"Draft_Trimex", "Draft_Upgrade", "Draft_Downgrade", "Draft_Scale",
"Draft_Drawing","Draft_Shape2DView","Draft_Draft2Sketch","Draft_Array",
"Draft_Clone"]
self.extramodtools = ["Draft_WireToBSpline","Draft_AddPoint","Draft_DelPoint"]
self.draftextratools = ["Draft_WireToBSpline","Draft_AddPoint","Draft_DelPoint","Draft_ShapeString","Draft_PathArray"]
self.draftcontexttools = ["Draft_ApplyStyle","Draft_ToggleDisplayMode","Draft_AddToGroup",
"Draft_SelectGroup","Draft_SelectPlane",
"Draft_ShowSnapBar","Draft_ToggleGrid","Draft_UndoLine",
Expand All @@ -107,7 +107,7 @@ def Initialize(self):
self.appendToolbar(translate("arch","Draft mod tools"),self.draftmodtools)
self.appendMenu([translate("arch","&Architecture"),translate("arch","Utilities")],self.utilities)
self.appendMenu(translate("arch","&Architecture"),self.archtools)
self.appendMenu(translate("arch","&Draft"),self.drafttools+self.draftmodtools+self.extramodtools)
self.appendMenu(translate("arch","&Draft"),self.drafttools+self.draftmodtools+self.draftextratools)
self.appendMenu([translate("arch","&Draft"),translate("arch","Utilities")],self.draftutils+self.draftcontexttools)
self.appendMenu([translate("arch","&Draft"),translate("arch","Snapping")],self.snapList)
FreeCADGui.addIconPath(":/icons")
Expand Down

0 comments on commit 80e80fe

Please sign in to comment.