wimal Posted May 12, 2012 Posted May 12, 2012 (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. Quote
MSasu Posted May 12, 2012 Posted May 12, 2012 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 Quote
MSasu Posted May 12, 2012 Posted May 12, 2012 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! Quote
David Bethel Posted May 12, 2012 Posted May 12, 2012 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 Quote
pBe Posted May 12, 2012 Posted May 12, 2012 I must be missing something, Why not just go straight to (setq ss3 (ssget '((0 . "text"))) You are using Filter after all. Quote
MSasu Posted May 12, 2012 Posted May 12, 2012 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) ) 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.