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
Posts: 22350
Joined: Tue Mar 17, 2015 9:14 am

How to use ShapeStrings in PartDesign

Postby chrisb » Sat May 25, 2019 11:13 pm

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 1225 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 1225 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 1225 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 1225 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 1225 times
The file is attached for further studies:
Attachments
PartDesignShapeString.FCStd
(79.55 KiB) Downloaded 69 times
User avatar
wandererfan
Posts: 3644
Joined: Tue Nov 06, 2012 5:42 pm

Re: How to use ShapeStrings in PartDesign

Postby wandererfan » Sun May 26, 2019 11:26 am

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
Posts: 22350
Joined: Tue Mar 17, 2015 9:14 am

Re: How to use ShapeStrings in PartDesign

Postby chrisb » Sun May 26, 2019 12:03 pm

wandererfan wrote:
Sun May 26, 2019 11:26 am
Nice. I added a link to this from Draft_ShapeString.
Thank you, I feel honoured.
User avatar
freman
Posts: 937
Joined: Tue Nov 27, 2018 10:30 pm

Re: How to use ShapeStrings in PartDesign

Postby freman » 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.

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
Posts: 22350
Joined: Tue Mar 17, 2015 9:14 am

Re: How to use ShapeStrings in PartDesign

Postby chrisb » Sat Nov 23, 2019 7:52 am

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".
User avatar
freman
Posts: 937
Joined: Tue Nov 27, 2018 10:30 pm

Re: How to use ShapeStrings in PartDesign

Postby freman » Sat Nov 23, 2019 8:16 am

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
Posts: 22350
Joined: Tue Mar 17, 2015 9:14 am

Re: How to use ShapeStrings in PartDesign

Postby chrisb » Sat Nov 23, 2019 8:23 am

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.
User avatar
freman
Posts: 937
Joined: Tue Nov 27, 2018 10:30 pm

Re: How to use ShapeStrings in PartDesign

Postby freman » Sat Nov 23, 2019 8:26 am

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
Posts: 7474
Joined: Fri Aug 29, 2014 12:45 am
Location: Saint-Petersburg, Russia

Re: How to use ShapeStrings in PartDesign

Postby DeepSOIC » Sat Nov 23, 2019 12:45 pm

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.