[Sketcher: Feature Request] Remove the need of "External Geometry" button.

I don’t see why the external element button is needed.

Please remove it and allow to directly use external reference while create constrains and dimensions.

  • If a constraint or dimension refer to an external geometry add it to the Elements list (type contour-line, contour-circle, etc.).
  • Add a “Replace” reference to the Context menu of Items in Elements, so we could replace all references with another selectable entity of equal type. E.g replace a line with a line/contour-line and vice versa

To receive that, it has to be possible to select the contour of a body while sketching without the need to click on “external geometry” button.

Bad practice of selecting solid edges for external geometry : TNP

I’m looking forward, as far I know there is a solution on the way. I hope it is as good as in SolidWorks which I use since 2008. Never had huge Problems there with that. In my job I only used edges and surfaces as references and were able to dimension the fabrication way and way of use.

As you can see, repairing is part of my enhancement request. That way a broken reference could get repaired is easy. If one edge loose the reference, but several dimensions or constraints are on it, repairing would need only one step per loosed reference. If repairing is possible on a fast way. It will may be even on current state more efficient than using ways that workaround TNP.

The problem is related to TNP, and the way reference is stored by sketcher.

If the reference is not stored in way you can simply say use “<>.Edge3” instead of “<>.Edge14” it is not so easy to implement your solution.

Sadly you could add geometries but manipulate them is not so easy even with scripting, so there is room for improvement for sure, but probably not as easy as you think.

Regards

Carlo D.

This means, as soon something is in the background it will automatic referenced. But who said, that when it it is wanted to reference something when clicking? FreeCAD or any other CAD can not read minds, so it is unpractical in any way.

The only thing i have seen is, that with an timerover over an element, it get snapped, but not referenced. But this is also only a direct modeling program, in a parametric program that is also unpractical in any way.


Greetings
user1234

Something that will probably solve the OP request was discussed here:

https://devtalk.freecad.org/t/labellingnaming-sketcher-elements/68131/1

it is not mind reading, if I can have a “named geometry” I could put in an expression and then maybe make a search and replace of every occurrencies. Let alone the way this things could be done without a way to have a “map of reference” stored somewhere. But this is another matter.

Regards

Carlo D.

I think that is complete something different. The OP just want to reference external geometry in the sketcher without any other function while clicking. But that is mind reading, since FreeCAD does not know, if someone just want to click (example: add a point) while a function, or reference (and therefore autocontraint) on it, besides also more then one external elements can lay under the view. That is a undefined state while working.

Greetings
user1234

Personally, I’m ok with having to use the External geometry tool (even though automatic projection of some edges would be nice) but I would really appreciate being able to:

  1. Select a face to project all of its edges (currently, it’s not only impossible but also triggers an error message)
  2. Project the edges obtained by the intersection with the sketch plane (very useful when external edges are insufficient)
  3. Use the projected edges directly as a sketch geometry (not by default - in most cases they act as datum geometry)

From what I have guessed OP wants to have the geometry selectable and have a replace button that will permit to change all these reference with another one selectable.

It is not mind reading, it is a matter of having a way to name an element in a sketch and use this name as reference as it is working for a “named constraints”.

Sadly you could not have “named geometries” this will be a matter of replacing the “name” and let Sketcher solve the change. Not 100% bulletproof but probably not too far from what is doable now. m
Maybe if Sketcher geometries could have a “persistent name” die to TNP mitigation it would be more near.

Regards.

Carlo D.

no, it’s the normal way to design. often mechanical parts have references from borders of other features. All cads work so without any big problems, the problem is FC that still suffers completely from TPN

I am always a bit skeptical with those statements about all other CADs doing this or that; do you really know them all? From users of professional systems such as NormandC we know that the big boys have this problem too, albeit not to the same extent as FreeCAD. drmacro, who was in the business as well, says that it is always good style to not rely on generated geometry as far as possible.

I can second this!

+1

For the record.I did not say I understand all CAD. I know SolidWorks since 2008 and heavy design daily with it.

If Heavy changes do affect the next feature. It is easy to replace a reference with another one.

In our company It is good style to use Body edges for reference. It even is recommended and in our “Design Rules” which we designed with our reseller and the construction team. Because you are not the only designer, every one that work with a part should understand it as fast as possible. Only uncertain things should be checked in the documentation.

Every measure and every constrains we place on a body edge or vertices has a cause. And at least SolidWorks is able to not wreck it after touching it.

If you wish I could do a remote session and show how SolidWorks work.

Be creative, with your experience, test the FreeCad external geometry tool and make some constructive workflow suggestions to improve currently state. Best for the next release with the TNP solved.

What do you want saying with this post?

No, all CAD are subject to TNP (FreeCAD is just orders of magnitude more sensitive). I was taught this was bad practice in a course for CATIA, which was still one of the biggest commercial CAD out there at the time. It works a lot of the time there of course, but even so it’s preferable to not reference generated geometry when possible (within reason).

But getting back to the topic, FreeCAD indeed could use some love in the ease of use of external geometry. Up until now it made sense to heavily discourage their use since topo naming is such a big problem here, but once the toponaming algorithm is merged we should not be so opinionated on what workflow is better, if the user prefers fixing some references every now and then rather than carefully planning references and using expressions then that’s their choice and it’s a valid tradeoff.

Personally I don’t find the need to use a button a problem, but I guess I was not spoiled with CAD that have such automations, perhaps it is a better experience.
I find more bothersome the fact that I can’t directly use external geometry as real geometry, one has to trace it over. External geometry should have two modes too, construction and defining. And it would be handy to have a command to unbind the reference and turn into normal geometry.

Thanks @adrianinsaval for this conclusion.

To go back to my feature request. Any feedback on this? Anything to clear? Is a mockup wished?

I think before such a request could be considered the TNP needs to be merged. Then this idea could be revisited. It would seem efficient from a workflow perspective to have external geometry references automatically be generated with the ability to show them in the tree-view via a preference/property for advanced users.

But again, I don’t think this is a conversation that should be happening now before TNP is merged, functional and optimized.

I will say that if this is implemented external geometry that has not yet been imported should be excluded from auto constraints.

adrianinsaval I agree.
obelisk79 I disagree. Repairing References in these cases is even more important. I would only agree if working on TNP will break all references that was made before this modification.

See my Mockup:
Screenshot 2023-07-21 142852.png