Hi guys,
I'm trying to explode mtext in a number of our dwgs, here's whaat i've come up with.
EXPLODE
(ssget "X" '((0 . "MTEXT")))
it works fine if i run it at the command prompt but not if i run it via script?
What am i not getting??
Regards,
B
Solved! Go to Solution.
Solved by Shneuph. Go to Solution.
A few of the LISP expressions are not allowed while inside a command.
Try restructuring:
(setq s (ssget...
(command "EXPLODE" s "")
(setq s nil)
[untested]
???
Scot-65
A gift of extraordinary Common Sense does not require an Acronym Suffix to be added to my given name.
Hi scot-65,
well i've tried:
(setq mt (ssget "X" '((0 . "MTEXT")))
(command "EXPLODE" mt "")
(setq mt nil)
but it doeesn't work, i'm a novice at the ssget thing so it maybe something i'm just not getting right
B
For some reason the explode command doesn't accept the entire selection set. I tried your code and with the exception of a missing close parenthesis it seemed like it should have worked. I fixed that but it only exploded 1 of the mtext objects in the sslist. This code adds them to an entitylist and then explodes each one...
(setq mt (ssget "X" '((0 . "MTEXT"))))
(setq ctr 0)
(while (setq cent (ssname mt ctr))
(Setq objlist (append (list cent) objlist))
(setq ctr (1+ ctr))
);while
(foreach mtextobj objlist
(command ".explode" mtextobj)
);foreach
(setq mt nil
ctr nil
objlist nil)
@bodhran wrote:(setq mt (ssget "X" '((0 . "MTEXT"))) <-- Missing ) here.
BTW.. you can see that your code works if you run this line (setq mt (ssget "x" '((0 . "MTEXT")))) and then run (sslength mt) That should return the count of objects in your mt selection set.
BTW #2.. If you also do (setq mt (ssget "x" '((0 . "MTEXT")))) and then (command "move" mt "") see what happens...
@Shneuph wrote:For some reason the explode command doesn't accept the entire selection set. ...it only exploded 1 of the mtext objects in the sslist. ....
This has come up several times before -- search the discussion group for Explode and the mysterious QAFLAGS System Variable.
Try this:
(defun C:MTXEX ( / ss )
(setvar "QAFLAGS" 1)
(setq ss (ssget "x" (list (cons 0 "MTEXT"))))
(if ss
(command "._EXPLODE" ss "")
)
(setvar "QAFLAGS" 0)
)
(princ "\n** Type MTXEX to invoke **")
(princ)
peszel