Assembly3 preview

Discussion about the development of the Assembly workbench.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Mark Szlazak
Posts: 439
Joined: Tue Apr 04, 2017 6:06 pm
Location: SF Bay Area, California

Re: Assembly3 preview

Post by Mark Szlazak »

realthunder wrote: Tue Jan 02, 2018 2:08 am
Mark Szlazak wrote: Tue Jan 02, 2018 12:59 am I do not see why you have problems with what Wilfried said that Creo does. After all, the datum planes, lines, points as references for a part can remain the same no matter how you mangle that part. Please give a concrete example. Thank you.
Say, I want to change the type of screw used in an assembly. That's a completely different model. How can you make sure it has the same datum plane with the same name?
What about copying the old data planes and adding them to the new part? What are people doing now with software like Creo?
realthunder
Veteran
Posts: 2190
Joined: Tue Jan 03, 2017 10:55 am

Re: Assembly3 preview

Post by realthunder »

Mark Szlazak wrote: Tue Jan 02, 2018 5:33 am What about copying the old data planes and adding them to the new part? What are people doing now with software like Creo?
Well, we have to ask someone who used those software before, @freecad-heini-1. But for FC, simple copy won't work. Because the object's internal name must be unique. When something is copied, the new object will be auto renamed. The label of the object, on the other hand, is allowed to have duplicates, which is what I explored in asm3 to allow user to freely name the constraining element.
Try Assembly3 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
Mark Szlazak
Posts: 439
Joined: Tue Apr 04, 2017 6:06 pm
Location: SF Bay Area, California

Re: Assembly3 preview

Post by Mark Szlazak »

realthunder wrote: Tue Jan 02, 2018 5:53 am
Mark Szlazak wrote: Tue Jan 02, 2018 5:33 am What about copying the old data planes and adding them to the new part? What are people doing now with software like Creo?
Well, we have to ask someone who used those software before, @freecad-heini-1. But for FC, simple copy won't work. Because the object's internal name must be unique. When something is copied, the new object will be auto renamed. The label of the object, on the other hand, is allowed to have duplicates, which is what I explored in asm3 to allow user to freely name the constraining element.
Thank you and looking forward to a response from Wilfried. In the meantime, a quick search gave this paper,

“Topology face–based change propagation analysis in aircraft- assembly tooling design”

http://journals.sagepub.com/doi/pdf/10. ... 5414558695

A literature review on this may turn up some relevant “gold nuggets.” Looking forward to your work.
User avatar
fosselius
Posts: 381
Joined: Sat Apr 23, 2016 10:03 am
Contact:

Re: Assembly3 preview

Post by fosselius »

I have previously worked a bit with SolidWorks building robot assemblies and often haft issues with failed references with mates (constraints).
This might have improved since SolidWorks 2011 that i used. But from the "help" documentation it does not look like it have improved much.
Here is an overview of SolidWorks assembly:

Solid works editing part in assembly:
https://www.youtube.com/watch?v=7Cl17CpR4Hg

Here is an example of modifying an part in an solidworks assembly that brakes the constraints/mates (and how to resolve it):
https://youtu.be/OvSdS4Ful84?t=4m10s

this video gives a bit better insight in their assembly system:
https://www.youtube.com/watch?v=I2x0VFR5vgw

highlights: rigid/flexible sub assemblies, show/hide, suppress, modify part, replace part.
Screenshot from 2018-01-03 13-34-09.png
Screenshot from 2018-01-03 13-34-09.png (129.54 KiB) Viewed 3724 times
here we have "derived part" that is the equivalent of what i proposed with "forked part" earlier in the thread.

From SolidWorks help page:
"You can create a new part directly from an existing part. The new part, called a derived part, has the original part as its first feature. By default, the derived part is linked to the original part by means of an external reference. This means that any changes you make to the original part are reflected in the derived part."

Here is a table detailing mate errors and what to do from: http://help.solidworks.com/2016/english ... oductName=
Screenshot from 2018-01-03 13-44-15.png
Screenshot from 2018-01-03 13-44-15.png (109 KiB) Viewed 3724 times
And here is an example:
Screenshot from 2018-01-03 13-43-59.png
Screenshot from 2018-01-03 13-43-59.png (68.99 KiB) Viewed 3724 times
Also something to note, in SolidWorks, a part can have different user defined "configurations", ex. the part "ScrewM4" can have the configurations "10mm","12mm" and "really long screw". once you have the part open you can right click on the part and change configuration. this can be done individually for each instance of the part in an assembly.

Another thing to note is the proposed solution to "unable to solve" -> "move parts closer to the solution". I guess they do not have a "perfect solver" ;)
User avatar
Pauvres_honteux
Posts: 728
Joined: Sun Feb 16, 2014 12:05 am
Location: Far side of the moon

Re: Assembly3 preview

Post by Pauvres_honteux »

Hi guys, how about this principle: the algorithm can't figure out if two(or more) planes/features, from two different parts, are interchangable. It then pop up a window showing the two parts side by side in two separate viewports and in syncronous motion. Then the user sees with his/hers own eyes what shall be interchanged. You realthunder make one viewport show the current part with numbered "failed-to-recognize-features" and the "new-to-be-exchanged" part in the other viewport. Then the user only need to click on the new parts corresponding feature, in an order manner to reconnect everything previously connected to the original part with the new part.

This should buy you time to make more fine tuning of the super-duper algorithm that doesn't need a human eye.
User avatar
NormandC
Veteran
Posts: 18589
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: Assembly3 preview

Post by NormandC »

fosselius wrote: Wed Jan 03, 2018 10:56 am here we have "derived part" that is the equivalent of what i proposed with "forked part" earlier in the thread.
But what does that have to do with an assembly? This is a PartDesign matter, not assembly. An assembly workbench's purpose should solely be to tie different parts together. Alternate assemblies (I think SW has it) is of course desirable (alternate parts in an assembly or alternate positions of parts), but Assembly is not supposed to affect the topology of the parts themselves.

Besides, the "derived part" you mention is already available with the new PartDesign Clone; unfortunately it creates an object that has no body container. But what you can do is select the clone and to create a new Body; this creates a "BaseFeature" inside the new Body, linked to the Clone which is linked to the first Body. IMO there is one step too many, but at least it's possible.
Mark Szlazak
Posts: 439
Joined: Tue Apr 04, 2017 6:06 pm
Location: SF Bay Area, California

Re: Assembly3 preview

Post by Mark Szlazak »

More research on assembly constraints. May come in handy:

Extraction of assembly feature information from CAD Model

http://nptel.ac.in/courses/107103012/module8/lec3.pdf

It is part of some course.

Also this one:

Features Extraction from CAD as a Basis for Assembly Process Planning

https://www.researchgate.net/publicatio ... s_Planning
User avatar
fosselius
Posts: 381
Joined: Sat Apr 23, 2016 10:03 am
Contact:

Re: Assembly3 preview

Post by fosselius »

NormandC wrote: Wed Jan 03, 2018 7:45 pm But what does that have to do with an assembly?
Because there is an Link implementation in this branch as well and hence asked if it was possible to modify parts of the geometry of the link, which it was not. You are correct, this does not have much to do with assembly, I just brought it up again because i saw it in the SW graph above.
NormandC wrote: Wed Jan 03, 2018 7:45 pm Besides, the "derived part" you mention is already available with the new PartDesign Clone; unfortunately it creates an object that has no body container. But what you can do is select the clone and to create a new Body; this creates a "BaseFeature" inside the new Body, linked to the Clone which is linked to the first Body. IMO there is one step too many, but at least it's possible.
I tried to work with PartDesign Clone before, but i never managed to make alterations to the clones, your approach works great! awesome!
I guess this is outside "normal" workflow or a "hack" but should the body be placed "inside" the clone001? (indented in the list view).
It might be more correct to create a "clone with body" folder or something to keep the listview cleaner and better show dependancies.

Here is an sample build:
Screenshot from 2018-01-04 08-56-06.png
Screenshot from 2018-01-04 08-56-06.png (43.16 KiB) Viewed 3599 times
BaseFeature at its current state is shown at the bottom left
BaseFeature in its initial state (Clone) is at the top left
BaseFeature in a middle state (Clone001) is in the middle left, it got its own body (and a hole cut out above the big hole, but i later made the part too short)
Clone002 is a clone of Clone001 with BodyA (center) and BodyB right

If i now change the pad in BaseFeature, all clones will follow, i am now in my happy place dancing, this is awesome!
User avatar
babaroga
Posts: 180
Joined: Sun Aug 14, 2016 6:52 pm
Location: Banja Luka, Republic of Srpska, Bosnia and Herzegovina

Re: Assembly3 preview

Post by babaroga »

Yes, at first I was also very happy, but than discovered one strange behavior.

So I created a new body and made some simple feature (just simple sketch pad).

Than I made a clone of Body, select created clone and press "New Body". Excelent, now I have another body with base feature in it.

I moved Body with cloned object and changed its color to red for easier viewing. Now save file under some name eg. "clone body test"

Screenshot_20180104_163106.png
Screenshot_20180104_163106.png (78.45 KiB) Viewed 3541 times


Now close document and reopen it. Note we got another something with grayed out clone icon named "Unnamed"


Screenshot_20180104_163248.png
Screenshot_20180104_163248.png (79.83 KiB) Viewed 3541 times

OK, now save this document again and reopen it. We have another instance of "Unnamed001" in document tree

Screenshot_20180104_163657.png
Screenshot_20180104_163657.png (80.56 KiB) Viewed 3541 times

So, everytime you save and reopen file, new instance of Unnamed will be added to the tree. :shock:


Code: Select all

OS: Ubuntu 17.10
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.17.12915 (Git)
Build type: Unknown
Branch: master
Hash: 90a71f34bc448d1396d2e27f4177885897199152
Python version: 2.7.14
Qt version: 5.9.1
Coin version: 4.0.0a
OCC version: 7.1.0
Locale: English/UnitedStates (en_US)

[UPDATE:] If I try to add another sketch to original body, FreeCAD throws dialog about migrating to new features. If "Yes" is pressed, all document tree gets messed.

Screenshot_20180104_171738.png
Screenshot_20180104_171738.png (102.31 KiB) Viewed 3530 times


BTW. This post does not belong to this thread. Is it possible to move it to "Part Design module development" section?

[UPDATE:] Registered as issue #3302
Last edited by babaroga on Fri Jan 05, 2018 7:14 pm, edited 1 time in total.
User avatar
fosselius
Posts: 381
Joined: Sat Apr 23, 2016 10:03 am
Contact:

Re: Assembly3 preview

Post by fosselius »

babaroga wrote: Thu Jan 04, 2018 3:42 pm Now close document and reopen it. Note we got another something with grayed out clone icon named "Unnamed"
Maybe related to this?
https://forum.freecadweb.org/viewtopic.php?f=19&t=25860
Post Reply