明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1557|回复: 9

[OpenDCL] 中望CAD自动加载OpenDCL的ZRX支持库代码

[复制链接]
发表于 2024-8-21 12:46:09 | 显示全部楼层 |阅读模式
本帖最后由 wxytiger 于 2024-8-30 21:06 编辑

    根据AutoCAD自动加载OpenDCL支持库代码改写的,支持中望CAD自动加载ZRX支持库的代码,目前在中望CAD2024Pro专业版上测试通过,没有其它版本,有需要的可自行下载测试。

    注意:OpenDCL.x64.20xx.zrx和对应版本(语言)的运行库 Runtime.Res.dll 文件需要放在CAD支持的搜索文件路径内。
  1. ;;//代码块,功能为加载支持ZWCAD的OpenDCL运行库OpenDCL.xx.ZRX文件(如果尚无加载,可自动判断ZWCAD版本(32位和64位)并加载相应ZRX文件//
  2. ;;注意:如果已经加载或者加载成功后,将返回 T
  3. ;;如果OpenDCL.xx.ZRX已经载入,本代码块将不做任何动作。
  4. ;;(dcl-getversionex) 获取OpendDCL版本
  5. ;;(zrxload "OpenDCL.x64.2023.zrx")
  6. (if (not dcl_loaded)
  7.     ((lambda (/ PROC_ARCH ZRXNAME ZRXVER ZRXPATH)
  8.     ;;根据处理器的类型 和 AutoCAD的版本,确定需要加载的ODCL版本。
  9.     (setq ZRXNAME
  10.         (strcat "OpenDCL"
  11.           (if (and (setq PROC_ARCH (getenv "PROCESSOR_ARCHITECTURE")) (< 1 (strlen PROC_ARCH)) (eq "64" (substr PROC_ARCH (1- (strlen PROC_ARCH)))))
  12.           ".x64."
  13.           "."
  14.         )
  15.         (if (setq ZRXVER (substr (getvar "vernum") 1 2))
  16.                     (cond
  17.                         ((= "16" ZRXVER) (setq ZRXVER "2017"))
  18.                         ((= "24" ZRXVER) (setq ZRXVER "2023"))
  19.                         (T (setq ZRXVER (strcat "20" ZRXVER)))
  20.                     )
  21.                 )
  22.         ".zrx"
  23.       )
  24.     )
  25.     ;;尝试查找,尝试加载。
  26.     (cond
  27.       ((null (setq ZRXPATH (findfile ZRXNAME)))
  28.           ;;警示用户未能找到 zrxfile
  29.           (alert (strcat "OpenDCL支持文件 " ZRXNAME "无法加载。" "\n你需要将它添加到中望CAD的支持路径中。"))
  30.           (exit)
  31.       )
  32.       ((null (zrxload ZRXPATH 'NIL))
  33.         ;;警示用户未能加载 zrxfile
  34.         (alert (strcat "无法加载 " ZRXNAME "。"))
  35.         (exit)
  36.       )
  37.       (t (setq dcl_loaded T) (princ))
  38.     )
  39.      ))
  40. )

2024年8月28日修正:发现中望CAD对未知函数(dcl-getversionex)无反应,也不返回nil值,改写了一下。
(exit)语句位置错误,已修正。
另外给出OpenDCL编辑器和支持库的下载地址:https://sourceforge.net/projects/opendcl/


发表于 2024-8-23 08:32:39 | 显示全部楼层
谢谢分享,还没有用上中望。
发表于 2024-8-23 20:41:48 | 显示全部楼层
请问下,在哪里下载支持中望2025的opendcl啊?
发表于 2024-8-25 10:23:17 | 显示全部楼层
有支持中望的OpenDCL吗
发表于 2024-8-25 10:26:09 | 显示全部楼层
zark 发表于 2024-8-25 10:23
有支持中望的OpenDCL吗

已经搞定了,谢谢
 楼主| 发表于 2024-8-30 15:54:44 | 显示全部楼层
hnanky 发表于 2024-8-23 20:41
请问下,在哪里下载支持中望2025的opendcl啊?

下载地址已更新。
发表于 2024-9-1 09:06:54 | 显示全部楼层
谢谢大侠为我们答疑解惑,万分感谢!
发表于 2024-9-11 19:55:24 | 显示全部楼层
autocad如何自动加载呢?
 楼主| 发表于 2024-9-17 22:55:34 | 显示全部楼层
ajunseo 发表于 2024-9-11 19:55
autocad如何自动加载呢?
  1. ;;//代码块,功能为加载支持AutoCAD的OpenDCL运行库OpenDCL.xx.ARX文件(如果尚无加载,可自动判断AutoCAD版本(32位和64位)并加载相应ARX文件//
  2. ;;注意:如果已经加载或者加载成功后,将返回 T
  3. ;;如果OpenDCL.xx.ARX已经载入,本代码块将不做任何动作。
  4. ;;(dcl-getversionex) 获取OpendDCL版本
  5. ;;(Arxload "OpenDCL.x64.19.arx")
  6. (or (dcl-getversionex)
  7.         ((lambda (/ PROC_ARCH ARXNAME ARXVER ARXPATH)
  8.                  ;;根据处理器的类型 和 AutoCAD的版本,确定需要加载的ODCL版本。
  9.                  (setq ARXNAME
  10.                          (strcat "OpenDCL"
  11.                                  (if (and (setq PROC_ARCH (getenv "PROCESSOR_ARCHITECTURE")) (< 1 (strlen PROC_ARCH)) (eq "64" (substr PROC_ARCH (1- (strlen PROC_ARCH)))))
  12.                                          ".x64."
  13.                                          "."
  14.                                  )
  15.                                  (setq ARXVER (substr (getvar "ACADVER") 1 2))
  16.                                  ".arx"
  17.                          )
  18.                  )
  19.                  ;;尝试查找,尝试加载。
  20.                  (cond
  21.                          ((null (setq ARXPATH (findfile ARXNAME)))
  22.                                  ;;警示用户未能找到 zrxfile
  23.                                  (alert (strcat "OpenDCL支持文件 " ARXNAME "无法加载。" "\n你需要将它添加到中望CAD的支持路径中。"))
  24.                                  (exit)
  25.                          )
  26.                          ((null (arxload ARXPATH 'NIL))
  27.                                  ;;警示用户未能加载 zrxfile
  28.                                  (alert (strcat "无法加载 " ARXNAME "。"))
  29.                                  (exit)
  30.                          )
  31.                          (T)
  32.                  )
  33.          ))
  34. )

这是论坛里大佬写的自动加载程序,出处暂时忘掉了,贴出来供参考。
发表于 2024-10-18 21:59:22 | 显示全部楼层
希望以后越来越多二开支持中望cad
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-19 00:50 , Processed in 0.191422 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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