Referencing features between Assembly 4 bodies

Post here for help on using FreeCAD's graphical user interface (GUI).
Forum rules
and Helpful information
IMPORTANT: Please click here and read this first, before asking for help

Also, be nice to others! Read the FreeCAD code of conduct!
Post Reply
GameMaker
Posts: 7
Joined: Wed Nov 24, 2021 5:22 pm

Referencing features between Assembly 4 bodies

Post by GameMaker »

Hello -

I'm trying to build a case with standoff posts for an Arduino Uno.
I've imported a STEP file for the Arduino, and used Assembly 4 to create an assembly and position it precisely where I want it.

Now want to project the screw holes down onto the case to sketch the standoff posts. Here's a simplified view:
2021-11-24 10_17_56-FreeCAD 0.19.jpg
2021-11-24 10_17_56-FreeCAD 0.19.jpg (73.72 KiB) Viewed 2046 times
I want to project those circles down onto the base, and have yet to find the correct way to do so.

I tried using a Shapebinder from the Uno to the case, but that places the Uno at its original location.

I tried making a copy of the board and placing it manually, but I refuse to do that, since it breaks the precise placing I'm looking for, and just feels very wrong. :)

I tried creating a Datum Point as well, but it didn't show up in the Body no matter how I did it.

I've also been dabbling with Fusion360, and trying to move to FreeCAD so I can support OS and always have access to my files - in Fusion I think this is called a "Projection", and it seems to work more intuitively (to me, anyway) - it projects the circles from where they are, down onto the base.

I've searched the forum and google, but seem to be missing the magic term that FreeCAD uses to refer to this. These are the posts I've already read to try and solve this, but I seem to be missing something. If the answer is in one of them, I'll need it explained a little more slowly - sorry! I may be doing something wrong in the UI, like not having the right body selected when I create the shapebinder or something. (Though hopefully not _actually_ that. :))

Details:
OS: Windows 10 Version 2009
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.24291 (Git)
Build type: Release
Branch: releases/FreeCAD-0-19
Hash: 7b5e18a0759de778b74d3a5c17eba9cb815035ac
Python version: 3.8.6+
Qt version: 5.15.2
Coin version: 4.0.1
OCC version: 7.5.0
Locale: English/United States (en_US)

Tried attaching FCStd file, but it's 3.5M, so too large. I put it on Google Drive if that works.

First post asking for help, sorry if I forgot anything to include.
TheMarkster
Veteran
Posts: 5505
Joined: Thu Apr 05, 2018 1:53 am

Re: Referencing features between Assembly 4 bodies

Post by TheMarkster »

In the ShapeBinder properties try setting Trace Support property to True.
GameMaker
Posts: 7
Joined: Wed Nov 24, 2021 5:22 pm

Re: Referencing features between Assembly 4 bodies

Post by GameMaker »

Hi TheMarkster - thanks for the suggestion!

I had tried Trace Support = true once, but forgot to mention it. No luck.

I've attached a file with a stripped-down arduino file. All I care about is creating a sketch on top of the Base->Floor face with circles that line up with the holes in the circuit board.

I created a new attachment, 5mm above the center of the wall, just where I want the arduino. When I try a ShapeBinder linking to the Arduino, in the Base body, it is still using the original translation/orientation of the arduino - whether Trace Support is true or false.

Here's a step-by-step of how I built it - maybe I'm doing something else wrong. (For example - the Arduino has a yellow body icon, which I think means it's a Part, not a Body - is that the problem?)

1) Create a simple floor-and-wall base object, then add a local coordinate system where I want the Arduino to attach. I referenced the end points of the shared edge between floor and wall, used Inertial, and rotated it so the XYZ axes are aligned with global.
2021-11-24 16_26_52-FreeCAD 0.19.jpg
2021-11-24 16_26_52-FreeCAD 0.19.jpg (114 KiB) Viewed 1956 times
2) Import the Arduino STEP file, delete a lot of components (for performance / simplicity of view). Add an LCS at the middle bottom of the PCB. Again, reference the two endpoints, inertial CS, and rotate the axes so that they're aligned with the way I _want_ the Arduino to attach (i.e. positive X goes in the direction of the board, positive Y goes along the edge of the board, and Z is "up" relative to the board).
NOTE the orientation of the model - 'bottom' of the board facing front, and USB/power plugs facing up.
2021-11-24 16_44_24-FreeCAD 0.19.jpg
2021-11-24 16_44_24-FreeCAD 0.19.jpg (146.68 KiB) Viewed 1956 times
3) Create an attachment, attaching the arduino to the base and the base to the Attachment root. All looks good:
2021-11-24 16_45_46-FreeCAD 0.19.jpg
2021-11-24 16_45_46-FreeCAD 0.19.jpg (75.84 KiB) Viewed 1956 times
4) Create a ShapeBinder in the Assembly -> Body, and click on the top face of the Assembly Arduino. Apparently it's referenced as Part__Feature:
2021-11-24 16_46_39-FreeCAD 0.19.jpg
2021-11-24 16_46_39-FreeCAD 0.19.jpg (80.5 KiB) Viewed 1956 times
RESULT:
It is still using the original placement and orientation for the shapebinder object, and setting Trace Support to true has no effect:
2021-11-24 16_47_13-FreeCAD 0.19.jpg
2021-11-24 16_47_13-FreeCAD 0.19.jpg (144.28 KiB) Viewed 1956 times
I know I'm doing something else wrong, probably somewhere else along the way. Apparently there's a limit of 5 attachments, so I'll put the file in the next reply.

Thanks for any ideas!
GameMaker
Posts: 7
Joined: Wed Nov 24, 2021 5:22 pm

Re: Referencing features between Assembly 4 bodies

Post by GameMaker »

Attaching the example file - if someone can show me how to get the hole locations from the arduino board in the assembly to project onto the base floor, I'd be super grateful!
Attachments
ArduinoAttachDemo.FCStd
(273.3 KiB) Downloaded 20 times
TheMarkster
Veteran
Posts: 5505
Joined: Thu Apr 05, 2018 1:53 am

Re: Referencing features between Assembly 4 bodies

Post by TheMarkster »

I don't know enough about assembly 4 to be able to help with it. I'm sure it's a great workbench once you figure out how to use it. Here is an alternative approach.

I made a simple copy of the assembly, attached 2 new sketches to it, made circles in the sketches and used them for attaching the various objects.

In Part workbench menu the attachment tool can make things attachable in some versions. I don't recall if this was added in 0.19 or 0.20.
Snip macro screenshot-ba6125.png
Snip macro screenshot-ba6125.png (50.39 KiB) Viewed 1827 times
Attachments
ArduinoAttachDemo_markster.FCStd
(804.48 KiB) Downloaded 19 times
GameMaker
Posts: 7
Joined: Wed Nov 24, 2021 5:22 pm

Re: Referencing features between Assembly 4 bodies

Post by GameMaker »

Hi Mark -

Awesome - thank you! I've downloaded your file and will take a look. I've opened it and noticed one thing I'm not clear on - you said you made "a simple copy", and I think that's the "arduino_copy" body in your file, is that correct?

I don't see how you did that - when I make a copy, it becomes a whole new "part" again.

What does "made a simple copy" mean?

Thanks!

PS - just noticed your signature, will definitely go check out your videos - thanks!
User avatar
adrianinsaval
Veteran
Posts: 5541
Joined: Thu Apr 05, 2018 5:15 pm

Re: Referencing features between Assembly 4 bodies

Post by adrianinsaval »

GameMaker
Posts: 7
Joined: Wed Nov 24, 2021 5:22 pm

Re: Referencing features between Assembly 4 bodies

Post by GameMaker »

Ah! Beautiful - actually Part -> Create Transformed Copy did exactly what I want, I think. Thanks!
Post Reply