Designing parts with a common base part
Designing parts with a common base part
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.
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)
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
Re: Designing parts with a common base part
Hi akovar, welcome to the forum.
This seems to be an assembly question, so I moved it to the subforum.
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.
Re: Designing parts with a common base part
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
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
- HarryGeier
- Veteran
- Posts: 1230
- Joined: Mon Jul 10, 2017 12:36 pm
- Location: Hof Germany
Re: Designing parts with a common base part
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.
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#$/
My Video Tutorials on Youtube: https://www.youtube.com/channel/UCoe3B ... p8Q/videos
My FreeCAD Stuff on Hidrive: https://my.hidrive.com/share/qr3l1yddy6#$/
Re: Designing parts with a common base part
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.
Re: Designing parts with a common base part
...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!
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!
Re: Designing parts with a common base part
Just stumbled on this topic...
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.

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.fosselius wrote: ↑Wed Jan 30, 2019 8:39 am See: https://forum.freecadweb.org/viewtopic. ... 95#p207195
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.
IMNSHO it never was...

- Attachments
-
- base_normandc1.FCStd
- (35.24 KiB) Downloaded 59 times
Re: Designing parts with a common base part
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.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.
Re: Designing parts with a common base part
If this is a known issue, what is preventing FreeCAD to adopt realthunder's topological naming solution ?