Hi,
I understand that LT is unable to perform a text-along-arc function, and previous forum posts have discussed this,
Frequently the answers point to a workaround which everyone seems to praise, using this now-non-functional link:
http://ltunlimited.typepad.com/my_weblog/2010/02/align-text-with-arc.html
Unfortunately, the specified page no longer exists, so the punchline is a mystery!
Could anyone please shed some light on the previous method, or suggest a new solution for LT 2020?
Thanks.
Solved! Go to Solution.
Solved by Paul_Gander. Go to Solution.
Solved by steven-g. Go to Solution.
That link works just fine here??? Basically the trick uses a single latter and turns it into a block with the insertion point at the lower centre of the letter. Then uses the divide command to place that block in alignment along the curve. Then explode the block and one by one edit the letters to form your text. So it is a fairly slow and manual process.
Thanks Steve,
The page exists, but I can see nothing on it apart from a navigational sidebar.
Perhaps some content is deemed unsafe by some blocker or another.
I now understand the concept of the workaround, thanks.
Gosh! such a pain.
I might have to live with the horrid aesthetic itch of seeing road names overlaid jaggedly across the flow of the aerial photo. (reaches for squishy stress ball).
@dsmithJ6W7H It didn't load up for me either until after a refresh, but here's an image of the relevant part
Howard Walker
Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.
If you're familiar with setting up command buttons/tools you might this macro useful for creating arc-aligned text.
The macro prompts you to pick three points along an arc: the start, a mid point and the end point, just as you would if you were drawing the arc. These points are used to calculate the centre point and determine the direction and orientation of the text. You will then be asked to enter the text at the command line. You will see a prompt to set the system variable PSPROLOG which is used to store the text you type in. This variable is used because it doesn't treat typing a space as being the same as pressing enter and also means you can include quotes in your text. The only restriction is the characters \ and $ can't be used because they have special meaning in the diesel language and will crash the macro.
The individual letters of the text will then be plotted as separate MTEXT objects equally space along the line of the arc from the start point to the end point and passing through the second point. If your current text style doesn't have a fixed height then you will need to set TEXTSIZE to the height you want before you start the macro, or it will use the height of the last text you created.
*^C^C$m=$(if,$(or,$(eq,$(getenv,pgm_c),0),$(eq,$(getenv,pgm_c),)),$(if,$(and,$(getvar,menuecho),5),,^p)menuecho;3;$(if,$(and,$(getvar,menuecho),4),^p)_setenv;pgm_c;1)$(if,$(eq,$(getenv,pgm_c),1),_setenv;pgm_c;0;;pgm_msg;""""""""""Pick arc start point:"""""""""";_getenv;pgm_msg;_id;\_setenv;pgm_c;2)$(if,$(eq,$(getenv,pgm_c),2),_setenv;pgm_c;0;;pgm_spt;$(getvar,lastpoint);;pgm_msg;""""""""""Pick arc mid point:"""""""""";_getenv;pgm_msg;_id;\_setenv;pgm_c;3)$(if,$(eq,$(getenv,pgm_c),3),_setenv;pgm_c;0;;pgm_mpt;$(getvar,lastpoint);;pgm_msg;""""""""""Pick arc end point:"""""""""";_getenv;pgm_msg;_id;\_setenv;pgm_c;4)$(if,$(eq,$(getenv,pgm_c),4),_setenv;pgm_c;0;;pgm_ept;$(getvar,lastpoint);;pgm_c;5)$(if,$(eq,$(getenv,pgm_c),5),_setenv;pgm_c;0;;pgm_msg;""""""""""Enter text:"""""""""";_getenv;pgm_msg;_menuecho;1;_psprolog;\_menuecho;3;_setenv;pgm_c;6)$(if,$(eq,$(getenv,pgm_c),6),_setenv;pgm_c;0;;pgm_slen;$(strlen,$(getvar,psprolog));;pgm_c;7)$(if,$(eq,$(getenv,pgm_c),7),_setenv;pgm_c;$(if,$(=,$(getenv,pgm_slen),0),end,10))$(if,$(eq,$(getenv,pgm_c),10),_setenv;pgm_c;0;;pgm_pt1;'_cal;plt([$(getenv,pgm_spt)],[$(getenv,pgm_mpt)],0.5);\;pgm_c;11)$(if,$(eq,$(getenv,pgm_c),11),_setenv;pgm_c;0;;pgm_pt2;'_cal;plt([$(getenv,pgm_mpt)],[$(getenv,pgm_ept)],0.5);\;pgm_c;12)$(if,$(eq,$(getenv,pgm_c),12),_setenv;pgm_c;0;;pgm_pt3;'_cal;[$(getenv,pgm_pt1)]+nor([$(getenv,pgm_spt)],[$(getenv,pgm_mpt)]);\;pgm_c;13)$(if,$(eq,$(getenv,pgm_c),13),_setenv;pgm_c;0;;pgm_pt4;'_cal;[$(getenv,pgm_pt2)]+nor([$(getenv,pgm_mpt)],[$(getenv,pgm_ept)]);\;pgm_c;14)$(if,$(eq,$(getenv,pgm_c),14),_setenv;pgm_c;0;;pgm_cpt;'_cal;ill([$(getenv,pgm_pt1)],[$(getenv,pgm_pt3)],[$(getenv,pgm_pt2)],[$(getenv,pgm_pt4)]);\;pgm_c;20)$(if,$(eq,$(getenv,pgm_c),20),_setenv;pgm_c;0;;pgm_rad;'_cal;dist([$(getenv,pgm_cpt)],[$(getenv,pgm_spt)]);\;pgm_c;21)$(if,$(eq,$(getenv,pgm_c),21),_setenv;pgm_c;0;;pgm_sang;'_cal;ang([$(getenv,pgm_cpt)],[$(getenv,pgm_spt)]);\;pgm_c;22)$(if,$(eq,$(getenv,pgm_c),22),_setenv;pgm_c;0;;pgm_eang;'_cal;ang([$(getenv,pgm_cpt)],[$(getenv,pgm_ept)]);\;pgm_c;23)$(if,$(eq,$(getenv,pgm_c),23),_setenv;pgm_c;0;;pgm_aang;'_cal;ang([$(getenv,pgm_cpt)],[$(getenv,pgm_spt)],[$(getenv,pgm_ept)]);\;pgm_c;24)$(if,$(eq,$(getenv,pgm_c),24),_setenv;pgm_c;0;;pgm_mang;'_cal;ang([$(getenv,pgm_cpt)],[$(getenv,pgm_spt)],[$(getenv,pgm_mpt)]);\;pgm_td;1;;pgm_c;25)$(if,$(eq,$(getenv,pgm_c),25),_setenv;pgm_c;$(if,$(<,$(getenv,pgm_mang),$(getenv,pgm_aang)),30,26))$(if,$(eq,$(getenv,pgm_c),26),_setenv;pgm_c;0;;pgm_td;-1;;pgm_aang;$(-,360,$(getenv,pgm_aang));;pgm_c;30)$(if,$(eq,$(getenv,pgm_c),30),_setenv;pgm_c;0;;pgm_tang;$(getenv,pgm_sang);;pgm_i;1;;pgm_c;31)$(if,$(eq,$(getenv,pgm_c),31),_setenv;pgm_c;0;;pgm_ainc;$(*,$(/,$(getenv,pgm_aang),$(-,$(getenv,pgm_slen),1)),$(getenv,pgm_td));;pgm_c;loop)$(if,$(eq,$(getenv,pgm_c),loop),_setenv;pgm_c;0;;pgm_chr;""""""""""$(substr,$(getvar,psprolog),$(getenv,pgm_i),1)"""""""""";;pgm_tr;$(+,$(getenv,pgm_tang),$(*,$(getenv,pgm_td),90));;pgm_c;41)$(if,$(eq,$(getenv,pgm_c),41),_setenv;pgm_c;$(if,$(eq,$(getenv,pgm_chr), ),43,42))$(if,$(eq,$(getenv,pgm_c),42),_setenv;pgm_c;0;_-mtext;_from;_none;$(getenv,pgm_cpt);_none;@$(getenv,pgm_rad)<$(getenv,pgm_tang);_justify;_mc;_rotation;$(getenv,pgm_tr);_width;0;$(getenv,pgm_chr);;_setenv;pgm_c;43)$(if,$(eq,$(getenv,pgm_c),43),_setenv;pgm_c;0;;pgm_i;$(+,$(getenv,pgm_i),1);;pgm_tang;$(+,$(getenv,pgm_tang),$(getenv,pgm_ainc));;pgm_c;44)$(if,$(eq,$(getenv,pgm_c),44),_setenv;pgm_c;$(if,$(<=,$(getenv,pgm_i),$(getenv,pgm_slen)),loop,end))$(if,$(eq,$(getenv,pgm_c),end),_setenv;pgm_c;0;_menuecho;0;^c^c$)
For anyone who might be interested in how the macro works I've attached a text file with a list of the variables used and line by line documentation of the code.
Now THAT is what Imma talkin' about folks.
Automation.
I mean , c'mon guys, it's 2020, not 1920.
For all 2020's faults, including a distinct lack of personal rocket-boots (as previously promised), we should be able to have weensie code robots to help guide text along a curved line in ACAD LT.
Thanks Paul!
I'll brush the rust from my macro-button knowledge and try to make that work.
Can't find what you're looking for? Ask the community or share your knowledge.