Why would this not work?
It appears that I can only create three of the four selection sets, the
parent set "ss1" and two out of the three "child" sets. Anyone know what I'm
doing wrong here?
Thanks
__________________________________________________ __________________________
_____________
(defun c:dimsort ()
(setvar "cmdecho" 0)
(setq ss1 (ssget "X" '((0 . "DIMENSION"))))
; This grabs all dims in drawing.
(setq ssr (ssadd)) ;This creates a new empty selection set.
(setq ssa (ssadd)) ;This creates a new empty selection set.
(setq ssd (ssadd)) ;This creates a new empty selection set.
(setq R (cons 100 "AcDbRadialDimension"))
(setq A (cons 100 "AcDb2LineAngularDimension"))
(setq D (cons 100 "AcDbDiametricDimension"))
;Establish what you are looking for in the selection sets.
(setq index 0)
(repeat (sslength ss1)
(setq dimobj (ssname ss1 index)) ; This grabs one dim object from the
selection set.
(setq dimguts (entget dimobj)) ; This shows the guts of the dim object.
(if (member R dimguts)
(progn (setq ssr (ssadd dimobj ssr))
(setq ss1 (ssdel dimobj ss1))
)
) ;if radial add to ssr remove from ss1
(if (member A dimguts)
(progn (setq ssa (ssadd dimobj ssa))
(setq ss1 (ssdel dimobj ss1))
)
) ;if angularl add to ssa remove from ss1
(if (member D dimguts)
(progn (setq ssd (ssadd dimobj ssd))
(setq ss1 (ssdel dimobj ss1))
)
) ;if diametric add to ssd remove from ss1
(setq index (1+ index))
)
)
;should have four selection sets of dimensions
;one radial "ssr" one angular "ssa"one diametric "ssd"
; and one with all the others "ss1"


Reply With Quote
