SideType replaces Midplane/Symmetric for FC 1.1.1 compatibility

This commit is contained in:
petemar
2026-07-09 19:24:02 +02:00
parent 6c824eb3bd
commit fb8c802f5d
2 changed files with 36 additions and 6 deletions
+24
View File
@@ -0,0 +1,24 @@
with open("src/freecad_mcp/tools/partdesign.py", "r") as f:
c = f.read()
# Fix pad_sketch: Midplane -> SideType
old = '# FC 1.1.1: use Midplane instead of Symmetric\nif "Midplane" in pad.PropertiesList:\n pad.Midplane = {symmetric}\nelif "Symmetric" in pad.PropertiesList:\n pad.Symmetric = {symmetric}'
new = '# FC 1.1.1: SideType replaces Midplane/Symmetric\nif "SideType" in pad.PropertiesList:\n pad.SideType = "Symmetric" if {symmetric} else "One side"\nelif "Midplane" in pad.PropertiesList:\n pad.Midplane = {symmetric}\nelif "Symmetric" in pad.PropertiesList:\n pad.Symmetric = {symmetric}'
c = c.replace(old, new)
print("Pad: SideType applied" if old not in c else "Pad NOT found")
# Fix revolution_sketch
old2 = '# FC 1.1.1: use Midplane instead of Symmetric\nif "Midplane" in rev.PropertiesList:\n rev.Midplane = {symmetric}\nelif "Symmetric" in rev.PropertiesList:\n rev.Symmetric = {symmetric}'
new2 = '# FC 1.1.1: SideType replaces Midplane/Symmetric\nif "SideType" in rev.PropertiesList:\n rev.SideType = "Symmetric" if {symmetric} else "One side"\nelif "Midplane" in rev.PropertiesList:\n rev.Midplane = {symmetric}\nelif "Symmetric" in rev.PropertiesList:\n rev.Symmetric = {symmetric}'
c = c.replace(old2, new2)
print("Rev: SideType applied" if old2 not in c else "Rev NOT found")
# Fix groove_sketch
old3 = '# FC 1.1.1: use Midplane instead of Symmetric\nif "Midplane" in groove.PropertiesList:\n groove.Midplane = {symmetric}\nelif "Symmetric" in groove.PropertiesList:\n groove.Symmetric = {symmetric}'
new3 = '# FC 1.1.1: SideType replaces Midplane/Symmetric\nif "SideType" in groove.PropertiesList:\n groove.SideType = "Symmetric" if {symmetric} else "One side"\nelif "Midplane" in groove.PropertiesList:\n groove.Midplane = {symmetric}\nelif "Symmetric" in groove.PropertiesList:\n groove.Symmetric = {symmetric}'
c = c.replace(old3, new3)
print("Groove: SideType applied" if old3 not in c else "Groove NOT found")
with open("src/freecad_mcp/tools/partdesign.py", "w") as f:
f.write(c)
print("Done")
+12 -6
View File
@@ -289,8 +289,10 @@ pad_name = {name!r} or "Pad"
pad = body.newObject("PartDesign::Pad", pad_name)
pad.Profile = sketch
pad.Length = {length}
# FC 1.1.1: use Midplane instead of Symmetric
if "Midplane" in pad.PropertiesList:
# FC 1.1.1: SideType replaces Midplane/Symmetric
if "SideType" in pad.PropertiesList:
pad.SideType = "Symmetric" if {symmetric} else "One side"
elif "Midplane" in pad.PropertiesList:
pad.Midplane = {symmetric}
elif "Symmetric" in pad.PropertiesList:
pad.Symmetric = {symmetric}
@@ -565,8 +567,10 @@ rev_name = {name!r} or "Revolution"
rev = body.newObject("PartDesign::Revolution", rev_name)
rev.Profile = sketch
rev.Angle = {angle}
# FC 1.1.1: use Midplane instead of Symmetric
if "Midplane" in rev.PropertiesList:
# FC 1.1.1: SideType replaces Midplane/Symmetric
if "SideType" in rev.PropertiesList:
rev.SideType = "Symmetric" if {symmetric} else "One side"
elif "Midplane" in rev.PropertiesList:
rev.Midplane = {symmetric}
elif "Symmetric" in rev.PropertiesList:
rev.Symmetric = {symmetric}
@@ -653,8 +657,10 @@ groove_name = {name!r} or "Groove"
groove = body.newObject("PartDesign::Groove", groove_name)
groove.Profile = sketch
groove.Angle = {angle}
# FC 1.1.1: use Midplane instead of Symmetric
if "Midplane" in groove.PropertiesList:
# FC 1.1.1: SideType replaces Midplane/Symmetric
if "SideType" in groove.PropertiesList:
groove.SideType = "Symmetric" if {symmetric} else "One side"
elif "Midplane" in groove.PropertiesList:
groove.Midplane = {symmetric}
elif "Symmetric" in groove.PropertiesList:
groove.Symmetric = {symmetric}