![]() |
【转帖】resize te
resize text...
i need to resize extruded text in a part from a design table. the problem is that there doesn't seem to be a way to attach a dimension to text. can someone think of a way to do this with code? i've attached a simple part as an example. the way it should work is that changing the height and width of the base extrusion should cause a change of the height of the extruded text. d2@sketch2 should drive the text height but it is totally disconnected in this case (just change the height of the base extrusion to verify this). thanks, -martin just add a link values relation to the 2 dimensions d1@extrude1 and d2@extrude2. select both dimensions, right-click, link values you misunderstood my problem. what you are suggesting does not link any one dimension to the height of the text. i need to parameterize text height. -martin ah right not the depth then i get you now. you already have equations set up to work out the height of the text, just alter the equations to incorporate the extrude1's depth as a factor i apologize, i have obviously failed to make my problem clear enough. i'm sorry. i'll try again: i need to be able to control text height parametrically, preferably from a design table. when you enter text into a sketch there is no such thing as a dimension on the sketch that determines the height of that text. in order to modify the height one has to use the font selection dialog and manually alter that value. as far as i can tell there is no way to "touch" text height from an equation. i have a part (an injection molded emblem) that needs to be manufactured in various sizes. i can parameterize every feature of this emblem with the exception of text height. i can drive part dimensions, extrusion depths, etc. from a design table just fine. no such luck for text height. i really want to avoid having to manually edit text height every time a new size emblem is required. this is opening the door for errors. anyhow, i thought that, just maybe, there's a way to use the api to create a link between a dimension somewhere on the same sketch that the text is on and the height of the corresponding text. can anyone help me with this? thanks, -martin you cannot do it with a design table but in api what you need to do is get the sketchtext object and set its format, for example this will work on your part: option explicit dim swapp as sldworks.sldworks dim swmodel as modeldoc2 dim selmgr as selectionmgr dim text as sketchtext dim format as textformat sub main() set swapp = application.sldworks set swmodel = swapp.activedoc set selmgr = swmodel.selectionmanager swmodel.extension.selectbyid2 "sketch2", "sketch", 0, 0, 0, false, 0, nothing, 0 swmodel.editsketch swmodel.extension.selectbyid2 "sketchtext1", "sketchtext", 0, 0, 0, false, 0, nothing, 0 set text = selmgr.getselectedobject6(1, -1) set format = text.gettextformat format.charheight = 1 ' set size you want based on dimensions here text.settextformat false, format swmodel.editrebuild3 end sub |
所有的时间均为北京时间。 现在的时间是 02:43 AM. |