Assembly3 preview

Discussion about the development of the Assembly workbench.
wsteffe
Posts: 142
Joined: Thu Aug 21, 2014 8:17 pm

Re: Assembly3 preview

Postby wsteffe » Tue Jan 08, 2019 3:51 pm

kkremitzki wrote:
Tue Jan 08, 2019 3:29 pm
I don't think this is the case
Ok, I hope that you and saso are right. We will see. Anyway, in the mean time, I do not see a reason why realthunder should stop the development of his branch.
realthunder
Posts: 1012
Joined: Tue Jan 03, 2017 10:55 am

Re: Assembly3 preview

Postby realthunder » Wed Jan 09, 2019 12:17 am

alexandregsoares wrote:
Tue Jan 08, 2019 2:55 pm
Hi guys.

The Freecad's version that Assembly3 is using is not exporting the .obj and .stl files well. The parts in the exported files are in random positions. Do you have any ideas to pass through this problem? It would be nice if I could save the assembly in a "normal Freecad format" and open it in the normal Freecad version (obviously without the assembly constraints).
STEP is fully supported in my branch, but not the others. As a temporary work around, to export an assembly to other format, select that assembly, and change its "BuildShape" property to "Compound", and then export. To export only some of the objects inside an assembly, simply make those you don't want invisible before exporting.
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
m.cavallerin
Posts: 77
Joined: Wed May 30, 2018 6:59 pm

Re: Assembly3 preview

Postby m.cavallerin » Wed Jan 09, 2019 5:44 am

Hi,

I would kindly ask for followings clarification and I apologize if this issue has been already discussed on other threads.

When you constrain two items (two different files) inside a third file (your master assembly file), reference geometry for constraining (elements) are defined inside each “item” file.
Think now you make several assembly files containing each of them these items reused with same or different “elements” for constraining.

Now:
if you delete a reference (elements assembly3 container) inside a single item(file), you delete that references in all assemblies you already made that actually is using that “element”, blowing up each of them (constrain element not resolved/missing).

Shouldn’t be better to keep track of the references (elements) inside (and only) each “assembly” file to save your constrain inside all other assembly files?

It’s quite tricky to explain but hope I was a bit clear…

thanks.
realthunder
Posts: 1012
Joined: Tue Jan 03, 2017 10:55 am

Re: Assembly3 preview

Postby realthunder » Wed Jan 09, 2019 9:18 am

m.cavallerin wrote:
Wed Jan 09, 2019 5:44 am
Shouldn’t be better to keep track of the references (elements) inside (and only) each “assembly” file to save your constrain inside all other assembly files?
You mean you want this to prevent accidentally deleting an element in lower assembly? That does make some sense. Let me think about it.
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
m.cavallerin
Posts: 77
Joined: Wed May 30, 2018 6:59 pm

Re: Assembly3 preview

Postby m.cavallerin » Wed Jan 09, 2019 10:40 am

You mean you want this to prevent accidentally deleting an element in lower assembly? That does make some sense. Let me think about it.
Yes exactly!
realthunder
Posts: 1012
Joined: Tue Jan 03, 2017 10:55 am

Re: Assembly3 preview

Postby realthunder » Wed Jan 09, 2019 10:51 am

m.cavallerin wrote:
Wed Jan 09, 2019 10:40 am
You mean you want this to prevent accidentally deleting an element in lower assembly? That does make some sense. Let me think about it.
Yes exactly!
The problem is more of a way to make it easy for user to restore the missing element, than making the assembly still work with the missing element. With current implementation, each intermediate Element does retain a local copy of the geometry element, which can server as a clue for user to re-create the missing low level element. And each element can also be detached, which I didn't implement quite right. The desired effect is to allow user to use the element without geometry reference if insisted. There is one situation, where there are only two levels of assemblies. The element link of the constraint in the upper assembly links directly to lower level element. And if that element is gone, there is no visual clue left. I need to find a way to store the shape somewhere too.
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
User avatar
Zolko
Posts: 257
Joined: Mon Dec 17, 2018 10:02 am

Re: Assembly3 preview

Postby Zolko » Wed Jan 09, 2019 12:16 pm

realthunder wrote:
Wed Jan 09, 2019 10:51 am
m.cavallerin wrote:
Wed Jan 09, 2019 10:40 am
You mean you want this to prevent accidentally deleting an element in lower assembly? That does make some sense. Let me think about it.
Yes exactly!
The problem is more of a way to make it easy for user to restore the missing element, than making the assembly still work with the missing element.
you should think very carefully with this, because it could backfire very hard: if the user gets a warning that he is about to delete a referenced object, that's useful. But if the user can delete such a referenced object and only gets the warning when he is loading the master assembly, AND that master assembly is still visually in its former correct shape (because the assembly has a copy of the referenced object) than the user might not notice, or might not care, or might delay the reparation, and as a result he'll end up having a visually correct assembly but that is frozen. And when, later, he'll try to use the parametric features and expect that everything will follow, he'll notice that some parts do move as expected, and others not. And then he'll be in very big trouble to get everything right again. Especially if many people are working an a common assembly.

This is exactly what Catia V5 does, and I think it's a very bad idea. It happened to me sometimes, and you're quite miserable then.
Last edited by Zolko on Wed Jan 09, 2019 2:07 pm, edited 1 time in total.
m.cavallerin
Posts: 77
Joined: Wed May 30, 2018 6:59 pm

Re: Assembly3 preview

Postby m.cavallerin » Wed Jan 09, 2019 12:27 pm

There is one situation, where there are only two levels of assemblies. The element link of the constraint in the upper assembly links directly to lower level element. And if that element is gone, there is no visual clue left. I need to find a way to store the shape somewhere too.
Well I can't understand deeper this phrase, I'm not a programmer and I haven't dig into your code, because it is high level programming respect mine.

In anycase I try to give a hint....

The visual effect that is missing could be resolved by extracting the topological shape (or the most similar) in a property of the element and redrawn as a draft line/circle/etc... on the screen?
wsteffe
Posts: 142
Joined: Thu Aug 21, 2014 8:17 pm

Re: Assembly3 preview

Postby wsteffe » Wed Jan 09, 2019 2:55 pm

Zolko wrote:
Wed Jan 09, 2019 12:16 pm
if the user gets a warning that he is about to delete a referenced object, that's useful.
If you want to get a warning every time you change a part that is referred by an assembly you must assure that the assembly document is alsways loaded when the part is. And this may happen only if the part (a copy of it) is saved inside of the assembly file.
I think that this could be a viable option in many (but not all) usage cases.

An other (more general but also more complex) solution would be to organize all the data (assemblies and parts data) in a company wide database instead of using local files. I think this is the way choosen in Catia v6 / Enovia.
User avatar
Zolko
Posts: 257
Joined: Mon Dec 17, 2018 10:02 am

Re: Assembly3 preview

Postby Zolko » Wed Jan 09, 2019 3:05 pm

wsteffe wrote:
Wed Jan 09, 2019 2:55 pm
Zolko wrote:
Wed Jan 09, 2019 12:16 pm
if the user gets a warning that he is about to delete a referenced object, that's useful.
If you want to get a warning every time you change a part that is referred by an assembly you must assure that the assembly document is alsways loaded when the part is. And this may happen only if the part (a copy of it) is saved inside of the assembly file.
the question is not about changing but deleting I think. And I didn't say it's a good feature: I think that if it happens the assembly should give a screaming error on loading, and not replace the missing referenced object by a local copy and try to be smart. This is feature creep.