st788796 发表于 2016-5-22 08:33:13

(XD::Symbol:Put)保存符号名称和值

本帖最后由 st788796 于 2016-5-22 08:34 编辑

**** Hidden Message *****
_$ (xd::symbol:put 'dimension_layer "1")
T
_$

Lisphk 发表于 2016-5-22 14:14:03

大师,今天发布的这些符号函数,是保存全局变量时候用的吗? 能给写几个例子吗?

st788796 发表于 2016-5-22 14:54:41

Lisphk 发表于 2016-5-22 14:14
大师,今天发布的这些符号函数,是保存全局变量时候用的吗? 能给写几个例子吗?


是的,以前全局变量都是直接定义一个符号,今天写一个程序时想改变一下,翻了翻函数库中没有找到一个合适的容器,就写了这几个函数,下面是一个例子,尚未完成
(defun c:tt (/ _print p1 d flag)
(defun _print        ()
    (princ (strcat "\n当前设置: "
                   (cond
                     ((zerop (xd::symbol:get 'dimension_mode))
                      "水平; "
                     )
                     ((= (xd::symbol:get 'dimension_mod) 1)
                      "垂直; "
                     )
                     (t "任意角度; ")
                   )
                   "距离 :"
                   (rtos (xd::symbol:get 'dimension_space) 2 3)
           )
    )
)
(if (not (xd::symbol:get 'DIMENSION_LAYER))
    (xd::symbol:put 'DIMENSION_LAYER (getvar "clayer"))
)
(if (not (xd::symbol:get 'DIMENSION_SpaCE))
    (xd::symbol:put
      'DIMENSION_SpaCE
      (/ (getvar "viewsize") 5.0)
    )
)
(if (not (xd::symbol:get 'DIMENSION_Mode))
    (xd::symbol:put 'DIMENSION_Mode 0)
)
(setq flag t)
(while (and flag
              (progn
                (_print)
                (initget 128 "C D V H A")
                (setq p1 (getpoint
                           "\n第一点[设置图层(C)/设置距离(D)/水平(H)/垂直(V)/任意角度(A)]: "
                       )
                )
              )
       )
    (cond
      ((= p1 "C")
       (if (setq e (car (entsel "\n拾取标准实体图层: ")))
       (xd::symbol:put
           'DIMENSION_LAYER
           (xdrx_getpropertyvalue e "layer")
       )
       )
      )
      ((= p1 "D")
       (if (setq d (getdist "\n距离: "))
       (xd::symbol:put 'DIMENSION_SAPCE d)
       )
      )
      ((= p1 "H")
       (xd::symbol:put 'dimension_mode 1)
      )
      ((= p1 "V")
       (xd::symbol:put 'dimension_mode 0)
      )
      ((= p1 "A")
       (xd::symbol:put 'dimension_modd 2)
      )
      ((= (type p1) 'LIST) (setq flag nil))
      (t )
    )
)
(if (= (type p1) 'LIST)
    (progn
      (if (zerop (xd::symbol:get 'dimension_mode))
        (xdrx_sysvar_push '("ortho" 0))
        (xdrx_sysvar_push '("ortho" 1))
      )
      (setq p2 (getpoint p1 "\n第二点: "))
    )
)
(princ)
)

liuyj 发表于 2016-5-22 15:07:16

先收藏再学习

819534890 发表于 2016-5-23 10:07:43

good good.

炫翔 发表于 2017-6-18 19:18:39

回复学习

yoyoho 发表于 2017-6-19 14:18:58

收藏学习了

laiz3000 发表于 2017-8-8 13:19:26

收藏一下{:1_3:}

titanwuxj 发表于 2017-8-9 12:51:44

感谢分享,看看内容。

winabcd 发表于 2017-8-9 14:43:51

先收藏再学习

liulisheng 发表于 2017-8-11 13:34:00

{:1_12:}{:1_12:}{:1_12:}{:1_12:}

brainstorm 发表于 2017-8-21 00:22:15

变量保存在哪里了

taoyi0727 发表于 2017-11-23 13:37:34

支持下楼主

同级凡人 发表于 2017-12-2 20:11:27

谢谢 看看 学习

shw-rs 发表于 2018-2-25 14:27:36

认真学习看,感谢分享
页: [1] 2 3
查看完整版本: (XD::Symbol:Put)保存符号名称和值