Select one object/entity, grip
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.. 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?
GetSel is a command , and Lee gave you two options so you can use either of them 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.
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 iserror: 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)) 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 (ssget "_X" (list (cons 0 "text") (cons 8 a))) 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... 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. Pay attention to locked layers with the selection method "_x"
页:
[1]
2