Arch: allow for equipment objects to be part shapes
This commit is contained in:
parent
7c89591ff6
commit
80e80fef83
|
@ -41,8 +41,11 @@ else:
|
||||||
Roles = ["Furniture", "Hydro Equipment", "Electric Equipment"]
|
Roles = ["Furniture", "Hydro Equipment", "Electric Equipment"]
|
||||||
|
|
||||||
|
|
||||||
def makeEquipment(baseobj=None,placement=None,name=translate("Arch","Equipment")):
|
def makeEquipment(baseobj=None,placement=None,name=translate("Arch","Equipment"),type="Part"):
|
||||||
"makeEquipment([baseobj,placement,name]): creates an equipment object from the given base object"
|
"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 = FreeCAD.ActiveDocument.addObject("Mesh::FeaturePython",name)
|
||||||
obj.Label = name
|
obj.Label = name
|
||||||
_Equipment(obj)
|
_Equipment(obj)
|
||||||
|
@ -52,6 +55,8 @@ def makeEquipment(baseobj=None,placement=None,name=translate("Arch","Equipment")
|
||||||
obj.Placement = placement
|
obj.Placement = placement
|
||||||
if FreeCAD.GuiUp:
|
if FreeCAD.GuiUp:
|
||||||
_ViewProviderEquipment(obj.ViewObject)
|
_ViewProviderEquipment(obj.ViewObject)
|
||||||
|
if baseobj:
|
||||||
|
baseobj.ViewObject.hide()
|
||||||
|
|
||||||
|
|
||||||
def createMeshView(obj,direction=FreeCAD.Vector(0,0,-1),outeronly=False,largestonly=False):
|
def createMeshView(obj,direction=FreeCAD.Vector(0,0,-1),outeronly=False,largestonly=False):
|
||||||
|
@ -230,9 +235,9 @@ class _Equipment(ArchComponent.Component):
|
||||||
|
|
||||||
def execute(self,obj):
|
def execute(self,obj):
|
||||||
pl = obj.Placement
|
pl = obj.Placement
|
||||||
m = None
|
|
||||||
if obj.Base:
|
if obj.Base:
|
||||||
|
if obj.isDerivedFrom("Mesh::Feature"):
|
||||||
|
m = None
|
||||||
if obj.Base.isDerivedFrom("Part::Feature"):
|
if obj.Base.isDerivedFrom("Part::Feature"):
|
||||||
base = obj.Base.Shape.copy()
|
base = obj.Base.Shape.copy()
|
||||||
base = self.processSubShapes(obj,base,pl)
|
base = self.processSubShapes(obj,base,pl)
|
||||||
|
@ -242,11 +247,22 @@ class _Equipment(ArchComponent.Component):
|
||||||
|
|
||||||
elif obj.Base.isDerivedFrom("Mesh::Feature"):
|
elif obj.Base.isDerivedFrom("Mesh::Feature"):
|
||||||
m = obj.Base.Mesh.copy()
|
m = obj.Base.Mesh.copy()
|
||||||
|
|
||||||
if m:
|
if m:
|
||||||
if not pl.isNull():
|
if not pl.isNull():
|
||||||
m.Placement = pl
|
m.Placement = pl
|
||||||
obj.Mesh = m
|
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:
|
||||||
|
base = self.processSubShapes(obj,base,pl)
|
||||||
|
self.applyShape(obj,base,pl)
|
||||||
|
|
||||||
|
|
||||||
class _ViewProviderEquipment(ArchComponent.ViewProviderComponent):
|
class _ViewProviderEquipment(ArchComponent.ViewProviderComponent):
|
||||||
|
|
|
@ -89,7 +89,7 @@ class ArchWorkbench(Workbench):
|
||||||
"Draft_Trimex", "Draft_Upgrade", "Draft_Downgrade", "Draft_Scale",
|
"Draft_Trimex", "Draft_Upgrade", "Draft_Downgrade", "Draft_Scale",
|
||||||
"Draft_Drawing","Draft_Shape2DView","Draft_Draft2Sketch","Draft_Array",
|
"Draft_Drawing","Draft_Shape2DView","Draft_Draft2Sketch","Draft_Array",
|
||||||
"Draft_Clone"]
|
"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",
|
self.draftcontexttools = ["Draft_ApplyStyle","Draft_ToggleDisplayMode","Draft_AddToGroup",
|
||||||
"Draft_SelectGroup","Draft_SelectPlane",
|
"Draft_SelectGroup","Draft_SelectPlane",
|
||||||
"Draft_ShowSnapBar","Draft_ToggleGrid","Draft_UndoLine",
|
"Draft_ShowSnapBar","Draft_ToggleGrid","Draft_UndoLine",
|
||||||
|
@ -107,7 +107,7 @@ class ArchWorkbench(Workbench):
|
||||||
self.appendToolbar(translate("arch","Draft mod tools"),self.draftmodtools)
|
self.appendToolbar(translate("arch","Draft mod tools"),self.draftmodtools)
|
||||||
self.appendMenu([translate("arch","&Architecture"),translate("arch","Utilities")],self.utilities)
|
self.appendMenu([translate("arch","&Architecture"),translate("arch","Utilities")],self.utilities)
|
||||||
self.appendMenu(translate("arch","&Architecture"),self.archtools)
|
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","Utilities")],self.draftutils+self.draftcontexttools)
|
||||||
self.appendMenu([translate("arch","&Draft"),translate("arch","Snapping")],self.snapList)
|
self.appendMenu([translate("arch","&Draft"),translate("arch","Snapping")],self.snapList)
|
||||||
FreeCADGui.addIconPath(":/icons")
|
FreeCADGui.addIconPath(":/icons")
|
||||||
|
|
Loading…
Reference in New Issue
Block a user