Arch: allow for equipment objects to be part shapes
This commit is contained in:
parent
7c89591ff6
commit
80e80fef83
|
@ -41,9 +41,12 @@ else:
|
|||
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:
|
||||
|
@ -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):
|
||||
|
@ -230,25 +235,36 @@ class _Equipment(ArchComponent.Component):
|
|||
|
||||
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"
|
||||
|
||||
|
|
|
@ -89,7 +89,7 @@ class ArchWorkbench(Workbench):
|
|||
"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",
|
||||
|
@ -107,7 +107,7 @@ class ArchWorkbench(Workbench):
|
|||
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")
|
||||
|
|
Loading…
Reference in New Issue
Block a user