Topological Naming Problem in FreeCAD 0.21: What is it and How to Handle it

แชร์
ฝัง
  • เผยแพร่เมื่อ 21 ส.ค. 2023
  • In this video I discuss about a long standing issue in FreeCAD and how to get around it. I also gave some suggestions to developers, which may point at my ignorance in a future time. But the fear of future should not hold our present-selves back.
  • แนวปฏิบัติและการใช้ชีวิต

ความคิดเห็น • 35

  • @carbonbased5041
    @carbonbased5041 8 หลายเดือนก่อน +4

    Thanks for the upload! Very thorough work.
    In my understanding TNP is a fundamental logical problem of feature based CAD programs. In my company we used to use several commercial CAD programs before, and I cannot remember one where a more complicated design did not collapse eventually. I think TNP can only be solved by the solver - actually with bruteforce. The difference with FreeCAD is, that its comunity at least adresses this issue openly.
    I think it only occurs in Part Design, that is a feature based method. By the nature of the issue I would think, the other fundamental method, Part (based on constructive solid geometry) is free of this issue. The good thing is that FreeCAD can do both.
    The interesting thing is, understanding the problem, it is very easy to make safe designs. In the rarity when it still happens, it is easy to fix.
    In my practice FreeCAD is still the best CAD program, not because it is free of charge, but because it is free of secret, corporate wizardry. In my experience community support is less elegant than corporate support, but it is always more efficient. I prefer donating a project like this.

    • @kattkushol
      @kattkushol  8 หลายเดือนก่อน +1

      Thanks for a great comment. Loved "In my practice FreeCAD is still the best CAD program, not because it is free of charge, but because it is free of secret, corporate wizardry."
      We know what we have, and we are thankful for it.

  • @magnusbeischer1264
    @magnusbeischer1264 6 หลายเดือนก่อน +2

    Once you fully understand how to sketch in FreeCAD the topological naming problem goes away and your models become very stable for changes.

  • @windysynth
    @windysynth 3 หลายเดือนก่อน

    Your explanations with examples is just what i needed to understand the issue.
    A temporary convenience the programmers could do would be to add a "create data plane from selected face" feature. You'd still need to update the offset to match any change like you did or hook it to a spreadsheet or whatever, but it would make it easier to get the data plane set up.

  • @Rzayev_Elmir
    @Rzayev_Elmir 9 หลายเดือนก่อน +5

    hi again mate. good job. I appreciate it.
    for people watching your videos, another workaround can be:
    in "Datum Plane parameters" >> "Attachment Offset" >> "In z-direction:" instead of using data from spreadsheet we can use .Length
    it gives the same result without using spreadsheet.

    • @kattkushol
      @kattkushol  9 หลายเดือนก่อน +2

      Thanks, will give it a try. It might be a better one, especially if spreadsheet is not used in the project for any other reason.

    • @philippdenzler1229
      @philippdenzler1229 8 หลายเดือนก่อน +5

      I don't use a datum plane, I directly set the z offset of the sketch to the pad length.

    • @TalpaDK
      @TalpaDK 8 หลายเดือนก่อน

      @@philippdenzler1229 A fellow sketch offset'er :)

    • @libregisin9878
      @libregisin9878 8 หลายเดือนก่อน

      I wanted to say the same. I tried it and it works on FreeCAD 0.20.2

  • @rupangchannel888
    @rupangchannel888 5 หลายเดือนก่อน +1

    🙏 thank you

  • @Tokolist
    @Tokolist 3 หลายเดือนก่อน +1

    instead of defining variable in spreadsheet you can use datum plane as face for pad offset (pad type: up to face)

  • @PaulG.x
    @PaulG.x 8 หลายเดือนก่อน +3

    1:16 Tip: You do this with fewer constraints:
    One symmetry constraint between 2 diagonal vertices ,symmetrical about the origin (0,0)
    One equal constraint between any pair of conjoined sides
    One length constraint on any side

    • @kattkushol
      @kattkushol  8 หลายเดือนก่อน +4

      I was kinda waiting for this comment. So, thanks. I see you.

  • @lornablewettandlee504
    @lornablewettandlee504 8 หลายเดือนก่อน

    I gave up using FreeCAD for anything important, but not because of the naming problem, mainly to do with text handling. I use DesignSpark mechanical instead. I can draw on any surface or plane, and then at some point, delete the surface or plane without affecting any other part of my design. If DS can do it, why not FreeCAD? I did wonder if there was a way to automatically create a plane on a surface that didn't rely on the surface for it's location in space. If you get what I mean.

    • @kattkushol
      @kattkushol  8 หลายเดือนก่อน +3

      Well, a lot of people make the distinction between open source and commercial software packages. The least we could do to promote FreeCAD, an open source software, is to use it and be a part of the discussion.

    • @ajarivas72
      @ajarivas72 8 หลายเดือนก่อน +2

      With Python scripting you can do many things in FreeCAD

  • @jhon614
    @jhon614 8 หลายเดือนก่อน +1

    I am a software designer. They should use a guid (random numbers and letters) to name things. They could still allow a visible custom created "friendly name" if needed, but using a guid instead of a numbered name would get rid of this problem.

    • @kattkushol
      @kattkushol  8 หลายเดือนก่อน +3

      Exactly. A sequential number is not required in this case. Thanks for that.
      Naming these faces using a "guid" would solve a big part of this problem. Apparently, there is another issue that the developers are also trying to solve. To quote Brad Collette (@sliptonic on X) "Consider if you named the top face 'top' and then made a change that divided it in half. Which of the new faces is 'top'?"
      As I read on FreeCAD's blog, solving this naming problem is their one of four major milestones that they want to achieve before releasing a 1.0 version of the software. So, that's hopeful.

    • @TalpaDK
      @TalpaDK 8 หลายเดือนก่อน +1

      @@kattkushol Using a GUID for the face name solves close to nothing, as you would still have to match the "new faces" to the old faces to keep the GUID constant.
      And if you can perform that feat, you could also assign the new faces the old style "incremental" names.

    • @barutaji
      @barutaji 6 หลายเดือนก่อน

      The problem is that CADs are meant to transform entities, so their identity really changes all the time. A surface gets divided, bent, transfered, deleted, etc.
      The problem is solvable through workarounds, as can be seeen in other CAD softwares, but internally this is a problem to be addressed for every app.
      But I agre that using a big random generated number and some hashing would make things much easier to deal with.

    • @barutaji
      @barutaji 6 หลายเดือนก่อน

      I wouldn't say it solves close to nothing. Even in databases the use of strings as keys of entities is considered bad practice, so the use of numerical ids is encouraged and would simplify things. You don't need to reuse numbers, just increase indefinitelly or use random generated numbers in a big space search. In that way the identity of entities is more stable and chances of future colisions are also reduced

    • @Appregator
      @Appregator 6 หลายเดือนก่อน

      What is a "guid" ?

  • @davidcooper3871
    @davidcooper3871 8 หลายเดือนก่อน

    The Real Thunder link branch version seems to help with much of this.

    • @kattkushol
      @kattkushol  8 หลายเดือนก่อน +2

      help me out here, is that a different variant of FreeCAD?

    • @davidcooper3871
      @davidcooper3871 8 หลายเดือนก่อน

      th-cam.com/video/p_ZEry2wTfg/w-d-xo.htmlsi=PRTKlD2os3gIuZ8b@@kattkushol

  • @xylosfurniture
    @xylosfurniture 7 หลายเดือนก่อน

    How about giving the faces the same names as the navigation cube? Sounds kind of intuitive.

  • @Appregator
    @Appregator 6 หลายเดือนก่อน

    The Part and Part Design differences are a mystery to me sometimes. They seem to have Yellow and Blue block looking Icons and very little explanation further. Both build Parts but one has "Body" but the other not. I agree, Part WB just works easier imo. The whole "tree" thing sometimes works in one WB and does not work in the other.
    What is map mode ? What does "topological" mean ?
    Anyway, thanks for the explanation of the "Datum" plain.

    • @kattkushol
      @kattkushol  6 หลายเดือนก่อน +1

      My dream is for FreeCAD to consolidate these two workbenches with their best features included. But for now, agreed that Part wb works better. In my Beginner's Test series, I used mostly part workbench. In the new 200 model series, I will try to do some work in part design to discover its features.

    • @Appregator
      @Appregator 6 หลายเดือนก่อน

      @@kattkushol Yes. I suppose it is very complicated for the developers as the basis of operation is different. There are some guys who do amazing things in Part Designer workbench. Mine works sometimes and then I do some parameterizing and the model falls apart. 😂

  • @warrenbrown8670
    @warrenbrown8670 5 หลายเดือนก่อน

    If you travel back in time, you will see at 0.19 a (partial) fix was said to be coming in 0.20. In 0.20, it was coming in the next release (0.21). I'm sure it will be fixed in the "next" release.

    • @kattkushol
      @kattkushol  5 หลายเดือนก่อน

      The FreeCAD blog (15 Nov 2023 blog.freecad.org/) said, @chennes is working on Toponaming merge and TopoShape. So you are right about the "next" release. I am praying for @chennes. I love this software so much that it's worth praying for @chennes for two minutes every day.

    • @warrenbrown8670
      @warrenbrown8670 5 หลายเดือนก่อน

      ​@@kattkusholvirtually same post exist on 0.20. Always "next". I know it's free, but something this big needs pulled to the top of the list for all hands on deck and ger'r done.

  • @larryjeffryes6168
    @larryjeffryes6168 4 หลายเดือนก่อน

    I wonder if every primitive element could have a prefix invisible to the user - the file name. Then each individual element named by convention starting with 0 and 1 logical coding by class (points start with 000’ lines with 001, planes 003, etc and two places may be enough). Then assemblies would be protected from the same issue when an external model is linked as a component. That subassembly might need to be broken in context, modified, and recollected as a new part number. The nature of part assemblies and part numbers would provide the needed “invisible prefix” input. Perhaps this is too much overhead, I don’t know.