TheSwamp
Code Red => AutoLISP (Vanilla / Visual) => Topic started by: gswang on August 26, 2018, 06:08:22 AM
-
How do I pass variables between documents?
thanks!
-
There are various ways -
1. Use the Blackboard Namespace
When you define functions or assign values to global variables, these are defined within the Document Namespace and are hence only accessible from within the active document. However, you can store variables in a shared namespace known as the 'Blackboard Namespace', which is accessible from within all documents.
For example:
To store data in the Blackboard Namespace, use the vl-bb-set function, e.g.:_$
(vl
-bb
-set 'myvar
123)
123
To retrieve the stored data from the Blackboard Namespace, use the vl-bb-ref function, e.g.:
2. Use the vl-propagate function
The vl-propagate function will copy the value of a given variable from the active document namespace into all other document namespaces (including those subsequently opened after the function has been evaluated). However, unlike the use of a shared namespace, since the variables are copied to other namespaces, if you change the value of the variable in one namespace, the value of the variable will not change in the namespaces to which the variable has been copied.
For example:
Drawing1.dwg
Drawing2.dwg
On changing the variable in Drawing1.dwg:
The value is not changed in Drawing2.dwg (until vl-propagate is called again):
3. Other Methods
Other methods of transferring data between documents include:
- Writing data to file within one document and reading the file data from within another document
- Writing data to the registry within one document and reading the registry data from within another document
-
I'll try it. Thank you very much,Lee Mac!
-
There are various ways -
Wow! Where is that 'like' button when you need one.
Nice post Lee.
Thanks
-
Thanks Mark! :-)
-
Also check this :
-
There are various ways ...
:) :smitten: :)