Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Understanding the Element Concept #61

Closed
ceremcem opened this issue Sep 5, 2018 · 2 comments
Closed

Understanding the Element Concept #61

ceremcem opened this issue Sep 5, 2018 · 2 comments
Labels

Comments

@ceremcem
Copy link
Collaborator

ceremcem commented Sep 5, 2018

While reading https://github.com/realthunder/FreeCAD_assembly3/wiki/Concepts#element, it seems like that:

Any assembly constraint MUST use two or more of points, edges or faces directly. In order to reduce the amount of work on broken reference cases, which might occur when a major change has taken place in the model (like an already assembled component (or even its sub component) would be totally replaced by a totally different one instead of making some small changes) there is a middle layer called "Elements" that holds a map of both our intention (ie. "top of the screw") and the actual point/edge/face (ie. "Face017"). When a such major change occurs, we only need to update our intentions. Since we used our "intentions" potentially many times in the actual constraint definitions, our re-work burden would be significantly reduced in such cases.

Naming the Element instances

If that's true till this point, we might consider giving names (description of our intention) to the Element instances whenever possible, because If we wanted to replace an object with many elements (like in Replacing Part example) we can't easily update the broken Elements because we can't know/remember what the intention of Element057 was. Is that true?

image

@ceremcem ceremcem changed the title Understanding Element Concept Understanding the Element Concept Sep 5, 2018
@realthunder
Copy link
Owner

Yes, you are right. Although, not only big changes like replacing parts, any model changes can possibly break the link. With a deep hierarchical assembly, if there is a breaking Element due to model change, you only need to update the deepest sub-assembly that directly hosting the model object. You can also check out this tutorial and see how elements are manually created for different hierarchies.

@ceremcem
Copy link
Collaborator Author

ceremcem commented Sep 6, 2018

That's a nice concept. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants