Designing parts with a common base part

Discussion about the development of the Assembly workbench.
akovar
Posts: 3
Joined: Tue Jan 29, 2019 7:31 pm

Designing parts with a common base part

Post by akovar »

I'm pretty new to 3D modeling, but I'm trying to build two similar parts, just making some minor changes from a common base part. However, I'm likely to make changes to the base part at some point, which I don't want to have to manually make on each of the final parts. For example, in the attached files, I used "File -> Merge project ..." to add the "base" part to the "mod1" and "mod2" files where I made some changes. However, if I change the base part (i.e. change the length of the long face from 30mm to 20mm), it's not reflected in the "mod1" and "mod2" parts.
screenshot.png
screenshot.png (105.78 KiB) Viewed 2265 times
Am I missing something simple, doing something wrong, trying to do the impossible, or some other option?

Thanks for the help!

OS: Windows 10
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.17.13541 (Git)
Build type: Release
Branch: releases/FreeCAD-0-17
Hash: 9948ee4f1570df9216862a79705afb367b2c6ffb
Python version: 2.7.14
Qt version: 4.8.7
Coin version: 4.0.0a
OCC version: 7.2.0
Locale: English/UnitedStates (en_US)
Attachments
mod2.FCStd
(15.43 KiB) Downloaded 48 times
mod1.FCStd
(15.37 KiB) Downloaded 51 times
base.FCStd
(10.21 KiB) Downloaded 54 times
chrisb
Veteran
Posts: 51227
Joined: Tue Mar 17, 2015 9:14 am

Re: Designing parts with a common base part

Post by chrisb »

Hi akovar, welcome to the forum.
This seems to be an assembly question, so I moved it to the subforum.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
GeneFC
Veteran
Posts: 5205
Joined: Sat Mar 19, 2016 3:36 pm
Location: Punta Gorda, FL

Re: Designing parts with a common base part

Post by GeneFC »

A very simple method is to start with the common base and then create clones for the detailed parts. Select the entire body and use the sheep icon to create a clone.

Each clone will create a new body, which can then be embellished as you wish. If you change the base the changes will also transfer through to the clones.

I believe this method is rather fragile. It would be quite easy to make changes that cannot be handled by the clones. For example, if the base shape is reduced in size so that operations in a clone would cut the clone into more than one solid the process will fail.

Depending on the base shape and the potential future changes a better method might be to use a spreadsheet and expressions.

(I don't think this is an assembly question.)

Gene
User avatar
HarryGeier
Veteran
Posts: 1230
Joined: Mon Jul 10, 2017 12:36 pm
Location: Hof Germany

Re: Designing parts with a common base part

Post by HarryGeier »

If i understand you right, you assumed that a MERGED Project changes in the resulting project, once it changes in the source file ?
This is not as it is supposed to be, a merged object will just be inserted in the new design without any links back .

I don´t know if there is any way to do this . You can assemble several objects that change when the source changes, but not modify them.
Kaum macht man´s richtig , gehts´s
My Video Tutorials on Youtube: https://www.youtube.com/channel/UCoe3B ... p8Q/videos
My FreeCAD Stuff on Hidrive: https://my.hidrive.com/share/qr3l1yddy6#$/
chrisb
Veteran
Posts: 51227
Joined: Tue Mar 17, 2015 9:14 am

Re: Designing parts with a common base part

Post by chrisb »

akovar wrote: Tue Jan 29, 2019 9:54 pm I used "File -> Merge project ..." to add the "base" part to the "mod1" and "mod2" files where I made some changes.
Akovar, can you please tell us if it is essential to have the base models in different files. If not, I strongly recommend Gene's proposal and then it is in fact not an assembly question.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
akovar
Posts: 3
Joined: Tue Jan 29, 2019 7:31 pm

Re: Designing parts with a common base part

Post by akovar »

...like I said, I'm still pretty new to this. I think a clone will definitely work for me.

I'm actually trying to build similar parts that connect. So having a "base" object that specifies a pattern for the joint (e.g. a dove tail), then making copies which implement both sides of the joint, just seems convenient. At the moment, I'm not attached to any method of doing this, I'm really just trying to learn. And it looks like I might be able to with clones.

Thanks for the all help!
User avatar
NormandC
Veteran
Posts: 18584
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: Designing parts with a common base part

Post by NormandC »

Just stumbled on this topic...

The solution I posted over there last year about making a clone of the original Body is clunky, and makes a mess in the tree. I found later a much better method: create a new empty Body, then change its Base Feature property, and select the first Body. Now you have a second Body with a "BaseFeature" that is directly linked to the original Body.

Repeat, and you have two variations of your original base part.

One important thing using this trick: in the "child" bodies, don't attach sketches to faces! They will lose their link to the proper face if you make a change to the Base body. This is due to the topological naming issue that plagues FreeCAD, you can search the forum to know more.

In the attached example, I created a datum plane in each "child" body attached to a standard plane, which is impervious to topological naming changes. To set the proper Z offset, in the Mod1 body, I used the expression Pad.length, and in the Mod2 body, I used Sketch.Constraints[14], which links it to Constraint15 from Body/Sketch. This way, the datum planes will always update the the correct position if the height of the Pad is changed, or if Constraint15 is changed in Sketch.

Also, if you change back the length of Sketch from 30mm to 20mm, then the Hole in Mod2 will drill in mid-air; this cannot be avoided, you need to take this into consideration, some manual inspection of your designs will (always) be needed.

chrisb wrote: Wed Jan 30, 2019 7:16 am and then it is in fact not an assembly question.
IMNSHO it never was... ;)
Attachments
base_normandc1.FCStd
(35.24 KiB) Downloaded 59 times
User avatar
fosselius
Posts: 371
Joined: Sat Apr 23, 2016 10:03 am
Contact:

Re: Designing parts with a common base part

Post by fosselius »

NormandC wrote: Sat Feb 23, 2019 5:54 pm One important thing using this trick: in the "child" bodies, don't attach sketches to faces! They will lose their link to the proper face if you make a change to the Base body. This is due to the topological naming issue that plagues FreeCAD, you can search the forum to know more.
Using realthunders assembly/link fork resolves most of the toponaming issues for me. have had no to little issues, and once it fails, the manual recovery procedur is quite painless.
User avatar
Zolko
Veteran
Posts: 2166
Joined: Mon Dec 17, 2018 10:02 am

Re: Designing parts with a common base part

Post by Zolko »

NormandC wrote: Sat Feb 23, 2019 5:54 pm This is due to the topological naming issue that plagues FreeCAD, you can search the forum to know more.
fosselius wrote: Sun Feb 24, 2019 8:02 am Using realthunders assembly/link fork resolves most of the toponaming issues for me. have had no to little issues, and once it fails, the manual recovery procedur is quite painless.
If this is a known issue, what is preventing FreeCAD to adopt realthunder's topological naming solution ?
try the Assembly4 workbench for FreCAD — tutorials here and here
Post Reply