Visual LISP, AutoLISP and General Customization
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic to the Top
- Bookmark
- Subscribe
- Printer Friendly Page
script to explode mtext
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
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.
Re: script to explode mtext
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
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]
???
Re: script to explode mtext
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
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
Re: script to explode mtext
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
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...
'(83 104 110 101 117 112 104 64 71 109 97 105 108 46 99 111 109)
Re: script to explode mtext
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
**** parenthesis!!
Thanks that's exxcellent!! work a treat!!
B
Re: script to explode mtext
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
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.
Re: script to explode mtext
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
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
