Jump to content

Recommended Posts

Posted

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]

Posted

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)
)

Posted

Thanks Mircea and Tharwat :)

 

The problem is grread does not allow insertion with OSNAP.

Posted
Read this thread in Swamp , it's very precious and I am sure that you could handle it by your self . ;)

 

Wonderful

Thank you

Posted

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.

Posted
...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.

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...