Hi Fred,
Been busy with making a living.
😉
Some issues you may be interested in:
1) VLA- functions primarily concern autocad objects only.
2) They may or may not work with ADT objects. In general, I have found
that if the ADT object has an identical name for the property or method as
an AutoCAD object, then the related vla- functions seem to work.
3) The list you show below is accessible by typing vla- in the appropos
window.
4) Knowing the list does not give you a hint of which functions apply
to which objects and how many arguments are required and optional.
For those issues, you will need to use the VBA and Activex help files
and the Object Model.
5) Since you are asking this question in the ADT customization NG, I
assume that you want to access the architectural objects. To find out
the objects an properties applicable to those objects, you might peruse
the ADT customization help files and specifically their object models.
There are properties and methods that I wish were exposed, that are not.
ADT authors have promised more later. It appears that the ADT authors
are somewhat protective of their product and don't want us to corrupt the
data structure.
6) To access the properties and methods of ADT, one recommended
method is to use vlax-import-type-library to populate autocad with
functions that operate on those objects. I have found however that
using vlax-get, vlax-put, vlax-invoke, and vlax-invoke-method are
sufficient and preferrable to having hundreds of new functions in
the document namespace. An added advantage to the vlax... functions
other than vlax-invoke-method is that I/O with LISP does not need
to involve variant-value, safearray->list, safearray-fill...
7) VLA- functions often require variants or safe-arrays as arguments.
While many data types automatically coerce to variants, list data, such
as for points, do not. Use the (vlax-3d-point.. function to convert
list data to points. For point lists, such as for coordinate data, the
lists are flat and not nested. For instance:
'((0 0 0)(1 1 0)) would be how you would expect the point list to be
entered but '(0 0 0 1 1 0) is how it needs to be prepared for functions
asking for point lists.
The best approach to programming is to play experimental scientist
and test each little step, building the program 1 step at a time.
The customization newsgroup is a good place to learn. The VBA
newsgroup can also be ironically a good place to learn vlisp if you
can learn to translate.
Regards,
Doug
"Fred Schreck"
wrote in message
news:[email protected]...
> Doug:
>
> I found a listing of vla- functions in the LISP file C:\Program
> Files\Autodesk Architectural Desktop 2004\Express\lspdata.lsp. There are
> over 1000 of 'em...and I'm sure there are more out there.
>
> I'm attaching the list to this message, in case anyone is interested.
> Sorry, no documentation included.
>
>
> Fred