Jump to content

Select one object/entity, gripped all same entity within the layer


Ahmeds

Recommended Posts

What function should i use to do that? I'm planning to change all entities in one layer but its is hard to select by windowing/crossing method because i have many entities in my drawing, so, i want to just click one but gripped all objects in the same layer to change simultaneously in just one command.

 

Thanks in advance..

Link to comment
Share on other sites

QSelect / GetSel

 

Thanks Lee, but as I go to Autodesk Help (AutoLisp Functions) to see an example as my reference I've notice that there is no functions such as Getsel.

can u please give me an example of that?

Link to comment
Share on other sites

A third built-in alternative is the FILTER command.

 

The GETSEL command is part of Express pack; for this reason it isn’t listed in AutoCAD’s help. If you cannot call it at command prompt, too, this may be from either the fact that you don’t have that extension installed, or that you are using the LT type of AutoCAD.

Link to comment
Share on other sites

GetSel is a command , and Lee gave you two options so you can use either of them ;)

 

Ok, I got you guys.. Thanks!

 

I tried this routine to make a selection and change all text heights in just one command but all I've got is error: bad argument type: lselsetp

 

Would you please help me to do this right..

 

(defun c:CTH ()
   (graphscr)
   ;(prompt "text height to change")(terpri)
   (setq a (car (entsel)))(terpri)
   (if a (setq a (cdr(assoc 8 (entget a)))
  	sslst(list (cons 0 "text")(cons 8 a))
  )
   );end if
 
          (setq nh(getreal "New Text Height: "))
          ;(princ "\nWORKING\n")
       (setq N (sslength sslst))
         (progn
         (setq n1 N)
         (repeat N
           (setq n1 (- n1 1))
           (setq b (ssname sslst n1))
           (setq c (cdr(assoc 0(entget b))))
           (if (= c "TEXT") (progn
               (setq e (entget b))
               (setq f (assoc 40 e))
               (setq g (atof(rtos(cdr f)2 6)))
               (entmod (subst(cons(car f) nh) f e))

           ))
           ))

(princ)
)

Edited by Ahmeds
Link to comment
Share on other sites

That code attempts to treat a list as a selection set; I believe that this line:

sslst (list (cons 0 "text") (cons 8 a))

should be instead:

sslst [color=red](ssget "_X" [/color](list (cons 0 "text") (cons 8 a)[color=red])[/color])

Link to comment
Share on other sites

well, i got it now.. here it is..

 

(defun c:CTH ()
   (graphscr)
   (prompt "text height to change")(terpri)
   (setq x (car (entsel)))(terpri)
   (if x (setq x (cdr(assoc 8 (entget x)))
  	sslst(list (cons 0 "text")(cons 8 x))
  )
   );end if
   (setq a (ssget "x" sslst)) 
          (setq nh(getreal "New Text Height: "))
        (setq N (sslength a))
         (progn
         (setq n1 N)
         (repeat N
           (setq n1 (- n1 1))
           (setq b (ssname a n1))
           (setq c (cdr(assoc 0(entget b))))
           (if (= c "TEXT") (progn
               (setq e (entget b))
               (setq f (assoc 40 e))
               (setq g (atof(rtos(cdr f)2 6)))
               (entmod (subst(cons(car f) nh) f e))

           ))
           ))

(princ)
)

 

Thank you Guys...

Edited by Ahmeds
Link to comment
Share on other sites

You should localize your variables and include the entire processing in the IF, or at least ensure that exit if user didn't select first text item. Just run your routine twice in a row, and second time do not select a text label, input a text height different than at first run and see what is happening.

Also, please edit the above port and add the required code tags. Thank you.

Link to comment
Share on other sites

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