maybe any one here already know how to create macro and also create script, have u try to combine the both? i have, its cool and a great solusion to resolve the limited character space that provide in toolspalettes menu, but not the amount of character limitation,I 've created a script within a macro, but there's not the reason using a script to manipulate the amount of character, becos when the menu executed , both the macro character and the script still evaluated by lt, and when those character exceed the limits, the macro terminated (yes it is, the macro has a limits in character amount, approx to 2200 character, maybe.. i dunno the exact number...i use acadlt2008, i dunno is there a limits or no in full acad ),so i use the script just to make easier when it needs to edit or modify in future, but we can still manipulate them (character limits) by creating a macro in the environtment variable ( will created when we use command "setenv" in lt, full scale of autocad doesn't support this one) and call this variable in the main macro ( i named this kinda of macro as a nested macro ..hehehe..i dunno what is the rite name)

here this the sample macro i've created that use macro menus,script,and diesel,
note: this macro won't work on your computer, becos some of the menu below calls for environtment variable names wich coz doesn't exist on your acadlt, i just want to show you how it was created and it perfectly works in whole computer in my office,but you may modify the codes as necessery as you need

one important thing when we use a script within diesel/macro, you should set the file dialog off /0 (filedia "0")before calling the script file,and set it on/1 after call the script,then continue to macro/diesel
....filedia;0;script;standar-1.scr;filedia;1;....

^c^cmenuecho;0;setenv;dimpmpt;"Please enter the drawing scale i.e. l:100 ";setenv;dimpmpt;\;^C^C^pMENUECHO;3;-style;dim$m=$(getenv,dimpmpt);romand;0;.8;;;;;dimtxsty;dim$m=$(getenv,dimpmpt);dimlfac;$m=$(eval,$(if,$(=,$(getvar,tilemode),1)$,1,$m=$(getenv,dimpmpt)));dimscale;$m=$(eval,$(if,$(=,$(getvar,tilemode),1)$,$m=$(getenv,dimpmpt),1));
filedia;0;script;standar-1.scr;filedia;1;-la;n;Ar_dim$m=$(getenv,dimpmpt);c;4;Ar_dim$m=$(getenv,dimpmpt);s;Ar_dim$m=$(getenv,dimpmpt);;$(if,$($(eval,$(getenv,func)),$(eval,$(getenv,valid)),$(eval,$(getenv,codes)))$,;,U;$(getenv,err1)u;;menuecho;0);setenv;mail;$m=$(if,$(<=,$(getvar,date),$(eval,$(getenv,extime)))$,wahyudin@airmasasri.com,"")


and this is the script file (see..it is more convenient to our eyes, when we need to edit , than the codes above):

-insert DDOT 0,0
-insert Dlea 0,0
Erase L
Erase L
dimassoc 1
dimtad 1
dimtih off
dimtoh off
dimtix on
dimsho off
dimblk ddot
dimblk1 ddot
dimblk2 ddot
DIMLDRBLK DLEA
dimclrd 15
dimclre 15
dimclrt 4
dimdli 0
dimgap 1
dimtmove 2
dimtol off
dimtolj 1
dimfit 5
dimtofl on
dimdec 0
dimtxt 2.5
dimasz 1
dimexo 2
dimexe 0