reorder objects in Object tree

Post here for help on using FreeCAD's graphical user interface (GUI).
Forum rules
and Helpful information
IMPORTANT: Please click here and read this first, before asking for help

Also, be nice to others! Read the FreeCAD code of conduct!
triplus
Posts: 9475
Joined: Mon Dec 12, 2011 4:45 pm

Re: reorder objects in Object tree

Postby triplus » Fri Jul 14, 2017 5:56 pm

openfablab wrote:
Fri Jul 14, 2017 12:49 pm
Graph tree of part relations is unobservable and does not help very much, because of very long senseless names and hundreds of objects.
There is DAG view widget available in FreeCAD by default. It has child -> parent connection highlighting capability.

https://forum.freecadweb.org/viewtopic.php?f=9&t=15375
Also keeping name prefix of initial object could be very helpful. When I make fillet at "Mypart" I want to see "Mypart123" rather than "fillet123". It can be manually selected after converging operations like "Cut". :idea:
As you are inserting Fillet feature likely the name Fillet makes the most sense. As lets say your behavior would be implemented. Cube would be inserted and after adding Fillet feature Fillet feature would be named Cube001. That makes no sense.

P.S. By using Assembly 2 workbench you likely could organize your design tree better. As the document containing the assembled parts/sub-assemblies would have a lot less items in the tree view. And the same can be said for individual part/sub-assembly document.
User avatar
openfablab
Posts: 62
Joined: Wed Nov 02, 2016 4:42 pm
Contact:

Re: reorder objects in Object tree

Postby openfablab » Mon Jul 17, 2017 10:24 am

microelly2 wrote:
Fri Jul 14, 2017 3:24 pm
may be it's useful to see what is possible and develop it a bit more.
triplus wrote:
Fri Jul 14, 2017 5:56 pm
There is DAG view widget available in FreeCAD by default.
...
By using Assembly 2 workbench you likely could organize your design tree better
Thank you, all this looks very helpful! :)

triplus wrote:
Fri Jul 14, 2017 5:56 pm
As you are inserting Fillet feature likely the name Fillet makes the most sense. As lets say your behavior would be implemented. Cube would be inserted and after adding Fillet feature Fillet feature would be named Cube001. That makes no sense.
I understand benefits of this "feature-centric" logic, but there also is other side. Graphic symbol of operation and name duplicate information. In practice, default computer-generated names like "Cube" of "Part" do not tell very much about part and IMHO are not very useful when you have a dozen of Partxxx and Filletyyy. I think about ''design-centric" logic. When I want to make, to say, wheel, I start from sketch and I know from the beginning that it will be wheel. If I apply some features, it will have name like Fillet014 that say nothing more about this part than I already know. And there is no straitforward way to distinguish it from Fillet015 of very another part.

As I look, Assembly2 is not too convenient to instantly edit parts inside context of assembly (especially, multi-level assembly). But this is substantial part of innovative machine design process. One often have to make many parts and then adapt them iteratively to each other.

I suggest name evolution like Wheel.Sketch001 .... Wheel.Fillet014 could be more useful.
Or even RearDrive.Wheel.Tyre.Fillet014
It could be good for collapsible tree view. Or/and autokeeping new objects in right places in corrsponding folder hierarchy.
ickby
Posts: 2985
Joined: Wed Oct 05, 2011 7:36 am

Re: reorder objects in Object tree

Postby ickby » Mon Jul 17, 2017 10:48 am

I did not look into the version you use, but in 0.17 you can create Parts that have all features as child. This allows for easy ordering. (Currently accessible via PartDesign Workbench, but this is a general object that can be used with everything).
triplus
Posts: 9475
Joined: Mon Dec 12, 2011 4:45 pm

Re: reorder objects in Object tree

Postby triplus » Mon Jul 17, 2017 10:11 pm

openfablab wrote:
Mon Jul 17, 2017 10:24 am
Thank you, all this looks very helpful! :)
You're welcome.

P.S. As for the rest i thought about this a bit more and i feel that lack of upstream Assembly could lead you to your suggestions. As now you have a bunch of parts in the same document and you are basically doing semi assemblies with them. And obviously when using such approach there is still much to be desired. I can agree on that but be patient as it will happen!
raketenolli
Posts: 18
Joined: Fri Oct 06, 2017 9:30 pm

Re: reorder objects in Object tree

Postby raketenolli » Fri Oct 06, 2017 9:39 pm

I feel a lot of different aspects are being thrown into this discussion:

1. Reordering for pure displaying purposes so it's easier to find a given feature.
2. Reordering because the logical order in which features are performed on the part matter.
3. Something about assemblies which I at the moment don't care about, because I am concerned with Part Design. ;-)

I care mostly about aspect #2, because in some cases you need to add a feature at a certain point in the structure so you can use it e. g. to create a polar pattern, and it would be a huge PITA to destroy all the supplementary features you need to successfully do the polar pattern, add the desired feature, and then redo the suppl. features. It would be much easier to just drag the new feature to a spot right before the polar pattern, and it would be fine. If this sounds too abstract, I can provide a sample file.

I'm curious as to what https://www.freecadweb.org/tracker/view.php?id=1730 actually implies, whether it allows for simple display reordering or actual logical reordering.

Oliver
mario52
Posts: 3232
Joined: Wed May 16, 2012 2:13 pm

Re: reorder objects in Object tree

Postby mario52 » Sat Oct 07, 2017 9:31 am

hi raketenolli welcome
raketenolli wrote:
Fri Oct 06, 2017 9:39 pm
1. Reordering for pure displaying purposes so it's easier to find a given feature.
my last macro for listing and search options tray this macro Macro_FCTreeView
(now 00.04 dockable and search by type, numeric (length, radius ....) on object if found)

Code: Select all

global impost                 ; impost = ["Angle","Angle0","Angle1","Angle2","Angle3","ChamferSize","Circumradius","Columns","Degree",
                                          "FilletRadius","FirstAngle","Growth","Height","LastAngle","Length","Length2","MajorRadius",
                                          "MinorRadius","Pitch","Polygon","Radius","Radius1","Radius2","Radius3","Rows","Size","Width",
                                          "X","X1","X2","Xmax","Xmin","X2max","X2min",
                                          "Y","Y1","Y2","Ymax","Ymin","Y2max","Y2min",
                                          "Z","Z1","Z2","Zmax","Zmin","Z2max","Z2min"] 
Image
mario
Maybe you need a special feature, go into Macros_recipes and Code_snippets, Topological_data_scripting, Dialog creation. My macros on Gist.github.
raketenolli
Posts: 18
Joined: Fri Oct 06, 2017 9:30 pm

Re: reorder objects in Object tree

Postby raketenolli » Sat Oct 07, 2017 10:30 am

Thanks, it seems v0.17 already includes some functionality concerning reordering elements as I described in #2 above.

Oliver
mario52
Posts: 3232
Joined: Wed May 16, 2012 2:13 pm

Re: reorder objects in Object tree

Postby mario52 » Tue Nov 28, 2017 3:42 pm

hi
i add save in spreadSheet with many option

Image

mario
Maybe you need a special feature, go into Macros_recipes and Code_snippets, Topological_data_scripting, Dialog creation. My macros on Gist.github.
User avatar
easyw-fc
Posts: 2915
Joined: Thu Jul 09, 2015 9:34 am

Re: reorder objects in Object tree

Postby easyw-fc » Tue Nov 28, 2017 4:46 pm

mario52 wrote:
Tue Nov 28, 2017 3:42 pm
hi
i add save in spreadSheet with many option
...
mario
very nice though! :D
FiveD
Posts: 2
Joined: Thu Aug 09, 2018 6:40 am

Re: reorder objects in Object tree

Postby FiveD » Fri Aug 10, 2018 1:27 am

At the risk that my first post triggers necro sensitivities...
ickby wrote:
Mon Jul 17, 2017 10:48 am
I did not look into the version you use, but in 0.17 you can create Parts that have all features as child. This allows for easy ordering. (Currently accessible via PartDesign Workbench, but this is a general object that can be used with everything).
Yes, I am organizing things hierarchically in this way extensively, but I'm not following the statement about "This allows for easy ordering".
As far I can tell, it allows for easy grouping, but I see no functionality for ordering within a group. I have a complex parts tree with many objects at various levels, and ordering within a level is still very useful to me. Is there a way to do this that you are alluding to that I'm missing?

I'll certainly admit to not fully appreciating all the issues with logical organization. It may be that presently things are coded so that the display is based on some internal logical order, but surely objects could have separate properties that determine their displayed sort order (at the relevant hierarchy level in the tree) within certain contexts without need to reorganize the underlying logical structures at all. I don't see why display order needs to be tied in any way to arguments about internal structure. They are, or can be, separate issues.

I am essentially making assemblies via hierarchical parts trees and for simply navigating the tree efficiently for whatever purpose it's very useful to be able to keep a fixed and reasonable organization. It's especially disruptive during working discussions when you have to pause to search around for where every part went in the tree in order to turn its visibility on and off.

Regarding naming, I'd also agree that there can be some improvements to naming. I find myself making many clones and it would certainly speed up work flow if cloning "widget" made "widgetClone001" instead of just "Clone043". I do it by hand, but it would be a nice touch if it was automated.

As it is my first post here I will add the standard disclaimer that I'm well aware that this is free software, and these are just my suggestions should anyone feel inspired by them. For what it's worth I haven't looked at FreeCAD in a long time but version 0.17, in large part because of parts hierarchy, really seems to be pretty usable. Regardless of a true assembly bench even simply making a default toolbar with things like move, clone, placement, alignment, make compound, draft-point, and draft-line (the last three for attaching alignment points to a part), and simple copy would go a long way toward making assembly almost user friendly. While it's still not quite true parametric assembly, the ability to move hierarchical groups of parts together still makes it pretty powerful now.

I am presently on Version 0.17 Revision 13522 65 bit Windows