明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3455|回复: 18

[讨论] LISP判断打开的CAD是中文版还是英文版

[复制链接]
发表于 2018-6-8 14:46:10 | 显示全部楼层 |阅读模式
本帖最后由 cabinsummer 于 2018-6-11 15:12 编辑

如果判断自己的电脑打开的CAD是中文版还是英文版,肉眼就可以了;判断他人电脑就要花费一番功夫,通过ACADVER、LOCALE、SYSPAGECODE、DWGPAGECODE等变量都不能区别。

通过判断打印机图纸的描述判断,一般高版本的CAD都有DWG To PDF.PC3虚拟打印机,这个是转PDF文件的。图纸单位中,英文版显示MM或IN,中文版显示毫米或英寸。

  1. (vla-GetLocaleMediaName (vla-get-ActiveLayout (vla-get-ActiveDocument (vlax-get-acad-object))) "ISO_A3_(420.00_x_297.00_MM)")
  2. ;;;英文版返回"ISO A3 (420.00 x 297.00 MM)"
  3. ;;;中文版返回"ISO A3 (420.00 x 297.00 毫米)"


对于低版本的CAD,没有DWG To PDF.PC3怎么判断?大家讨论一下。
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2018-6-14 17:52:43 | 显示全部楼层
本帖最后由 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外部使用这些信息

评分

参与人数 1明经币 +3 金钱 +6 收起 理由
cabinsummer + 3 + 6 赞一个!

查看全部评分

回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2018-6-8 15:38:34 | 显示全部楼层
自贡黄明儒 发表于 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
 楼主| 发表于 2018-6-8 14:54:42 | 显示全部楼层
自己找到了办法。
函数(ver)
英文版下返回Visual LISP 2016 (en)
中文版下返回Visual LISP 2016 (zh)
发表于 2018-6-8 15:05:20 | 显示全部楼层
http://bbs.xdcad.net/forum.php?m ... =%D3%A2%CE%C4%B0%E6
(= (getvar "dimldrblk") "DotSmall")也是可以的
发表于 2018-6-8 15:24:42 | 显示全部楼层
我电脑装的版本是:AutoCAD 2006 Simplified Chinese
命令: (ver)
"Visual LISP 2006 (en)"

按楼主的方法我的CAD应该是英文版的?
 楼主| 发表于 2018-6-8 15:37:07 | 显示全部楼层
pzweng 发表于 2018-6-8 15:24
我电脑装的版本是:AutoCAD 2006 Simplified Chinese
命令: (ver)
"Visual LISP 2006 (en)"

还得继续讨论,找更好的办法
发表于 2018-6-8 15:37:39 | 显示全部楼层
我装的是   2014中文版

(ver)
"Visual LISP 2014 (en)"
发表于 2018-6-8 17:02:05 | 显示全部楼层
_$ (vlax-product-key)
"Software\\Autodesk\\AutoCAD\\R17.1\\ACAD-6001:804"

根据末三位是804还是409来判断

点评

是的,804 和 409;我记得我以前是从注册表取得这些版本信息  发表于 2018-6-13 15:30
这个应该是可靠的  发表于 2018-6-11 15:11
用这个来判断比较准吧  发表于 2018-6-9 18:53

评分

参与人数 1明经币 +1 金钱 +6 收起 理由
cabinsummer + 1 + 6 赞一个!

查看全部评分

发表于 2018-6-9 22:42:12 | 显示全部楼层
(= (GetVar "SYSCODEPAGE") "ANSI_936")

点评

在我的电脑上,中英文版的SYSCODEPAGE都一样的  发表于 2018-6-11 15:12
发表于 2018-6-13 15:29:54 | 显示全部楼层
vectra 发表于 2018-6-8 17:02
_$ (vlax-product-key)
"Software\\Autodesk\\AutoCAD\\R17.1\\ACAD-6001:804"

是的,804 和 409;我记得我以前是从注册表取得这些版本信息

点评

如果装了两个版本,读注册表怎么判断“打开”的CAD是哪个版本?  发表于 2018-6-14 13:51
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-1 07:44 , Processed in 0.184657 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表