Code: Select all
__Icon__ = 'https://www.freecadweb.org/wiki/images/4/41/Macro_CenterOfMass.png'
Code: Select all
<unknown exception traceback><class 'SyntaxError'>: ("(unicode error) 'utf-8' codec can't decode byte 0xb3 in position 27: invalid start byte", ('E:/Data/FreeCAD/Macro/CenterOfMass.FCMacro', 126, 4, None))
Seems to be a Ubuntu "feature"
Code: Select all
#2: an array is selected
if hasattr(sel[sol], 'ArrayType'):
if sel[sol].ArrayType == 'polar' and sel[sol].NumberPolar > 0:
# self.centerofmasses[sol] = sel[sol].Center
self.centerofmasses[sol] = FreeCAD.Vector(0,0,0)
for hds_sol in sel[sol].Shape.Solids:
self.centerofmasses[sol] += hds_sol.CenterOfMass
#print(hds_sol.CenterOfMass)
self.centerofmasses[sol] /= sel[sol].Shape.Solids.__len__()
else:
Code: Select all
# Find the center of mass depending of the type of object.
if hasattr(objs[sol], "CenterOfMass"):
self.centerofmasses[sol] = objs[sol].CenterOfMass
elif hasattr(objs[sol], "Solids"):
# self.centerofmasses[sol] = objs[sol].Solids[0].CenterOfMass
self.centerofmasses[sol] = FreeCAD.Vector(0,0,0)
for hds_sol in objs[sol].Solids:
self.centerofmasses[sol] += hds_sol.CenterOfMass
self.centerofmasses[sol] /= objs[sol].Solids.__len__()
#estimate cdg of a mesh
elif hasattr(objs[sol],"Points"):
Code: Select all
OS: Ubuntu 19.04 (KDE/plasma)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.
Build type: Release
Python version: 3.7.3
Qt version: 5.12.2
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: French/France (fr_FR)