Ich gebe weitere Propertys dazu - für Boden, die Wände und Deckel:
Code: Select all
obj.addProperty("App::PropertyInteger","ID_unt")
obj.addProperty("App::PropertyInteger","ID_W1")
......
Code: Select all
#Geklickte Fläche (oder Ecke):
sel = FreeCAD.Gui.Selection.getSelectionEx()
a = sel[0]
a.SubElementNames # Liste ('Face1',)
gecklickt = a.SubElementNames[0] # 'Face1'
#Alle Flächen
selobj = FreeCAD.Gui.Selection.getSelection()
b = selobj[0]
b.Shape.Faces ### [<Face object at 0000000010E508A0>, <Face object
for ding in b.Shape.Faces:
print ding
(den Namen könnte man mit "gecklickt" vergleichen und der entsprechenden FlächenID einen Wert zuordnen)
Oder geht es einfacher, kann man irgendwie statt des Namens des "geklickt" einen Index bekommen? Dann ginge es ohne Schleife.
Bzw.: Kann man sich darauf verlassen, dass bei "geklickt" immer "Face" und danach eine Ziffer steht und die Ziffer der Reihenfolge von Part.makeShell([f1,f2,f3,f4,f5,f6]) entspricht?
LG
Chri