Are you sure ALL the vl-* functions work irrespective of the system? What about functions such as vl-file-copy? Are all of them implemented directly in C++ without referencing any system libraries - if so how would they interoperate with system security?
Yes, vl- functions work including vl-file-copy and vl-file-delete. Remember that there is a separation between interface and implementation, so the interface (and in this case the specific command name) has remained the same even though the implementation has changed to work with the new file system. Here is a complete list of [vl-] functions included in MacLISP 2013:
- vl-acad-defun
- vl-acad-undefun
- vl-bb-ref
- vl-bb-set
- vl-catch-all-apply
- vl-catch-all-error-message
- vl-catch-all-error-p
- vl-cmdf
- vl-consp
- vl-directory-files
- vl-doc-ref
- vl-doc-set
- vl-every
- vl-exit-with-error
- vl-exit-with-value
- vl-file-copy
- vl-file-delete
- vl-file-directory-p
- vl-file-rename
- vl-file-size
- vl-file-systime
- vl-filename-base
- vl-filename-directory
- vl-filename-extension
- vl-filename-mktemp
- vl-list
- vl-list->string
- vl-list-length
- vl-load-all
- vl-mkdir
- vl-member-if
- vl-member-if-not
- vl-position
- vl-prin1-to-string
- vl-princ-to-string
- vl-propagate
- vl-registry-delete
- vl-registry-descendents
- vl-registry-read
- vl-registry-write
- vl-remove
- vl-remove-if
- vl-remove-if-not
- vl-some
- vl-sort
- vl-sort-i
- vl-string->list
- vl-string-elt
- vl-string-left-trim
- vl-string-mismatch
- vl-string-position
- vl-string-right-trim
- vl-string-search
- vl-string-subst
- vl-string-translate
- vl-string-trim
- vl-symbol-name
- vl-symbol-value
- vl-symbolp
what about the vlax-ldata-* functions? Do these really use ActiveX - all they do is work on dictionary objects inside the DWG..
[vlax-ldata-] functions are gone, and only the entity-level native functions remain:
- dictadd
- dictnext
- dictremove
- dictrename
- dictsearch
Anyhow, the acid-test would be to actually try them on a mac..
I have written and tested a very limited number of functions on mac side on a friend's machine, but so far I can say that if they are listed in the Autodesk documentation for Mac they are working as intended. No, vlax-create functions do not exist in any way. However, using command (or command-s on Mac) is a decent workaround followed by (entget (entlast)). (entmake) is also still on option if you don't mind that method.
One more thing, the almighty (vlax-dump-object) is now (dumpallproperties). It is important to note that just because the ActiveX methods for getting properties is gone, that doesn't change what properties the objects actually have. Use (getpropertyvalue) and (setpropertyvalue) to work with these in MacLISP.
Unfortunately, I am not aware of a translation of vlax-invoke-method..