View Issue Details

IDProjectCategoryView StatusLast Update
0002602FreeCADBugpublic2019-01-18 17:46
ReporterDeepSOIC Assigned ToDeepSOIC  
PrioritynormalSeveritymajorReproducibilityalways
Status closedResolutionfixed 
Product Version0.17 
Target Version0.18Fixed in Version0.18 
Summary0002602: New SubList property Py API messes up the order of linked elements
DescriptionReassigning property of type PropertyLinkSubList via Python can result in the link order change.
The links to elements of the same object are grouped together, even if there is a link to other object in between.
Steps To Reproduce1. Open attached file.
2. in Py console:

sk = App.ActiveDocument.Sketch003
sk.ExternalGeometry = sk.ExternalGeometry
3. Recompute. Sketch003 transforms into a mess, and can't be edited.
Additional Informationsee forum thread: "Sketcher bug: reassigning external geometry breaks the sketch"
http://forum.freecadweb.org/viewtopic.php?f=3&t=16315

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
TagsAPI
FreeCAD Information

Activities

DeepSOIC

2016-06-24 20:20

developer  

breaking sketch.FCStd (Attachment missing)

Kunda1

2017-01-27 03:11

administrator   ~0008013

bumped thread

Kunda1

2017-01-27 11:44

administrator   ~0008021

Issue is still present on
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

Kunda1

2017-06-20 20:09

administrator  

Kunda1

2017-06-20 20:13

administrator   ~0009471

@abdullah care to weigh in on this issue?

abdullah

2017-06-21 13:58

manager   ~0009482

@kunda1

@DeepSOIC writes the reports very accurately, so it is exactly what he says it is. It is not the sketcher, it is the python API to that property, that I think it is this function void PropertyLinkList::setPyObject(PyObject *value), which is in the base application (not even a module).

So, it is a confirmed bug that has to be dealt with...

wmayer

2018-02-11 19:04

administrator   ~0010941

Maybe we can implement our own container class (Python sequence protocol) which returns the items in the same order as we had in the past. This container class provides a method to group the items the way how it's done now.

DeepSOIC

2018-04-04 23:48

developer   ~0011127

reuploading lost attachment...

breaking sketch-2.FCStd (8,514 bytes)

wmayer

2019-01-18 17:46

administrator   ~0012460

https://github.com/FreeCAD/FreeCAD/pull/1395/files
https://github.com/FreeCAD/FreeCAD/commit/646111495d2fa1118aca0e1284480858b3fda55f

Issue History

Date Modified Username Field Change
2016-06-24 20:19 DeepSOIC New Issue
2016-06-24 20:20 DeepSOIC File Added: breaking sketch.FCStd
2017-01-27 03:11 Kunda1 Note Added: 0008013
2017-01-27 03:11 Kunda1 Status new => feedback
2017-01-27 11:44 Kunda1 Note Added: 0008021
2017-01-27 11:44 Kunda1 Status feedback => confirmed
2017-01-27 11:50 Kunda1 File Added: breaking sketch.png
2017-03-10 23:14 Kunda1 Tag Attached: API
2017-03-10 23:16 Kunda1 Product Version => 0.17
2017-03-10 23:16 Kunda1 Target Version => 0.17
2017-06-20 20:09 Kunda1 File Added: A0FD3B85-81DA-4824-99C8-C3A69020FE89-2571-0000041C3F964D8D.png
2017-06-20 20:09 Kunda1 File Deleted: breaking sketch.png
2017-06-20 20:13 Kunda1 Note Added: 0009471
2017-06-21 13:58 abdullah Note Added: 0009482
2018-02-11 18:45 wmayer Target Version 0.17 => 0.18
2018-02-11 19:04 wmayer Note Added: 0010941
2018-04-04 23:48 DeepSOIC File Added: breaking sketch-2.FCStd
2018-04-04 23:48 DeepSOIC Note Added: 0011127
2019-01-18 17:46 wmayer Assigned To => DeepSOIC
2019-01-18 17:46 wmayer Status confirmed => closed
2019-01-18 17:46 wmayer Resolution open => fixed
2019-01-18 17:46 wmayer Fixed in Version => 0.18
2019-01-18 17:46 wmayer Note Added: 0012460