Assembly3 preview

Discussion about the development of the Assembly workbench.
realthunder
Posts: 922
Joined: Tue Jan 03, 2017 10:55 am

Re: Assembly3 preview

Postby realthunder » Sun Jun 10, 2018 8:39 am

kwahoo wrote:
Sat Jun 09, 2018 7:50 pm
Is offset property in the PlaneAlignment constraint supposed to work?
Thanks for reporting. It's been fixed. I'll release a big fix version soon.

easyw-fc wrote:
Sat Jun 09, 2018 8:18 pm
BTW I made some test also on STEP with external references and the results are very good... an other very big STEP ahead!
Good to hear that. Thanks!

Kunda1 wrote:
Sun Jun 10, 2018 4:10 am
BTW, will Assembly3 solve issue #2462 ?
My previous tree view patch that was accepted in FC 0.17 has partially fixed the problem described in this issue. For example, a newly created Cut object will not steal children from other tree view item. And if the Cut is deleted, it will not affect the order of its children in other groups.

Support user defined ordering is kind of tricky, because each object has their own way of storing children. For example, PartDesign::Body already support this, but it needs lots of extra logic to handle this correctly. My A3 workbench supports reordering as well, because it knows how the children are stored, also because order is important in constraint group. To add a general reordering function is going to be hard.

We can, however, offer alphabetical sorting functionality without actually change the children order in the object. Simply ask Qt to sort the tree view items, but we'll need some API to enable/disable is function, because sorting does not make sense in some object, like Body.
Try Assembly3 (latest version 0.9.1) along with my custom build of FreeCAD at here.
And if you like to show your support, you can find the donate button at here.
triplus
Posts: 8276
Joined: Mon Dec 12, 2011 4:45 pm

Re: Assembly3 preview

Postby triplus » Sun Jun 10, 2018 11:46 am

Didn't read the thread for a couple of days and i see an interesting discussion was conducted.
realthunder wrote:
Fri Jun 08, 2018 11:57 am
Come on, I'm the Link guy.
:lol:
And I have stated many times that one of the main problem I have with upstream importer is that it multiplies the file size when importing with hierarchy. But you are okay with this? Hmm... Anyway, I added Part::Compound2, which is like Part::Compound, but its Shape is marked as transient, meaning it is not saved, but rebuilt when restoring. BTW, it won't slow down much when restoring. In fact it will be faster, as reading BREP file is most likely slower than compounding list of shapes.
Is the STEP importer a core part of the Link effort? If not lets discuss and mature that first elsewhere.
We can, however, offer alphabetical sorting functionality without actually change the children order in the object. Simply ask Qt to sort the tree view items, but we'll need some API to enable/disable is function, because sorting does not make sense in some object, like Body.
Likely that is not a core part of the Link effort? If not lets discuss and mature that first elsewhere.

What i am trying to say is we are way beyond being out of scope already. As for the Link effort i am guessing you don't plan to investigate the things we discussed. Like XLinks and requirement for opening all involved documents and things like that? If Link effort gets upstreamed i am guessing Assembly 3 workbench will be able to work with (upstream) FreeCAD after? That would be a nice achievement.

Therefore if my understanding is more or less correct i am guessing it is time to update this PR or open a new one:

https://github.com/FreeCAD/FreeCAD/pull/876

And lets try to get the Links effort upstreamed? Everything else is out of scope from FreeCAD 0.18 point of view anyway. I would urge you to cut away anything not related to core Link effort functionality. That can be added at some future point if needed and desired.
Last edited by triplus on Sun Jun 10, 2018 11:47 am, edited 1 time in total.
User avatar
fosselius
Posts: 305
Joined: Sat Apr 23, 2016 10:03 am

Re: Assembly3 preview

Postby fosselius » Sun Jun 10, 2018 11:47 am

Do not remember if this is a know issue or not. But if i create a body and set an placement, then include that body in an assemby, that placement will be included as an offset for the constraints in the assembly (ex: holes will not be cocentric). If i set the placement of the body to 0,0,0 in the external file, the placement of the constrained body in the assembly file will become correct. I can give an step to step example later.
realthunder
Posts: 922
Joined: Tue Jan 03, 2017 10:55 am

Re: Assembly3 preview

Postby realthunder » Sun Jun 10, 2018 11:55 am

triplus wrote:
Sun Jun 10, 2018 11:46 am
And lets try to get the Links effort upstreamed? Everything else is out of scope from FreeCAD 0.18 point of view anyway. I would urge you to cut away anything not related to core Link effort functionality. That can be added at some future point if needed and desired.
Yes, I am writing the document for Link implementation, after which I'll start a thread about discussing what's the best to merge.

Is the STEP importer a core part of the Link effort? If not lets discuss and mature that first elsewhere.
I think it is the other way round. STEP importer is a great demonstration of how Links can be useful. The assembly support in STEP is centered around concepts of instance, which can be directly translated to Link.
Try Assembly3 (latest version 0.9.1) along with my custom build of FreeCAD at here.
And if you like to show your support, you can find the donate button at here.
realthunder
Posts: 922
Joined: Tue Jan 03, 2017 10:55 am

Re: Assembly3 preview

Postby realthunder » Sun Jun 10, 2018 11:59 am

fosselius wrote:
Sun Jun 10, 2018 11:47 am
Do not remember if this is a know issue or not. But if i create a body and set an placement, then include that body in an assemby, that placement will be included as an offset for the constraints in the assembly (ex: holes will not be cocentric). If i set the placement of the body to 0,0,0 in the external file, the placement of the constrained body in the assembly file will become correct. I can give an step to step example later.
I am not aware this. Yes, please elaborate, or maybe attach a file, too.
Try Assembly3 (latest version 0.9.1) along with my custom build of FreeCAD at here.
And if you like to show your support, you can find the donate button at here.
triplus
Posts: 8276
Joined: Mon Dec 12, 2011 4:45 pm

Re: Assembly3 preview

Postby triplus » Sun Jun 10, 2018 12:07 pm

realthunder wrote:
Sun Jun 10, 2018 11:55 am
Yes, I am writing the document for Link implementation, after which I'll start a thread about discussing what's the best to merge.
Great. Please include the option where upstreaming only the core Link functionality in the first stage is considered. And what it brings to the table. From yours and core Links point of view. As you do consider the implementation more or less done now? And can propose the full solution in one PR?
I think it is the other way round. STEP importer is a great demonstration of how Links can be useful. The assembly support in STEP is centered around concepts of instance, which can be directly translated to Link.
From FreeCAD 0.18 point of view i would go for core Link effort functionality first. Adopting and using that functionality in different areas can happen after as a part of standalone efforts. Like for example "Links and STEP importer".
realthunder
Posts: 922
Joined: Tue Jan 03, 2017 10:55 am

Re: Assembly3 preview

Postby realthunder » Sun Jun 10, 2018 12:40 pm

triplus wrote:
Sun Jun 10, 2018 12:07 pm
Great. Please include the option where upstreaming only the core Link functionality in the first stage is considered. And what it brings to the table. From yours and core Links point of view. As you do consider the implementation more or less done now? And can propose the full solution in one PR?
Well, that's complicated, because lots of things are interrelated. That is why I want to have the document first (which will explain what are the changes, and why they are interrelated) and then have the discussion.
Try Assembly3 (latest version 0.9.1) along with my custom build of FreeCAD at here.
And if you like to show your support, you can find the donate button at here.
User avatar
easyw-fc
Posts: 2292
Joined: Thu Jul 09, 2015 9:34 am

Re: Assembly3 preview

Postby easyw-fc » Sun Jun 10, 2018 2:32 pm

triplus wrote:
Sun Jun 10, 2018 11:46 am
Didn't read the thread for a couple of days and i see an interesting discussion was conducted.
I noticed you were missing :D
triplus wrote:
Sun Jun 10, 2018 11:46 am
Is the STEP importer a core part of the Link effort? If not lets discuss and mature that first elsewhere.
that was my point of view too, but @realthunder pushed all ahead and the result is a big improvement in STEP parser achieved in very short time (and a bit of discussion ;) )

ATM the STEP parser is handling internal Links (multiple instance of the same geometry) and external Links (external reference STEP file) when loading a file in a lighter and more precise way.

I can load huge file generated by Altium and OCC in a fast way (that was a known issue in the previous parser).
PCB assembly from an Altium project
I can load also SolidWorks huge files that were parsed very slowly before.
hfe1600_d1utb_step zipped
and the big test file we used for hierarchy test
00_server-tla_25ou-barreleye_asm.stp 7zipped

Also the issue with Solid with a Wire has been addressed and solved
https://forum.freecadweb.org/viewtopic. ... 10#p228253

And here the external Reference files from different CADs, all loaded correctly by the new parser.
www.cax-if.org/library/s1-tu-203.zip Siemens NX example
www.cax-if.org/library/s1-c5-214.zip Catia example
www.cax-if.org/library/s1-pe-214.zip ProE example


There is something to tune about fps, but @realthunder is working on this, and I think this can also be tuned after the merging.
Exporting and Saving external Linked files can also be managed later.

STEP exporting should be fine too, but the latest patches haven't been published yet, so testing has to be done later.

There are already many features that can be included in FC0.18 :D

PS I would like to test this very huge file (almost 1GB) by ProE:
Barreleye G2 3D STP-20170310-detailed zipped
but it seems it is a too big deal for my HW... brave tester are welcome!
User avatar
fosselius
Posts: 305
Joined: Sat Apr 23, 2016 10:03 am

Re: Assembly3 preview

Postby fosselius » Sun Jun 10, 2018 7:36 pm

Did test the 1gigabyte file, freecad did not like. got killed, used up all my RAM (8Gb). have another with nvidia card and 16Gb ram, but my nvidia drivers are broken so freecad crashes when i start an new document.

The issue i mentioned before is this:
resized2.gif
resized2.gif (984.44 KiB) Viewed 291 times
Also, I do not see the Import/export STEP options in FreeCAD-asm3-20180608-2b52dc54-042c43d.glibc2.17-x86_64.AppImage
(Update, it works in mysterious ways, all options are not loaded at startup?!?)
settings.gif
settings.gif (718.06 KiB) Viewed 274 times
realthunder
Posts: 922
Joined: Tue Jan 03, 2017 10:55 am

Re: Assembly3 preview

Postby realthunder » Mon Jun 11, 2018 6:25 am

fosselius wrote:
Sun Jun 10, 2018 7:36 pm
The issue i mentioned before is this:
Thanks for reporting.
Also, I do not see the Import/export STEP options in FreeCAD-asm3-20180608-2b52dc54-042c43d.glibc2.17-x86_64.AppImage
(Update, it works in mysterious ways, all options are not loaded at startup?!?)
settings.gif
Because the STEP import preference page is from Part workbench, you'll have to load the workbench first in order to see it. And when you import STEP file, Part workbench is auto loaded by FC. That's why you see it afterwards.
Try Assembly3 (latest version 0.9.1) along with my custom build of FreeCAD at here.
And if you like to show your support, you can find the donate button at here.