[0.17] Mirroring of PartDesign Body

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
Kosmonaut
Posts: 2
Joined: Sun Jun 25, 2017 9:39 am

[0.17] Mirroring of PartDesign Body

Post by Kosmonaut »

Hello, this is my first post here, I'm new to FreeCAD. I want to use it for my woodworking projects. Before I used Blender as I have experience with it but it's not optimal for this task. I've read the documentation and tutorials, made some simple objects for practice and now I began my first project - a simple bedside table.

I want to make it out of several parts - the top, the bottom, two sides and four legs. The top and bottom will be joined with sides by hidden dovetail joints. These aren't simple shapes so I figured it will be best to use PartDesign Workbench and use Pocket tool to make them. I'd like to create reference pictures with dimensions for every piece of wood I'll use so after reading documentation I figured I should create a Part for every element I want to make (top, bottom, sides, legs) and then separate Body for every piece of wood making particular element.

I started with the top part. It will be made out of two pieces of wood. Also, it will have two-way symmetry so I figured out I could use mirroring to speed up work. But I have problem with it. Here's workflow I came up with:
1. Create a Part for my top element
2. Create a Body for the first piece of wood
3. Sketch a rectangle with half the width and half the length of my top - it will be quarter of final top and half of the first piece of wood. Position it so later it'll be easy to mirror it through the XZ and YZ planes. Pad it to the thickness of my wood.
4. Using Sketches and Pocket tool make a dovetail on the side.
5. Use Mirror tool from the Part WB to create the second half of the first piece of wood. Join the two halves with Boolean Fusion. The Fusion appears outside my Part and without a Body so I create new Body for it and move it to my Part. So far everything's good.
6. Create second piece of wood by mirroring the first one. Again, the mirror appears outside of Part and without a Body so I create one for it and I try to move it into a Part. Unexpectedly, it places everything inside one Body and I have no idea how to make it in such a way that I could separate this mess into two bodies.

Well, this behaviour made me doubt my workflow. Do I make it the wrong way? In the attachments I upload the file with quarter top before mirroring and after it at the point where I experienced the problem.
blat.FCStd
(44.56 KiB) Downloaded 27 times
blat after.FCStd
(90.35 KiB) Downloaded 43 times
Here's the part before mirroring.
table.png
table.png (83.98 KiB) Viewed 3472 times
And here it is after mirroring.
table 2.png
table 2.png (123.99 KiB) Viewed 3472 times
OS: Windows 8.1
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.17.11432 (Git)
Build type: Release
Branch: master
Hash: 0768ae99cfd6036601f66658f6e0f923de9af6f2
Python version: 2.7.8
Qt version: 4.8.7
Coin version: 4.0.0a
OCC version: 7.1.0
User avatar
NormandC
Veteran
Posts: 18589
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: [0.17] Mirroring of PartDesign Body

Post by NormandC »

Hello Kosmonaut,

Welcome to the forum - and thanks for a very detailed first post. All the information is there for us to help you.
Kosmonaut wrote: Sun Jun 25, 2017 3:40 pm These aren't simple shapes so I figured it will be best to use PartDesign Workbench and use Pocket tool to make them.
That's what I would do as well, but I admit to a personal preference for the PartDesign workbench.
Kosmonaut wrote: Sun Jun 25, 2017 3:40 pm I'd like to create reference pictures with dimensions for every piece of wood I'll use
Since you chose to use the 0.17 development version, I recommend you look at the new TechDraw workbench once you are ready to put your parts to paper. The TechDraw workbench aims to eventually replace the aging Drawing workbench, but for 0.17 both workbenches are available.
Kosmonaut wrote: Sun Jun 25, 2017 3:40 pm I figured I should create a Part for every element I want to make (top, bottom, sides, legs) and then separate Body for every piece of wood making particular element.
The Part container (it's new in 0.17, as is the Body container) can be seen as a kind of sub-assembly. Hence your bedside table can be comprised of a Part container which will contain a mix of Part and Body containers. If one element of your table is made in one piece of wood, it can be enclosed in a single Body. Bodies can only include sketches and PartDesign features (there are exceptions), while Part containers can contain any type of FreeCAD object, including Bodies.

This is all very new, and we are all (even us FreeCAD old timers) coming to grips with this new work flow.
Kosmonaut wrote: Sun Jun 25, 2017 3:40 pm Well, this behaviour made me doubt my workflow. Do I make it the wrong way? In the attachments I upload the file with quarter top before mirroring and after it at the point where I experienced the problem.
In theory, there is no "wrong way". After all, what's important is the end result. But your method does indeed produces a "messy" tree, because when creating Part operations, you are leaving the PartDesign workbench; as I explained, Bodies can only contain PD features which is why your next steps are out of the original Body.

But you could actually stay in the PartDesign workbench and use Image PartDesign Mirrored features. One thing that is not clear to me though is when you say that the top will be made of two pieces of wood. How will they be attached together? Will they be glued before or after making the dovetails?

In 0.17, PartDesign transformation features can be applied to more than one feature, but the selection process is a little convoluted. I went over it in this topic: https://forum.freecadweb.org/viewtopic. ... 10#p178410

Here's how you could make the front half of the top: rather than create half the width and half the length, you can create full width and half length, centred on the YZ plane; create the pockets for the dovetail on one side, then create a PartDesign Mirrored feature to mirror all the pockets on the opposite side.

The only way to mirror a whole Body at this time is to use the Part Mirror tool like you did. But since your top is two-way symmetric, a copy of it could be made and simply rotated 180 degrees. I wish we could create a linked copy of a Body, but it does not seem possible in the PartDesign workbench. I tried creating a new Body, selecting the first Body then creating a ShapeBinder object; this duplicates the first Body in yellow translucent form, but it is not considered a solid; when I check the second Body with Image Part CheckGeometry, it detects the Body as empty. What's funny is that if I created a sketch on top of it and pad it, the whole shape including the ShapeBinder becomes solid.

For now, I think the best method is to make a Part Mirror of the first Body.
Attachments
blat_Kosmonaut_normandc1.FCStd
(51.39 KiB) Downloaded 40 times
User avatar
NormandC
Veteran
Posts: 18589
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: [0.17] Mirroring of PartDesign Body

Post by NormandC »

Kosmonaut
Posts: 2
Joined: Sun Jun 25, 2017 9:39 am

Re: [0.17] Mirroring of PartDesign Body

Post by Kosmonaut »

NormandC wrote: Sun Jun 25, 2017 9:15 pm Welcome to the forum - and thanks for a very detailed first post. All the information is there for us to help you.
Thanks for your really extensive and detailed response! Well, now I see it's pretty easy to do using only PartDesign tools, so my problem was noobish. My habits brought from Blender got in my way as I tried to do it like in Blender... Guess I have to unlearn what I have learned. ;)
NormandC wrote: Sun Jun 25, 2017 9:15 pm Since you chose to use the 0.17 development version, I recommend you look at the new TechDraw workbench once you are ready to put your parts to paper. The TechDraw workbench aims to eventually replace the aging Drawing workbench, but for 0.17 both workbenches are available.
I'll definitely try it!
NormandC wrote: Sun Jun 25, 2017 9:15 pm The Part container (it's new in 0.17, as is the Body container) can be seen as a kind of sub-assembly. Hence your bedside table can be comprised of a Part container which will contain a mix of Part and Body containers. If one element of your table is made in one piece of wood, it can be enclosed in a single Body. Bodies can only include sketches and PartDesign features (there are exceptions), while Part containers can contain any type of FreeCAD object, including Bodies.
I didn't knew what Part and Body entities precisely are and couldn't find good explanation, now things are clear to me, thank you!
NormandC wrote: Sun Jun 25, 2017 9:15 pm One thing that is not clear to me though is when you say that the top will be made of two pieces of wood. How will they be attached together? Will they be glued before or after making the dovetails?
I want to shape the dovetails first and then glue the wood together as it'd be easier to do with tools I have than the other way around.
NormandC wrote: Sun Jun 25, 2017 9:15 pm In 0.17, PartDesign transformation features can be applied to more than one feature, but the selection process is a little convoluted. I went over it in this topic: https://forum.freecadweb.org/viewtopic. ... 10#p178410
That's the essential piece of knowledge for me, I decided not to use feature mirroring tool because I didn't know it can do that. Again, really helpful!
NormandC wrote: Sun Jun 25, 2017 9:15 pm The only way to mirror a whole Body at this time is to use the Part Mirror tool like you did. But since your top is two-way symmetric, a copy of it could be made and simply rotated 180 degrees.
That's how I plan to do it as well :) Things are clearer for me now and I don't expect any other major problems with this project.
Post Reply