Sorry for begging for help but i am dumb.
I want to script a rename tool (labels only) for bodys and parts and their objects and features. And have two questions.
Here the inner of a body:
Code: Select all
<Extensions Count="1">
<Extension type="App::OriginGroupExtension" name="OriginGroupExtension">
</Extension>
</Extensions>
<Properties Count="8">
<Property name="BaseFeature" type="App::PropertyLink">
<Link value=""/>
</Property>
<Property name="ExpressionEngine" type="App::PropertyExpressionEngine">
<ExpressionEngine count="0">
</ExpressionEngine>
</Property>
<Property name="Group" type="App::PropertyLinkList">
<LinkList count="17">
<Link value="Sketch052"/>
<Link value="DatumPlane010"/>
<Link value="DatumLine003"/>
<Link value="Revolution024"/>
<Link value="Sketch053"/>
<Link value="Pocket010"/>
<Link value="Sketch054"/>
<Link value="Groove008"/>
<Link value="PolarPattern015"/>
<Link value="Chamfer050"/>
<Link value="Fillet039"/>
<Link value="Fillet040"/>
<Link value="Chamfer051"/>
<Link value="Chamfer009"/>
<Link value="Fillet041"/>
<Link value="Chamfer061"/>
<Link value="Fillet054"/>
</LinkList>
</Property>
<Property name="Label" type="App::PropertyString">
<String value="SpindleShaftBase"/>
</Property>
<Property name="Origin" type="App::PropertyLink">
<Link value="Origin063"/>
</Property>
<Property name="Placement" type="App::PropertyPlacement">
<PropertyPlacement Px="0" Py="0" Pz="0" Q0="0" Q1="0" Q2="0" Q3="1" A="0" Ox="0" Oy="0" Oz="1"/>
</Property>
<Property name="Shape" type="Part::PropertyPartShape">
</Property>
<Property name="Tip" type="App::PropertyLink">
<Link value="Fillet054"/>
</Property>
</Properties>
First question , i get a list property when i mark the body and with
Code: Select all
sel = FreeCADGui.Selection.getSelection()
for obj in sel:
a = obj.getPropertyByName("Group")
try:
App.Console.PrintMessage(str(a) + "\n")
except:
App.Console.PrintMessage("error" + "\n" + "\n" + "\n" + "\n")
Second question, why get i the list 18 times back when i mark the body with
Code: Select all
sel = FreeCADGui.Selection.getSelection()
for obj in sel:
a = obj.getPropertyByName("Group")
try:
for x in a:
App.Console.PrintMessage(str(a) + "\n")
except:
App.Console.PrintMessage("error" + "\n" + "\n" + "\n" + "\n")
Sorry for the dumb questions but i am new in python and scripting.
for informations
Code: Select all
OS: Debian GNU/Linux buster/sid
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.18.15650 (Git)
Build type: Release
Branch: master
Hash: c9b4f4ba6779c9ccddb69fba57eee1b5acfd4083
Python version: 3.7.2
Qt version: 5.11.3
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: English/UnitedStates (en_US)
Greetings
user