marting 发表于 2018-11-22 01:19:25

获得ACAD详细的版本号

本帖最后由 marting 于 2018-11-22 01:22 编辑


(defun get-acadversions      (/ r i j L a)
(setq      r (atof (getvar "acadver"))
      i (atoi (rtos r))
      j (atoi (rtos (* 10 (- r i))))
      L (list (itoa i) (strcat (itoa i) "." (itoa j)))
)
(if (>= i 15)
    (setq L (cons (cond      ((= i 15)
                         (strcat "200"
                                 (cond ((= j 1) "1i")
                                       (t (itoa j))
                                 )
                         )
                        )
                        ((< i 19) (itoa (+ 2004 (* (- i 16) 3) j)))
                        (t (itoa (+ 2013 (* (- i 19) 2) j)))
                  )
                  L
            )
    )
)
(append L (mapcar '(lambda (s) (strcat "r" s)) L))
)


_$ (GET-ACADVERSIONS)
("2012" "18" "18.2" "r2012" "r18" "r18.2")
获得同样结果的另外的写法

**** Hidden Message *****

longer88 发表于 2018-11-22 08:14:13

这个有点用处

fengyun7000 发表于 2018-11-22 08:43:45

不错,学习一下

HLCAD 发表于 2018-11-22 08:52:34

感谢大师提供的程序!

434939575 发表于 2018-11-22 09:03:27

很好,谢谢分享!

konglong604 发表于 2018-11-22 09:17:08

感谢大师提供的实用代码。

yoyoho 发表于 2018-11-22 09:22:29

感谢大师提供的程序!!!

renyonghua2014 发表于 2018-11-22 09:54:51

感谢楼主提供,学习一下。

sh_h 发表于 2018-11-22 13:25:24

向大师致敬!

819534890 发表于 2018-11-22 14:31:08

回复学习,谢谢分享

caogis 发表于 2018-11-23 08:46:01

在选择加载arx有用

lisperado 发表于 2018-11-23 12:34:53

本帖最后由 lisperado 于 2018-11-23 12:44 编辑

没权限发表URL,请参考官方 help autodesk 也没有2001&2003
中文版或许不同?

试修改版主函数,以 r 为参数:
(defun get-acadversions      ( r /i j L a)
(setq      ; r (atof (getvar "acadver")) ;忽略这段
      i (atoi (rtos r))
;;
;;


对照autodesk (EN)版本区别
(foreach x '(22.0 21.0 20.1 20.0 19.1 19.0 18.2 18.1 18.0 17.2 17.1 17.0 16.2 16.1 16.0 15.06 15.05 15.0 14.0)
(print (get-acadversions x))
   )

("2019" "22" "22.0") ;2018 ?
("2017" "21" "21.0")
("2016" "20" "20.1")
("2015" "20" "20.0")
("2014" "19" "19.1")
("2013" "19" "19.0")
("2012" "18" "18.2")
("2011" "18" "18.1")
("2010" "18" "18.0")
("2009" "17" "17.2")
("2008" "17" "17.1")
("2007" "17" "17.0")
("2006" "16" "16.2")
("2005" "16" "16.1")
("2004" "16" "16.0")
("2000" "15" "15.0")
("2000" "15" "15.0") ; R15以下
("2000" "15" "15.0") ; R15以下
nil ; 2015以下
nil ; 2015以下


以下函数直接assoc参考autodesk版本
(defun acadver nil (
(list '(acadver)
         '(list (cadr acadver) (strcat "R" (itoa (fix (car acadver)))) (vl-princ-to-string (car acadver)))
         )
    (assoc (atof (getvar 'acadver))
         '((22.0 "2018")
             (21.0 "2017")
             (20.1 "2016")
             (20.0 "2015")
             (19.1 "2014")
             (19.0 "2013")
             (18.2 "2012")
             (18.1 "2011")
             (18.0 "2010")
             (17.2 "2009")
             (17.1 "2008")
             (17.0 "2007")
             (16.2 "2006")
             (16.1 "2005")
             (16.0 "2004")
             (15.06 "2002")
             (15.05 "2000i")
             (15.0 "2000")
             (14.0 "R14")
             )
         )
    )
)


;用法
(acadver)
;返回 '("2007" "R17" "17.0")

newer 发表于 2018-11-23 12:44:36

lisperado 发表于 2018-11-23 12:34
没权限发表URL,请参考官方 help autodesk 也没有2003
中文版或许不同?



可以直接把链接当文字,贴上来啊。

lisperado 发表于 2018-11-23 12:55:59

newer 发表于 2018-11-23 12:44
可以直接把链接当文字,贴上来啊。

谢谢版主指点 {:1_9:}
help.autodesk.com/view/ACD/2018/ENU/?guid=GUID-793238B6-F8B8-4D20-BB3A-001700AECD75

kqqt6236 发表于 2018-11-23 13:02:27

回复学习。
页: [1] 2 3
查看完整版本: 获得ACAD详细的版本号