GP_ Posted July 21, 2012 Share Posted July 21, 2012 Hi, I can exit with ESC, but not very elegant. How to exit with right click? Thanks. [color=red]([/color][color=blue]defun[/color] [color=black]c:Test1[/color] [color=red]([/color][color=blue]/[/color][color=black] i [/color][color=red])[/color] [color=red]([/color][color=blue]if[/color] [color=red]([/color][color=blue]setq[/color] i [color=red]([/color][color=blue]getint[/color] [color=#a52a2a]"\nSpecify start number: "[/color][color=red]))[/color] [color=red]([/color][color=blue]while[/color] [color=red]([/color][color=blue]entmake[/color] [color=darkred]'[/color][color=red](([/color][color=#009900]0[/color] [color=darkred].[/color] [color=#a52a2a]"BLOCK"[/color][color=red])([/color][color=#009900]2[/color] [color=darkred].[/color] [color=#a52a2a]"TT"[/color][color=red])([/color][color=#009900]70[/color] [color=darkred].[/color] [color=#009900]0[/color][color=red])([/color][color=#009900]10[/color] [color=#009999]0.0[/color] [color=#009999]0.0[/color] [color=#009999]0.0[/color][color=red])))[/color] [color=red]([/color][color=blue]entmake[/color] [color=red]([/color][color=blue]list[/color] [color=red]([/color][color=blue]cons[/color] [color=#009900]0[/color] [color=#a52a2a]"TEXT"[/color][color=red])[/color] [color=red]([/color][color=blue]cons[/color] [color=#009900]8[/color] [color=red]([/color][color=blue]getvar[/color] [color=#a52a2a]"clayer"[/color][color=red]))[/color] [color=red]([/color][color=blue]cons[/color] [color=#009900]7[/color] [color=red]([/color][color=blue]getvar[/color] [color=#a52a2a]"textstyle"[/color][color=red]))[/color] [color=red]([/color][color=blue]cons[/color] [color=#009900]10[/color] [color=darkred]'[/color][color=red]([/color][color=#009999]0.0[/color] [color=#009999]0.0[/color][color=red]))[/color] [color=red]([/color][color=blue]cons[/color] [color=#009900]40[/color] [color=red]([/color][color=blue]getvar[/color] [color=#a52a2a]"textsize"[/color][color=red]))[/color] [color=red]([/color][color=blue]cons[/color] [color=#009900]1[/color] [color=red]([/color][color=blue]itoa[/color] i[color=red]))[/color] [color=red])[/color] [color=red])[/color] [color=red]([/color][color=blue]entmake[/color] [color=darkred]'[/color][color=red](([/color][color=#009900]0[/color] [color=darkred].[/color] [color=#a52a2a]"ENDBLK"[/color][color=red])))[/color] [color=red]([/color][color=blue]prompt[/color] [color=#a52a2a]"\nInsertion Point:"[/color] [color=red])[/color] [color=red]([/color][color=blue]command[/color] [color=#a52a2a]"_-INSERT"[/color] [color=#a52a2a]"TT"[/color] [color=black]pause[/color] [color=#a52a2a]"1"[/color] [color=#a52a2a]"1"[/color] [color=#a52a2a]"0"[/color][color=red])[/color] [color=red]([/color][color=blue]command[/color] [color=#a52a2a]"_explode"[/color] [color=red]([/color][color=blue]entlast[/color][color=red]))[/color] [color=red]([/color][color=blue]setq[/color] i [color=red]([/color][color=blue]1+[/color] i[color=red]))[/color] [color=red])[/color] [color=red]([/color][color=blue]princ[/color][color=red])[/color] [color=red])[/color] [color=red]([/color][color=blue]princ[/color][color=red])[/color] [color=red])[/color] [color=red]([/color][color=blue]defun[/color] [color=black]c:Test2[/color] [color=red]([/color][color=blue]/[/color] i TT [color=red])[/color] [color=red]([/color][color=blue]if[/color] [color=red]([/color][color=blue]setq[/color] i [color=red]([/color][color=blue]getint[/color] [color=#a52a2a]"\nSpecify start number: "[/color][color=red]))[/color] [color=red]([/color][color=blue]while[/color] [color=red]([/color][color=blue]setq[/color] TT [color=red]([/color][color=blue]entmakex[/color] [color=red]([/color][color=blue]list[/color] [color=red]([/color][color=blue]cons[/color] [color=#009900]0[/color] [color=#a52a2a]"TEXT"[/color][color=red])[/color] [color=red]([/color][color=blue]cons[/color] [color=#009900]8[/color] [color=red]([/color][color=blue]getvar[/color] [color=#a52a2a]"clayer"[/color][color=red]))[/color] [color=red]([/color][color=blue]cons[/color] [color=#009900]7[/color] [color=red]([/color][color=blue]getvar[/color] [color=#a52a2a]"textstyle"[/color][color=red]))[/color] [color=red]([/color][color=blue]cons[/color] [color=#009900]10[/color] [color=darkred]'[/color][color=red]([/color][color=#009999]0.0[/color] [color=#009999]0.0[/color][color=red]))[/color] [color=red]([/color][color=blue]cons[/color] [color=#009900]40[/color] [color=red]([/color][color=blue]getvar[/color] [color=#a52a2a]"textsize"[/color][color=red]))[/color] [color=red]([/color][color=blue]cons[/color] [color=#009900]1[/color] [color=red]([/color][color=blue]itoa[/color] i[color=red]))[/color] [color=red])[/color] [color=red])[/color] [color=red])[/color] [color=red]([/color][color=blue]prompt[/color] [color=#a52a2a]"\nInsertion Point:"[/color] [color=red])[/color] [color=red]([/color][color=blue]command[/color] [color=#a52a2a]"_cutclip"[/color] TT [color=#a52a2a]""[/color] [color=#a52a2a]"_pasteclip"[/color] [color=black]pause[/color][color=red])[/color] [color=red]([/color][color=blue]setq[/color] i [color=red]([/color][color=blue]1+[/color] i[color=red]))[/color] [color=red])[/color] [color=red]([/color][color=blue]princ[/color][color=red])[/color] [color=red])[/color] [color=red]([/color][color=blue]princ[/color][color=red])[/color] [color=red])[/color] Quote Link to comment Share on other sites More sharing options...
MSasu Posted July 21, 2012 Share Posted July 21, 2012 Not sure that how to achive that with you current code - please check the solution from this previous thread using GRREAD function. Quote Link to comment Share on other sites More sharing options...
Tharwat Posted July 21, 2012 Share Posted July 21, 2012 I think the grread function is the right choice in this issue Try it GP (defun c:Test (/ i gr p v) ;;;;; Tharwat 21. July. 2012 ;;;; (defun _Text ( i ) (entmakex (list (cons 0 "TEXT") (cons 8 (getvar "clayer")) (cons 7 (getvar "textstyle")) (cons 10 '(0. 0. 0.)) (cons 40 (getvar "textsize")) (cons 1 (itoa i)) ) ) ) (if (setq i (getint "\r Specify start number: ")) (progn (setq v (_Text i)) (while (or (eq (car (setq gr (grread t 15 0))) 5) (eq (car gr) 3) ) (redraw) (entmod (subst (cons 10 (cadr gr)) (assoc 10 (entget v)) (entget v)) ) (if (eq (car gr) 3) (setq v (_Text (setq i (1+ i)))) ) ) ) (princ) ) (if (eq (car gr) 25) (entdel v) ) (princ) ) Quote Link to comment Share on other sites More sharing options...
GP_ Posted July 21, 2012 Author Share Posted July 21, 2012 Thanks Mircea and Tharwat The problem is grread does not allow insertion with OSNAP. Quote Link to comment Share on other sites More sharing options...
Tharwat Posted July 21, 2012 Share Posted July 21, 2012 The problem is grread does not allow insertion with OSNAP. Read this thread in Swamp , it's very precious and I am sure that you could handle it by your self . http://www.theswamp.org/index.php?topic=9133.0 Quote Link to comment Share on other sites More sharing options...
GP_ Posted July 22, 2012 Author Share Posted July 22, 2012 Read this thread in Swamp , it's very precious and I am sure that you could handle it by your self . Wonderful Thank you Quote Link to comment Share on other sites More sharing options...
Lee Mac Posted July 22, 2012 Share Posted July 22, 2012 To my knowledge, you cannot exit using right-click whilst the -insert command takes focus, since your program cannot detect the user input issued to the -insert command. However, here is an alternative method to exit using Esc: ([color=BLUE]defun[/color] c:test ( [color=BLUE]/[/color] c e i ) ([color=BLUE]setq[/color] c ([color=BLUE]getvar[/color] 'cmdecho)) ([color=BLUE]setvar[/color] 'cmdecho 0) ([color=BLUE]if[/color] ([color=BLUE]setq[/color] i ([color=BLUE]getint[/color] [color=MAROON]"\nSpecify Start Number: "[/color])) ([color=BLUE]progn[/color] ([color=BLUE]while[/color] ([color=BLUE]progn[/color] ([color=BLUE]entmake[/color] '((0 . [color=MAROON]"BLOCK"[/color]) (2 . [color=MAROON]"TT"[/color]) (70 . 0) (10 0.0 0.0 0.0))) ([color=BLUE]entmake[/color] ([color=BLUE]list[/color] '(0 . [color=MAROON]"TEXT"[/color]) ([color=BLUE]cons[/color] 8 ([color=BLUE]getvar[/color] 'clayer)) ([color=BLUE]cons[/color] 7 ([color=BLUE]getvar[/color] 'textstyle)) '(10 0.0 0.0 0.0) ([color=BLUE]cons[/color] 40 ([color=BLUE]getvar[/color] 'textsize)) ([color=BLUE]cons[/color] 1 ([color=BLUE]itoa[/color] i)) ) ) ([color=BLUE]entmake[/color] '((0 . [color=MAROON]"ENDBLK"[/color]))) ([color=BLUE]princ[/color] [color=MAROON]"\nInsertion Point [Esc to Exit]: "[/color]) ([color=BLUE]setq[/color] e ([color=BLUE]entlast[/color])) ([color=BLUE]if[/color] ([color=BLUE]and[/color] ([color=BLUE]vl-cmdf[/color] [color=MAROON]"_.-insert"[/color] [color=MAROON]"TT"[/color] [color=BLUE]pause[/color] 1.0 1.0 0.0) ([color=BLUE]not[/color] ([color=BLUE]eq[/color] e ([color=BLUE]setq[/color] e ([color=BLUE]entlast[/color])))) ) ([color=BLUE]progn[/color] ([color=BLUE]command[/color] [color=MAROON]"_.explode"[/color] e) ([color=BLUE]setq[/color] i ([color=BLUE]1+[/color] i)) ) ) ) ) ([color=BLUE]princ[/color] [color=MAROON]"\nExit Program."[/color]) [color=GREEN];; To show program has not errored[/color] ) ) ([color=BLUE]setvar[/color] 'cmdecho c) ([color=BLUE]princ[/color]) ) Note that this method will not cause the program to error, as demonstrated by the message printed on exit. Quote Link to comment Share on other sites More sharing options...
GP_ Posted July 23, 2012 Author Share Posted July 23, 2012 ...you cannot exit using right-click whilst the -insert command takes focus... If you say so I think that it can not be belied. Thanks for the code. 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.