Greetings everyone.
I’m busy currently making an assembly in Assembly 3, using FreeCad Link Stage 3. My question is: After constraining 2 parts together (face to face - plane alignment) is it possible to project a feature from one subassembly onto another subassembly element? I have a threaded hole in one part, and after assemblying, I wanted this hole projected on the face of the second part so I can sketch through holes on the second element so the holes are aligned perfectly. I’ve tried using the hole feature in assembly but obviusly that did not work, but maybe there is a workaround? FYI both parts are saved in separate files.
I have tried to use sub-shape binder but in assembly it asks for an active body (which I cannot activate). When switching WB to Part Design, and trying to make a hole using sub-shapebinder numeral errors occur, most consecutive is this one:
09:09:48 Traceback (most recent call last):
File “F:\FreeCAD-asm3-Daily-Win64-Py3-Qt5-20211015\Mod\asm3\freecad\asm3\assembly.py”, line 743, in execute
self.updatePlacement()
File “F:\FreeCAD-asm3-Daily-Win64-Py3-Qt5-20211015\Mod\asm3\freecad\asm3\assembly.py”, line 802, in updatePlacement
info = self.getInfo()
File “F:\FreeCAD-asm3-Daily-Win64-Py3-Qt5-20211015\Mod\asm3\freecad\asm3\assembly.py”, line 1176, in getInfo
return getElementInfo(self.getAssembly().getPartGroup(),
File “F:\FreeCAD-asm3-Daily-Win64-Py3-Qt5-20211015\Mod\asm3\freecad\asm3\assembly.py”, line 1636, in getElementInfo
raise RuntimeError(‘Invalid sub-object {}, {}’.format(
<class ‘RuntimeError’>: Invalid sub-object asm3_PLAZMA#Parts, Binder.Thickness.Face5
I’ve tried to move sub-shape binder to the body file of the element in which I want to make the holes, but ,as I suspected, in the Body view it is completly misplaced:
Because my assembly is quite messy, for clarity I’ve made a small sample assembly, for explaining what I would like to make (see attachment) - I hope this is sufficient for everyone. A piece of a profile with a bar with a hole assembled together. Now, during preparing this example I’ve found out the subshapebinder method worked but on the active bodies saved in the same file. My original assembly, because majority of parts or subassemblies are saved in separate files, consists of “links” and it seems that’s the main problem with using subshapebinder for me. I have modified the sample assembly file so it’s constructed using links, and the problem with shapebinder still persists while trying to transfer the hole onto the profile (the subshapebinder pops up in a different place).
If needed I can upload the main original assembly but I’m afraid I’ll get lashes for the mess Also as I’ve said, parts are in separate files so I would have to upload those as well?? assembly_example.FCStd (55.2 KB)
BTW - is that what you are trying to do? is_that_it.FCStd (50 KB)
P.S. there is no need for all these constraints that you are using - you could place both parts in correct locations and just create one locked constraint for each…
LATER EDIT:
I have made an assembly using external parts. Hopefully this is indeed what you are trying to do: external_assy.zip (44.2 KB)
Thanks for prompt reply. Yes, in both cases thats what I am trying to obtain. I wanted to attach my hole project but in a zip file it takes up jiat over 2,5mb and it seems it’s too large for this forum.
The thing is, you are saying about too many constrains, and to use transform tool? What is the point of using assembly then at all? I have to go through your examples in detail but have little time now. I have noticed that in one example its aligned using transform tool, and then subshapebinder used with success.
In the example with separate files looks like subshape binder was added as the last step of part creation, and then whole part is added to assemvly, and pocket done in the assembly succefully am I right?
I’ve tried to add the subshapebinder to my part in a single file, then done recomopute of the whole assembly to reuse this shapebinder, but there were numerous errors during recomputing. But anyway, I tried to delete the pocket from your assembly, use the remaining sketch and make the pocket again, and have the same problem ‘no active body selected’. How have you managed to make a body active in an assembly?
I’ve read through the whole subshapebinder-assembly issue on github and indeet that may be the case. Still the question remaing is how did you select a body as active in an assembly and made the pocket?
Well it doesn’t work for me. All I get while I try to reuse your example assembly is Exception: No active body found. And believe me, I’ve tried to toggle the active body numerous times
And in the report window:
17:08:05 Utils.cpp(1217): No active body found
17:08:22 SketchObject.cpp(7547): External geometry profile#Sketch001.e1 missing reference: Binder.;#bd;:H12f0,E;:H1316,E;BND:0:0;:H12e7:11,E;:H-1328:1d,E
17:08:22 Missing external geometry reference
17:08:22 Recompute failed! Please check report view.
17:08:43 Utils.cpp(1217): No active body found
It’s difficult (from a distance and without looking over your shoulder …) to guess what you are doing wrong
Post the file you are trying to “re-use” just before it goes wrong - perhaps I can talk you through steps after that?
That’s what I wanted to kindly ask. Maybe it is possible for you to make a yt video of creationg the assembly with the subshapebinder step by step or a GIF recording so I could see if there are some steps i’ve ommited? I’ll probably try to upload the zip file of my master assembly using some upload service or google drive if this forum permits such weblinks at all.
I have managed to make a pocket in you external assembly but still dont understand how. Should i make subshapebinder in the original file? Or in the link files?
I’ll try to upload your assembly in the state just before making the pocket.
As for now - really thanks for your help. It gave me more insight into the inticacies of assembly3 WB.
Here’s the master assembly. Just for a clarification what i want is for the “farmer” two threaded holes, to be projectes on the “brama” profile, and then make pockets for bolts.
I’ve attached your assembly prior to subshapebinder creation adding a bit of a twist. I believe you have made the subshape binder in the parent body (bar) and then moved it to target link (profile) - so I have made things a bit more difficult. I have transformed the bar in the parent file a bit so it’s moved in realation to the origin. How can we deal in such situation? In the assembly the the shapebinder pops up in a completly different place then we would have liked. assy_bar_profile_remake.zip (86.7 KB)
I wouldn’t be where I am with FreeCAD and assembly3 without generous help from others, so it is only fitting that I at least attempt to repay some of this debt
and there is your problem…
If you toggle active a link in the assembly it actually activates original body.
Any attempts to create sub-shape binder in these circumstances leads to cyclic references - or to put crudely FreeCAD gets it’s nickers in a twist
I did create sub-shapebinder in the parent bodies, but I didn’t “move” anything.
When I created a “link” to parent body and used this link in assembly it carried with itself all the stuff created in the parent body.
Compare the placement of the original/parent body and the placement of the link in assembly.
You will see that the “link” placement is that of the original body not the transformed body…
I see. So I have to toggle active body on the parent to modify the link in the assembly?? Yes, there was some “cyclic” error.
Also when I’ve added the shapebinder in your assembly, and moved the parent body, the link didn’t move, but the shapebinder did in the assembly, hence the problem becasue it was in another place to which I wanted it to be aligned.
Yes, I know that website, very helpful but this shapebinder - assembly thing is rather specific and I still can’t grasp the workflow for it to work.
Should I Make part - add shapebinder by default - assemble - use shapebinder for modyffying other additional assembly parts?
Just going through your files, it may take some time
EDIT:
I have put together “farmer assy” and “brama assy” to get the feel for what it is and without transforming anything this is what it looks like:
not being familiar with your design, I am guessing that I need to get things orientated slightly differently?
exact placement is not needed for you showing me how to use shapebinder in that example, but for sake of beeing specific, this “farmer” has a plane constrain to the “brama” profile from the bottom of the profile (face to face) and one plane constrain to the front edge of the profile, and one to the end edge of the profile if you know what I mean( marked with red arrows)