Welcome to the Onshape forum! Ask questions and join in the discussions about everything Onshape.
First time visiting? Here are some places to start:- Looking for a certain topic? Check out the categories filter or use Search (upper right).
- Need support? Ask a question to our Community Support category.
- Please submit support tickets for bugs but you can request improvements in the Product Feedback category.
- Be respectful, on topic and if you see a problem, Flag it.
If you would like to contact our Community Manager personally, feel free to send a private message or an email.
SurfaceText Problem with Cut Out function
vincent_bombonel
Member Posts: 10 ✭
Hi,
I've been using SurfaceText to cut out text around a curved surface.
The problem is that it cuts away some of my model on the other side. I can't just extrude what it has cut on the other side because I need to cut text all around the curved model.
I've added a couple of screenshots.
Thank you :)
I
I added the 1/2 sign in red where it is on the other side of the cylinder.
0
Comments
Hey Vincent. Gonna need to take a look at your document to see what gets you to where you are. - Scotty
Hi Scotty, thanks for the reply. Here's the link to my problem :
https://cad.onshape.com/documents/cecf81fd61de43fbfda11fb3/w/0def91f0a5d3a674585fb5b9/e/d656c521283f4f398bcc595b
Hey Vincent. I took a look at your document. I've only used this feature script a handful of times. I don't see anything in your selections within the Surface Text feature to result in affecting the other side of the lid. Nor can I imagine any selection causing it. I see it as unexpected behavior; perhaps a bug. Looking forward to another member chiming in. -Scotty
Hey @vincent_bombonel I have been recommending people use my Text feature instead. Here's an example of how it works:
https://cad.onshape.com/documents/1508e879e35a2eb5bfb2e07a/w/cf51d84ff21a0e7defc312fb/e/a4a3aa1707aef77479747ebd
I think it is a bit simpler to use, but it is a bit different, and requires you to create a path to follow. The workflow is:
Pick your face you want to add text to.
Create a curve on that face for your text to follow. (In this example I use "project curve").
Then create the "Text" feature.
Here's what you get:
You can read up on the feature here:
Great thanks for your help. I guess I'm gonna have to do it differently, but it'd be good to have a solution for future me and other people having the same problem.
@vincent_bombonel What are you trying to do? If the Text custom feature can't do it, Id like to make it able to do it. It sounds like you need to put numbers all around the perimeter? That should be possible. That's why I wrote it! I was making dials and such for board games and it was such a chore to do text layout.
Hi jnewth, sorry my message was meant for Scotty but for some reason it takes ages for the reply to be posted… I'll give this a try today and let you know how I went, thanks !
Ok I just had a try following your example and it works. But is it possible to have it work using a sketch line like I'm doing here :
It would save me time from having to create a plane and projected curve for every different angle.
I'm going to post the link in case you need to check that out :
https://cad.onshape.com/documents/cecf81fd61de43fbfda11fb3/w/0def91f0a5d3a674585fb5b9/e/d656c521283f4f398bcc595b
Also in the SurfaceText feature, it was possible to change the height (and length) of the text without having to change the length of the curve, is it possible with your feature ?
Thank you :)
Hi @vincent_bombonel
I took a look at your model. Thank you so much! That is a case I hadn't considered: A sketch path that doesn't use the sketch plane to orient the text. Makes perfect sense. I made the slight change necessary to support that case. Please update to Release 3.1.
Here's the difference. In typical use, a user will select the sketch edge as path. Because it's a sketch edge, we know that it lies in the sketch plane. So we don't need to specify a "Face containing curve" because the feature assumes it should use the sketch plane to align the text. This produces the result you see:
But what you want to do is to use a sketch edge as the path, but have it align to a non-planar face. So here we just tell the Text tool what face to use:
And then the text appears where we want.
As to your other question, about locating the text at various points on the sketch. For a closed path, the feature doesn't know where you want the layout to start. For that, you'll need to give it a start point to help the feature:
But the feature still uses the entire path to distribute the characters (unless you specify split by commas or spaces, to treat your entire string as a single sketch) so you'll still need to split the circle sketch in to sections to arrange the text (as you have done).
Hope that helps!
Very frustrating, I reply to you as soon as possible but my messages never end up being posted so I have to type them again. Anyway.
Thanks a lot it works ! Amazing being able to integrate the function so quick !
Now about the other question, I wanted to know if it's possible to bound the text height to its length to maintain a constant gap between the numbers. So if the path is 20mm but the text height is small, like 2mm, the text length shrinks to something like 5mm, instead of 20mm to maintain a normal gap.
I took a couple of screenshot to show you what I mean :
In the first image, the text height is 3.5mm for both, and the path length is 6mm for both. 6mm is perfect for the text 1/2 but not for the 12/12.
In the second image, I changed the path length to 12mm to get the gap between the numbers as close as it is on the text 1/2.
Binding the height to the length would insure that the gap between all texts around the cylinder are equal, no matter the length of the text.
At the moment it can be done by changing every paths length and guessing or calculating the correct length, but in case it's an easy implementation, may as well ask :)
Thanks again !
Edit
Hi @vincent_bombonel There are a couple ways to do what you want with Text, but why not just use one feature and let it do the legwork?
Option 1: Separate by commas.
The way the feature works is it finds a single sketch plane per segment. So in the above example, our segments are "1/12", "2/12", etc. Each segment then looks like what you expect, with correct per-character spacing.
The drawback is, because each segment like "3/12" is a created as a single sketch on a single plane, your extruded shapes don't 'curve' to match the face. Here's a top down view. See the gap between lettering and cylinder?
For myself, this curve doesn't really matter, so I just make the lettering extrude back in to the part:
And then (if it's important) you can trim it back with an extruded cut, like so:
If you want the characters to individually match the curve, then each character needs to be its own sketch, so each segment like "3/12" needs to be its own feature and have its own path. For that: You do as you have been doing, creating an arc whose arclength matches the length of the string you are formatting. The way I do this is:
Here I've created a variable called #character_width and set it to 3mm. For a string "12/12" that's 5 characters, so I do 5*#character_width, but for "1/12" I do 4*#character_width as shown above. Then with a monospace font like SourceCodePro, there's no guesswork involved:
And the characters are each on their own sketch, so they follow the curve naturally:
And just in case you don't know how to do an arclength constraint:
Here are the examples:
https://cad.onshape.com/documents/c7b69627c7ed0dd19cc5a200/w/fd4feffa1319ebfbcfcc95c2/e/a421e3c87e67ae79fd6d8269
Thank you very much, it took me a while as all my sketches have a different angle to each other so they have to be individually set up but that's fine, at least it works !
Have a good weekend 😀
Great to hear it @vincent_bombonel . I wanted to add one more note, just in case you missed it. There is "kerning-like" control in Text. Normally this is used to adjust spacing between characters but operates at the segment level. Let's take your example and fine-tune locations. If I have 12 segments (1/12, 2/12,…) arranged regularly around the circle and I wish to adjust the position of the "11/12" segment:
I can turn on "Adjust offsets":
and a clickable point manipulator appears at each segment:
When clicked this creates a drag manipulator:
so you can drag the segment. It's pretty slow (FS has to recalculate the whole feature every adjustment, yikes) so you can also enter numerical offset values directly:
Thanks so much for your example @vincent_bombonel - with real world examples I can continue to improve Text. Your example has given me some good ideas. Stay tuned for Release 4 (when I have some free time and no urgent videogames that demand my attention).
Hi jnewth, thanks for the info, I'll definitely keep it in mind next time I need to use your feature.
Thanks again for the quick update !