BUGS - new PartDesign with Body and Datum features
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Be nice to others! Respect the FreeCAD code of conduct!
-
- Posts: 554
- Joined: Sat Apr 07, 2012 2:42 am
BUGS - new PartDesign with Body and Datum features
This thread is dedicated to discussion of BUGS in the new PartDesign branch with the Body feature and Datum planes/lines/points. The code can be found here:
https://github.com/jrheinlaender/FreeCA ... partdesign
Please use this thread only for BUGS, there are other threads dedicated to missing features etc. etc.
I will keep a running summary of the status of the bugs here in the first post.
-------------------------------
OPEN:
- Find a way to create a SubShape for Pocket - UpToFace method
FEEDBACK/WON'T FIX
- Sketcher now incorrectly projects external entities from the body feature -> Could you post an example file?
- Sketch orientation different to what is expected/what used to be -> Please read comment in post below
- Commands need updating to prevent dialog opening when create datum features
- Sometimes the Body label disappears. See screenshot here: posting.php?mode=reply&f=19&t=4080#pr32408:
In my opinion, the label doesn't disappear. It is grayed out because the Body has been hidden.
- The current implementation allows that you use the same feature for multiple transform features but this leads to strange results: Probably solved in new PartDesign branch
FIXED:
- accessing data view panel on body feature leads to segfault(often)
- "body feature cannot update representation" error message
- Pad/Pocket: To First/Last/Face doesn't work if sketch is located on datum plane
- Groove/Revolution: Can't select datum line as rotation axis
- When undoing such as deleting an item, the tree view doesn't correctly update to show the tip.
- When creating a sketch on a face, make sure this face belongs to the active body (or switch to that body automatically)
- When I deleted a fillet I received the following error -> I am not sure if its reproducible: Coin error in SoGroup::removeChild(): tried to remove non-existent child 0x3ab2150 (Separator). This error has been inherited from the dev-assembly branch and is not particular to the PartDesign workbench (Fixed by ickby in the assembly branch)
https://github.com/jrheinlaender/FreeCA ... partdesign
Please use this thread only for BUGS, there are other threads dedicated to missing features etc. etc.
I will keep a running summary of the status of the bugs here in the first post.
-------------------------------
OPEN:
- Find a way to create a SubShape for Pocket - UpToFace method
FEEDBACK/WON'T FIX
- Sketcher now incorrectly projects external entities from the body feature -> Could you post an example file?
- Sketch orientation different to what is expected/what used to be -> Please read comment in post below
- Commands need updating to prevent dialog opening when create datum features
- Sometimes the Body label disappears. See screenshot here: posting.php?mode=reply&f=19&t=4080#pr32408:
In my opinion, the label doesn't disappear. It is grayed out because the Body has been hidden.
- The current implementation allows that you use the same feature for multiple transform features but this leads to strange results: Probably solved in new PartDesign branch
FIXED:
- accessing data view panel on body feature leads to segfault(often)
- "body feature cannot update representation" error message
- Pad/Pocket: To First/Last/Face doesn't work if sketch is located on datum plane
- Groove/Revolution: Can't select datum line as rotation axis
- When undoing such as deleting an item, the tree view doesn't correctly update to show the tip.
- When creating a sketch on a face, make sure this face belongs to the active body (or switch to that body automatically)
- When I deleted a fillet I received the following error -> I am not sure if its reproducible: Coin error in SoGroup::removeChild(): tried to remove non-existent child 0x3ab2150 (Separator). This error has been inherited from the dev-assembly branch and is not particular to the PartDesign workbench (Fixed by ickby in the assembly branch)
Last edited by jrheinlaender on Sat Sep 28, 2013 2:20 pm, edited 10 times in total.
-
- Posts: 655
- Joined: Fri Jul 22, 2011 8:37 pm
- Contact:
Re: BUGS - new PartDesign with Body and Datum features
Sorry if these have less detail than you want for now, but I don't have much time to go into great detail - but I can later clarify if any point isn't obvious. Although it's good work so far, I was quite surprised to see how mature it is already! I think there are only a few problems that need addressing and it would probably be usable already.
*accessing data view panel on body feature leads to segfault(often)
*'default' base plane sizes are completely different to the sketcher defaults and creates problems with view camera -> should be an easy fix.
*"body feature cannot update representation" when creating a new feature (fillet etc.)
-> This happens a few times -> so it hides the whole body feature tree even though the new feature correctly executes
* This may be related to previous problem, when datum feature is at the tip, adding a new feature on top fails - e.g. fillet
-> Should the tip be a part:sketchbasefeature?
*Commands need updating to prevent dialog opening when create datum features.
* When I deleted a fillet I received the following error -> I am not sure if its reproducible:
Coin error in SoGroup::removeChild(): tried to remove non-existent child 0x3ab2150 (Separator)
*Sketcher now incorrectly projects external entities from the body feature
*Two edges cannot be used to create datum plane
*Creating a line using two surfaces (planes) can used curved surfaces; however there are cases which can have multiple solutions (e.g. cylindrical surface and a plane). Also it extends the curved surface which I don't know is desirable.
*When undoing such as deleting an item, the tree view doesn't correctly update to show the tip.
-------------
These are some areas which aren't necessary bugs, but I have mixed feelings about:
* Should the previous feature now absorb sketches in the feature tree? It seems logical, but sketches can be sometimes shared between features - which is probably bad practice itself, but is not something I am used to.
* I think the 3dinventor view selection isn't right or perhaps I am not seeing the obvious, but this may need discussing with juergen - it uses the tip feature in the history - not the actual body feature.
e.g. unamed.Chamfer0001.edge1 should maybe Body.Edge1?
Does each document have one set of base planes, and multiple body features will only use this one set?
Thanks for your hard work
Luke
*accessing data view panel on body feature leads to segfault(often)
*'default' base plane sizes are completely different to the sketcher defaults and creates problems with view camera -> should be an easy fix.
*"body feature cannot update representation" when creating a new feature (fillet etc.)
-> This happens a few times -> so it hides the whole body feature tree even though the new feature correctly executes
* This may be related to previous problem, when datum feature is at the tip, adding a new feature on top fails - e.g. fillet
-> Should the tip be a part:sketchbasefeature?
*Commands need updating to prevent dialog opening when create datum features.
* When I deleted a fillet I received the following error -> I am not sure if its reproducible:
Coin error in SoGroup::removeChild(): tried to remove non-existent child 0x3ab2150 (Separator)
*Sketcher now incorrectly projects external entities from the body feature
*Two edges cannot be used to create datum plane
*Creating a line using two surfaces (planes) can used curved surfaces; however there are cases which can have multiple solutions (e.g. cylindrical surface and a plane). Also it extends the curved surface which I don't know is desirable.
*When undoing such as deleting an item, the tree view doesn't correctly update to show the tip.
-------------
These are some areas which aren't necessary bugs, but I have mixed feelings about:
* Should the previous feature now absorb sketches in the feature tree? It seems logical, but sketches can be sometimes shared between features - which is probably bad practice itself, but is not something I am used to.
* I think the 3dinventor view selection isn't right or perhaps I am not seeing the obvious, but this may need discussing with juergen - it uses the tip feature in the history - not the actual body feature.
e.g. unamed.Chamfer0001.edge1 should maybe Body.Edge1?
Does each document have one set of base planes, and multiple body features will only use this one set?
Thanks for your hard work
Luke
Development blog - http://freecadamusements.blogspot.co.uk/
-
- Posts: 554
- Joined: Sat Apr 07, 2012 2:42 am
Re: BUGS - new PartDesign with Body and Datum features
Hi Luke,
thanks for finding thouse bugs. Have a look at the summary above in the first post.
thanks for finding thouse bugs. Have a look at the summary above in the first post.
Those are inherited from the Assembly branch, where Juergen set them up to be even smaller (2x2 units). How would you fix this? Variable size like the PartDesign::Plane? See "WOULD LIKE TO HAVE" threadmrlukeparry wrote: *'default' base plane sizes are completely different to the sketcher defaults and creates problems with view camera -> should be an easy fix.
I think this is fixed now - can you test again? And, no, the tip is always the last feature, it doesn't have to be a Sketchbased featuremrlukeparry wrote: * This may be related to previous problem, when datum feature is at the tip, adding a new feature on top fails - e.g. fillet
-> Should the tip be a part:sketchbasefeature?
That is on purpose, because one edge and a point are enough. Two edges only work if they happen to be co-planar.mrlukeparry wrote: *Two edges cannot be used to create datum plane
By my definition datum lines (and planes) are always infinite, they are only truncated by the ViewProvider to the bounding box of the Body. I added the multiple solution issue to the "WOULD LIKE TO HAVE" featuresmrlukeparry wrote: *Creating a line using two surfaces (planes) can used curved surfaces; however there are cases which can have multiple solutions (e.g. cylindrical surface and a plane). Also it extends the curved surface which I don't know is desirable.
Duplicating a sketch works with Edit-Duplicate selection. I thought about shared sketches but haven't implemented it yet, see WOULD LIKE TO HAVEmrlukeparry wrote: * Should the previous feature now absorb sketches in the feature tree? It seems logical, but sketches can be sometimes shared between features - which is probably bad practice itself, but is not something I am used to.
Yes, Juergen should comment on that.mrlukeparry wrote: * I think the 3dinventor view selection isn't right or perhaps I am not seeing the obvious, but this may need discussing with juergen - it uses the tip feature in the history - not the actual body feature. e.g. unamed.Chamfer0001.edge1 should maybe Body.Edge1?
Yes. This was discussed in other threads. The three base planes should be the anchor of all other features in the part.mrlukeparry wrote: Does each document have one set of base planes, and multiple body features will only use this one set?
-
- Posts: 655
- Joined: Fri Jul 22, 2011 8:37 pm
- Contact:
Re: BUGS - new PartDesign with Body and Datum features
Hi Jan,
Had another chance to quickly test it this evening.
I still get the error "body feature cannot update representation" error message", which causes the body feature to hide even though it doesn't have problems calculating the feature. Seems to be a problem with the pad feature.
I have a feeling this is to do with command updating the document before valid parameters for a feature such as pad are set by the user but that's a guess.
A bug with pad and pocket:
When you create a sketch on a separate datum plane, if you attempt to use 'To First' or 'To Last' it says the following input error - 'sketch must be located on a face of a solid for this feature to work'. However, for 'Up-to face' type, the preview visual correctly works but when clicking 'ok' it has the same input error as before. This also does the same for pocket feature.
When you create a sketch, the sketch doesn't orientate the axis vertically with respect to the document coordinate system. I am not sure if it used to be like this, but I have noticed it and I find it a quite annoying bug.
I had a random crash when I save and re-opened a file but I need to find when this exactly happens.
Apart from the revolution features needing updated to use datum line features, I haven't seen any other major problems, so I'd well come other people to try it out and see what they think!
Had another chance to quickly test it this evening.
I still get the error "body feature cannot update representation" error message", which causes the body feature to hide even though it doesn't have problems calculating the feature. Seems to be a problem with the pad feature.
I have a feeling this is to do with command updating the document before valid parameters for a feature such as pad are set by the user but that's a guess.
A bug with pad and pocket:
When you create a sketch on a separate datum plane, if you attempt to use 'To First' or 'To Last' it says the following input error - 'sketch must be located on a face of a solid for this feature to work'. However, for 'Up-to face' type, the preview visual correctly works but when clicking 'ok' it has the same input error as before. This also does the same for pocket feature.
When you create a new datum feature from the tool bar, a dialog appears. To me it seems an in-efficient process for the user , by presenting a dialogue to ask the user for an input plane when there is a task view that appears anyway.Commands need updating to prevent dialog opening when create datum features -> I didn't understand that
If you delete the most recent part feature, it will correctly show the previous feature, but when you redo, the most recent part feature isn't shown.*When undoing such as deleting an item, the tree view doesn't correctly update to show the tip.
When you create a sketch, the sketch doesn't orientate the axis vertically with respect to the document coordinate system. I am not sure if it used to be like this, but I have noticed it and I find it a quite annoying bug.
I had a random crash when I save and re-opened a file but I need to find when this exactly happens.
Apart from the revolution features needing updated to use datum line features, I haven't seen any other major problems, so I'd well come other people to try it out and see what they think!
Development blog - http://freecadamusements.blogspot.co.uk/
-
- Posts: 554
- Joined: Sat Apr 07, 2012 2:42 am
Re: BUGS - new PartDesign with Body and Datum features
Hi Luke,
thanks again for the testing.
If you look at Part/App/Part2DObject.cpp::positionBySupport() then I added code to handle sketches on Datum planes. The orientation in this case is still open to debate, you are welcome to suggest improvements.
thanks again for the testing.
Sorry, I forgot to push the fix. It should be gone now. If not, could you post that file?I still get the error "body feature cannot update representation" error message", which causes the body feature to hide even though it doesn't have problems calculating the feature. Seems to be a problem with the pad feature.
That is a positive surprise, because I didn't expect "Up To..." to work at all with sketches located on datum planes. So I removed this error message now, and everything works, even extruding from one datum plane to another!When you create a sketch on a separate datum plane, if you attempt to use 'To First' or 'To Last' it says the following input error - 'sketch must be located on a face of a solid for this feature to work'.
Because datum features clutter up the screen, most of the time I keep them hidden. So then selecting them on screen is tedious because I have to show them, select, and hide them again. Selecting from a menu is easier. But of course this is a matter of personal preference and work style.When you create a new datum feature from the tool bar, a dialog appears. To me it seems an in-efficient process for the user , by presenting a dialogue to ask the user for an input plane when there is a task view that appears anyway.
Correct. I noted it down as a bug to be resolved.If you delete the most recent part feature, it will correctly show the previous feature, but when you redo, the most recent part feature isn't shown.
Is that sketch located on a face? I tried hard not to touch this code because any change is potentially disastrous. Imagine the horizontal and vertical direction being swapped - that would break most sketch constraints!When you create a sketch, the sketch doesn't orientate the axis vertically with respect to the document coordinate system. I am not sure if it used to be like this, but I have noticed it and I find it a quite annoying bug.
If you look at Part/App/Part2DObject.cpp::positionBySupport() then I added code to handle sketches on Datum planes. The orientation in this case is still open to debate, you are welcome to suggest improvements.
Correct. I missed that. It is implemented now.Apart from the revolution features needing updated to use datum line features
-
- Posts: 655
- Joined: Fri Jul 22, 2011 8:37 pm
- Contact:
Re: BUGS - new PartDesign with Body and Datum features
Hi Jan,
I tried your branch two days ago and seems to be getting much stabler. I only experienced one crash which was good.
I would be grateful if you could update your branch with the latest master, because it includes a fix for using OpenCascade 6.6 otherwise it fails to compile for me - this would just make switching branches for testing more convenient
One small thing I noticed is that some task dialog options don't automatically execute and update the view when changed. I'll try and build a list of any other issues and create that example file for showing incorrect external entities in sketcher.
I tried your branch two days ago and seems to be getting much stabler. I only experienced one crash which was good.
I would be grateful if you could update your branch with the latest master, because it includes a fix for using OpenCascade 6.6 otherwise it fails to compile for me - this would just make switching branches for testing more convenient
One small thing I noticed is that some task dialog options don't automatically execute and update the view when changed. I'll try and build a list of any other issues and create that example file for showing incorrect external entities in sketcher.
Development blog - http://freecadamusements.blogspot.co.uk/
Re: BUGS - new PartDesign with Body and Datum features
If you in the PartDesign workbench and a Body is active (in work) the selection is right. You want your next modeling step basis on the last (tip) modeling step.I think the 3dinventor view selection isn't right or perhaps I am not seeing the obvious, but this may need discussing with juergen - it uses the tip feature in the history - not the actual body feature. e.g. unamed.Chamfer0001.edge1 should maybe Body.Edge1?
If you in a different Workbench, e.g. Assembly, you want to select the whole Body and not the actuall tip feature, cause that can change later and the link is broken...
But it even becomes more complicated... In the context of the Assembly you want probably retrive a object up the product path from a selection. But that will dealt with in the Assembly module.
About the Body. My plan was the following:
The Body groups its modeling history features. At the moment only in the tree. But the idea was also to use claimChildren3D to sort the inventor nodes of the PartDesign features beneath the Body node. So the Body have basically two statuss.
1. Its in work, then it switches to the scene graph of the tip feature (shows basically the most recent features) and e.g. the Datum-Planes.
2. Its not in work, it switches to the Body shape and show the Part in the Body (result). Also the selection then only selects the body feature.
This can be implemented by the BodyViewProvider claiming all 3D children and gets some additional view modes. The view modes gets switch on entering the PartDesign and switching an Body in work.
For the work in the PartDesign the way its implmented now (showing all features) is Ok. I will implement the additional stuff for Body ViewProfider when I need it in the context of Assembly!
Hope that clearify it a bit.... But the selection in a complicated (non tree shaped) product structure will become a challenge on its own
Stop whining - start coding!
-
- Posts: 554
- Joined: Sat Apr 07, 2012 2:42 am
Re: BUGS - new PartDesign with Body and Datum features
Hi Luke,mrlukeparry wrote: I would be grateful if you could update your branch with the latest master, because it includes a fix for using OpenCascade 6.6 otherwise it fails to compile for me - this would just make switching branches for testing more convenient
I rebased the branch locally, deleted the github branch and re-created it. No idea what that will do to your tracking branch, though.
Also, its still building so I might have to add a fix later if the build fails.
Jan
-
- Posts: 655
- Joined: Fri Jul 22, 2011 8:37 pm
- Contact:
Re: BUGS - new PartDesign with Body and Datum features
Hi Jan,
That's no problem because I haven't made any changes or commits to the branch - will just delete it and pull again.
Luke
That's no problem because I haven't made any changes or commits to the branch - will just delete it and pull again.
Luke
Development blog - http://freecadamusements.blogspot.co.uk/
Re: BUGS - new PartDesign with Body and Datum features
Hello Jan,
I found a bug: If you rotate a part (which holds a body) and then try to create a sketch on the bodys face, the sketch plane is not on the rotated body. I suppose it is drawn at the place where the unrotated face would be.
I think that happens because you don't care about a Parts rotation, and thats ok as it's a diffrent workbench. however, the behaviour ruins the user experiance as it's a intuitive thing to work on parts after they have been assembled (even partialy). I'm not even sure if this needs to be handled by PartDesign or Assembly.
Annother thing: we should ask the question if we allow body manipulation once it's in a assembly, as it would for sure rename the geometry and therefore make the assembly useless. Don't know what the best thing to do is...
I found a bug: If you rotate a part (which holds a body) and then try to create a sketch on the bodys face, the sketch plane is not on the rotated body. I suppose it is drawn at the place where the unrotated face would be.
I think that happens because you don't care about a Parts rotation, and thats ok as it's a diffrent workbench. however, the behaviour ruins the user experiance as it's a intuitive thing to work on parts after they have been assembled (even partialy). I'm not even sure if this needs to be handled by PartDesign or Assembly.
Annother thing: we should ask the question if we allow body manipulation once it's in a assembly, as it would for sure rename the geometry and therefore make the assembly useless. Don't know what the best thing to do is...