View Issue Details

IDProjectCategoryView StatusLast Update
0002014FreeCADBugpublic2015-05-15 19:23
Reportertanderson69 Assigned Totanderson69  
Status closedResolutionfixed 
Platformamd64OSKubuntuOS Version 14.10
Target Version0.16Fixed in Version0.16 
Summary0002014: Part offset with fill option produces an invalid shape
DescriptionWhen using the part offset command on a face or sheet with the fill option on, we are not getting "connected" perimeter faces.
Steps To ReproduceJust took a face from a default box and ran it through part offset.
Additional InformationYou can see in the shape content from the picture that we have too many edges. We have 16 when we should have 12. It is pretty obvious why this is happening. We are letting BRepOffsetAPI_ThruSections build the end edges(edges not on the origin or offset faces) for each face.

I can think of 2 solutions at the moment.
1) run the results through a sewing algorithm. I would think the end edges would coincide enough for this to be successful.
2) pass entire perimeter wires to BRepOffsetAPI_ThruSections and call once for operation.
It appears that sewing was attempted at one time. Comments?

This is an example where the BOPAlgo geometery checks have come in real handy!
TagsNo tags attached.
FreeCAD Information



2015-03-20 14:29


offset.png (Attachment missing)


2015-03-21 13:43

developer   ~0005895

Please review and merge. assuming origin is sourceforge.

git fetch origin && git cherry-pick 671610f


2015-03-21 19:10

developer   ~0005898

Last edited: 2015-03-21 19:21

sorry, i should use cherry-pick more careful ;) merges well.


2015-03-22 17:33

manager   ~0005916

Could this be merged to the Release-0.15 branch? It would make Part Offset much more useful.


2015-05-15 15:56

administrator   ~0006137

Last edited: 2015-05-15 16:33

When testing this with a box as input shape the message "no closed bounds" is printed and a null shape is returned. It might be better to throw an exception in this case because now the Offset feature is valid but has no data.


2015-05-15 16:43

developer   ~0006139

It didn't appear that throwing exceptions out of toposhape was standard practice. So I was cautious and just returned empty shapes. If you think we should throw exceptions, then lets do it.


2015-05-15 17:59

administrator   ~0006140

OK, I will merge your branch and make the needed changes. Btw, there are a few places in TopoShape where exceptions are thrown using OCC's Standard_Failure::Raise mechanism.

Related Changesets

FreeCAD: master 0950e196

2015-03-20 20:11:09


Committer: wmayer Details Diff
Part: Offset: fill rework. Affected Issues
mod - src/Mod/Part/App/TopoShape.cpp Diff File

Issue History

Date Modified Username Field Change
2015-03-20 14:29 tanderson69 New Issue
2015-03-20 14:29 tanderson69 Status new => assigned
2015-03-20 14:29 tanderson69 Assigned To => tanderson69
2015-03-20 14:29 tanderson69 File Added: offset.png
2015-03-21 13:43 tanderson69 Note Added: 0005895
2015-03-21 19:10 shoogen Note Added: 0005898
2015-03-21 19:21 shoogen Note Edited: 0005898
2015-03-22 17:33 normandc Note Added: 0005916
2015-05-11 17:02 tanderson69 Resolution open => fixed
2015-05-11 17:05 tanderson69 Status assigned => resolved
2015-05-15 15:56 wmayer Note Added: 0006137
2015-05-15 16:33 wmayer Note Edited: 0006137
2015-05-15 16:43 tanderson69 Note Added: 0006139
2015-05-15 16:43 tanderson69 Status resolved => feedback
2015-05-15 16:43 tanderson69 Resolution fixed => reopened
2015-05-15 17:59 wmayer Note Added: 0006140
2015-05-15 19:20 wmayer Changeset attached => FreeCAD Master master 0950e196
2015-05-15 19:23 wmayer Status feedback => closed
2015-05-15 19:23 wmayer Resolution reopened => fixed
2015-05-15 19:23 wmayer Fixed in Version => 0.16