cad.lisp 架构位数+内置函数+添加符号保护

查看架构位数

由于Acad2008市面上是有32位改的,然后才能让64位系统安装,所以为了验证架构位数而写:

(strlen (vl-princ-to-string (vlax-get-acad-object)))
=>39就是32位Autocad

获取内置函数

(setq lst (vl-remove-if-not '(lambda(x) (or (wcmatch x "SET*") (wcmatch x "GET*"))) (atoms-family 1))) 

添加符号保护

通过vlisp命令打开cad内置的IDE.

然后Visual Lisp 控制台输入 (pragma '((protect-assign myfunction)))

myfunction就会高亮起来.

img

;;解除符号保护
(pragma '((unprotect-assign getDxf)))
;;定义函数
(defun getDxf(ent code)(cdr(assoc code(entget ent))))
;;添加符号保护
(pragma '((protect-assign getDxf)))

;;例子
(defun c:tt()
  (if(setq en(car(entsel)))
    (getdxf en 0)))

img

(完)

posted @ 2021-02-08 02:28  惊惊  阅读(398)  评论(0编辑  收藏  举报