How to use ShapeStrings in PartDesign

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!
chrisb
Veteran
Posts: 53919
Joined: Tue Mar 17, 2015 9:14 am

How to use ShapeStrings in PartDesign

Post by chrisb »

This is a short walk-through showing how to use ShapeStrings in a PartDesign body. Please note, that it is recommended not to attach something to a face, but rather to principal planes or sketches or DatumPlanes - which again should not be attached to faces.

For simplicity reasons I attach the ShapeString nevertheless to a face, a more robust approach should avoid it.
  • Create a PartDesign body with some features.
    Bildschirmfoto 2019-05-26 um 00.59.13.png
    Bildschirmfoto 2019-05-26 um 00.59.13.png (19.3 KiB) Viewed 11009 times
  • Switch to Draft workbench and create a ShapeString, don't care about the working plane
    Bildschirmfoto 2019-05-26 um 01.03.01.png
    Bildschirmfoto 2019-05-26 um 01.03.01.png (12.43 KiB) Viewed 11009 times
  • Drag and drop the ShapeString into the body, this is how the body can look like:
    Bildschirmfoto 2019-05-26 um 01.04.21.png
    Bildschirmfoto 2019-05-26 um 01.04.21.png (12.9 KiB) Viewed 11009 times
  • Switch back to PartDesign workbench
  • Attach the ShapeString. There are different ways to do this:
    - Select a face or a standard plane and click Image; then select the ShapeString and confirm with attachment mode "Flat face".
    - You can click on AttachmenOffset and open the attachment dialog for more subtle attachments.

    Despite the warnings from above I attached it to a face:
    Bildschirmfoto 2019-05-26 um 01.07.35.png
    Bildschirmfoto 2019-05-26 um 01.07.35.png (11.91 KiB) Viewed 11009 times
  • Change the AttachmentOffset to your liking; I moved it 6mm in x- and 2mm in y direction
  • Create a pad or a pocket, here it's a pocket
    Bildschirmfoto 2019-05-26 um 01.11.30.png
    Bildschirmfoto 2019-05-26 um 01.11.30.png (24.46 KiB) Viewed 11009 times
The file is attached for further studies:
Attachments
PartDesignShapeString.FCStd
(79.55 KiB) Downloaded 543 times
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
User avatar
wandererfan
Veteran
Posts: 6265
Joined: Tue Nov 06, 2012 5:42 pm
Contact:

Re: How to use ShapeStrings in PartDesign

Post by wandererfan »

chrisb wrote: Sat May 25, 2019 11:13 pm This is a short walk-through showing how to use ShapeStrings in a PartDesign body
Nice. I added a link to this from Draft_ShapeString.
chrisb
Veteran
Posts: 53919
Joined: Tue Mar 17, 2015 9:14 am

Re: How to use ShapeStrings in PartDesign

Post by chrisb »

wandererfan wrote: Sun May 26, 2019 11:26 am Nice. I added a link to this from Draft_ShapeString.
Thank you, I feel honoured.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
User avatar
freman
Veteran
Posts: 2200
Joined: Tue Nov 27, 2018 10:30 pm

Re: How to use ShapeStrings in PartDesign

Post by freman »

Some explanation on how to attach would be helpful. I tried to attach, strings appear in list along with sketches but when I select a string and confirm, it complains.

Ticking recompute gives this in report window.

<Exception> Document.cpp(2847): The graph must be a DAG.
72566.1 <App> Document.cpp(2849): The graph must be a DAG.
72567.5 <App> Document.cpp(3202): plate#ShapeString001 still touched after recompute

I don't think the example is explicit enough to be useful at the moment.

The key operation here is explained by nothing more than the word "attach". Could you expand on how that works?

I was actually looking for a guide in the wiki which I used last time which produced embossed text "FreeCAD" on a 45 deg block. Do you know where I can find that ?

Sadly FreeCAD is a bit like ImageMagick, very powerful to totally unintuitive. You need to remember all the arcane incantations required to do a job or spend a hour searching each time.
chrisb
Veteran
Posts: 53919
Joined: Tue Mar 17, 2015 9:14 am

Re: How to use ShapeStrings in PartDesign

Post by chrisb »

freman wrote: Mon Nov 18, 2019 12:51 pm Some explanation on how to attach would be helpful. I tried to attach, strings appear in list along with sketches but when I select a string and confirm, it complains.
I have added some explanations on how to attach, but going further would be beyond this short walk-through.

<Exception> Document.cpp(2847): The graph must be a DAG.
72566.1 <App> Document.cpp(2849): The graph must be a DAG.
72567.5 <App> Document.cpp(3202): plate#ShapeString001 still touched after recompute
Here you have an individual issue which has probably little to do with the example. You probably have added the ShapeString to the body before adding further pads and pockets to which you finally wanted to attach the ShapeString. This would need individual investigation, and I would ask you to open a new topic for that.
The key operation here is explained by nothing more than the word "attach". Could you expand on how that works?
There has yet a good and comprehensive tutorial to be written which covers all the tricky aspects of that powerful mechanism. I stick here to the very basic only.

Sadly FreeCAD is a bit like ImageMagick, very powerful to totally unintuitive. You need to remember all the arcane incantations required to do a job or spend a hour searching each time.
3D modeling is inherently complicated. If it was really simple, a covering tool would be called "Paint".
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
User avatar
freman
Veteran
Posts: 2200
Joined: Tue Nov 27, 2018 10:30 pm

Re: How to use ShapeStrings in PartDesign

Post by freman »

Thanks, those additional lines make it much clearer what needs to be done.
3D modeling is inherently complicated.
Agreed, that it why it is important to have a clear, intuitive interface. I think this is far from the case for FC at the moment. There are a wide range of things that can be done which is impressive but often requires tricks and workarounds where you finally get the feeling you have managed to beat the UI into submission !

Someone just posted about importing SVG and saga they went through to engrave something. I went through the same thing and , despite your patient and determined efforts, I was not able to get a proper path. My impression as a user is that the UI makes things inherently more complicated than they need to be.

Code: Select all

The graph must be a DAG
That cracks me up. A dag is an Aussie term for the dung stuck to the wool around a sheep's anus. It gives rise to a very useful adjective : daggy.
Once I've stopped chuckling I still have a pretty useless error message. I've got around that problem but no thanks to the message contents.
Last edited by freman on Sat Nov 23, 2019 8:24 am, edited 1 time in total.
chrisb
Veteran
Posts: 53919
Joined: Tue Mar 17, 2015 9:14 am

Re: How to use ShapeStrings in PartDesign

Post by chrisb »

A FreeCAD graph not being a DAG is indeed what you call daggy.
freman wrote: Sat Nov 23, 2019 8:16 am My impression as a user is that the UI makes things inherently more complicated than they need to be.
I probably cannot judge on this, not being a newbee anymore.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
User avatar
freman
Veteran
Posts: 2200
Joined: Tue Nov 27, 2018 10:30 pm

Re: How to use ShapeStrings in PartDesign

Post by freman »

I probably cannot judge on this, not being a newbee anymore.
Yes, I think that is a lot of the problem. When one knows how things "should" be done, one makes lots of assumptions which lose someone who did not work on the thing from the ground up. Plus good s/w designers are rarely good UI designers.
User avatar
DeepSOIC
Veteran
Posts: 7896
Joined: Fri Aug 29, 2014 12:45 am
Location: used to be Saint-Petersburg, Russia

Re: How to use ShapeStrings in PartDesign

Post by DeepSOIC »

DAG stands for "Directed acyclic graph". What the message is trying to say is that there are dependency loops. I agree that the error message is quite hard to decipher.
PCR
Posts: 44
Joined: Wed Apr 21, 2021 1:07 pm

Re: How to use ShapeStrings in PartDesign

Post by PCR »

Quick question: How can i set a constraint on a Shapestring?


Best
Post Reply