position text on a beveled plane

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!
garya
Posts: 171
Joined: Tue Nov 20, 2018 1:00 am
Location: Ovando, MT, USA

position text on a beveled plane

Postby garya » Thu Feb 14, 2019 9:22 pm

I am having trouble positioning text on a beveled face so I can engrave it.
It's no problem if the face is aligned with one of the principal axes -- in that case I can set positioning parameters based on values for the face's position which puts in in the right place.
But when the face is beveled, how can one constrain the text to be on the plane?
I tried to use the Draft WB snap text to endpoint as discussed in
https://www.freecadweb.org/wiki/Draft_S ... g_tutorial
but after I select the lower left corner of the text, moving the mouse causes the main body with the reference line to disappear so I can't click it.
I can create the text and manually position it, but then whenever a dimensional parameter for the main body changes it will be wrong.
I tried creating a reference plane but the text always got created at 0,0,0 and not at the reference plane origin.

Using freecad built from source:
OS: UNIX
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.18.a14af0f
Build type: Release
Python version: 2.7.15
Qt version: 4.8.7
Coin version: 3.1.3
OCC version: 7.3.0
Locale: C/Default (C)

Thanks for any hints / pointers
Attachments
BlueBlk_1_Label_Snap.FCStd
(195.82 KiB) Downloaded 1 time
User avatar
meme2704
Posts: 2926
Joined: Sat Apr 01, 2017 2:47 pm
Location: Vosges

Re: position text on a beveled plane

Postby meme2704 » Fri Feb 15, 2019 11:59 am

Hi
It is unavoidable, the text starts at 0,0,0, if you can not tame it to make it sit on the right face, uses a method of bandidos: place the face under the text
Attachments
texte.FCStd
(35.9 KiB) Downloaded 2 times
texte.PNG
texte.PNG (51.45 KiB) Viewed 267 times
User avatar
NormandC
Posts: 18534
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: position text on a beveled plane

Postby NormandC » Fri Feb 15, 2019 12:36 pm

Gary,

This was discussed on the forum not long ago. See my reply here:
https://forum.freecadweb.org/viewtopic. ... 37#p271565
garya
Posts: 171
Joined: Tue Nov 20, 2018 1:00 am
Location: Ovando, MT, USA

Re: position text on a beveled plane

Postby garya » Fri Feb 15, 2019 9:41 pm

NormandC wrote:
Fri Feb 15, 2019 12:36 pm
Gary,

This was discussed on the forum not long ago. See my reply here:
https://forum.freecadweb.org/viewtopic. ... 37#p271565
Thanks. I've used something like that method before, but my UI is different, in particular the selection of the lower left corner of the text. When I first select the shape string after selecting the desired face, I get a dialog with x,y,z position, string, height, and font-file. That's particularly difficult to position because the face I'm interested in is at a funky angle. I have to tweak the x,y,z to get the text actually on the face. I'll grab recent source and rebuild and see if I get the dialog for positioning the baseline point, and more importantly, whether the position is relative to the face and stays there if the face is moved.

One thing I've hit more than once is when I try to move the shape-string object to the main body, I sometimes get a dialog saying the string has dependencies outside the body (or something like that) which prevents it from being moved. I'm not sure what the sequence is which triggers it (or prevents it from being triggered).
garya
Posts: 171
Joined: Tue Nov 20, 2018 1:00 am
Location: Ovando, MT, USA

Re: position text on a beveled plane

Postby garya » Sat Feb 16, 2019 12:53 am

garya wrote:
Fri Feb 15, 2019 9:41 pm
NormandC wrote:
Fri Feb 15, 2019 12:36 pm
Gary,

This was discussed on the forum not long ago. See my reply here:
https://forum.freecadweb.org/viewtopic. ... 37#p271565
Thanks. ... my UI is different ... I'll grab recent source and rebuild and see if I get the dialog for positioning the baseline point, and more importantly, whether the position is relative to the face and stays there if the face is moved.
I've just built from the most recent tree:

OS: UNIX
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.18.88228d6
Build type: Release
Python version: 2.7.15
Qt version: 4.8.7
Coin version: 3.1.3
OCC version: 7.3.0
Locale: C/Default (C)

I still see the same thing; clicking on the Shape String button, I get a dialog with the following items, in this order, one above the other:
X, Y, Z, String, Height, Font file
There is no "Choose Point" button, the critical piece I see in your video.
Have you changed any of the Draft WB preferences? How old is your v0.18?
User avatar
NormandC
Posts: 18534
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: position text on a beveled plane

Postby NormandC » Sat Feb 16, 2019 6:09 am

garya wrote:
Sat Feb 16, 2019 12:53 am
There is no "Choose Point" button, the critical piece I see in your video.
Have you changed any of the Draft WB preferences? How old is your v0.18?
I just checked and I have the same UI as you. If you look at the time I posted that reply, I recorded my video 2 and a half months ago. It seems the Draft ShapeString UI has been changed since.

It looks like the lack of a "Choose Point" button is an oversight.

In any case, please watch the second video in its entirety. Just create the ShapeString at 0,0,0, ignore the selection of the face. Later on in the video, I show how to attach the ShapeString to the slanted face of the Body using the PartDesign Attachment dialog.

wandererfan wrote:ping
wandererfan
Posts: 2695
Joined: Tue Nov 06, 2012 5:42 pm

Re: position text on a beveled plane

Postby wandererfan » Sat Feb 16, 2019 6:31 pm

NormandC wrote:
Sat Feb 16, 2019 6:09 am
I just checked and I have the same UI as you. If you look at the time I posted that reply, I recorded my video 2 and a half months ago. It seems the Draft ShapeString UI has been changed since.

It looks like the lack of a "Choose Point" button is an oversight.
If your "Draft interface mode" is set to Taskview you get a traditional task panel with all the input fields in one place. This TaskPanel was implemented about 3 months ago.

If your preference is set to Toolbar, the ui is unchanged.

The point & click selection of the point is not implemented in the new task panel ui. Whatever is typed in the X,Y.Z fields is used as the "point" when OK is pressed.

Just for clarity, are we looking for a button, or for the point & click functionality?
garya
Posts: 171
Joined: Tue Nov 20, 2018 1:00 am
Location: Ovando, MT, USA

Re: position text on a beveled plane

Postby garya » Sun Feb 17, 2019 5:14 am

NormandC wrote:
Sat Feb 16, 2019 6:09 am
In any case, please watch the second video in its entirety. ... Later on in the video, I show how to attach the ShapeString to the slanted face of the Body using the PartDesign Attachment dialog.
Got it, thanks.
It appears (from my testing) that the attachment needs to be done before the string is extruded and any other features are added, as you end up with a cyclic redundancy otherwise and can't make the attachment change. Does that sound correct?
garya
Posts: 171
Joined: Tue Nov 20, 2018 1:00 am
Location: Ovando, MT, USA

Re: position text on a beveled plane

Postby garya » Sun Feb 17, 2019 4:47 pm

wandererfan wrote:
Sat Feb 16, 2019 6:31 pm
If your "Draft interface mode" is set to Taskview you get a traditional task panel with all the input fields in one place. This TaskPanel was implemented about 3 months ago.

If your preference is set to Toolbar, the ui is unchanged.

The point & click selection of the point is not implemented in the new task panel ui. Whatever is typed in the X,Y.Z fields is used as the "point" when OK is pressed.

Just for clarity, are we looking for a button, or for the point & click functionality?
After playing around a bit, it appears to me there is a bigger issue here, and that is the selection of the face on which to place the text. Normand's demo only works because somehow (it's not clear to me how) the plane of the beveled face was selected. If I create two bevels on the block, in order to place text on an arbitrary one of them one must first select the plane, then click the plane selection button, then click the shape string button. But even that doesn't work the way it should intuitively, as the selected plane is not the plane of the selected face. I'm not very familiar with Draft WB, so I could be all messed up here. But try this, in both modes (toolbar and taskview):

Create a cube.
Bevel two of the top edges at right angles to each other.
Try placing text on each one in each mode.

In toolbar mode, while the origin of the plane appears to be in the center of the chosen face, it is not. The text is placed further back, inside the object.

In taskview mode, the text is placed at the global origin (assuming the x,y,z values are left at 0.0), but oriented as for the selected plane.

Neither of these is what the user wants or expects. The plane origin appears to be in the correct place, but that is not where the text is placed.

I may be doing something totally wrong here (likely, given my novice abilities). What I would expect is this:

In Toolbar mode, the text would be placed at the selected (clicked) location on the face of the object whose plane is supposedly the working plane.

In Taskview mode, if the working plane is other than the default coordinate system, I would expect the labels for x,y,z to change to "Local X" etc. When the dialog is completed I would expect the text to be on the chosen face at the local x,y,z set position.

Assuming the above taskview mode works, then it would be handy to have a button in the dialog allowing one to click on a location in the plane to set the relative position.

The above is (I think) in the spirit of the current Draft WB. What is a bit disconcerting is that some of the other workbenches, such as part design, perform operations on the selected edge / face. So, for example, one selects an edge and then hits the bevel button to bevel that edge. Intuitively, when one switches to the draft wb one expects a similar behavior -- I would expect to be able to click on a face and then hit the shape string button to put text on that face. I don't know if making it work this way flies in the face of the notion of the working plane. One could switch the working plane for the duration of the shape string operation and then switch it back to whatever it was, or choose to leave it there if that seems preferable. Could be a preferences option for draft wb.
User avatar
NormandC
Posts: 18534
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: position text on a beveled plane

Postby NormandC » Sun Feb 17, 2019 5:27 pm

garya wrote:
Sun Feb 17, 2019 4:47 pm
Normand's demo only works because somehow (it's not clear to me how) the plane of the beveled face was selected.
I'm not sure what is not clear to you. In my videos, I select the slanted face in the 3D view before creating the ShapeString. In the reply in which I posted the videos, I wrote:

NormandC wrote:
Sat Dec 01, 2018 6:02 am
(...) in Draft, if you select a face before creating Draft geometry, then the face will automatically be set as the working plane.
This is one of the fundamental principles of the Draft workbench, and all Draft tools should normally allow for this work flow. Currently the Draft ShapeString UI in Taskview mode doesn't, even when setting the beveled face as working plane first, because it doesn't allow picking an anchor point lying on the working plane. With the slanted face set as working plane, the ShapeString is created parallel to the plane and intersecting the coordinates defined in the UI.

wandererfan wrote:
Sat Feb 16, 2019 6:31 pm
Just for clarity, are we looking for a button, or for the point & click functionality?
Point & click functionality. On the other hand, a "Pick point" button may be clearer to users; or, maybe just add the text "Enter coordinates in the fields below or pick a point in the 3D view" at the top of the ShapeString Taskview UI?

Thanks. Pesky users strike again. :D