LISP判断打开的CAD是中文版还是英文版
本帖最后由 cabinsummer 于 2018-6-11 15:12 编辑如果判断自己的电脑打开的CAD是中文版还是英文版,肉眼就可以了;判断他人电脑就要花费一番功夫,通过ACADVER、LOCALE、SYSPAGECODE、DWGPAGECODE等变量都不能区别。
通过判断打印机图纸的描述判断,一般高版本的CAD都有DWG To PDF.PC3虚拟打印机,这个是转PDF文件的。图纸单位中,英文版显示MM或IN,中文版显示毫米或英寸。
(vla-GetLocaleMediaName (vla-get-ActiveLayout (vla-get-ActiveDocument (vlax-get-acad-object))) "ISO_A3_(420.00_x_297.00_MM)")
;;;英文版返回"ISO A3 (420.00 x 297.00 MM)"
;;;中文版返回"ISO A3 (420.00 x 297.00 毫米)"
对于低版本的CAD,没有DWG To PDF.PC3怎么判断?大家讨论一下。
本帖最后由 sieben 于 2018-6-14 18:24 编辑
sieben 发表于 2018-6-13 15:29
是的,804 和 409;我记得我以前是从注册表取得这些版本信息
cabinsummer 如果装了两个版本,读注册表怎么判断“打开”的CAD是哪个版本?发表于 2018-6-14 13:51
-------------------------
如果是在打开的CAD里面,可以根据CAD的系统变量或环境变量得到其对应的注册表路径,然后可以得到版本信息
命令: ACADPREFIX
ACADPREFIX = "C:\Documents and Settings\Administrator\application
data\autodesk\autocad 2012 - simplified chinese\r18.2\chs\support;C:\program
files\autodesk\autocad 2012 - simplified chinese\support;C:\program
files\autodesk\autocad 2012 - simplified chinese\fonts;C:\program
files\autodesk\autocad 2012 - simplified chinese\help;C:\program
files\autodesk\autocad 2012 - simplified chinese\support\color;C:\Program
Files\Autodesk\AutoCAD 2012 - Simplified Chinese\drv;" (只读)
系统变量 ACADPREFIX 里面有 autocad 2012 - simplified chinese\r18.2 这个信息;然后找到注册表里面的
HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R18.2\ACAD-A001:804 里面也有相应路径信息,通过比对就知道(假如R18.2下面有804也有409的话)
我说的不一定对,以前搞这些好多年前了;而且我好像是在制作安装包时在CAD外部使用这些信息
自贡黄明儒 发表于 2018-6-8 15:05
http://bbs.xdcad.net/forum.php?mod=viewthread&tid=706942&highlight=%D3%A2%CE%C4%B0%E6
(= (getvar "d ...
我这边中英文版本都返回nil 自己找到了办法。
函数(ver)
英文版下返回Visual LISP 2016 (en)
中文版下返回Visual LISP 2016 (zh) http://bbs.xdcad.net/forum.php?mod=viewthread&tid=706942&highlight=%D3%A2%CE%C4%B0%E6
(= (getvar "dimldrblk") "DotSmall")也是可以的 我电脑装的版本是:AutoCAD 2006 Simplified Chinese
命令: (ver)
"Visual LISP 2006 (en)"
按楼主的方法我的CAD应该是英文版的? pzweng 发表于 2018-6-8 15:24
我电脑装的版本是:AutoCAD 2006 Simplified Chinese
命令: (ver)
"Visual LISP 2006 (en)"
还得继续讨论,找更好的办法 我装的是 2014中文版
(ver)
"Visual LISP 2014 (en)"
_$ (vlax-product-key)
"Software\\Autodesk\\AutoCAD\\R17.1\\ACAD-6001:804"
根据末三位是804还是409来判断 (= (GetVar "SYSCODEPAGE") "ANSI_936") vectra 发表于 2018-6-8 17:02
_$ (vlax-product-key)
"Software\\Autodesk\\AutoCAD\\R17.1\\ACAD-6001:804"
是的,804 和 409;我记得我以前是从注册表取得这些版本信息
页:
[1]
2