get some data (1st block)
if there's Vector tuples, replace "Vector" with "App.Vector" (2nd block)
Text is printed to console (unintended) with corrected formatting, but new list is not being remembered
Code: Select all
place = []
length = []
objects = [o.Label for o in App.ActiveDocument.Objects if hasattr(o,"getGlobalPlacement") and o.Shape.Length]
num = 0
for i in objects:
loc = eval(f'doc.{i}.Placement.Base')
place.append(loc)
len = eval(f'doc.{i}.Shape.Length')
length.append(len)
print(place)
length_ = []
place_ = []
newL = [place_, length_]
Lists = [place,length]
num = 0
for i in Lists:
if 'Vector ' in str(i):
str(i).replace('Vector ', 'App.Vector')
for j in i:
newL[num].append(j)
num +=1
print(place_)
edit:
solution
Code: Select all
import FreeCAD
def format(v):
if 'Vector ' in str(v):
a = str(v).replace('Vector ', 'App.Vector')
return a
else:
return v
place = []
length = []
doc = FreeCAD.getDocument("just_spline")
objects = [o.Name for o in doc.Objects if hasattr(o,"getGlobalPlacement") and o.Shape.Length]
for i in objects:
loc = doc.getObject(i).Placement.Base
var = format(loc)
place.append(var)
len = doc.getObject(i).Shape.Length
var = format(len)
length.append(var)