Commandobill Posted May 3, 2009 Share Posted May 3, 2009 Hey Everyone, Hope you all are having a good weekend. I just started using vl, vla, vlax commands recently and i was wondering if anyone has input on this portion of my code that gets a selection set of all text on a certain layer and changes the height of it. (defun thight ( / dracula textset textlnth eachname) (setq textlnth (sslength (setq textset (ssget "X" (list(cons 0 "*TEXT") (cons 8 "C-ANNO-ROAD")))))) (setq dracula 0) (repeat textlnth (setq eachname (ssname textset dracula)) (vlax-put-property (vlax-ename->vla-object eachname) "height" 2) (setq dracula (1+ dracula)) ) (princ) ) I guess im trying to find the way to make a selection set with vla. Thanks in advance Quote Link to comment Share on other sites More sharing options...
Lee Mac Posted May 3, 2009 Share Posted May 3, 2009 I would approach it like this: [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] thight [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] ss[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vl-load-com[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] ss [b][color=RED]([/color][/b][b][color=BLUE]ssget[/color][/b] [b][color=#ff00ff]"X"[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]0[/color][/b] [b][color=#ff00ff]"*TEXT"[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]8[/color][/b] [b][color=#ff00ff]"C-ANNO-ROAD"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]foreach[/color][/b] Obj [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]vlax-ename->vla-object[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]cadr[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]ssnamex[/color][/b] ss[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-put-height[/color][/b] Obj [b][color=#009999]2.0[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] Quote Link to comment Share on other sites More sharing options...
Freerefill Posted May 3, 2009 Share Posted May 3, 2009 I'd use a .bat file. Quote Link to comment Share on other sites More sharing options...
Lee Mac Posted May 3, 2009 Share Posted May 3, 2009 I'd use a .bat file. .bat file? Why so? Quote Link to comment Share on other sites More sharing options...
Commandobill Posted May 3, 2009 Author Share Posted May 3, 2009 I'd use a .bat file. your a .bat file. lol Thanks lee. is there another way to get that selection? Know what i mean? Quote Link to comment Share on other sites More sharing options...
Lee Mac Posted May 3, 2009 Share Posted May 3, 2009 There is, but you won't like it... [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] thight [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] ss fCode fNme[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vl-load-com[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] ss [b][color=RED]([/color][/b][b][color=BLUE]vla-get-SelectionSets[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-ActiveDocument[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vlax-get-acad-object[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vlax-for[/color][/b] sSet ss [b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-name[/color][/b] sSet[b][color=RED])[/color][/b] [b][color=#ff00ff]"NewSs"[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-delete[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-item[/color][/b] ss [b][color=#ff00ff]"NewSs"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-Add[/color][/b] ss [b][color=#ff00ff]"NewSs"[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] fCode [b][color=RED]([/color][/b][b][color=BLUE]vlax-safearray-fill[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vlax-make-safearray[/color][/b] [color=Blue][b]vlax-vbinteger[/b][/color] [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=#009900]0[/color][/b] . [b][color=#009900]1[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=#009900]0[/color][/b] [b][color=#009900]8[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] fNme [b][color=RED]([/color][/b][b][color=BLUE]vlax-safearray-fill[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vlax-make-safearray[/color][/b] [color=Blue][b]vlax-vbvariant[/b][/color] [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=#009900]0[/color][/b] . [b][color=#009900]1[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=#ff00ff]"*TEXT"[/color][/b] [b][color=#ff00ff]"C-ANNO-ROAD"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] ObjSet [b][color=RED]([/color][/b][b][color=BLUE]vla-select[/color][/b] NewSs [color=Blue][b]acSelectionSetAll[/b][/color] [b][color=BLUE]nil[/color][/b] [b][color=BLUE]nil[/color][/b] fCode fNme[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vlax-for[/color][/b] Obj ObjSet [b][color=RED]([/color][/b][b][color=BLUE]vla-put-height[/color][/b] Obj [b][color=#009999]2.0[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-delete[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-item[/color][/b] ss [b][color=#ff00ff]"NewSs"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] Quote Link to comment Share on other sites More sharing options...
Commandobill Posted May 4, 2009 Author Share Posted May 4, 2009 There is, but you won't like it... [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] thight [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] ss fCode fNme[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vl-load-com[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] ss [b][color=RED]([/color][/b][b][color=BLUE]vla-get-SelectionSets[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-ActiveDocument[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vlax-get-acad-object[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vlax-for[/color][/b] sSet ss [b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-name[/color][/b] sSet[b][color=RED])[/color][/b] [b][color=#ff00ff]"NewSs"[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-delete[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-item[/color][/b] ss [b][color=#ff00ff]"NewSs"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-Add[/color][/b] ss [b][color=#ff00ff]"NewSs"[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] fCode [b][color=RED]([/color][/b][b][color=BLUE]vlax-safearray-fill[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vlax-make-safearray[/color][/b] [color=Blue][b]vlax-vbinteger[/b][/color] [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=#009900]0[/color][/b] . [b][color=#009900]1[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=#009900]0[/color][/b] [b][color=#009900]8[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] fNme [b][color=RED]([/color][/b][b][color=BLUE]vlax-safearray-fill[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vlax-make-safearray[/color][/b] [color=Blue][b]vlax-vbvariant[/b][/color] [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=#009900]0[/color][/b] . [b][color=#009900]1[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=#ff00ff]"*TEXT"[/color][/b] [b][color=#ff00ff]"C-ANNO-ROAD"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] ObjSet [b][color=RED]([/color][/b][b][color=BLUE]vla-select[/color][/b] NewSs [color=Blue][b]acSelectionSetAll[/b][/color] [b][color=BLUE]nil[/color][/b] [b][color=BLUE]nil[/color][/b] fCode fNme[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vlax-for[/color][/b] Obj ObjSet [b][color=RED]([/color][/b][b][color=BLUE]vla-put-height[/color][/b] Obj [b][color=#009999]2.0[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-delete[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-item[/color][/b] ss [b][color=#ff00ff]"NewSs"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] lol well nvm ill stick with what i have, Thanks again! Quote Link to comment Share on other sites More sharing options...
Lee Mac Posted May 4, 2009 Share Posted May 4, 2009 I didn't think you'd like the VL method... Quote Link to comment Share on other sites More sharing options...
Commandobill Posted May 4, 2009 Author Share Posted May 4, 2009 I thought there was a different way than that. If i remember / figure it out ill post it. VL is fun though. Kinda hard to figure out but fun. Quote Link to comment Share on other sites More sharing options...
VVA Posted May 4, 2009 Share Posted May 4, 2009 Good set of library functions VxSsetSelect - ActiveX counterpart to 'ssget' Quote Link to comment Share on other sites More sharing options...
Patrick_35 Posted May 4, 2009 Share Posted May 4, 2009 Hi I translate (defun thight ( / dracula textset textlnth eachname) (setq textlnth (sslength (setq textset (ssget "X" (list(cons 0 "*TEXT") (cons 8 "C-ANNO-ROAD")))))) (setq dracula 0) (repeat textlnth (setq eachname (ssname textset dracula)) (vlax-put-property (vlax-ename->vla-object eachname) "height" 2) (setq dracula (1+ dracula)) ) (princ) ) in vl (defun c:thight(/ sel txt) (vl-load-com) (and (ssget "X" (list (cons 0 "TEXT,MTEXT") (cons 8 "C-ANNO-ROAD"))) ; Don't use *text because Rtext (progn (vlax-for txt (setq sel (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object)))) (vla-put-height txt 2) ) (princ (strcat "\nChange " (itoa (vla-get-count sel)) " text.")) (vla-delete sel) ) ) (princ) ) @+ Quote Link to comment Share on other sites More sharing options...
Lee Mac Posted May 4, 2009 Share Posted May 4, 2009 I suppose that is kind of a merger between the two Quote Link to comment Share on other sites More sharing options...
Patrick_35 Posted May 4, 2009 Share Posted May 4, 2009 If you want. When you use ssget, there are already in activeselectionset and you don't need to create a new selection. Use the selections in vlisp is really hard, especially with the filters when it is so simple with ssget. @+ Quote Link to comment Share on other sites More sharing options...
Lee Mac Posted May 4, 2009 Share Posted May 4, 2009 I just wanted to show him how to use the selection sets in VL - another option to ssget. Also, I have a question for you - What if you have two selection sets using ssget, how do you operate on these using activeselectionset? Quote Link to comment Share on other sites More sharing options...
Patrick_35 Posted May 4, 2009 Share Posted May 4, 2009 In this choice, I am compelled to do as you indicated at Commandobill, but honestly, with a filter wise enough, I never needed to work with two selections sets. @+ Quote Link to comment Share on other sites More sharing options...
Lee Mac Posted May 4, 2009 Share Posted May 4, 2009 I can see what you are saying, I was just thinking of the possibilities Quote Link to comment Share on other sites More sharing options...
Commandobill Posted May 4, 2009 Author Share Posted May 4, 2009 Hi ; Don't use *text because Rtext why wouldnt i want to scale rtext? Even if by chance i made a mistake and put rtext on that layer i would want it scaled... right? Quote Link to comment Share on other sites More sharing options...
Patrick_35 Posted May 5, 2009 Share Posted May 5, 2009 For example, vla object of rtext doesn't work with acad 2006 @+ Quote Link to comment Share on other sites More sharing options...
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.