BUGS - new PartDesign with Body and Datum features

About the development of the Part Design module/workbench. PLEASE DO NOT POST HELP REQUESTS HERE!
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
jrheinlaender
Posts: 554
Joined: Sat Apr 07, 2012 2:42 am

BUGS - new PartDesign with Body and Datum features

Post by jrheinlaender »

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)
Last edited by jrheinlaender on Sat Sep 28, 2013 2:20 pm, edited 10 times in total.
mrlukeparry
Posts: 655
Joined: Fri Jul 22, 2011 8:37 pm
Contact:

Re: BUGS - new PartDesign with Body and Datum features

Post by mrlukeparry »

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
jrheinlaender
Posts: 554
Joined: Sat Apr 07, 2012 2:42 am

Re: BUGS - new PartDesign with Body and Datum features

Post by jrheinlaender »

Hi Luke,

thanks for finding thouse bugs. Have a look at the summary above in the first post.
mrlukeparry wrote: *'default' base plane sizes are completely different to the sketcher defaults and creates problems with view camera -> should be an easy fix.
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" thread
mrlukeparry 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?
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 feature
mrlukeparry wrote: *Two edges cannot be used to create datum plane
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: *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.
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" features
mrlukeparry 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.
Duplicating a sketch works with Edit-Duplicate selection. I thought about shared sketches but haven't implemented it yet, see WOULD LIKE TO HAVE
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, Juergen should comment on that.
mrlukeparry wrote: Does each document have one set of base planes, and multiple body features will only use this one set?
Yes. This was discussed in other threads. The three base planes should be the anchor of all other features in the part.
mrlukeparry
Posts: 655
Joined: Fri Jul 22, 2011 8:37 pm
Contact:

Re: BUGS - new PartDesign with Body and Datum features

Post by mrlukeparry »

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.
Commands need updating to prevent dialog opening when create datum features -> I didn't understand that
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.
*When undoing such as deleting an item, the tree view doesn't correctly update to show the tip.
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 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!
jrheinlaender
Posts: 554
Joined: Sat Apr 07, 2012 2:42 am

Re: BUGS - new PartDesign with Body and Datum features

Post by jrheinlaender »

Hi Luke,

thanks again for the testing.
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.
Sorry, I forgot to push the fix. It should be gone now. If not, could you post that file?
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'.
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 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.
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.
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.
Correct. I noted it down as a bug to be resolved.
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.
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!

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.
Apart from the revolution features needing updated to use datum line features
Correct. I missed that. It is implemented now.
mrlukeparry
Posts: 655
Joined: Fri Jul 22, 2011 8:37 pm
Contact:

Re: BUGS - new PartDesign with Body and Datum features

Post by mrlukeparry »

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.
User avatar
jriegel
Founder
Posts: 3369
Joined: Sun Feb 15, 2009 5:29 pm
Location: Ulm, Germany
Contact:

Re: BUGS - new PartDesign with Body and Datum features

Post by jriegel »

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 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.

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!
jrheinlaender
Posts: 554
Joined: Sat Apr 07, 2012 2:42 am

Re: BUGS - new PartDesign with Body and Datum features

Post by jrheinlaender »

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
Hi Luke,

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
mrlukeparry
Posts: 655
Joined: Fri Jul 22, 2011 8:37 pm
Contact:

Re: BUGS - new PartDesign with Body and Datum features

Post by mrlukeparry »

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
ickby
Veteran
Posts: 3116
Joined: Wed Oct 05, 2011 7:36 am

Re: BUGS - new PartDesign with Body and Datum features

Post by ickby »

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...
Post Reply