Direct (parametric?) dImensioning on a 3D model

Have some feature requests, feedback, cool stuff to share, or want to know where FreeCAD is going? This is the place.
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
Post Reply
MarkkuTM
Posts: 33
Joined: Sun Dec 31, 2017 6:57 pm

Direct (parametric?) dImensioning on a 3D model

Post by MarkkuTM »

This might be covered in another thread, so please direct me there. I could't find a complete discussion of this, so that's why I started a new topic.

I would like to be able to show / hide dimensions on a 3D view as I am designing (Part, PartDesign, Arch) so that any changes in part sizes or placement, and spaces between parts, would be actively reflected in the 3D view directly.

I can achieve this partially in a clunky way by creating a drawing (Techdraw) and creating relevant dimensions on different views. Then I go to my 3D view to change my model, and check the drawings. This is a lot of back and forth switching between windows, and is only good on orthogonal views. Dimensions on 3D perspective or orthographic views are not useful.

Using the Part workbench measure tools are static. they are not useful except for a one-time look, and do not update with the change in size or position of parts in the model. (This tool would be good if measurements were to attach themselves to the vertices or other features of the model being measured, like in TechDraw)

Similarly to Part Workbench measure, Draft Workbench Dimension is static. Dimensions created in this way apply only in the configuration when the dimension is applied to a design feature. If anything moves, or changes size, the dimensions are no longer useful

Sketcher dimensions are meant for constraints, so good for setting up a design but not meant for 3D dimensioning, so not good when working at the 3D view.

I don't know if this is a complete review of the dimensioning types available, but none of them is satisfactory for rapid 3D design work.

How should I proceed?

Has this
User avatar
bejant
Veteran
Posts: 6075
Joined: Thu Jul 11, 2013 3:06 pm

Re: Direct (parametric?) dImensioning on a 3D model

Post by bejant »

You can create parametric Draft WB > Dimensions, which will change as the length of the edge they are linked to changes, by selecting the edge and then clicking the Draft WB > Dimension tool. You can also use the Alt key.

https://www.freecadweb.org/wiki/Draft_Dimension
MarkkuTM
Posts: 33
Joined: Sun Dec 31, 2017 6:57 pm

Re: Direct (parametric?) dImensioning on a 3D model

Post by MarkkuTM »

Thanks you bejant for your reply.

Your method of clicking an edge in the model and then Draft WB > Dimension makes the dimension parametric.

I had tried attaching a dimension using the method given in the Draft Dimension wiki article of first clicking Draft WB > Dimension, and then adding three points (https://www.freecadweb.org/wiki/index.p ... _Dimension) and the dimension does not follow changes in size of the model, nor in translations of it. I have now tried both methods on the same model simultaneously, and only the dimension attached by using your method of clicking an edge becomes parametric, even after a recompute.

This is still a little bit clunky, though, as the place where the dimension is written, and the dimension lines, do not uniformly move with the model, though the dimension values are correctly changed if the model sizes change. Some dimensions get hidden behind the model when certain changes are made. As one example, if I start with a default cube (1 cm X 1 cm X 1 cm) and attach 3 dimensions, then change the sizes to something bigger, all the dimensions are changed to be correct in lengths, but they get hidden by the resized cube. I can only see them by making the cube invisible, and there is no clear reference to where they attach. The same kind of thing happens when I translate a model along axes or rotations. It would be difficult to use this on a complicated model while it is being made in 3D, because I would spend half the time moving the dimensions to somewhere useful. (Could this be because I'm using a version of 0.18?).

Some other questions:
- how would I make the distance between two separate parts in a model be parametric? there is no edge to click.
- how would I make the combined length of several attached parts be parametric? Once again, no single edge.

My ideal (someday!) would be to attach a dimension in a model, adjust its position (like in TechDraw) and that would extend, move and rotate with the model remaining visible except when a rotation moves it to the back side of the model, almost like it was another (parametric) part that is added to a specific location and orientation in the model. It should always stay visible and not somehow distorted if I translate along axes, or if I change the size. And I would like to be able to hide a dimension to reduce clutter in the model whenever necessary (same as hiding a part in the tree by clicking on it and hitting the space bar) and turn it on again later.


Sorry for the long comment.

OS: Windows 10
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.18.15697 (Git)
Build type: Release
Branch: master
Hash: dedaa807629ab25cf32977d30bf7610f1346aff7
Python version: 3.6.6
Qt version: 5.6.2
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: English/UnitedStates (en_US)
User avatar
bejant
Veteran
Posts: 6075
Joined: Thu Jul 11, 2013 3:06 pm

Re: Direct (parametric?) dImensioning on a 3D model

Post by bejant »

Sorry, I only have a simple understanding of the Draft WB and haven't had any success trying to make parametric dimensions between two separate objects and the other things you mentioned. It looks like we'll need someone else to jump in and help. No worries about the long comment.
triplus
Veteran
Posts: 9471
Joined: Mon Dec 12, 2011 4:45 pm

Re: Direct (parametric?) dImensioning on a 3D model

Post by triplus »

Hi @MarkkuTM

Indeed ideally some day using such commands Std_Measure_Menu will work in parametric way. And parametric Part Shapebuilder likely is one of the cornerstones still missing in FreeCAD. ATM there are some options, but no straightforward one. For example you could use Lattice 2 workbench in such way:

https://forum.freecadweb.org/viewtopic. ... 20#p135288

Select a point and use SubLink command on it. Use Shape info command on SubLink feature. Both are Lattice 2 commands. Repeat the procedure for the second point. Insert Draft Line and add (parametric) Draft Dimension to it. Select the Draft Line and in Property view add expressions for Start/End X, Y and Z property. That is use Shape info feature read only Vertex Position property for defining X, Y and Z Start/End property of Draft Line in expression.
Post Reply