Another approach to assembly solver (A2plus)
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Be nice to others! Respect the FreeCAD code of conduct!
Re: Another approach to assembly solver (assembly2relaunch)
just tested with 0.17. works fine
KBWBE
https://github.com/kbwbe/A2plus
latest release: v0.4.56, installable via FreeCAD's addon manager
Tutorial: gripper assembly https://www.youtube.com/watch?v=QMxcQ5tssWk
Documentation: https://www.freecadweb.org/wiki/A2plus_Workbench
https://github.com/kbwbe/A2plus
latest release: v0.4.56, installable via FreeCAD's addon manager
Tutorial: gripper assembly https://www.youtube.com/watch?v=QMxcQ5tssWk
Documentation: https://www.freecadweb.org/wiki/A2plus_Workbench
Re: Another approach to assembly solver (assembly2relaunch)
good to see it...
I noticed that your WB is forcing to use its icons also for Assembly2 WB
I'm attaching here a small modified version which is using the new A2 icons...
here the WB zipped with some of modification for a better integration in Qt5 and A2 coexistence ... Still the A2plus WB needs to fix the resource loader to avoid an override of other WB icons... you probably have to put a prefix like ap2_ before Icon resources with the shared name between the two WBs...
Last edited by easyw-fc on Thu Jun 14, 2018 1:31 pm, edited 1 time in total.
Re: Another approach to assembly solver (assembly2relaunch)
many thank, exact right timed...
this evening i planned to start with renaming. Good to have your changes before that point.
this evening i planned to start with renaming. Good to have your changes before that point.
KBWBE
https://github.com/kbwbe/A2plus
latest release: v0.4.56, installable via FreeCAD's addon manager
Tutorial: gripper assembly https://www.youtube.com/watch?v=QMxcQ5tssWk
Documentation: https://www.freecadweb.org/wiki/A2plus_Workbench
https://github.com/kbwbe/A2plus
latest release: v0.4.56, installable via FreeCAD's addon manager
Tutorial: gripper assembly https://www.youtube.com/watch?v=QMxcQ5tssWk
Documentation: https://www.freecadweb.org/wiki/A2plus_Workbench
Re: Another approach to assembly solver (assembly2relaunch)
Hello Maurice,
just want to start renaming and looked at your zip. Found many icon-folders with pretty icons. (icons, icons-old, wiki, gui/. )
What is the central folder to adapt icon-names if i want to change some? Did you compile icons to code ? Should i better leave hands off renaming them?
just want to start renaming and looked at your zip. Found many icon-folders with pretty icons. (icons, icons-old, wiki, gui/. )
What is the central folder to adapt icon-names if i want to change some? Did you compile icons to code ? Should i better leave hands off renaming them?
KBWBE
https://github.com/kbwbe/A2plus
latest release: v0.4.56, installable via FreeCAD's addon manager
Tutorial: gripper assembly https://www.youtube.com/watch?v=QMxcQ5tssWk
Documentation: https://www.freecadweb.org/wiki/A2plus_Workbench
https://github.com/kbwbe/A2plus
latest release: v0.4.56, installable via FreeCAD's addon manager
Tutorial: gripper assembly https://www.youtube.com/watch?v=QMxcQ5tssWk
Documentation: https://www.freecadweb.org/wiki/A2plus_Workbench
Re: Another approach to assembly solver (assembly2relaunch)
icon-old was just a backup of the previous icons...kbwbe wrote: ↑Thu Jun 14, 2018 6:00 pm Hello Maurice,
just want to start renaming and looked at your zip. Found many icon-folders with pretty icons. (icons, icons-old, wiki, gui/. )
What is the central folder to adapt icon-names if i want to change some? Did you compile icons to code ? Should i better leave hands off renaming them?
A2 uses also some compiled resources, so the icons need to be renamed before compiling them with rcc, or just move to using the icons as svg directly.
Re: Another approach to assembly solver (assembly2relaunch)
thanks Maurice,
at first i will use icons with your suggested names. I will first start with reworking the code files.
If some icon-names are conflicting with anything, we can change later.
P.S. I should have done a deeper look to your zip. You have already changed the codefile-names. Many Thanks.
I will go over for testing
at first i will use icons with your suggested names. I will first start with reworking the code files.
If some icon-names are conflicting with anything, we can change later.
P.S. I should have done a deeper look to your zip. You have already changed the codefile-names. Many Thanks.
I will go over for testing
KBWBE
https://github.com/kbwbe/A2plus
latest release: v0.4.56, installable via FreeCAD's addon manager
Tutorial: gripper assembly https://www.youtube.com/watch?v=QMxcQ5tssWk
Documentation: https://www.freecadweb.org/wiki/A2plus_Workbench
https://github.com/kbwbe/A2plus
latest release: v0.4.56, installable via FreeCAD's addon manager
Tutorial: gripper assembly https://www.youtube.com/watch?v=QMxcQ5tssWk
Documentation: https://www.freecadweb.org/wiki/A2plus_Workbench
Re: Another approach to assembly solver (assembly2relaunch)
Incredible,
you have done all my work i intend to do this evening. Works fine. I will reset my internal repository and use your one as new starting point.
Your proposal for workbench name is not bad.
A2 => respect to hamish's work (and your contributions to it)
plus => it is not really new and is following hamish's concepts, except solver and some other things.
I can live with this name: "Assembly 2 plus" , short A2p.
you have done all my work i intend to do this evening. Works fine. I will reset my internal repository and use your one as new starting point.
Your proposal for workbench name is not bad.
A2 => respect to hamish's work (and your contributions to it)
plus => it is not really new and is following hamish's concepts, except solver and some other things.
I can live with this name: "Assembly 2 plus" , short A2p.
KBWBE
https://github.com/kbwbe/A2plus
latest release: v0.4.56, installable via FreeCAD's addon manager
Tutorial: gripper assembly https://www.youtube.com/watch?v=QMxcQ5tssWk
Documentation: https://www.freecadweb.org/wiki/A2plus_Workbench
https://github.com/kbwbe/A2plus
latest release: v0.4.56, installable via FreeCAD's addon manager
Tutorial: gripper assembly https://www.youtube.com/watch?v=QMxcQ5tssWk
Documentation: https://www.freecadweb.org/wiki/A2plus_Workbench
Re: Another approach to assembly solver (assembly2relaunch)
New steps starting now:
3 new constraints as there are:
- point Identity
- point on line
- point on plane ()
This will have instantly effect to my rudimental topological naming, which only covers planes and edges and not vertexes. And this only with fc0.16.
Using vertexes within the muxInfo-entry of my importPart-Object will increase filesize to much. I shurely will have to change datastructure.
Nevertheless i will implement the constraints mentioned above now and will deactivate toponame checks for it.
(if topological naming is deactived, updating Parts to the assembly will possible break constraints, when parts have been modified)
So the question to the forum:
Is there anything like following pseudocode available for python:
Same i would need for Vertexes, Edges.
The resulting names should be robust to most common modifications of a part.
I think topological naming for purpose of assembly does need to be so perfect as for PartDesign. Almost at beginning.
Machinery designers ( i am one ) mostly fix parts together by fitting planes, axes, drilling holes, some important vertexes and so on.
Fixing parts together by constraining small fillets, chamfers and other complicated things can be necessary, but not so often.
So what i want to say:
Does anyone here have such thing or is working on it ? Is something in the pipe ? Really ready or not even. Accessible for python!
Or do i have to rework my own toponamer (it is a hell)
Each help is appreciated.
kbwbe
3 new constraints as there are:
- point Identity
- point on line
- point on plane ()
This will have instantly effect to my rudimental topological naming, which only covers planes and edges and not vertexes. And this only with fc0.16.
Using vertexes within the muxInfo-entry of my importPart-Object will increase filesize to much. I shurely will have to change datastructure.
Nevertheless i will implement the constraints mentioned above now and will deactivate toponame checks for it.
(if topological naming is deactived, updating Parts to the assembly will possible break constraints, when parts have been modified)
So the question to the forum:
Is there anything like following pseudocode available for python:
Code: Select all
constantFaceNames = {}
for i, face in enumerate(Part.Shape.Faces):
constantFaceNames[i] = Part.getFaceTopoName(i) # <=== this is the important point
The resulting names should be robust to most common modifications of a part.
I think topological naming for purpose of assembly does need to be so perfect as for PartDesign. Almost at beginning.
Machinery designers ( i am one ) mostly fix parts together by fitting planes, axes, drilling holes, some important vertexes and so on.
Fixing parts together by constraining small fillets, chamfers and other complicated things can be necessary, but not so often.
So what i want to say:
Does anyone here have such thing or is working on it ? Is something in the pipe ? Really ready or not even. Accessible for python!
Or do i have to rework my own toponamer (it is a hell)
Each help is appreciated.
kbwbe
KBWBE
https://github.com/kbwbe/A2plus
latest release: v0.4.56, installable via FreeCAD's addon manager
Tutorial: gripper assembly https://www.youtube.com/watch?v=QMxcQ5tssWk
Documentation: https://www.freecadweb.org/wiki/A2plus_Workbench
https://github.com/kbwbe/A2plus
latest release: v0.4.56, installable via FreeCAD's addon manager
Tutorial: gripper assembly https://www.youtube.com/watch?v=QMxcQ5tssWk
Documentation: https://www.freecadweb.org/wiki/A2plus_Workbench
Re: Another approach to assembly solver (assembly2relaunch)
As for the name of the workbench. Take your time and don't rush into something that won't make all that much sense in the future. Topology in general can change when user goes back in the (part) design history and adds/removes stuff. Therefore end users do need to redefine Assembly relations after. In the future there likely will be some solutions available in FreeCAD mitigating the issue to some extent:
https://forum.freecadweb.org/viewtopic.php?t=27278
https://forum.freecadweb.org/viewtopic.php?t=27582
For now i would say focus only on the solver part and keep an eye on Assembly3. To see how your solutions can challenge the SolveSpace solver.
https://forum.freecadweb.org/viewtopic.php?t=27278
https://forum.freecadweb.org/viewtopic.php?t=27582
For now i would say focus only on the solver part and keep an eye on Assembly3. To see how your solutions can challenge the SolveSpace solver.
Re: Another approach to assembly solver (assembly2relaunch)
I understand. Will work on solver as you proposed. (As contribution to FreeCAD)
Getting same performance as SolveSpace will be hard. Pure Python working together with FreeCAD's basic api will be fast, but not as fast as SolveSpace.
The topological naming issue is still frustrating. I know the links you have posted. Nothing seems to be really ready.
I have a different opinion how endusers should work with assembly.
If constraints refer to geometric Elements which still exist unchanged within a modeltree, but the user changed some small other things, these should not have to break. Commercial products can do this.
Example: A standard part, build into many of customized assemblies, you do only a small modification of the Part, perhaps a new complete uncritical hole.
If using Assembly2: All customized assemblies will be blown up. Definitely. Who should use it ?
If this topic will not be solved, IMHO endusers will not accept an assembly, regardless which variant. I hope, RealThunder's assembly crack's the nut.
Enough. I concentrate on the solver..
Getting same performance as SolveSpace will be hard. Pure Python working together with FreeCAD's basic api will be fast, but not as fast as SolveSpace.
The topological naming issue is still frustrating. I know the links you have posted. Nothing seems to be really ready.
I have a different opinion how endusers should work with assembly.
If constraints refer to geometric Elements which still exist unchanged within a modeltree, but the user changed some small other things, these should not have to break. Commercial products can do this.
Example: A standard part, build into many of customized assemblies, you do only a small modification of the Part, perhaps a new complete uncritical hole.
If using Assembly2: All customized assemblies will be blown up. Definitely. Who should use it ?
If this topic will not be solved, IMHO endusers will not accept an assembly, regardless which variant. I hope, RealThunder's assembly crack's the nut.
Enough. I concentrate on the solver..
KBWBE
https://github.com/kbwbe/A2plus
latest release: v0.4.56, installable via FreeCAD's addon manager
Tutorial: gripper assembly https://www.youtube.com/watch?v=QMxcQ5tssWk
Documentation: https://www.freecadweb.org/wiki/A2plus_Workbench
https://github.com/kbwbe/A2plus
latest release: v0.4.56, installable via FreeCAD's addon manager
Tutorial: gripper assembly https://www.youtube.com/watch?v=QMxcQ5tssWk
Documentation: https://www.freecadweb.org/wiki/A2plus_Workbench