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.
New Featurescript: PP Surface Text 2.0
dave_cowden Member, Developers Posts: 466 ✭✭✭
We are pleased to announce that version 2.0 of our Surface Text creator Featurescript is now available.Add the feature to your toolbar by searching for "PP Surface Text", or open this document:
- Improved performance, especially on planar surfaces
- Much more robust. If the text does not fit on the surface, it will be truncated, rather than creating a render error (thanks @owen_sparks )
- New alignment modes allow selecting text to be aligned with baseline, or with the full extent of text
- It is now easy to use the edges of a face as the align curve
- Custom tracking allows tweaking spacing between letters (thanks @SledDriver )
- Custom Kerning allows fine-tuning the spacing between each pair of letters
- Text is projected onto the selected surface, so that base curves can be located on another plane if desired
- Text letters can now be filleted
As always, this feature is a BETA, free for personal and commercial use. We only ask that you report both good and bad experiences so we can improve the product. Make sure to open the example folder for lots of good examples of the feature in action! More information is available here:
This feature and our others are available on the Parametric Parts store, at http://store.parametricparts.com/products.html
The newest version incorporates much of your feedback-- thanks!
Can't wait to try it out.
I ended up doing the best I could to make it 'just work'. The solution turned out to treat 'add' differently than cuts. For add, we can simply add the text, even if it 'falls off' of the surface. For cuts, its easy to just not remove the material.
Here's an example:
Until you get your goal of banning all fonts that go below the baseline, the current functionality is the best I could do-- the user can choose whether to consider the entire text or just the 'baseline':
have a little request to encrease parametric capabilities of your text feature, i suppose you take a text itself as string parameter, so we cant pass any variable-dependent expression, i would like to have an option to pass a text as featurescript string expression using isAnything() predicate. so we could make some kind of auto-labeling capabilities, when text is ruled by external variables like so: "M"~toString(#d)~"-"~toString(#l)
It is possible also wrap Dave's feature with a different interface, including isAnything fields. One thing I'd like at some point is for the user of a feature to be able to replace a parameter like a boolean, string, or enum (or even the suppression state) with an expression.
I don't mind making this modification. I'm not really familiar with how isAnything fields work, though.
Is it as simple as changing my input variable declaration to isAnything(), and then doing toString() on it before running the routines? I didn't know that variable references would magically get replaced inside of toString...
Anyway, this is a pretty simple modification to make, I think-- i'm happy to do it!
@ilya_baran thanks for the idea, is there a way to take a string using "as string" type tag and convert it to code inside the feature itself?
I don't understand your latest comment. I already accept a string parameter, and I'm not sure how quotes would help. Thanks @owen_sparks for weighing in, when you did that, did you include a variable reference in the message along with other text, or was it a variable by itself? I think the need here might be to have an sprintf like capability that can mix text along with variable values.
If that's the case, I don't know how to get fs to do that other that to write my own implementation.
I had bad experiences trying to do simple things like format numbers with FS. So i think its not possible to, for example, control the format of a number to be two decimals, etc-- so i'm guessing "Change Me" + #myLength, if it works at all, would produce something really ugly like "Change Me 1.999999999999 mm or something ugly.
I'll try to add this functionality soon. Thanks for the suggestion!
I'm Dave, I developed PP_Surface_Text
Can you tell me more about what you mean by a fill pattern? I do maintain a list of enhancement requests, and I try to get them into new feature versions...
Looks like you figured it out?
Whatever I do, the "cut out" option turns red / results in an error.
Here is my document https://cad.onshape.com/documents/3fcf4d7004a36d1682dfa7f6/w/6809b8a6283e6a572be51cec/e/dbe0df79ad2805f3c8f1a3e3
In the tab "Custom bezel" you can see what I am trying to achieve.
But even on a simple square block "ST test" I do not manage to get the cutout.
Hope you or someone else can help me out to fix it.
Due to the fact that Sketch 7 was still visible, that one was selected while clicking on the part. Tried to select the extrude earlier by clicking on it in the left menu, but did not work.
Hiding the sketch allowed me to select the extrude in the part and now it works.
(Hope his is helpful to others too).
Nice tool. I've run into one issue, I didn't see that anyone else is reporting this problem so maybe I'm doing something wrong. (See attached screenshot) I want to use export a dxf to laser cut this part, but the exported dxf is missing the results of the surface text tool. Only the inner and outer circles appear in the dxf, the outlines of the cutout text are missing. Any ideas?
I did a small example, and I got the expected result when I right-clicked the face and chose "Export as DWG/DXF"
How is#length declared? As text?
roundToPrecision(#myLength / inch, 3) ~ " in"
@dave_cowden does that sound like a reasonable change to make?
I'll see if I can add this feature soon
thank you this sounds great.