To Test the Use of Private Data from a VLX File (AutoLISP/Visual LISP IDE)

VLX files can be configured to access data across different namespaces.

  1. Enter the following commands at the Visual LISP Console window:
    (vlax-ldata-put "mydict" "mykey" "Mumbo Dumbo")
    "Mumbo Dumbo"
    
    (vlax-ldata-get "mydict" "mykey")
    "Mumbo Dumbo"
  2. Enter the following code in a file and use Make Application to build a VLX from the file. Use the Expert mode of the Make Application wizard, and select the Separate Namespace option on the Compile Options tab.
    (vl-doc-export 'ldataput)
    (vl-doc-export 'ldataget)
    (vl-doc-export 'ldataget-nilt)
    
    (defun ldataput ()
      (princ "This is a test of putting private ldata ")
      (vlax-ldata-put "mydict" "mykey" "Mine! Mine! " T)
    )
    
    (defun ldataget ()
      (vlax-ldata-get "mydict" "mykey")
    )
    
    (defun ldataget-nilt ()
      (vlax-ldata-get "mydict" "mykey" nil T)
    )
  3. Load the VLX file.
  4. Run ldataput to save private data:
    (ldataput)
    This is a test of putting private ldata

    Refer to the code defining ldataput: this function stores a string containing “Mine! Mine!”

  5. Run ldataget to retrieve LISP data:
    (ldataget)
    "Mumbo Dumbo"

    Notice that the data returned by ldataget is not the data stored by ldataput. This is because ldataget does not specify the private argument in its call to vlax-ldata-get. So the data retrieved by ldataget is the data set by issuing vlax-ldata-put in step 1.

    (ldataget-nilt)
    "Mine! Mine!"
  6. Run ldataget-nilt to retrieve LISP data:
    (ldataget-nilt)
    "Mine! Mine!"

    This time the private data saved by ldataput is returned, because ldataget-nilt specifies the private argument in its call to vlax-ldata-get.

  7. From the Console prompt, issue the same call that ldataget-nilt uses to retrieve private data:
    (vlax-ldata-get "mydict" "mykey" nil T)
    "Mumbo Dumbo"

    The private argument is ignored when vlax-ldata-get is issued outside a separate-namespace VLX. If non-private data exists for the specified dict and key (as in this instance), that data will be retrieved.