明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2214|回复: 17

[ZWCAD中望] 基于中望CAD二次开发的实践分享

[复制链接]
发表于 2023-3-28 15:05 | 显示全部楼层 |阅读模式
做了二十多年AutoCAD的二次开发,随着公司采购中望CAD替代AutoCAD(主要是AutoCAD采用按年租用方式比较恶心),一年多的时间一直在做将原有AutoCAD二次开发的功能和代码移植到中望CAD环境中来,目前基本完成了,抽出时间整理了一下实践经验,在这里和大家分享交流。
首先分享个重要的工具,这个程序是将用LISP二次开发的VLX和FAS程序可以转换至中望CAD支持的VLS的工具,原来AutoCAD加载程序appload后加载的vlx或fas后缀的程序,在中望CAD里是加载vls后缀的程序。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

评分

参与人数 1明经币 +1 金钱 +10 收起 理由
cjh20088 + 1 + 10 很给力!

查看全部评分

 楼主| 发表于 2023-7-10 15:21 | 显示全部楼层
本帖最后由 njcknfy 于 2023-7-10 15:24 编辑

分享个如何获取对象RGB颜色列表和给对象添加RGB颜色的LISP方法
以下是获取对象的RGB颜色列表
  1. (defun Get_TXSTRGBCOLOR         (TXST_NAME)
  2. ;;;获取对象的RGB颜色列表
  3. ;;;(Get_TXSTRGBCOLOR TXST_NAME)
  4. ;;;参数: TXST_NAME 对象是 ENAME 或者 VLA-OBJECT
  5. ;;;(setq TXST_NAME(car(entsel)))
  6.   (cond        ((= (type TXST_NAME) 'VLA-OBJECT)
  7.          (progn        (setq TXST_OBJ TXST_NAME
  8.                       oColor   (vlax-get-property TXST_OBJ 'TrueColor)
  9.                       clrR     (vlax-get-property oColor 'Red)
  10.                       clrG     (vlax-get-property oColor 'Green)
  11.                       clrB     (vlax-get-property oColor 'Blue))
  12.                 (setq TXSTRGB_LIST (list clrR clrG clrB))))
  13.         ((= (type TXST_NAME) 'ENAME)
  14.          (progn        (setq TXST_OBJ (vlax-ename->vla-object TXST_NAME))
  15.                 (setq oColor (vlax-get-property TXST_OBJ 'TrueColor)
  16.                       clrR   (vlax-get-property oColor 'Red)
  17.                       clrG   (vlax-get-property oColor 'Green)
  18.                       clrB   (vlax-get-property oColor 'Blue))
  19.                 (setq TXSTRGB_LIST (list clrR clrG clrB))))
  20.         (t (setq TXSTRGB_LIST nil)))
  21.   TXSTRGB_LIST)

以下是给对象添加RGB颜色列表的方法
  1. (defun Put_TXSTRGBCOLOR   (TXST_NAME TXSTRGB_LIST)
  2. ;;;修改对象RGB颜色值
  3. ;;;(Put_TXSTRGBCOLOR TXST_NAME TXSTRGB_LIST)
  4. ;;;参数: TXST_NAME-对象是 ENAME 或者 VLA-OBJECT, TXSTRGB_LIST-对象实体的RGB颜色列表(R G B)
  5. ;;;(setq TXST_NAME(car(entsel)) TXSTRGB_LIST (list 140 30 252))
  6.   (cond  ((= (type TXST_NAME) 'VLA-OBJECT)
  7.    (progn  (setq TXST_OBJ TXST_NAME
  8.           oColor   (vlax-get-property TXST_OBJ 'TrueColor))
  9.     (vlax-invoke-method oColor
  10.             'SetRGB
  11.             (car TXSTRGB_LIST)
  12.             (cadr TXSTRGB_LIST)
  13.             (caddr TXSTRGB_LIST))
  14.     (vlax-put-property TXST_OBJ 'TrueColor oColor)
  15.     (vla-update TXST_OBJ)))
  16.   ((= (type TXST_NAME) 'ENAME)
  17.    (progn  (setq TXST_OBJ (vlax-ename->vla-object TXST_NAME))
  18.     (setq oColor (vlax-get-property TXST_OBJ 'TrueColor))
  19.     (vlax-invoke-method oColor
  20.             'SetRGB
  21.             (car TXSTRGB_LIST)
  22.             (cadr TXSTRGB_LIST)
  23.             (caddr TXSTRGB_LIST))
  24.     (vlax-put-property TXST_OBJ 'TrueColor oColor)
  25.     (vla-update TXST_OBJ)
  26.     (setq TXST_NAME (vlax-vla-object->ename TXST_OBJ))))
  27.   (t TXST_NAME))
  28.   TXST_NAME)

回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2023-7-10 15:46 | 显示全部楼层
类似ACAD加载ARX文件,中望CAD环境下也可以加载后缀为ZRX的文件,实现调用OPENDCL和DOSLIB插件,这边就分享一下基于ZWCAD2023for64位的ZRX,加载的方法就是命令行APPLOAD,选择下载附件解压缩后的ZRX文件,我们在实现ACAD二次开发迁移到ZWCAD时进行了充分测试,大部分功能都没啥问题,就是要注意ZWCAD的版本需要时2022年9月30日之后的版本,之前的ZWCAD版本LISP接口BUG比较多,好多功能不支持

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2023-4-7 13:35 | 显示全部楼层
C++移植基本不用做什么修改
发表于 2023-6-15 09:05 | 显示全部楼层
版主这个很实用,支持
发表于 2023-6-15 10:20 | 显示全部楼层
贴主,转化失败怎么弄呢
 楼主| 发表于 2023-7-8 17:20 | 显示全部楼层
yuyehuan 发表于 2023-6-15 10:20
贴主,转化失败怎么弄呢

这个不会失败啊,原来在ACADLISP里面编译好的VLX,直接转换成VLS我还没有遇到失败的情况
 楼主| 发表于 2023-7-10 16:13 | 显示全部楼层
基于中望CAD环境定制菜单栏和使用OPENDCL定制界面都是可以实现的,我们现在也在参与一些单位CAD国产化的二次开发改造项目,原来基于ACAD开发的ARX、LISP,VB.NET等都已经有实现的案例,有需要的单位欢迎项目咨询(友情提示:二次开发改造项目是按需收费),中望CAD还支持在国产操作系统下运行,我们正在做基于国产操作系统的二次开发迁移改造方法,希望有兴趣的朋友可以一起来参与

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-28 11:38 , Processed in 0.443341 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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