Author Topic: Add object to selection set  (Read 4920 times)

0 Members and 1 Guest are viewing this topic.

csgoh

  • Newt
  • Posts: 176
Add object to selection set
« on: December 24, 2005, 08:49:19 PM »
Hi all;
A very Merry X'mas to all and a Happy new 2006. I am now learning the selection sets using activeX using the Afralisp tutorial.
I am trying to write a routine to return a list of objects but bump into an error where I want to add another object into the selection by using (vla-additems ssobj (vlax-make-variant baseobj)). It gives me this error :- "error: Automation error. Invalid argument pSelSet In ASdditems". Any help is much appreciated.
I have 3 other questions.
1) How do we check whether an object is in a selection set. Instead of iterating thru every object in the selection set by comparing the objectid, is there a shorter way?

2) If an object is in the selection set, how do we delete that particular object?

3) If an object is not in the selection set, how do we add the new object into the selection set?

I have also used some functions from this forum and modify it to suit my needs and I find it a great help in learning vlisp. I don't spend a lot of time writing but am trying to because of work commitments. Writing programs and learning another language is part of my interests and also it helps me in my work.


Thanks
My lips routine

Code: [Select]
;; Convert a list into a safearray
;;
(defun ListToSafearray (symVariableType lstValues / safValues)
 (setq safValues (vlax-make-safearray symVariableType
                  (cons 0 (1- (length lstValues)))))
 (vlax-safearray-fill safValues lstValues)
) ;listToSafeArray

   ;; Function returns a list of 3D points from a continuous list
   ;; as returned by (vlax-safearray->list (vlax-variant-value X))
   ;; Data list is (x1 y1 z1 x2 y2 z2 ....) for 3D coords
   ;; Data list is (x1 y1 x2 y2 ....) for 2D coords
   ;; as returned by (vlax-get object "Coordinates"
   ;; Returns list ((x1 y1 z1) (x2 y2 z2) ....) 3d coordinates
   ;; Returns list ((x1 y1) (x2 y2) ....) 3d coordinates
   ;;
   (defun @cv_parse_list (data n / item new)
      (foreach element (reverse data)
         (setq item (cons element item))
         (if (= (length item) n)
            (setq new (cons item new) item nil)
         )

      )
      new
   );@cv_parse_list

;; function to return a list ( x1 y1 z1 ...) from
;; a list ((x1 y1 z1)(x2 y2 z2) .....)
;; z-value? Variable to check if z value to return z zero
;; (wg:GetSingle3D-list coordlst z-value?)
;;
(defun wg:GetSingle3D-list(coordlst z-value? / calist )
 (setq calist nil)
 (foreach n coordlst
  (if z-value?
   (setq calist (append calist (list(car n)) (list (cadr n))(list (caddr n))))
   (setq calist (append calist (list(car n)) (list (cadr n))(list 0.00)))
  )
 );foreach
 calist
);wg:GetSingle3D-list
 
(defun wg:dxf (code ename)
 (cdr (assoc code (entget ename)))
); wg:dxf


;; function to return the vertices a 2D list  (x1 y1 x2 y2  ...)
;; to a list (x1 y1 z x2 y2 z .....)
;;
(defun wg:GetLwPolylineVertices3D-list (coordlst zvalue?
                                       / coords
                                       )
   (while coordlst
    (setq coords (append coords (list (car coordlst))(list (cadr coordlst))
                              (list zvalue?))
          coordlst (cddr coordlst)
    )
   );while
     coords
);wg:GetLwPolylineVertices3D-list

;;
;; Function to return a list of the vertices of the polygon in clockwise
;; direction
;; whatlines? = list of line entities to to be tested eg 'LWPOLYLINE POLYLINE
;; polygonClosed? = nil Do not check for polygon close
;; polygonClosed? = T  Check for polygon close
;;
(defun wg:GetClockwisePolygonCoords (e whatlines? polygonClosed?
                                    / ent etype object flag i p1 p2 p3 sum
                                      zelev
                                    )
      (cond
         ((/= (type e) 'ENAME)
           nil
         )
;;
;; whatlines? = '("LWPOLYLINE POLYLINE")
;;
          ((not (vl-position (setq etype (wg:dxf 0 e))
                whatlines?))
             (alert "wrong entity")
             nil
         )
;;
;; flag = 1 polygon is closed
;;
         ((and (setq flag (wg:dxf 70 e))(> (boole 1 16 flag) 0))
             (alert "wrong entity")
             nil
         )
;;
;; polygonClosed? = T ==> selected polyline MUST be closed and prompt user
;;
         ((and polygonClosed? flag (/= (logand 1 flag) 1))
          (alert "open polygon")
             nil
         );condition to select close polygon
         (1
;;
;; get the coordinates - this is not a variant as opposed to
;; vlax-get-Property object "Coordinates"
;; vlax-get object "coordinates" returns a single list of coord
;; (x1 y1 z1 x2 y2 z2 .......)
;;
            (setq object (vlax-ename->vla-object e)
                  coords (vlax-get object "Coordinates")
            )
;;
;; if selected polyline is LWPOLYLINE
;; coords return a list of 2D ie (x1 y1 x2 y2 ....)
;; add the elevation into the coord list to make it 3D
;; final coords = (x1 y1 z x2 y2 z ....)
;; (wg:GetLwPolylineVertices3D-list (list of 2D coords) z-zlue)
;;
            (if (= etype "LWPOLYLINE")
             (progn
              (setq zelev (vlax-get-Property object 'Elevation)
                    coords (wg:GetLwPolylineVertices3D-list coords zelev )
              )
             )
            )

            (setq coords (@cv_parse_list coords 3)
                  i 1
                  sum 0.0
            )
            (and
               flag
               (= (logand 1 flag) 1) ; closed polygon
               (setq coords (reverse (cons (car coords)(reverse coords))))
            )
            (repeat (- (length coords) 2)
               (setq p1  (nth (1- i) coords)
                     p2  (nth i coords)
                     i   (1+ i)
                     p3  (nth i coords)
                ); delete later and (setq
                (setq     sum (+ sum (@delta (angle p1 p2)(angle p2 p3)))
               )
            )
            (if (minusp sum) coords (reverse coords))
         );1
      );cond
   );wg:GetClockwisePolygonCoords


;;
;; GetObjectsByPolygon
;; Mode? = 2 = acSelectionSetfence
;; Mode? = 6 = acSelectionSetWindowPolygon
;; Mode? = 7 = acSelectionSetCrossingPolygon
;; PointList list of coords
;; whatobjects = filtered objects
;; Returns a list of the filtered objects
;; BaseObj = nil Do not remove from selection set
;; BaseObj = baseobj - to remove it from the selection set
;;
(defun wg:GetObjectsByPolygon-list
                               ( ActivedocumentObj whatobjects PointList mode?
                                BaseObj
                                / objects-list   obj
                                ssets ss1A ssobj
                                filter_codelist filter_valuelist
                                filter_code    filter_value
                                filter_what? filter_what?STR anss?
                               )

 (setq objects-list nil
        obj          nil
  ) ;_ end of setq
  (setq ssets (vla-get-selectionsets ActivedocumentObj))
  (setq ss1A (vlax-make-variant "ss1"))
  (if (vl-catch-all-error-p
        (vl-catch-all-apply 'vla-item (list ssets ss1A))
      )
    (setq ssobj (vla-add ssets ss1A))
    (progn
      (vla-delete (vla-item ssets ss1A))
      (setq ssobj (vla-add ssets ss1A))
    )
  ) ;_if
  (setq filter_codelist  (mapcar '(lambda (x) (car x)) whatobjects)
        filter_valuelist (mapcar '(lambda (x) (cdr x)) whatobjects)
        filter_code      (vlax-make-safearray
                           vlax-vbinteger
                           (cons 0 (1- (length filter_codelist)))
                         )

        filter_value     (vlax-make-safearray
                           vlax-vbvariant
                           (cons 0 (1- (length filter_valuelist)))
                         )
  )
  (vlax-safearray-fill filter_code filter_codelist)
  (vlax-safearray-fill filter_value filter_valuelist)

    (vla-SelectByPolygon ssobj mode? PointList filter_code filter_value)
;;
;; To add the object polygon into the selection set
;; BaseObj = nil do not add
;; BaseObj = T => add to the selection set ssobj
 (setq anss? Nil)
      (vlax-map-collection ssobj
       '(lambda(x)
         (if (=  (setq objName (vlax-get-property x 'ObjectID))
                 (setq BaseobjName (vlax-get-property baseobj 'ObjectID))
             )
              (setq anss? T)
         )
        )
      );vlax

(if (and BaseObj (not anss?))
 (progn
  (print "BaseObj")(princ baseobj)
  (print "anss? ")(princ anss?)
  (setq ssobj (vla-additems ssobj (vlax-make-variant baseobj)))
 (print "anss?1 ")(princ anss?)
 )
)

 (vlax-for eachobj ssobj
  (setq objects-list(append objects-list (list each-obj)))
 )
(print "anss?? ")(princ anss?)
  objects-list
) ;_ wg:GetObjectsByPolygon-list
  ;;-----------------------------------------------------------------------
  ;; This function returns the deflection angle (in radians) of two angles:
  ;;
   (defun @delta (a1 a2)
      (cond
         ((> a1 (+ a2 pi))
            (setq a2 (+ a2 2pi))
         )
         ((> a2 (+ a1 pi))
            (setq a1 (+ a1 2pi))
         )
      )
      (- a2 a1)
   );@delta


;;
(defun C:test ( /  e coordsClosed BaseObj
                     FilterPoints-list MainPolygonVertex-list   
                     Allobjects-list coordsOpen BaseObj2D obj obj2D
                     IntersectionPoints-list inxnvertex-list
                 )
   (setvar "errno" 0)
  (setq acadObj           (vlax-get-acad-object)
        ;; acad Object
        ActivedocumentObj (vla-get-Activedocument acadObj)
        ;; the current dwg
        mSpace     (vla-get-ModelSpace ActivedocumentObj)
        ;; the modelspace collection
        objUtilitytypes   (vla-get-Utility ActivedocumentObj)
        ;; the utility collection
        objUCStypes   (vla-get-UserCoordinateSystems Activedocumentobj)
        ;; the UCS collection
        2pi (* 2 pi)
  )
   (while (/= (getvar "errno") 52)
;;
;; (wg:GetClockwisePolygonCoords entity (list of entity names) [T or nil])
;; T = selected polyline must be closed
;; nil = no need for closed polyline
;;
      (cond
;;
;; coordsClosed = list of vertices 3D coords of the polyline
;;        = ((x0 y0 z0)(x1 y1 z1)(x2 y2 z2)........ (xn yn zn)(x0 y0 z0))
;; coordsOpen = list of vertices 3D coords of the polyline
;;        = ((x0 y0 z0)(x1 y1 z1)(x2 y2 z2)........ (xn yn zn))
;; as in (vlax-get-property obj 'Coordinates)
;;
       ((setq coordsClosed (wg:GetClockwisePolygonCoords
                      (setq e (car (entsel "\nSelect a polyline: ")))
                      '("LWPOLYLINE" "POLYLINE") T))
        (setq BaseObj    (vlax-ename->vla-object e) ; the polyline
              coordsOpen (reverse (cdr(reverse coordsClosed)))
              Allobjects-list '() ; all objects
              IntersectionPoints-list '() ; Intersection points
              InxnVertex-list '()   ; Param of intersection point
        )
;;
;; make variant of doubles in array
;; 5 = vlax-vbDouble
;; (wg:GetSingle3D-list Coords nil)
;; nil ==> z coord = 0.000
;; T ==> z value coord
;;
         (setq FilterPoints-list (vlax-make-variant
                                   (listToSafeArray 5
                                     (wg:GetSingle3D-list CoordsClosed nil)
                                 )))
;;
;; Turn off selected polyline :vlax-false
;;
;;         (vlax-put-property BaseObj 'Visible :vlax-false)
;          (entdel e) ;  delete the selected polyline
;;
;; 2 = mode? acSelectionSetFence
;; 6 = mode? acSelectionSetWindowPolygon
;; 7 = mode? acSelectionSetCrossingPolygon
;; Select Filtered Objects - ie Lines only
;; BaseObj - nil is do not want to add the polygon to the selection set
;; BaseObj - T if it is to be added to the selection set.
;;  (wg:GetObjectsByPolygon-list ActivedocumentObj
;;    (list '(0 . "LINE")) FilterPoints-list 7 BaseObj
;;  )
;;
(print "filterpoints-list ")(princ filterpoints-list)
(print "baseobj ")(princ baseobj)
            (setq AllObjects-list
             (wg:GetObjectsByPolygon-list ActivedocumentObj
              (list '(0 . "LINE")) FilterPoints-list 7 BaseObj
             )
            ) ; setq
(print "count allobjects ")(princ (length allobjects-list))
;          (entdel e) ;  delete the selected polyline
       );1st cond
      );cond
   );while
   (princ)
);test



Kerry

  • Mesozoic relic
  • Seagull
  • Posts: 11654
  • class keyThumper<T>:ILazy<T>
Re: Add object to selection set
« Reply #1 on: December 24, 2005, 10:15:33 PM »
csgoh,

How are you collecting the objects to add to the selection set.
Are you adding :
a single entity
a single vlaObject
a selectionSet
a vla collection

?
See if this helps :
Code: [Select]
(setq SuperDuperSelectionSet (kfun:AssertNamedSelectionSet  "SuperDuperSelectionSet"))
(vla-get-count SuperDuperSelectionSet)
;; 0

(setq *ent*
       (car (entsel "\nSelect entity to add to Selection Set: "))
)
;; <Entity name: 7ef61fa0>

(setq oEnt (vlax-ename->vla-object *ent*))
;; #<VLA-OBJECT IAcadLine 058f7fa4>

(setq oSSList (list oEnt))

(vlax-invoke SuperDuperSelectionSet 'additems oSSList)

(vla-get-count SuperDuperSelectionSet)
;; 1

(vlax-invoke
  SuperDuperSelectionSet
  'additems
  (list
    (vlax-ename->vla-object
      (car
        (entsel "\nSelect ANOTHER entity to add to Selection Set: ")
      )
    )
  )
)

(vla-get-count SuperDuperSelectionSet)
;; 2
Code: [Select]

;;----------------------------------------------
(defun kfun:AssertNamedSelectionSet (SelSetName / ssCollection)
  (setq ssCollection
         (vla-get-selectionsets
           (vla-get-activedocument (vlax-get-acad-object))
         )
  )
  (vl-catch-all-apply 'vla-add (list ssCollection SelSetName))
  (vla-item ssCollection SelSetName)
)
;;----------------------------------------------
(defun kfun:ClearNamedSelectionSet (SelSetName / ssCollection)
  (setq ssCollection
         (vla-get-selectionsets
           (vla-get-activedocument (vlax-get-acad-object))
         )
  )
  (if (vl-catch-all-error-p
        (vl-catch-all-apply 'vla-add (list ssCollection SelSetName))
      )
    (vla-clear (vla-item ssCollection SelSetName))
  )
  (vla-item ssCollection SelSetName)
)
;;----------------------------------------------
(defun kfun:DeleteNamedSelectionSet (SelSetName / ssCollection catchit)
  (setq ssCollection
         (vla-get-selectionsets
           (vla-get-activedocument (vlax-get-acad-object))
         )
  )
  (if (not (vl-catch-all-error-p
             (setq catchit (vl-catch-all-apply
                             'vla-item
                             (list ssCollection SelSetName)
                           )
             )
           )
      )
    (vla-delete catchit)
  )
)
;;----------------------------------------------
« Last Edit: December 25, 2005, 02:06:28 AM by Kerry Brown »
kdub, kdub_nz in other timelines.
Perfection is not optional.
Everything will work just as you expect it to, unless your expectations are incorrect.
Discipline: None at all.

Kerry

  • Mesozoic relic
  • Seagull
  • Posts: 11654
  • class keyThumper<T>:ILazy<T>
Re: Add object to selection set
« Reply #2 on: December 24, 2005, 10:23:08 PM »
Then , to get an idea of the collection :-
Code: [Select]
(vlax-dump-object
  SuperDuperSelectionSet
  t
)
Quote
; IAcadSelectionSet: A group of one or more AutoCAD objects specified for processing as a single unit
; Property values:
;   Application (RO) = #<VLA-OBJECT IAcadApplication 00c2eb8c>
;   Count (RO) = 3
;   Name (RO) = "SuperDuperSelectionSet"
; Methods supported:
;   AddItems (1)
;   Clear ()
;   Delete ()
;   Erase ()
;   Highlight (1)
;   Item (1)
;   RemoveItems (1)
;   Select (5)
;   SelectAtPoint (3)
;   SelectByPolygon (4)
;   SelectOnScreen (2)
;   Update ()
kdub, kdub_nz in other timelines.
Perfection is not optional.
Everything will work just as you expect it to, unless your expectations are incorrect.
Discipline: None at all.

Kerry

  • Mesozoic relic
  • Seagull
  • Posts: 11654
  • class keyThumper<T>:ILazy<T>
Re: Add object to selection set
« Reply #3 on: December 24, 2005, 11:17:53 PM »
a few more snippets  for testing ..

Code: [Select]
;;----------------------------------------------

(prompt "\nSelect Objects to add to SelectionSet:")

(setq
  ss (ssget)
  ss_list '()
  index -1
  sscount (sslength ss)
)
(while (< (setq index (1+ index)) sscount )
  (setq
    ss_list (cons (vlax-ename->vla-object (ssname ss index)) ss_list)
  )
)

(vlax-invoke
  SuperDuperSelectionSet
  'additems
  (reverse ss_list)
)

;;----------------------------------------------

(prompt "\nSelect Objects to add to SelectionSet:")
(vla-selectOnScreen SuperDuperSelectionSet))

;;----------------------------------------------

(vlax-for item SuperDuperSelectionSet
  (princ (vla-get-Objectname  item)) 
  (terpri) 
)


;;----------------------------------------------
kdub, kdub_nz in other timelines.
Perfection is not optional.
Everything will work just as you expect it to, unless your expectations are incorrect.
Discipline: None at all.

Kerry

  • Mesozoic relic
  • Seagull
  • Posts: 11654
  • class keyThumper<T>:ILazy<T>
Re: Add object to selection set
« Reply #4 on: December 25, 2005, 12:01:34 AM »
and a couple more snippets for stocking stuffers ...

Code: [Select]
(vla-get-count SuperDuperSelectionSet)
;; 18

;;----------------------------------------------

(setq oEntToRemove
       (vlax-ename->vla-object
         (car (entsel
                "\nSelect entity to REMOVE FROM Selection Set: "
              )
         )
       )
)

(vl-catch-all-apply
  'vlax-invoke
  (list SuperDuperSelectionSet
        'Removeitems
        (list oEntToRemove)
  )
)

;;----------------------------------------------

(prompt "\nSelect Objects to REMOVE FROM SelectionSet:")

(setq
  ss      (ssget)
  ss_list '()
  index   -1
  sscount (sslength ss)
)
(while (< (setq index (1+ index)) sscount)
  (setq
    ss_list (cons (vlax-ename->vla-object (ssname ss index)) ss_list)
  )
)
(vl-catch-all-apply
  'vlax-invoke
  (list SuperDuperSelectionSet
        'Removeitems
        (reverse ss_list)
  )
)

;;----------------------------------------------
(vla-get-count SuperDuperSelectionSet)
;;   3

kdub, kdub_nz in other timelines.
Perfection is not optional.
Everything will work just as you expect it to, unless your expectations are incorrect.
Discipline: None at all.

Kerry

  • Mesozoic relic
  • Seagull
  • Posts: 11654
  • class keyThumper<T>:ILazy<T>
Re: Add object to selection set
« Reply #5 on: December 25, 2005, 12:24:05 AM »
.. more snippets .. These were hiding in the bottom of the sleigh ..

Note, there are more economical ways to code these, but the snippets as posted have the advantage of being fairly transparent.
Code: [Select]

;;----------------------------------------------

(setq NewSelectionSet (kfun:AssertNamedSelectionSet  "NewSelectionSet"))

(prompt "\nSelect Objects to add to SelectionSet:")
(vla-selectOnScreen NewSelectionSet)

(vla-get-count NewSelectionSet)
;; 12

(setq RemoveSelectionSet
       (kfun:AssertNamedSelectionSet "RemoveSelectionSet")
)
(prompt "\nSelect Objects to add to SelectionSet:")
(vla-selectOnScreen RemoveSelectionSet)

(vla-get-count RemoveSelectionSet)
;; 5


(vlax-for item RemoveSelectionSet

  (vl-catch-all-apply
    'vlax-invoke
    (list NewSelectionSet
          'Removeitems
          (list item)
    )
  )
)

(vla-get-count NewSelectionSet)
;; 7

;;----------------------------------------------

« Last Edit: December 25, 2005, 02:08:16 AM by Kerry Brown »
kdub, kdub_nz in other timelines.
Perfection is not optional.
Everything will work just as you expect it to, unless your expectations are incorrect.
Discipline: None at all.

Kerry

  • Mesozoic relic
  • Seagull
  • Posts: 11654
  • class keyThumper<T>:ILazy<T>
Re: Add object to selection set
« Reply #6 on: December 25, 2005, 12:56:05 AM »

ahhh, almost missed this part of it ;
Quote
I am trying to write a routine to return a list of objects ...

Code: [Select]
(setq ss_olist '())

(vlax-for item NewSelectionSet
  (setq
    ss_olist (cons item
                   ss_olist
             )
  )
)
kdub, kdub_nz in other timelines.
Perfection is not optional.
Everything will work just as you expect it to, unless your expectations are incorrect.
Discipline: None at all.

csgoh

  • Newt
  • Posts: 176
Re: Add object to selection set
« Reply #7 on: December 25, 2005, 02:30:55 AM »
You are a genius, Kerry. Thanks a million.
But I am a little confused with the following statement

1)   (vlax-invoke ssobj 'additems (list baseobj))

2)    (vla-Additems ssobj baseobj)

3)    (vl-catch-all-apply 'vla-Additems (list ssobj baseobj))

After looking thru your sample codes, I use method 1 in my program, and it works. I tried method  2 and 3 but got errors in order to learn the different methods as described in the Help section. Don't the 3 of of the codes mean the same thing?  If not how do you write using method 2 and 3 to mean exactly the same thing as 1.
As for method 1, how do we check whether baseobj exists in the ssobj selection set? Do we need to iterate and check its object id or will method 1 just add baseobj into the ssobj selection set if it does not exist or not add when it exists?
Thanks again.




Kerry

  • Mesozoic relic
  • Seagull
  • Posts: 11654
  • class keyThumper<T>:ILazy<T>
Re: Add object to selection set
« Reply #8 on: December 25, 2005, 02:44:26 AM »
1)   (vlax-invoke ssobj 'additems (list baseobj))
...  how do we check whether baseobj exists in the ssobj selection set? Do we need to iterate and check its object id or will method 1 just add baseobj into the ssobj selection set if it does not exist or not add when it exists?

No need to check, just add the new stuff and you wont get an error if it already is in the set ..

Try this a couple of times.
Code: [Select]
(defun c:test (/ NewSelectionSet)
  (setq NewSelectionSet (kfun:AssertNamedSelectionSet "NewSelectionSet"))
  (prompt "\nSelect Objects to add to SelectionSet:")
  (vla-selectOnScreen NewSelectionSet)
  (vla-get-count NewSelectionSet)
)

.. or you can iterate the selection set if you need to for any reason .. using something like  (vlax-for item sset ...
« Last Edit: December 25, 2005, 02:48:15 AM by Kerry Brown »
kdub, kdub_nz in other timelines.
Perfection is not optional.
Everything will work just as you expect it to, unless your expectations are incorrect.
Discipline: None at all.

Kerry

  • Mesozoic relic
  • Seagull
  • Posts: 11654
  • class keyThumper<T>:ILazy<T>
Re: Add object to selection set
« Reply #9 on: December 25, 2005, 02:55:23 AM »
With  your methods 2 and 3
the baseobj variable will be an array ..
Something like may suit you :-
Code: [Select]
(setq TmpSelectionSet (kfun:AssertNamedSelectionSet "TmpSelectionSet"))

(while (setq ent (entsel))
  (setq ss_list (cons (vlax-ename->vla-object (car ent)) ss_list))
)
(setq
  ss_array (vlax-make-safearray vlax-vbObject (cons 0 (- (length ss_list) 1)))
)
(vlax-safearray-fill ss_array ss_list)
(vlax-make-variant ss_array)
(vla-addItems TmpSelectionSet ss_array)
kdub, kdub_nz in other timelines.
Perfection is not optional.
Everything will work just as you expect it to, unless your expectations are incorrect.
Discipline: None at all.

Kerry

  • Mesozoic relic
  • Seagull
  • Posts: 11654
  • class keyThumper<T>:ILazy<T>
Re: Add object to selection set
« Reply #10 on: December 25, 2005, 03:13:25 AM »
Tip #15

Save often, particularly when the weather forecast says "Late afternoon ThunderStorms".

< Typical Brisbane Summer storm knocked out the power just as I was posting the previous. >

« Last Edit: December 25, 2005, 03:32:02 PM by Kerry Brown »
kdub, kdub_nz in other timelines.
Perfection is not optional.
Everything will work just as you expect it to, unless your expectations are incorrect.
Discipline: None at all.

csgoh

  • Newt
  • Posts: 176
Re: Add object to selection set
« Reply #11 on: December 25, 2005, 09:17:52 AM »
Kerry;
You truly are a great help. I understood your explanation better now. I changed my baseobj into a variant of safearray and it works now. Initially, my baseobj is a vla-object and I was wondering how to convert it into a safearray variant and with your guidance, I see the light.
You are the man. Thanks a miliion.

Kerry

  • Mesozoic relic
  • Seagull
  • Posts: 11654
  • class keyThumper<T>:ILazy<T>
Re: Add object to selection set
« Reply #12 on: December 25, 2005, 03:57:20 PM »
<blush.png>
kdub, kdub_nz in other timelines.
Perfection is not optional.
Everything will work just as you expect it to, unless your expectations are incorrect.
Discipline: None at all.