View Issue Details

IDProjectCategoryView StatusLast Update
0001979FreeCADBugpublic2016-10-15 20:58
Reportermisty soul Assigned To 
Status closedResolutionfixed 
PlatformAMD64OSLinuxOS VersionDebian Jessie
Product Version0.14 
Fixed in Version0.16 
Summary0001979: external geometry reference point forgotten in sketch constraints
DescriptionSometimes when using part design, a sketch using some external geometry reference loses this reference point when a sketch from a prefious step is updated. The sketch them becomes under constrained and the features are not updated correctly.
It seems this occurs only if the reference does not depend just on the previous sketch, but rather on an earlier sketch.
Steps To Reproduce- create a new empty document
- select Part Design workbench
- create new sketch in XY plane
- create a rectangle
- set up constraints:
   * two diagonal vertices symetrical about origin
   * X and Y lengthes equal
   * X length 100mm
- the sketch is now fully constrained, close it
- create a 5mm pad from it
- select the square horizontal face on top
- create a new sketch on this face
- create a circle
- set up constraints:
   * radius 10mm
   * center coincident with origin
- close the fully constrained sketch
- create a pocket "through all" to have a punched square plate
- select the square horizontal face on top
- create a new sketch on this face
- create a rectangle
- select the top left corner of the plate as an "external geometry" reference
- set up constraints:
   * X and Y lengthes equal
   * X length 10mm
   * top left rectangle vertex 10mm to the right of external geometry corner
   * top left rectangle vertex 10mm below external geometry corner
- the sketch is now fully constrained, close it
- create a pocket "through all" from it

We now have a square plate with two holes, a circular one at center and a square one close to a corner. The dependency graph is:

Pocket001 -> Sketch002 -> Pocket -> Sketch001 -> Pad -> Sketch

- in the model, select the first skecth (label "Sketch") and edit it. We have our initial 100mm square. Select the 100mm length constraint and edit it to change its value to 95mm.

The square hole does not move! As the corner is now closer to the center, the external geometry reference point have changed and the constraints in Sketch002 should have moved the square hole.

Editing Sketch002 shows why this did not happen: the sketch is now under-constrained with two degrees of freedoms. The only remaining constraints are the 2 horizontal constraints, the 2 vertical constraints, the length equality constraint and the 10mm length constraint. The external geometry reference has disappeared and the corresponding horizontal and vertical offsets have disappeared too.
Additional InformationIf in the steps above we don't do the intermediate circular hole, the external geometry corner is not lost. It seems some to me some kind of transitivity not managed properly.
TagsNo tags attached.
FreeCAD Information


misty soul

2016-09-27 20:06

reporter   ~0007338

The bug seem to have been fixed, at least in version 0.16 available in Debian Jessie as of September 2016.



2016-10-15 20:58

manager   ~0007377

I confirm the bug has been fixed in the version below, won't hunt down the related commit though.

misty soul, next time you report a bug, please consider attaching a file, it was a little time consuming to create a new one from scratch. The steps to reproduce were well detailed though! Thanks.

OS: Ubuntu 14.04.5 LTS
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.16.6703 (Git)
Build type: None
Branch: releases/FreeCAD-0-16
Hash: 2ce5c8d2e3020d05005ed71f710e09e9aa561f40
Python version: 2.7.6
Qt version: 4.8.6
Coin version: 4.0.0a
OCC version: 6.8.0.oce-0.17

Issue History

Date Modified Username Field Change
2015-02-22 20:19 misty soul New Issue
2016-09-27 20:06 misty soul Note Added: 0007338
2016-10-15 20:58 normandc Note Added: 0007377
2016-10-15 20:58 normandc Status new => closed
2016-10-15 20:58 normandc Resolution open => fixed
2016-10-15 20:58 normandc Fixed in Version => 0.16