How to create sketch based on other object's surface?

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
jiandingzhe
Posts: 34
Joined: Sat May 22, 2021 12:18 pm

How to create sketch based on other object's surface?

Post by jiandingzhe »

I want to create a new object (B) that is tightly adjacent to another object (A), and could automatically adjust position when A's dimension changes. However, if I create B's sketch and simply map it to A's surface using "Map sketch to face" button, the objects spawn from this sketch will become part of A's solid, not a separate new one. It seems I have misunderstood the function of "Map sketch to face". What should I do to create a separate solid based on another's surface?
edwilliams16
Veteran
Posts: 3106
Joined: Thu Sep 24, 2020 10:31 pm
Location: Hawaii
Contact:

Re: How to create sketch based on other object's surface?

Post by edwilliams16 »

I think you are using Part Design. You can create a new Body and then create a PartDesign ShapeBinder of the first body's face and set its Trace_support property to True. You can then alter the dimensions or position of the first body and the second will follow. However, beware of TNP. If you change the topology of the first body this can change the face numbering and your second object will then attach to the wrong face, which you will have to go back and fix by hand.

See the enclosed where Body001 is an extrusion of a face of Body.

.
Attachments
useShapebinder.FCStd
(12.76 KiB) Downloaded 17 times
jiandingzhe
Posts: 34
Joined: Sat May 22, 2021 12:18 pm

Re: How to create sketch based on other object's surface?

Post by jiandingzhe »

edwilliams16 wrote: Sun May 28, 2023 3:39 am I think you are using Part Design. You can create a new Body and then create a PartDesign ShapeBinder of the first body's face and set its Trace_support property to True. You can then alter the dimensions or position of the first body and the second will follow. However, beware of TNP. If you change the topology of the first body this can change the face numbering and your second object will then attach to the wrong face, which you will have to go back and fix by hand.

See the enclosed where Body001 is an extrusion of a face of Body.

.
Understood. Thank you!
User avatar
Shalmeneser
Veteran
Posts: 9474
Joined: Wed Dec 23, 2020 12:04 am
Location: Fr

Re: How to create sketch based on other object's surface?

Post by Shalmeneser »

You can even offset the SubBinder :
Offsetting

* DataOffset: 2D offset to apply. If Offset = 0, then no offset is applied. If Offset < 0, then the offset is applied inward. introduced in version 0.20
* DataOffset Join Type: Join method of offsetting non-tangent joints. The method can be Arcs, Tangent or Intersection. introduced in version 0.20
* DataOffset Fill (Bool): If true, a face is made between the new wire and the original wire. See also the DataMake Face property. introduced in version 0.20
* DataOffset Open Result (Bool): Affects the way open wires are processed. If false, an open wire is made. If true, a closed wire is made from a double-sided offset, with rounds around open vertices. introduced in version 0.20
* DataOffset Intersection (Bool): Affects the way compounds are processed. If false, all children are processed independently. If true, and children are edges and wires, the children are offset in a collective manner. introduced in version 0.20
frcaduser
Posts: 352
Joined: Wed Apr 07, 2021 11:22 pm

Re: How to create sketch based on other object's surface?

Post by frcaduser »

Hello,

if you want to create an 'adjacent' solid based on another's surface (perimeter) and that automatically updates its perimeter
if the original object's dimensions are modified, use the shape binder tool as suggested above. If you want to create
a separate object with the same perimeter as another object and you're not concerned about it being updated should there
be changes to the original reference object, then you can use the joinCurves tool found in the Curves tool suite.
For this, simply click one of the perimeter datums from the original object, then press the CTRL key from the keyboard
as you continue clicking on the rest of the datums along the perimeter (they're highlighted green). Once the entire perimeter
is highlighted, click the joinCurves tool. A new file will appear on the project menu. You can pad this file that behaves
kind of like a sketch of the original object. You may also use this file as a profile should you need to perform a sweep
of an edge. If you want to get an explicit sketch from an existing surface, you can also go to the Draft workbench
and use the Draft to sketch tool.

frcaduser
Post Reply