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!
Syres
Posts: 307
Joined: Thu Aug 09, 2018 11:14 am

Re: App::Link: the big merge

Postby Syres » Thu Aug 08, 2019 1:32 pm

When attempting to replicate @user1234's crash using the Windows build, I do not get a crash on deletion of the Fillet but when closing the file and Discarding the Changes I get the following in the Report View:

Code: Select all

Unhandled Base::Exception caught in GUIApplication::notify.
The error message is: Access violation
Unhandled Base::Exception caught in GUIApplication::notify.
The error message is: Access violation
OS: Windows 7 SP 1 (6.1)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.17421 +113 (Git)
Build type: Release
Branch: LinkMerge
Hash: 9d0f1e40d1635f57f2f34c704fd9625aa39587fc
Python version: 3.6.8
Qt version: 5.12.1
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: English/United Kingdom (en_GB)
Syres
Posts: 307
Joined: Thu Aug 09, 2018 11:14 am

Re: App::Link: the big merge

Postby Syres » Thu Aug 08, 2019 1:44 pm

If I create my own model in PartDesign Wb initially with a Fillet and then deleted before closing the file I get the same message as above but if I create the exact same model using Sketcher and Part Wbs with a Fillet and then deleted, I can close the file with no error feedback in the Report View.
realthunder
Posts: 1096
Joined: Tue Jan 03, 2017 10:55 am

Re: App::Link: the big merge

Postby realthunder » Thu Aug 08, 2019 2:18 pm

user1234 wrote:
Thu Aug 08, 2019 10:36 am
I just built FreeCAD App::Link (the newest from today commit 00dbdb11579fd860f7af0a396ac557e6e56a5562). First of all, it compiles fine under Debian 10. But when i tested it i got an error. When you delete the fillet (right klick --> delete) in the testfile, FreeCAD crashes.
Syres wrote:
Thu Aug 08, 2019 1:32 pm
When attempting to replicate @user1234's crash using the Windows build, I do not get a crash on deletion of the Fillet but when closing the file and Discarding the Changes I get the following in the Report View:
Thanks for reporting. Pushed a few commits. Not sure if it's the right fix. Please sync my LinkMerge branch and try again.
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: 181
Joined: Mon Jul 11, 2016 5:08 pm

Re: App::Link: the big merge

Postby user1234 » Thu Aug 08, 2019 3:16 pm

Works great (on Debian 10)!

Thank you for fast fix.

I will test some more (when i found time), so maybe i will report more bugs.

Greetings
user
User avatar
kkremitzki
Posts: 1670
Joined: Thu Mar 03, 2016 9:52 pm
Location: Texas

Re: App::Link: the big merge

Postby kkremitzki » Thu Aug 08, 2019 7:23 pm

The PPA is updated as well.
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.
user1234
Posts: 181
Joined: Mon Jul 11, 2016 5:08 pm

Re: App::Link: the big merge

Postby user1234 » Fri Aug 09, 2019 11:17 am

I have found another very small bug and have some question in general.

1. (mini)bug
hide_highlight_error.webm
(214.72 KiB) Downloaded 29 times
test.FCStd
(23.39 KiB) Downloaded 18 times
If you have a file and a object is invisible and you want to make it visible, then the mark the object, hit 3 times space and the the object is permanent highlighted. There are more ways the make this error, but this is the only one that i have found as reproducible.

2. how i make a link transform pattern?
link_transform.webm
(374.72 KiB) Downloaded 19 times
As you see in the video i wanted the make a pattern of the object Body. So i right klicked to the object Body, went to Link actions, choosed Make link group and klicked to Group with transform links. Then the LinkGroup appeared.

So here are the questions:

- Why is the body under the LinkGroup labeled with Body001 when all other subobjects are labeled as the origin body. Should not be the Body the Body only linked? In other link actions the Body remains untouched. (I hope you understand the question, if not, i make a other video).

- Why are in the object Body001 are the properties for the transformation, should it not be in the LinkGroup or better in a TransformLinkGroup?

- How i transform i the pattern? With Sub Elements and how?

- Did i get something wrong how it works? I read this https://github.com/realthunder/FreeCAD_ ... /wiki/Link, but there is no instruction how to perform (i think this is not necessary, because it is to much work, but a small *.webm would be extreme helpful).


Per se i really like the idea, this extreme powerful. I hope the people use it in the right way, else the topical naming issue will destroy many things.

Thank you for your work!

Sorry for bad english
Greetings
user


PS: how can i place a *.webm like a video?
realthunder
Posts: 1096
Joined: Tue Jan 03, 2017 10:55 am

Re: App::Link: the big merge

Postby realthunder » Fri Aug 09, 2019 1:08 pm

user1234 wrote:
Fri Aug 09, 2019 11:17 am
I have found another very small bug and have some question in general.
I can't reproduce the problem. Did you set the same color for both pre-selection and selection? Please check the video
link.webm
(734.1 KiB) Downloaded 58 times
The above video also shows how to be create pattern with link. There is a new LinkArray in Draft to do that. Note, there is a python2 related bug in Draft workbench, which I just fixed. Please sync my branch if you are using python2. You can consider LinkArray a light version of Draft Array. If fusion is not turned on, there is no extra shape created or saved. If you want an overall pattern, but with special placement for some instances. You can turn on the 'ExpandArray' property, so that you can move individual elements. If you don't want pattern at all, but instead just want a bunch of duplicates to move around, you can use normal link, and change its 'ElementCount' property.

'Group with transform links' is to make a group that will auto create links to whatever object you dropped in. Unlike normal links (which has independent placement to the linked object), the auto created link in those groups tracks the placement of the linked object, hence 'group with transform links'. This placement tracking behavior is actually controlled by the 'LinkTransform' property of the link.

As for the naming, the link is a normal FreeCAD object, just like Body, so it cannot have the same label with an existing object, therefore it is relabeld to Body001. You can distinguish a link and the linked object by observing the little white arrow in its icon. You can create 'Simple group' that hold the body directly, instead of through link.
PS: how can i place a *.webm like a video?
I don't think you can. You can link youtube video using the 'video' tag.
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: 181
Joined: Mon Jul 11, 2016 5:08 pm

Re: App::Link: the big merge

Postby user1234 » Mon Aug 12, 2019 10:08 am

Hello!
Sorry for late reply.
realthunder wrote:
Fri Aug 09, 2019 1:08 pm
Did you set the same color for both pre-selection and selection?
No, also i have disabled preselection. But in the video, you clicked after the three times spaces in the tree, i clicked in the 3D space. The problem is, is the highlighting on, it only vanish when you reload the file.

To the links and patterns: it works all, but i think, there are some issues. No hard, but some continuity and tree view issues. But this is longer to explain (and to write). So i will reply on that a little bit later. Sorry for that.

Greetings
user
user1234
Posts: 181
Joined: Mon Jul 11, 2016 5:08 pm

Re: App::Link: the big merge

Postby user1234 » Tue Aug 13, 2019 11:25 am

Hello!

Found another two.

First:
Property box of draft array is twisted. No big deal, but should be repaired.
_property_box_draft_array.png
_property_box_draft_array.png (159.2 KiB) Viewed 630 times

Second:
Links along a path in draft seems not to work right.

Code: Select all

Traceback (most recent call last):
  File "/home/laptop/Programs/FreeCAD_Link/Mod/Draft/Draft.py", line 5931, in execute
    base = self.pathArray(obj.Base.Placement,w,obj.Count,obj.Xlate,obj.Align)
  File "/home/laptop/Programs/FreeCAD_Link/Mod/Draft/Draft.py", line 5950, in pathArray
    shape.Placement.Rotation, pathwire, count, xlate, align)
<class 'AttributeError'>: 'Base.Placement' object has no attribute 'Placement'
_link_path.png
_link_path.png (173.69 KiB) Viewed 630 times

And i found one for nitpicker:
Part have an option for appearance, which Part does not have. But in the appearance menu all is gray out, so it is no big deal.
_appearance.png
_appearance.png (163.58 KiB) Viewed 630 times
Greetings
user
Attachments
test2.FCStd
(94.83 KiB) Downloaded 15 times
realthunder
Posts: 1096
Joined: Tue Jan 03, 2017 10:55 am

Re: App::Link: the big merge

Postby realthunder » Tue Aug 13, 2019 1:46 pm

user1234 wrote:
Tue Aug 13, 2019 11:25 am
Property box of draft array is twisted. No big deal, but should be repaired.
Thanks for reporting. Will fix soon.

Regarding the property order. Because I have changed a bit about dynamic property storage and forgot to keep the creation order, I can easily fix this by adding extra field for position. However, I am wondering whether this is necessary at all. My intention is to make FreeCAD object more dynamic, like Python object, where the user or programmer can freely add or remove properties for their own use. So if the property view displays by creation order, it is kind of harder for the user to control the display order. It will be easier if the properties are displayed with sorting by name, which is how view object properties are displayed. What do you all think?
wmayer wrote: ping
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