Once again, I need your help, There is a version of FC here: https://github.com/WandererFan/FreeCAD/ ... References that addresses issue #7830. There are a lot of changes involved and I have certainly missed things.
Any testing feedback would be much appreciated.
- user facing change summary
- can make dimensions linked to 3d geometry by selecting the 3d geometry (similar to 2d case) instead of using LinkDimension function.
- you need to select the view as well as the 3d geometry when created a dimension
- you can still make dimensions linked to 2d geometry as before
- 3d references are still subject to TNP, but are much more stable than 2d references
- new dimension reference repair dialog to adjust 3d or 2d references
- LandmarkDimension no longer required for stable references
- a 3d point object is a valid dimension reference
- linear, radial and angular functions grouped in toolbar
On the technical side, maintainability of the dimension code should be improved.
- duplicate code in CommandCreateDims removed
- DrawViewDimension split into DrawViewDimension, DimensionGeometry, DimensionReferences and DimensionFormatter
- 3d and 2d validation shares code in DimensionValidators
Testing Help - 3d Dimension References
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Be nice to others! Respect the FreeCAD code of conduct!
- wandererfan
- Veteran
- Posts: 6317
- Joined: Tue Nov 06, 2012 5:42 pm
- Contact:
-
- Posts: 24
- Joined: Sun May 09, 2021 3:38 am
Re: Testing Help - 3d Dimension References
This is great, even with the TNP this completely fixes the "multi body part" use case, where even moving bodies could destroy dimensions.
Using the dimension repair tool on a dimension between edge and center line has some odd behavior (Techdraw only, no 3D reference):
Clicking cancel outputs error:
And did fully crash on me once, but I couldn't reproduce it.
Clicking OK without fixing the dimension, breaks it.
Reselecting references and replacing them, then clicking ok is as expected, but still breaks next time the tool is used.
The 3D angles act odd:
3D angular dimension is off (see photo), and 2D 3Point angle shows popup (Techdraw only, no 3D reference):
Slightly off topic, the 3D referenced dimensions for me default to MeasurementType:True instead of MeasurementType:Projected as expected, could just be some setting I've messed with though.
Using the dimension repair tool on a dimension between edge and center line has some odd behavior (Techdraw only, no 3D reference):
Clicking cancel outputs error:
Code: Select all
Unhandled Base::Exception caught in GUIApplication::notify.
The error message is: PropertyLinkSubList: invalid document object
Clicking OK without fixing the dimension, breaks it.
Reselecting references and replacing them, then clicking ok is as expected, but still breaks next time the tool is used.
The 3D angles act odd:
3D angular dimension is off (see photo), and 2D 3Point angle shows popup (Techdraw only, no 3D reference):
Code: Select all
Can not make 2d angle dimension from selection
Slightly off topic, the 3D referenced dimensions for me default to MeasurementType:True instead of MeasurementType:Projected as expected, could just be some setting I've messed with though.
- Attachments
-
- DimTest.FCStd
- (29.86 KiB) Downloaded 29 times
- wandererfan
- Veteran
- Posts: 6317
- Joined: Tue Nov 06, 2012 5:42 pm
- Contact:
Re: Testing Help - 3d Dimension References
Terrific feedback, thank you! I've pushed a new version.
- edge edge 2d dim has zero length **** fixed
- edge edge 2d horizontal dim rejected *** fixed
- cancel fails *** fixed
- OK with no changes fails *** fixed
- Reselecting references and replacing them, then clicking ok is as expected, but still breaks next time the tool is used. ?????
*** this one is either fixed, or I can't follow directions.
- 3d Angle (2 edge)
*** getting the supplementary angle depending on the direction of the line segments
*** changed to take the smaller of angle & supplement
- 2d Angle (3 Point) pop up error *** fixed
- the 3D referenced dimensions for me default to MeasurementType:True instead of MeasurementType:Projected
*** 2d references => MeasurementType:Projected
*** 3d references => MeasurementType:True
*** is there a case for having a dimension with 3d references use the projected measurement instead of the
true measurement?
-
- Posts: 24
- Joined: Sun May 09, 2021 3:38 am
Re: Testing Help - 3d Dimension References
I've only ever seen true dimensions used on things with really funky geometry. Seems like if you want a true dimension you should need to explicitly set it, that way someone doesn't get caught off guard having true dimensions when they didn't realize it.wandererfan wrote: ↑Mon Nov 28, 2022 12:38 am Is there a case for having a dimension with 3d references use the projected measurement instead of the true measurement?
Example where this causes issues:
Use case from ASME Y14.5:
Seems fixed, couldn't reproduce it.wandererfan wrote: ↑Mon Nov 28, 2022 12:38 am - Reselecting references and replacing them, then clicking ok is as expected, but still breaks next time the tool is used. ?????
*** this one is either fixed, or I can't follow directions.
- wandererfan
- Veteran
- Posts: 6317
- Joined: Tue Nov 06, 2012 5:42 pm
- Contact:
Re: Testing Help - 3d Dimension References
So my detailed specification would be something like:ChemicalCoal wrote: ↑Tue Nov 29, 2022 2:27 am I've only ever seen true dimensions used on things with really funky geometry. Seems like if you want a true dimension you should need to explicitly set it, that way someone doesn't get caught off guard having true dimensions when they didn't realize it.
Dimensions are always created with MeasureType = Projected.
if reference geometry is 2d, and MeasureType is Projected, we use 2d geometry to calculate values.
if reference geometry is 2d, and MeasureType is True, this is a warning and value is garbage (likely zero).
if reference geometry is 3d, and MeasureType is Projected, we use projection of 3d reference geometry to calculate values.
if reference geometry is 3d, and MeasureType is True, we use actual 3d reference geometry to calculate values.