sachindkini Posted March 24, 2010 Posted March 24, 2010 Dear All, It’s possible AutoCad selection save (s1, s2, s3 etc.) & after some time reuse the selection sets inside some lisp or inside a command Just like Photoshop selection Quote
BearDyugin Posted March 24, 2010 Posted March 24, 2010 Of course, but! Selection sets consume AutoCAD temporary file slots, so AutoLISP is not permitted to have more than 128 open at one time. and they exist only in a single session, ie closed\open and they're gone: ( Quote
Lee Mac Posted March 24, 2010 Posted March 24, 2010 I think TimSpangler wrote something that would facilitate this a while back. Quote
ILoveMadoka Posted March 24, 2010 Posted March 24, 2010 At the Command: prompt type this... (setq ss1 (ssget)) Select your objects. This creates a selection set called ss1. To retrieve (or reuse) the selection set just type !ss1 at any Select Objects: prompt. Once you close the drawing the selection set is gone like the others have said. You can do this at anytime from the command prompt. I had several selection sets like this written into my in my menu. Hope this helps... Quote
fixo Posted March 24, 2010 Posted March 24, 2010 Dear All, It’s possible AutoCad selection save (s1, s2, s3 etc.) & after some time reuse the selection sets inside some lisp or inside a command Just like Photoshop selection Another way to create groups separately for the particular selection set These woul stored in the current drawing See Help file about ~'J'~ Quote
sachindkini Posted March 25, 2010 Author Posted March 25, 2010 Another way to create groups separately for the particular selection setThese woul stored in the current drawing See Help file about ~'J'~ At the Command: prompt type this... (setq ss1 (ssget)) Select your objects. This creates a selection set called ss1. To retrieve (or reuse) the selection set just type !ss1 at any Select Objects: prompt. Once you close the drawing the selection set is gone like the others have said. You can do this at anytime from the command prompt. I had several selection sets like this written into my in my menu. Hope this helps... DEAR SIR, THX FOR HELP ME.. Quote
BearDyugin Posted March 26, 2010 Posted March 26, 2010 At the Command: prompt type this... (setq ss1 (ssget)) Select your objects. This creates a selection set called ss1. To retrieve (or reuse) the selection set just type !ss1 at any Select Objects: prompt. Once you close the drawing the selection set is gone like the others have said. You can do this at anytime from the command prompt. I had several selection sets like this written into my in my menu. Hope this helps... I do not know how it was in previous versions, but in 2010 does not happen, ie (setq ss1 (ssget)) works, but the Select Objects: ss1 - no, writes *Invalid selection*, but if you first select(highlight) selection (sssetfirst nil ss1), and then apply it to any command that all is well. Or put in command line this (vl-cmdf "command name" ss1 "") for example (vl-cmdf "_move" ss1 "") I think TimSpangler wrote something that would facilitate this a while back. Well ... me, in principle, it is not necessary, just curious, where can I see this (written by TimSpangler) Quote
alanjt Posted March 26, 2010 Posted March 26, 2010 (Can't sleep) Here's a way... You'll need this subroutine: http://www.cadtutor.net/forum/showpost.php?p=271368&postcount=13 ;;; Stored Selection Sets ;;; Required Subroutines: AT:ListSelect ;;; Alan J. Thompson, 03.26.10 (defun c:SSS (/ #Choice #Name #SS) (vl-load-com) (or *SSS:Option* (setq *SSS:Option* "Store")) (initget 0 "Recall rEmove Store") (if (vl-consp *SSS:Sets*) (setq *SSS:Option* (cond ((getkword (strcat "\nStore Selection Sets\nSpecify option. [Recall/rEmove/Store] <" *SSS:Option* ">: " ) ;_ strcat ) ;_ getkword ) (*SSS:Option*) ) ;_ cond ) ;_ setq (setq *SSS:Option* "Store") ) ;_ if (cond ((eq *SSS:Option* "Recall") (if (vl-consp *SSS:Sets*) (and (setq #Choice (car (AT:ListSelect "Recall Stored Selection Sets" "Select Selection Set:" "10" "10" "false" (vl-sort (mapcar 'car *SSS:Sets*) '<) ) ;_ AT:ListSelect ) ;_ car ) ;_ setq (if (vl-position (getvar 'cmdactive) '(1 2)) (and (setq SSS (cdr (assoc #Choice *SSS:Sets*))) (or *AcadDoc* (setq *AcadDoc* (vla-get-activedocument (vlax-get-acad-object)))) (vla-sendcommand *AcadDoc* "!SSS ") ) ;_ and (sssetfirst nil (cdr (assoc #Choice *SSS:Sets*))) ) ;_ if ) ;_ and (alert "No selection sets stored!") ) ;_ if ) ((eq *SSS:Option* "rEmove") (if (vl-consp *SSS:Sets*) (and (setq #Choice (AT:ListSelect "Remove Stored Selection Sets" "Select Selection Set(s):" "10" "10" "true" (vl-sort (mapcar 'car *SSS:Sets*) '<) ) ;_ AT:ListSelect ) ;_ setq (progn (foreach x #Choice (setq *SSS:Sets* (vl-remove (assoc x *SSS:Sets*) *SSS:Sets*))) (print #Choice) (princ (strcat "\n" (itoa (length #Choice)) " stored selection set(s) removed.")) ) ;_ progn ) ;_ and (alert "No selection sets stored!") ) ;_ if ) ((eq *SSS:Option* "Store") (and (/= "" (setq #Name (strcase (getstring t (strcat (if (vl-consp *SSS:Sets*) (strcat "\nStored Selection Sets: " (vl-princ-to-string (vl-sort (mapcar 'car *SSS:Sets*) '<)) ) ;_ strcat "" ) ;_ if "\nSelection set name: " ) ;_ strcat ) ;_ getstring ) ;_ strcase ) ;_ setq ) ;_ /= (or (not (vl-position #Name (mapcar (function car) *SSS:Sets*))) (alert (strcat "Sorry, \"" #Name "\" is already a stored selection set.")) ) ;_ or (setq #SS (ssget)) (setq *SSS:Sets* (cons (cons #Name #SS) *SSS:Sets*)) (princ (strcat "Selection set \"" #Name "\" stored.")) ) ;_ and ) ) ;_ cond (princ) ) ;_ defun Here's something similar I did: http://www.cadtutor.net/forum/showthread.php?t=45215 1 Quote
Lee Mac Posted March 26, 2010 Posted March 26, 2010 Well ... me, in principle, it is not necessary, just curious, where can I see this (written by TimSpangler) I think I saw it on theSwamp.org a while back Quote
ILoveMadoka Posted March 26, 2010 Posted March 26, 2010 I do not know how it was in previous versions, but in 2010 does not happen, ie (setq ss1 (ssget)) works, but the Select Objects: ss1 - no, writes *Invalid selection* (Assuming SS1 has been created...) It's not Select Objects: ss1 It's Select Objects: !ss1 Quote
alanjt Posted March 26, 2010 Posted March 26, 2010 I've updated my previous posting. Now if a command is inactive, it will select everything (for pickfirst) and if a command is active, it will store the chosen selection set as SSS (variable) and print to the command line as "!SSS ". The selection set will remain stored as SSS, which can be called at anytime with "!SSS". Quote
BearDyugin Posted March 27, 2010 Posted March 27, 2010 It's not Select Objects: ss1 It's Select Objects: !ss1 Well, thank ILoveMadoka, I never could understand why I can not use variables in macros. Quote
Recommended Posts
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.