nura235 Posted December 8, 2012 Posted December 8, 2012 Hi, Is there any way to change stack size, say 80% to 90% in all existing mtext? or may be any lisp for it. Regard, nura Quote
Lee Mac Posted December 8, 2012 Posted December 8, 2012 Try the following program: [color=GREEN];; Stack Change - Lee Mac[/color] [color=GREEN];; Alters the stacking percentage for multiple MText objects.[/color] ([color=BLUE]defun[/color] c:stackchange ( [color=BLUE]/[/color] *error* dm in mt nw pc rx ss st ) ([color=BLUE]defun[/color] *error* ( msg ) ([color=BLUE]if[/color] ([color=BLUE]and[/color] ([color=BLUE]=[/color] 'vla-object ([color=BLUE]type[/color] rx)) ([color=BLUE]not[/color] ([color=BLUE]vlax-object-released-p[/color] rx))) ([color=BLUE]vlax-release-object[/color] rx) ) ([color=BLUE]if[/color] ([color=BLUE]not[/color] ([color=BLUE]wcmatch[/color] ([color=BLUE]strcase[/color] msg) [color=MAROON]"*BREAK,*CANCEL*,*EXIT*"[/color])) ([color=BLUE]princ[/color] ([color=BLUE]strcat[/color] [color=MAROON]"\nError: "[/color] msg)) ) ([color=BLUE]princ[/color]) ) ([color=BLUE]while[/color] ([color=BLUE]progn[/color] ([color=BLUE]initget[/color] 6) ([color=BLUE]and[/color] ([color=BLUE]setq[/color] pc ([color=BLUE]getreal[/color] [color=MAROON]"\nSpecify new stack % (1-100): "[/color])) ([color=BLUE]<[/color] 100 pc) ) ) ([color=BLUE]princ[/color] [color=MAROON]"\nStack % must be less than or equal to 100."[/color]) ) ([color=BLUE]if[/color] ([color=BLUE]and[/color] pc ([color=BLUE]setq[/color] ss ([color=BLUE]ssget[/color] [color=MAROON]"_:L"[/color] ([color=BLUE]list[/color] '(0 . [color=MAROON]"MTEXT"[/color]) '(1 . [color=MAROON]"*{*\\S*[#/^]*;}*"[/color]) ([color=BLUE]if[/color] ([color=BLUE]=[/color] 1 ([color=BLUE]getvar[/color] 'cvport)) ([color=BLUE]cons[/color] 410 ([color=BLUE]getvar[/color] 'ctab)) '(410 . [color=MAROON]"Model"[/color]) ) ) ) ) ) ([color=BLUE]if[/color] ([color=BLUE]setq[/color] rx ([color=BLUE]vlax-get-or-create-object[/color] [color=MAROON]"vbscript.regexp"[/color])) ([color=BLUE]progn[/color] ([color=BLUE]vlax-put-property[/color] rx 'global [color=BLUE]actrue[/color]) ([color=BLUE]vlax-put-property[/color] rx 'ignorecase [color=BLUE]actrue[/color]) ([color=BLUE]vlax-put-property[/color] rx 'multiline [color=BLUE]actrue[/color]) ([color=BLUE]vlax-put-property[/color] rx 'pattern [color=MAROON]"\\\\H[0-9]+\\.?[0-9]+x;\\\\S([^;]+);"[/color]) ([color=BLUE]setq[/color] dm ([color=BLUE]getvar[/color] 'dimzin)) ([color=BLUE]setvar[/color] 'dimzin 0) ([color=BLUE]setq[/color] nw ([color=BLUE]strcat[/color] [color=MAROON]"\\H"[/color] ([color=BLUE]rtos[/color] ([color=BLUE]/[/color] pc 100.0) 2 2) [color=MAROON]"x;\\S$1;"[/color])) ([color=BLUE]setvar[/color] 'dimzin dm) ([color=BLUE]repeat[/color] ([color=BLUE]setq[/color] in ([color=BLUE]sslength[/color] ss)) ([color=BLUE]setq[/color] mt ([color=BLUE]vlax-ename->vla-object[/color] ([color=BLUE]ssname[/color] ss ([color=BLUE]setq[/color] in ([color=BLUE]1-[/color] in)))) st ([color=BLUE]vla-get-textstring[/color] mt) ) ([color=BLUE]vla-put-textstring[/color] mt ([color=BLUE]vlax-invoke[/color] rx 'replace st nw)) ) ([color=BLUE]vlax-release-object[/color] rx) ) ([color=BLUE]princ[/color] [color=MAROON]"\nUnable to interface with RegExp object."[/color]) ) ) ([color=BLUE]princ[/color]) ) ([color=BLUE]vl-load-com[/color]) ([color=BLUE]princ[/color]) The above uses Regular Expressions to replace the content of MText formatting codes. Quote
nura235 Posted December 9, 2012 Author Posted December 9, 2012 Thanks to lee and cad tutor forum, its work perfectly as I want. Try the following program: [color=GREEN];; Stack Change - Lee Mac[/color] [color=GREEN];; Alters the stacking percentage for multiple MText objects.[/color] ([color=BLUE]defun[/color] c:stackchange ( [color=BLUE]/[/color] *error* dm in mt nw pc rx ss st ) ([color=BLUE]defun[/color] *error* ( msg ) ([color=BLUE]if[/color] ([color=BLUE]and[/color] ([color=BLUE]=[/color] 'vla-object ([color=BLUE]type[/color] rx)) ([color=BLUE]not[/color] ([color=BLUE]vlax-object-released-p[/color] rx))) ([color=BLUE]vlax-release-object[/color] rx) ) ([color=BLUE]if[/color] ([color=BLUE]not[/color] ([color=BLUE]wcmatch[/color] ([color=BLUE]strcase[/color] msg) [color=MAROON]"*BREAK,*CANCEL*,*EXIT*"[/color])) ([color=BLUE]princ[/color] ([color=BLUE]strcat[/color] [color=MAROON]"\nError: "[/color] msg)) ) ([color=BLUE]princ[/color]) ) ([color=BLUE]while[/color] ([color=BLUE]progn[/color] ([color=BLUE]initget[/color] 6) ([color=BLUE]and[/color] ([color=BLUE]setq[/color] pc ([color=BLUE]getreal[/color] [color=MAROON]"\nSpecify new stack % (1-100): "[/color])) ([color=BLUE]<[/color] 100 pc) ) ) ([color=BLUE]princ[/color] [color=MAROON]"\nStack % must be less than or equal to 100."[/color]) ) ([color=BLUE]if[/color] ([color=BLUE]and[/color] pc ([color=BLUE]setq[/color] ss ([color=BLUE]ssget[/color] [color=MAROON]"_:L"[/color] ([color=BLUE]list[/color] '(0 . [color=MAROON]"MTEXT"[/color]) '(1 . [color=MAROON]"*{*\\S*[#/^]*;}*"[/color]) ([color=BLUE]if[/color] ([color=BLUE]=[/color] 1 ([color=BLUE]getvar[/color] 'cvport)) ([color=BLUE]cons[/color] 410 ([color=BLUE]getvar[/color] 'ctab)) '(410 . [color=MAROON]"Model"[/color]) ) ) ) ) ) ([color=BLUE]if[/color] ([color=BLUE]setq[/color] rx ([color=BLUE]vlax-get-or-create-object[/color] [color=MAROON]"vbscript.regexp"[/color])) ([color=BLUE]progn[/color] ([color=BLUE]vlax-put-property[/color] rx 'global [color=BLUE]actrue[/color]) ([color=BLUE]vlax-put-property[/color] rx 'ignorecase [color=BLUE]actrue[/color]) ([color=BLUE]vlax-put-property[/color] rx 'multiline [color=BLUE]actrue[/color]) ([color=BLUE]vlax-put-property[/color] rx 'pattern [color=MAROON]"\\\\H[0-9]+\\.?[0-9]+x;\\\\S([^;]+);"[/color]) ([color=BLUE]setq[/color] dm ([color=BLUE]getvar[/color] 'dimzin)) ([color=BLUE]setvar[/color] 'dimzin 0) ([color=BLUE]setq[/color] nw ([color=BLUE]strcat[/color] [color=MAROON]"\\H"[/color] ([color=BLUE]rtos[/color] ([color=BLUE]/[/color] pc 100.0) 2 2) [color=MAROON]"x;\\S$1;"[/color])) ([color=BLUE]setvar[/color] 'dimzin dm) ([color=BLUE]repeat[/color] ([color=BLUE]setq[/color] in ([color=BLUE]sslength[/color] ss)) ([color=BLUE]setq[/color] mt ([color=BLUE]vlax-ename->vla-object[/color] ([color=BLUE]ssname[/color] ss ([color=BLUE]setq[/color] in ([color=BLUE]1-[/color] in)))) st ([color=BLUE]vla-get-textstring[/color] mt) ) ([color=BLUE]vla-put-textstring[/color] mt ([color=BLUE]vlax-invoke[/color] rx 'replace st nw)) ) ([color=BLUE]vlax-release-object[/color] rx) ) ([color=BLUE]princ[/color] [color=MAROON]"\nUnable to interface with RegExp object."[/color]) ) ) ([color=BLUE]princ[/color]) ) ([color=BLUE]vl-load-com[/color]) ([color=BLUE]princ[/color]) The above uses Regular Expressions to replace the content of MText formatting codes. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.