Object Reactor woes!

Discussion in 'AutoCAD' started by beebe, Sep 15, 2003.

  1. beebe

    beebe Guest

    Can someone please help? I can’t seem to make Object Reactors persistent (see code in routine CreateObjectReactor-QtyChange below). When I open a drawing with Object Reactors I created, I receive the following messages:

    Opening an AutoCAD 2000 format file.
    Regenerating model.

    ; warning:erased VLA-object restored to NIL
    ; warning:erased VLA-object restored to NIL
    ; warning:erased VLA-object restored to NIL
    ; error: VLISP: internal: Document application(.VLX) not found
    ; error: VLISP: internal: Document application(.VLX) not found
    ; error: VLISP: internal: Document application(.VLX) not found

    AutoCAD menu utilities loaded.

    This is with no customization at all (acad.lsp, acaddoc.lsp, MyMenu.mnl, etc). What am I doing wrong?

    Also, am I doing the “active document only” notification correctly? Will this notification be persistent?

    (defun CreateObjectReactor-QtyChange (object-list app #leader-text / hole-reactor)
      (vl-load-com)
      (setq
        hole-reactor
        (vlr-pers
          (VLR-Object-Reactor
            object-list
            (list app #leader-text)
            '( :)VLR-erased . UpdateHoleCalloutText)
               :)VLR-copied . UpdateHoleCalloutText)
             )
          );VLR-Object-Reactor
        );vlr-pers
      );setq
      (vlr-set-notification hole-reactor 'active-document-only)
    )
     
    beebe, Sep 15, 2003
    #1
  2. beebe

    beebe Guest

    Thanks Luis.
     
    beebe, Sep 15, 2003
    #2
  3. ; warning:erased VLA-object restored to NIL


    I'm getting the same message using persistant reactors, even when I call the
    clean-up reactor (when the dwg is closed)
    Any suggestions on how otherwise to remove the reactor?
    Thanks.


    ;; -------------------------------------------------------------------------
    ----------------------
    ;; Establishes a cleanup reactor when closing drawing to
    ;; remove the persistence of orphaned or empty leader reactors

    (defun leader_make_dwg_close_reactor ()
    (setq leader_dwg_close_reactor
    (vlr-dwg-reactor
    "Leader_Cleanup"
    '(:)vlr-beginClose . leader_reactor_purge))
    )
    ))


    ;; Call the above function when loading this file to create the dwg_close
    reactor...
    (if (not leader_dwg_close_reactor) (leader_make_dwg_close_reactor))

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

    ;; Purges empty and orphaned leader reactors - maybe?

    ;; Command line prompt

    (defun C:LRP () (alert (leader_reactor_purge)))

    ;; Silent method - called by leader_dwg_close_reactor when closing drawing

    (defun leader_reactor_purge (/ lreactors lr l0c l1c l2c)
    (setq lreactors (cdar (vlr-reactors :vlr-object-reactor))
    l0c 0
    l1c 0
    l2c 0)
    (setq txt (strcat "Leader Reactor Summary \nTotal:\t\t" (itoa (length
    lreactors))))

    (foreach lr lreactors
    (if (= (vlr-data lr) "Make_Leader")
    (progn
    (setq ownerlist (vlr-owners lr))
    (cond ((= ownerlist nil)
    (setq l0c (1+ l0c))
    (vlr-remove lr)
    (vlr-pers-release lr)
    )
    ((= (length ownerlist) 1)
    (setq l1c (1+ l1c))
    (vlr-remove lr)
    (vlr-pers-release lr)
    )
    (T
    (setq l2c (1+ l2c))
    )
    )
    )
    )
    )

    (setq txt (strcat txt
    "\nActive:\t\t" (itoa l2c)
    "\nOrphaned:\t" (itoa l1c)
    "\nEmpty:\t\t" (itoa l0c)
    )
    ) ; returns txt string

    )
    ;;--------------------------------------------------------------------------
    -----------------------
     
    Allen Johnson, Sep 15, 2003
    #3
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.