Visual LISP, AutoLISP and General Customization
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

script to explode mtext

6 REPLIES 6
SOLVED
Reply
Message 1 of 7
bodhran
1983 Views, 6 Replies

script to explode mtext

 

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

6 REPLIES 6
Message 2 of 7
scot-65
in reply to: bodhran

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.


Message 3 of 7
bodhran
in reply to: scot-65

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

Message 4 of 7
Shneuph
in reply to: bodhran

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

---sig---------------------------------------
'(83 104 110 101 117 112 104 64 71 109 97 105 108 46 99 111 109)
Message 5 of 7
bodhran
in reply to: Shneuph

 

**** parenthesis!!

 

Thanks that's exxcellent!! work a treat!!

 

B

Message 6 of 7
Kent1Cooper
in reply to: Shneuph


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

Kent Cooper, AIA
Message 7 of 7
peszel
in reply to: bodhran

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

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report

”Boost