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.
Assembly3 preview
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Be nice to others! Respect the FreeCAD code of conduct!
Re: Assembly3 preview
-
- Veteran
- Posts: 2190
- Joined: Tue Jan 03, 2017 10:55 am
Re: Assembly3 preview
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.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).
-
- Posts: 115
- Joined: Wed May 30, 2018 6:59 pm
Re: Assembly3 preview
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.
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.
-
- Veteran
- Posts: 2190
- Joined: Tue Jan 03, 2017 10:55 am
Re: Assembly3 preview
You mean you want this to prevent accidentally deleting an element in lower assembly? That does make some sense. Let me think about it.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?
-
- Posts: 115
- Joined: Wed May 30, 2018 6:59 pm
Re: Assembly3 preview
Yes exactly!You mean you want this to prevent accidentally deleting an element in lower assembly? That does make some sense. Let me think about it.
-
- Veteran
- Posts: 2190
- Joined: Tue Jan 03, 2017 10:55 am
Re: Assembly3 preview
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.m.cavallerin wrote: ↑Wed Jan 09, 2019 10:40 amYes exactly!You mean you want this to prevent accidentally deleting an element in lower assembly? That does make some sense. Let me think about it.
Re: Assembly3 preview
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.realthunder wrote: ↑Wed Jan 09, 2019 10:51 amThe 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.m.cavallerin wrote: ↑Wed Jan 09, 2019 10:40 amYes exactly!You mean you want this to prevent accidentally deleting an element in lower assembly? That does make some sense. Let me think about it.
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.
-
- Posts: 115
- Joined: Wed May 30, 2018 6:59 pm
Re: Assembly3 preview
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.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.
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?
Re: Assembly3 preview
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.
Re: Assembly3 preview
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.