This commit is contained in:
2025-03-28 19:40:11 +06:00
parent af559092bf
commit 1d062a087f
26 changed files with 360 additions and 514 deletions

View File

@@ -47,16 +47,16 @@ except AttributeError:
import PVPlantResources
def makeCable(base = None):
obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython", "Cable")
def makeCable(name="Cable"):
obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython", name)
obj.Label = name
Cable(obj)
ViewProviderCable(obj.ViewObject)
if base:
obj.Base = base
return obj
class Cable(ArchComponent.Component):
"A Base Frame Obcject - Class"
"A Cable Obcject - Class"
def __init__(self, obj):
ArchComponent.Component.__init__(self, obj)
@@ -254,48 +254,10 @@ class Cable(ArchComponent.Component):
return val.Placement.Base
def execute(self, obj):
import Part, DraftGeomUtils
import Draft
if obj.Base:
w = obj.Base.Shape.SubShapes[1].SubShapes[0]
w = DraftGeomUtils.filletWire(w, 150)
else:
return
"""if obj.Base:
# Si tiene ruta, dibujar ruteado
import PVPlantTrench as trench
if isinstance(obj.Base, trench.Trench):
w = obj.Base.Shape.SubShapes[0]
else:
w = obj.Base.Shape
elif obj.From and obj.Name:
'''line = Part.LineSegment()
line.StartPoint = getPoint(obj.From)
line.EndPoint = getPoint(obj.To)
w = Part.Wire(line.toShape())'''
w = Part.makePolygon([self.getPoint(obj.From), self.getPoint(obj.To)])
else:
return"""
r = obj.ExternalDiameter.Value / 2
p = Part.Wire([Part.Circle(FreeCAD.Vector(0, 0, 0),
FreeCAD.Vector(0, 1, 0),
r).toShape()])
c = obj.Offset
c.x -= r
c.z += r
v1 = w.Vertexes[1].Point - w.Vertexes[0].Point
v2 = DraftGeomUtils.getNormal(p)
p.Placement.Base = w.Vertexes[0].Point + c
p.Placement.Rotation = FreeCAD.Rotation(v2, v1)
obj.Shape = w.makePipeShell([p], True, False, 0)
obj.Distance = w.Length
''' No hacer nada. Es un componente sin shape'''
class ViewProviderCable(ArchComponent.ViewProviderComponent):
class ViewProviderCable(ArchComponent.ViewProviderComponent): #hace falta??
def __init__(self, vobj):
ArchComponent.ViewProviderComponent.__init__(self, vobj)
@@ -311,15 +273,7 @@ class CommandCable:
'ToolTip': QT_TRANSLATE_NOOP("Placement", "Calcular el BOQ de la")}
def Activated(self):
import Draft
sel = FreeCADGui.Selection.getSelection()
wire = None
for obj in sel:
if Draft.getType(obj) == "Wire":
wire = obj
break
makeCable(wire)
makeCable()
FreeCAD.ActiveDocument.recompute()
def IsActive(self):