Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.18.4 (GitTag)
Build type: Release
Branch: releases/FreeCAD-0-18
Hash: 980bf9060e28555fecd9e3462f68ca74007b70f8
Python version: 3.6.6
Qt version: 5.6.2
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: English/UnitedStates (en_US)
I am looking for the best option to suit my situation. Searching has revealed options that don't work for my project, so I am hoping for some alternative inspiration. The project is a closure for a PCB.
My project has 3 bodies and a Spreadsheet for the dimensions (and calculations for each dimension) used in each sketch. Some of the dimensions can be changed in the Spreadsheet, making the project parametric (not a collection of static sketches) and I am happy with how the project behaves when changing certain cells. The PCB body is static, however, so I decided to reference the final PCB feature in the UpperShell body as a ShapeBinder object where I can reference the PCB static geometry as external geometry (using CarbonCopy was too messy in some sketches).
I have begun to work in the third body (LowerShell). I need some sketches that are similar to the sketches in the UpperShell body (mating bodies), so I wanted to use the CarbonCopy feature, which I used extensively in the UpperShell sketches. Since the UpperShell sketches contain External Geometry references, I have found the limitation discussed in other threads where External Geometry cannot be referenced across bodies.
The popular options already discussed include Edit Copy/Edit Paste the sketch, creating a ShapeBinder object of the sketch in the other body, creating a Clone of the sketch in the other body. I have not been able to make any of these solutions work.
Edit Copy/Edit Paste
Because each sketch has dependencies that I don't want to replicate (features, planes, spreadsheet), I don't copy the dependencies. The result looks promising, but when applying a feature, such as pad, I am again presented with options regarding dependencies:
- Make Independent Copy produces these errors when applying Pad to the copied sketch:
Exception (Wed Mar 4 16:22:36 2020): Invalid property owner.
PartDesign::Pad / Pad006: Links go out of the allowed scope - Make Dependent Copy produces these errors when applying Pad to the copied sketch:
App::Document::recompute(): cyclic dependency detected
PartDesign::Pad / Pad006: Links go out of the allowed scope - Create Cross-Reference produces these errors when applying Pad to the copied sketch:
App::Document::recompute(): cyclic dependency detected
PartDesign::Pad / Pad006: Links go out of the allowed scope
If I create a ShapeBinder of the earlier sketch, I am unable to use the CarbonCopy feature to copy the geometry into my new sketch. I am able to use the External Geometry feature, but my sketches will break of the dimensions of that external geometry change (already learned that lesson and love the CarbonCopy feature). Additionally, errors appear:
- App::Document::recompute(): cyclic dependency detected
If I create a Clone of the earlier sketch, immediately, an error appears:
- App::Document::recompute(): cyclic dependency detected
- Recreate the UpperShell body geometry in the new LowerShell body sketches.
- Redo each of the sketches in the UpperShell body, replacing the external geometry to the ShapeBinder with CarbonCopy geometry to the PCB body sketch.
Is there a solution to my problem in an upcoming release (ability to reference external geometry across bodies)?
Thank you for your patience.