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

Re: App::Link: the big merge

Postby realthunder » Wed Aug 14, 2019 10:41 pm

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 (latest version 0.10.2) along 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
Posts: 2927
Joined: Wed Oct 05, 2011 7:36 am

Re: App::Link: the big merge

Postby ickby » 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?
User avatar
fosselius
Posts: 346
Joined: Sat Apr 23, 2016 10:03 am

Re: App::Link: the big merge

Postby fosselius » Thu Aug 15, 2019 6:05 am

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

Re: App::Link: the big merge

Postby realthunder » Thu Aug 15, 2019 6:42 am

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 (latest version 0.10.2) along 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
Posts: 190
Joined: Mon Jul 11, 2016 5:08 pm

Re: App::Link: the big merge

Postby user1234 » Fri Aug 16, 2019 4:19 pm

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 864 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 864 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
Posts: 8802
Joined: Mon Dec 12, 2011 4:45 pm

Re: App::Link: the big merge

Postby triplus » Fri Aug 16, 2019 10:43 pm

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
Posts: 1796
Joined: Thu Mar 03, 2016 9:52 pm
Location: Texas

Re: App::Link: the big merge

Postby kkremitzki » Fri Aug 16, 2019 11:15 pm

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
Posts: 1337
Joined: Fri May 16, 2014 1:14 pm
Contact:

Re: App::Link: the big merge

Postby saso » Fri Aug 16, 2019 11:46 pm

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

Re: App::Link: the big merge

Postby realthunder » Sat Aug 17, 2019 12:20 am

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 (latest version 0.10.2) along 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
Posts: 190
Joined: Mon Jul 11, 2016 5:08 pm

Re: App::Link: the big merge

Postby user1234 » Sat Aug 17, 2019 1:40 am

Sure!
_error_highlighting.webm
(494.06 KiB) Downloaded 27 times
_error_rename_F2.webm
(279.61 KiB) Downloaded 24 times
test.FCStd
(23.39 KiB) Downloaded 21 times
Greetings
user