Thanks Abdullah for your long reply, IMHO this feature deserves a great attention because it could be a very powerful feature, furthermore as FreeCAD is concerned (due to TNP and OCC HLR issues).
Disclaimer: here below I'm going to talk about constraints, I mean about
dimensional constraints (= dimensions) only, not about geometrical ones.
Disclaimer2: my english is not so good, forgive me if some replies are a bit rough and not sharp enough.
abdullah wrote: ↑Fri Nov 19, 2021 6:41 pm
I can understand (and have discussed) a feature of reusing the constraints of the sketcher to create TechDraw dimensions. The idea I got from the power users that actually do blueprints (I do not do blueprints myself) is that good sketching practices lead to constraints in places that one would not put when creating a blueprint. They suggested that it was best to get a projection in TechDraw and create the dimensions that are necessary there.
Ok, however I consider myself as well as a power user, I made tons of blueprints in my career by using parametric CAD software, and I used a lot this powerful feature to import dimensional constraints from sketches to drawing views thanks to some big CAD software.
I worked with some experimented draftsmen (my colleges), however some of them didn't used this kind of workflow, actually because they didn't know or didn't fully understood the power of it. After my explanations they changed their opinion then saved time and pain.
Last year I had to do a blueprint for one room of my house. I found rather effortless to click an edge and get a dimension. This makes it even harder for me to understand why such feature would be desirable, if the information is not directly reusable.
You're right, it's rather effortless to click an edge and get a dimension in Techdraw WB, but at one condition: do not modify the 3D model anymore once a time you start the drawing, because of both toponaming issue and OCC HLR algorithm instability. Otherwise a lot of TD dimensions will be broken then you'll have to do the job again, and again, and again, at every topological changes of your model. This is a major issue IMO.
That's not only tedious, it's furthermore dangerous: because if TD dimensions are broken or skip from elements to others, maybe you'll even don't notice. Hence your blueprint could be messy or wrong (wrong values of dimensions, wrong placement, etc...).
ATM Techdraw dimensions are attached to elements (vertex, edges) from HLR algorithm it leads to a huge instability if some changes occur in upstream because this accumulates the maximum of topological instability :
- upstream_to_downstream_instability.png (26.11 KiB) Viewed 2510 times
@realthunder has fixed the toponaming issue in his branch, and that's so cool! However, even if this algo would be merged someday in master branch,
it will not fix the HLR algo instability AFAIK.
Sketches are very upstream objects, hence very reliable, that's why IMO it would be very reliable to import dimensions from those upstream objects to TD views very downstream objects. It would be a very strong way to shortcut
any topological issues.
Now, what it is shown in the first post is some kind of projection over one sketch. So the constraints are not TechDraw dimensions, but sketcher dimensions. It appears to be intended to show how to build a solid from a constrained sketch, or to show how one should constraint one sketch to create a solid.
Please don't mind too much about the picture of my 1st post, it was just a way to illustrate a little bit the meaning of my request. It was a way to say: "hey guys, it is not necessary to add all the dimensions in Techdraw because dimensions already exists in sketches".
If you imagine such a solid which is projected in Techdraw, with imported dimensions as this, "duplicated" from sketcher, the job would be done, and that's it
The user could add dimensions step by step, sketch by sketch in the appropriate TD view.
Then I read the exchange with wandererfan, where the focus is on a "free floating dimension". I am not sure I follow this part. I do not understand what the purpose of this may be. I do not see how this would substantially speed up the creation of blueprints. But, I do not know much about blueprints.
That means the dimensions would be imported in appropriate projected views by the user by selected the right sketch and the related view (TBD).
In addition it would be also possible to modify the position of every imported dimensional note and the position of it's extension lines ends. Also the value of dimensional note would be linked to the one in the sketch. Maybe we could even edit it in Techdraw to change its value and then change the model directly from the drawing workspace. This last point would be very useful because in projected views, or section view, you can see a lot of details that you can't see easily in the 3D view. For eg. you can see some little interference (collision) between parts, etc.. so you want to adjust quickly some dimensions in place. Of course it possible to do so in 3D view as well. But both possibilities would be much more powerful.
Now, you ask about the Sketcher. There are two different sources of information that can be obtained from a Sketch. The first source, which is the main source, reflects the geometries in edit mode and is contained in two properties called Geometry and Constraints. These assume a sketch in XY plane. However, orientation can be obtained from the placement property. The second source of information is the edges that are generated from the edit mode properties (the shape). This shape contains edges(wires) and vertices, but not constraints or values of constraints.
Thanks for information, I'm not sure to understand BTW, I'm just an end user. I trust you
I think that the approach that is presented in the previous post involves using the second information (the shape) and somehow try to get the constraint information and link it to this shape for representation. I think this approach may be over-complicated if what is desired is what is shown in the first post.
Not sure to fully get your meaning.
IMO the aim would be:
1- to display a kind of linked copy of sketcher's dimension in appropriate projected views (TBD by user, view by view)
2- then to be able to adjust the position of each dimension (and the extension lines ends ideally, along the line's direction only. I can elaborate...) in order to get a nice blueprint with dimensions placed at the right place.
Because as you said the placement of dimensions in sketch doesn't correspond exactly to the one in blueprint, hence minor adjustments of dimension's position in projected views are needed.
I think that if you want to do something in the line of the picture of the first post, it may make more sense to use the edit mode information, and transform it with the placement and projection information. But, TechDraw will need to be able to interpret all the sketcher edit mode geometry and be able to draw it (if the profile is actually necessary), or interpret it if the dimensions are only necessary.
This approach would make the toponaming improvements / reordering of edges in wires irrelevant (as far as I understand), because the edit mode sketch does not have edges or wires, but actual geometry objects (lines, circles, ellipses, ...). But, as said, representation of constraints, within the sketcher, relies on geometry information of the geometry it is applied to. This means that to draw constraints, the geometry information shall be interpreted.
Sorry, I have no strong opinion about that, not sure to get your meaning correctly. I hope my above replies already answer you
As an evaluation of the effort, I will say that this is doable. I would say that there is enough information in the sketcher module to understand how this can be done. I will also say that it involves quite some work.
Glad to ear that a solution could exist
I am not sure this reply is what you were expecting or if it is helpful.
No problem, we are here to discuss and I like that, I would not waste your time though. So, thank you for your kind attention.
Please tell me if some of my statements are not clear and I would be glad to know your opinion.
Edit 1-3: some words added to improve the meaning, typo.