App::Link: the big merge

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
realthunder
Veteran
Posts: 2190
Joined: Tue Jan 03, 2017 10:55 am

Re: App::Link: the big merge

Post by realthunder »

yorik wrote: Wed Aug 14, 2019 9:12 pm If you are willing to stay tuned and help fixing the problems as they appear @realthunder, for me we can do the merge.
Sure, I am always there. Maybe you can provide some details about the problem you have encountered, like attach a IFC export showing the problem? And don't forget to post your build configuration. I can't reproduce the draft line problem you mentioned.
Try Assembly3 with my custom build of FreeCAD at here.
And if you'd like to show your support, you can donate through patreon, liberapay, or paypal
ickby
Veteran
Posts: 3116
Joined: Wed Oct 05, 2011 7:36 am

Re: App::Link: the big merge

Post by ickby »

While playing with the branch I did not really understand the purpose of the LinkGroup. Could you explain what the benefit of this object is compared to a simple combination of App::Part+App::Link and what use cases you support with that?
User avatar
fosselius
Posts: 381
Joined: Sat Apr 23, 2016 10:03 am
Contact:

Re: App::Link: the big merge

Post by fosselius »

ickby wrote: Thu Aug 15, 2019 5:14 am While playing with the branch I did not really understand the purpose of the LinkGroup. Could you explain what the benefit of this object is compared to a simple combination of App::Part+App::Link and what use cases you support with that?
here is some background: https://forum.freecadweb.org/viewtopic. ... up#p320981
realthunder wrote: Mon Jul 15, 2019 10:30 am
Zolko wrote: Mon Jul 15, 2019 10:06 am Huh ? You thought about LinkGroup as a container for parts, as replacement for App::Part ? That's going to be an uphill battle IMHO.
Well, I kind of added LinkGroup after the battle, actually. I proposed changes to App::Part, but ickby won't consider it, so I created a new one. App::Part has a restriction that one object can only be in one part group at any time, this simplifies coding a lot, but causes trouble for assembly, precisely because of the link to group situation. When multiple links to the same group are added to a parent group, the same child object of that linked group now appears multiple times. App::Part cannot distinguish that.
Last edited by fosselius on Thu Aug 15, 2019 7:29 am, edited 1 time in total.
realthunder
Veteran
Posts: 2190
Joined: Tue Jan 03, 2017 10:55 am

Re: App::Link: the big merge

Post by realthunder »

ickby wrote: Thu Aug 15, 2019 5:14 am While playing with the branch I did not really understand the purpose of the LinkGroup. Could you explain what the benefit of this object is compared to a simple combination of App::Part+App::Link and what use cases you support with that?
There is not many code that is dedicated to LinkGroup, it's just that App::Link must be group aware (it has special handling when linked to plain group and geo group), and act like group in some situation (e.g. in array mode), so I just expose the group part of the logic as LinkGroup. Both LinkGroup and Link are implemented using LinkBaseExtension. One major difference comparing to App::Part + App::Link is that it can directly hold the containing object, rather than leave it hanging out under the root. While App::Part can also hold the object, it will affect other depending objects.
Try Assembly3 with my custom build of FreeCAD at here.
And if you'd like to show your support, you can donate through patreon, liberapay, or paypal
user1234
Veteran
Posts: 3345
Joined: Mon Jul 11, 2016 5:08 pm

Re: App::Link: the big merge

Post by user1234 »

Hello!
realthunder wrote: Tue Aug 13, 2019 11:52 pm From you description, I think you have some confusion of the link's behavior. When you create a simple LinkGroup (not draft array), and drag object inside, the object actually moves into the group. If you are dragging the object out of some parent, by default, it will first be removed from that parent. To avoid affecting the original object in any way, you can create a Link to that object, and then move the Link into the group.
OK, i must look on that.
realthunder wrote: Tue Aug 13, 2019 11:52 pm
The 'Draft LinkArray' is NOT a group in its default state
But the behavior on the tree view is quite the same.
realthunder wrote: Wed Aug 14, 2019 12:06 am So for the following picture, with 'Box' group, it will display as 'Height', 'Length', 'Width'. That's it.
OK, i did not know that. I thought a group in the property tab is something like placement and its elements. Thanks for that.
realthunder wrote: Wed Aug 14, 2019 12:06 am BTW, there two tabs or properties.
I know that, but thanks anyway.


I tested the link path array fix git commit 3420815b877abf68fb88524bc87a8e5d9e6087df in PR App::Link functionality #2350. It works, but i get an error. See here:
_link_draft_array_bool_error.gif
_link_draft_array_bool_error.gif (220.08 KiB) Viewed 2405 times
In the log is only:

Code: Select all

<Exception> type must be 'Shape', not bool
The behavior with the rename thing (click two times and then press F2) on my other machine the same.

The highlight error is definitive from the Enable preselection highlighting setting. For me it is by default disabled.
_preselecting_setting.png
_preselecting_setting.png (95.64 KiB) Viewed 2405 times

By the way, i am not a programmer, only a user.

All tested with:

Code: Select all

OS: Debian GNU/Linux 10 (buster) (X-Cinnamon/lightdm-xsession)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.Unknown
Build type: DebWithRelInfo
Python version: 3.7.3
Qt version: 5.11.3
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: C/Default (C) and English/UnitedStates (en_US)
git commit 3420815b877abf68fb88524bc87a8e5d9e6087df in PR App::Link functionality #2350

Greetings
user
triplus
Veteran
Posts: 9471
Joined: Mon Dec 12, 2011 4:45 pm

Re: App::Link: the big merge

Post by triplus »

After all this years its nice to finally see the matured App::Link oriented PR. Congratulations! I feel that a leap of faith will be required in addition to all the hard work done reviewing. It's reasonable to expect @realthunder will be prepared to fix issues people will report. As for the FreeCAD 0.19. I have a feeling it doesn't make much sense to put more Assembly 3 related effort code in it, beyond App::Link and some other functionality that was added to the PR. This few months left, before the actual FreeCAD 0.19 release, should therefore stay App::Link oriented.

P.S. Before FreeCAD 0.19 release providing a short summary here would be nice:

https://forum.freecadweb.org/viewtopic.php?f=10&t=34586
User avatar
kkremitzki
Veteran
Posts: 2511
Joined: Thu Mar 03, 2016 9:52 pm
Location: Illinois

Re: App::Link: the big merge

Post by kkremitzki »

triplus wrote: Fri Aug 16, 2019 10:43 pm I feel that a leap of faith will be required in addition to all the hard work done reviewing. It's reasonable to expect @realthunder will be prepared to fix issues people will report.
Agreed!
Like my FreeCAD work? I'd appreciate any level of support via Patreon, Liberapay, or PayPal! Read more about what I do at my blog.
User avatar
saso
Veteran
Posts: 1920
Joined: Fri May 16, 2014 1:14 pm
Contact:

Re: App::Link: the big merge

Post by saso »

If everyone is so sure about this, then I wonder why everyone was not already using asm3 builds before? Where are all the users? Where are all the projects? I would for sure not merge it like this.
Last edited by saso on Sat Aug 17, 2019 1:22 am, edited 2 times in total.
realthunder
Veteran
Posts: 2190
Joined: Tue Jan 03, 2017 10:55 am

Re: App::Link: the big merge

Post by realthunder »

user1234 wrote: Fri Aug 16, 2019 4:19 pm The behavior with the rename thing (click two times and then press F2) on my other machine the same.
Can you please provide a screencast showing the steps to reproduce this problem?
The highlight error is definitive from the Enable preselection highlighting setting. For me it is by default disabled.
Do you mean that if you enabled preselection highlighting, then the problem is gone? Preselection reacts with you move your mouse over geometries in 3D view. Selection highlight, on the other hand, only changes when you click mouse, either in tree view or 3d view.
Try Assembly3 with my custom build of FreeCAD at here.
And if you'd like to show your support, you can donate through patreon, liberapay, or paypal
user1234
Veteran
Posts: 3345
Joined: Mon Jul 11, 2016 5:08 pm

Re: App::Link: the big merge

Post by user1234 »

Sure!
_error_highlighting.webm
(494.06 KiB) Downloaded 73 times
_error_rename_F2.webm
(279.61 KiB) Downloaded 95 times
test.FCStd
(23.39 KiB) Downloaded 61 times
Greetings
user
Post Reply