Jump to content

Recommended Posts

Posted

(defun c:TET ()
(setq pt1 (getpoint"\n First corner "))
(setq pt2 (getcorner pt1"\n 2nd corner"))

 (setq ss3 (ssget "C" pt1 pt2 '((0 . "text"))))
 (setq i 1)
(while (> i 0)(progn
   (setq i (sslength ss3));NO OF ITEMS SELECTED
        (setq sn (ssname ss3 (setq i (1- i))));GETTING ENTTY NAME OF ONE ITEM
     (command "_ddedit" sn)     
))          
);end txt

What is the wrong in my code

why cant I edit text one by one inside the window.

Posted

I have made some corrections to your code:

(defun c:TET ( / pt1 pt2 ss3 i )
(if (and (setq pt1 (getpoint"\n First corner "))
         (setq pt2 (getcorner pt1 "\n 2nd corner"))
         (setq ss3 (ssget "C" pt1 pt2 '((0 . "TEXT")))))
 (progn
  (setq i (1- (sslength ss3)))
  (repeat (sslength ss3)
   (setq sn (ssname ss3 i));GETTING ENTTY NAME OF ONE ITEM

   (command "_DDEDIT" sn "")
   (setq i (1- i))
  )
 )
)
(princ)
);end txt

Posted

You're welcome!

 

Please take care that the way you written the counter was supposed to enter an infinite cycle - what prevented this was the command which wasn't completed!

Posted

This works for me:

 

[b][color=BLACK]([/color][/b]defun c:tet [b][color=FUCHSIA]([/color][/b]/ c1 c2 ss en[b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]initget 1[b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]setq c1 [b][color=NAVY]([/color][/b]getpoint [color=#2f4f4f]"\n1st Corner:   "[/color][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]initget 1[b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]setq c2 [b][color=NAVY]([/color][/b]getcorner c1 [color=#2f4f4f]"\nOpposing Corner:   "[/color][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]and [b][color=NAVY]([/color][/b]setq ss [b][color=MAROON]([/color][/b]ssget [color=#2f4f4f]"C"[/color] c1 c2 '[b][color=GREEN]([/color][/b][b][color=BLUE]([/color][/b]0 . [color=#2f4f4f]"TEXT"[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
      [b][color=NAVY]([/color][/b]while [b][color=MAROON]([/color][/b]setq en [b][color=GREEN]([/color][/b]ssname ss 0[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
             [b][color=MAROON]([/color][/b]command [color=#2f4f4f]"_.DDEDIT"[/color] en[b][color=MAROON])[/color][/b]
             [b][color=MAROON]([/color][/b]command [color=#2f4f4f]""[/color][b][color=MAROON])[/color][/b]
             [b][color=MAROON]([/color][/b]ssdel en ss[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]prin1[b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b]

 

You have way too many references to 'i and you need to exit out of the command.

 

-David

Posted

I must be missing something, Why not just go straight to

 

 (setq ss3 (ssget  '((0 . "text"))) 

 

You are using Filter after all.

Posted

To optimize the code:

(defun c:TET ( / ss3 i )
(if (setq ss3 (ssget '((0 . "TEXT"))))
 (progn
  (setq i (sslength ss3))
  (command "_DDEDIT")
  (repeat (sslength ss3)
   (command (ssname ss3 (setq i (1- i))))
  )
  (command "")
 )
)
(princ)
)

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