Sketcher bug: reassigning external geometry breaks the sketch

Post here for help on using FreeCAD's graphical user interface (GUI).
Forum rules
and Helpful information
IMPORTANT: Please click here and read this first, before asking for help

Also, be nice to others! Read the FreeCAD code of conduct!
Post Reply
User avatar
DeepSOIC
Veteran
Posts: 7900
Joined: Fri Aug 29, 2014 12:45 am
Location: used to be Saint-Petersburg, Russia

Sketcher bug: reassigning external geometry breaks the sketch

Post by DeepSOIC »

Hi.
Problem.
1. Open the file
2. in Py console, run:

Code: Select all

sk = App.ActiveDocument.Sketch003
sk.ExternalGeometry = sk.ExternalGeometry
3. Recompute. Sketch003 becomes a horrible mess, and cannot be opened anymore. :roll:
breaking sketch.png
breaking sketch.png (24.42 KiB) Viewed 1554 times
breaking sketch.FCStd
(8.31 KiB) Downloaded 38 times
It happens in:
OS: Windows 10
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.17.7802 (Git)
Build type: Release
Branch: BodyBase4
Hash: cfb0c93bd359e338158129670195922cd5699216
Python version: 2.7.8
Qt version: 4.8.7
Coin version: 4.0.0a
OCC version: 6.8.0.oce-0.17
but does not happen in:
OS: Windows 10
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.17.7668 (Git)
Build type: Release
Branch: BodyBase3
Hash: ef872d37a8a365aeb04567d80616b28a826ed41c
Python version: 2.7.8
Qt version: 4.8.7
Coin version: 4.0.0a
OCC version: 6.8.0.oce-0.17
My primary suspect is the change of Py API of PropertyLinkSubList. But I need to verify it.
User avatar
DeepSOIC
Veteran
Posts: 7900
Joined: Fri Aug 29, 2014 12:45 am
Location: used to be Saint-Petersburg, Russia

Re: Sketcher bug: reassigning external geometry breaks the sketch

Post by DeepSOIC »

Yep, primary suspect confirmed.

Code: Select all

before API change:                 after API change:
------------------                 -------------------
Sketch  Edge6                      Sketch   Edge6
Sketch001  Vertex3                 Sketch   Edge4
Sketch001  Vertex2                 Sketch001   Vertex3
Sketch001  Vertex4                 Sketch001   Vertex2
Sketch002  Vertex3                 Sketch001   Vertex4
Sketch  Edge4                      Sketch002   Vertex3
Sketch002  Vertex2                 Sketch002   Vertex2
The grouping grouped up links from one sketch all together (not just consecutive). As a result, reassigning external geometry messes up the order, which is critical to Sketcher.

EDIT: console snippets:
for old API:

Code: Select all

 for item in sk.ExternalGeometry:
   print item[0].Name+"  "+ item[1]
for new API:

Code: Select all

for item in sk.ExternalGeometry:
   for sub in item[1]:
     print item[0].Name+"   "+sub
User avatar
DeepSOIC
Veteran
Posts: 7900
Joined: Fri Aug 29, 2014 12:45 am
Location: used to be Saint-Petersburg, Russia

Re: Sketcher bug: reassigning external geometry breaks the sketch

Post by DeepSOIC »

User avatar
Kunda1
Veteran
Posts: 13443
Joined: Thu Jan 05, 2017 9:03 pm

Re: Sketcher bug: reassigning external geometry breaks the sketch

Post by Kunda1 »

soft bump to see if issue is still valid
Alone you go faster. Together we go farther
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
User avatar
DeepSOIC
Veteran
Posts: 7900
Joined: Fri Aug 29, 2014 12:45 am
Location: used to be Saint-Petersburg, Russia

Re: Sketcher bug: reassigning external geometry breaks the sketch

Post by DeepSOIC »

Still happens :(
OS: Windows 10
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.17.9803 (Git)
Build type: Debug
Branch: (HEAD detached at FC/master)
Hash: dd63fe92107a87f6003f33518e387743a2090a1c
Python version: 2.7.8
Qt version: 4.8.7
Coin version: 4.0.0a
OCC version: 7.0.0
Post Reply