ProgeCAD二次开发日志

作者: admin 分类: C++,CAD,ObjectARX 发布时间: 2020-12-02 12:05

官网地址:http://www.proge-cad.com.cn/

progeCAD (普及CAD)

 

progeCAD 的使命:
为所有有 ideas 的设计师、工程师及企业家,提供专业可靠的 CAD 软件,助你实现设计,同时减轻成本负担。

 

 

progeCAD 背景介绍:
progeCAD (普及CAD) 是一个超值的 2D/3D CAD 软件,现时世界各地已有超过 250,000 全球正版授权用户采用 progeCAD,是一个完全合法的 AutoCAD 替代软件。

 

我们的总部位于意大利,始创于1985 年1月,同年底为 ABB 集团 (ABB集团位列全球500强企业,是电力和自动化技术领域的领导厂商) 提供的一套包含图形符号数据库的 CAD 方案,长期以来,ProgeCAD 设计团队专注开发工业环境中的垂直应用 CAD 方案。 于1999 年,成为 ITC (IntelliCAD Technology Consortium) 的创会会员,ITC 为 CAD 开发者及用户提供可垂直应用及可满足一般 CAD 绘图应用的计算机辅助设计绘图引擎。

 

progeCAD 采用 IntelliCAD 引擎作为核心,开发出的高端 CAD 解决方案。IntelliCAD 引擎是由 ITC 所开发的一套计算机辅助设计绘图引擎,根据 Open Design Alliance 制定的 DWGdirect 链接库来编辑 「.dwg」文件格式,而「.dwg」为 CAD 相关的应用软件广泛使用的一种文件格式,也是 AutoCAD 保存设计数据所用的单元格式。

 

AutoCAD 产品价格昂贵,将来 AutoCAD 或只有年费计划向用户收费,长远成本负担沉重,progeCAD 的使命就是为广大用户提供多一个更理想的选择,一个专业、易用而又价格吸引的 CAD 软件,帮助企业提升竞争力。

 

 

progeCAD 的中文名字为「普及CAD」:
亚洲地区经济智能转型,设计必要走向高质素及创新领域,progeCAD 大中华团队伙同意大利团队一直努力用心开发,并专注为中国内地、香港、澳门及台湾的用家提供具竞争力的 CAD 方案、产品维护及售后技术支持,鼓励大众使用正版 CAD 软件,普及 CAD 软件的应用,这也是 progeCAD 中文名字「普及CAD」的由来。

支持以下开发语言(实际上是早期的中望差不多,用的是TDrawings的方式)

自定义( AutoLISP, DIESEL, SDS, IRX, COM Automation )
支持以下程序语言:LISP, SDS (C++ ADS compatible), IRX (C++ similar to AutoCAD ARX ), 改良的 .NET API 2020 new! , VBA, DIESEL,COM automation

 

支援 .NET
连接 .NET 软件与 progeCAD 绘图

下面开始讲一些开发相关的,SDK下载地址:

https://www.progesoft.com/support/progecad-extras

progeCAD SDK (Software Development Kit)

SDK比较大,有几百兆。打开2020的SDK包,内容如下:

2020-12-02_113419.png

其中icrx就是这个CAD的类ARX的程序

根据api\icrx\samples\Readme.txt中的说明,应该先拿IRXApiTest来开始

\api\icrx\samples\IRXApiTest

This began as the seed for an API test harness, but became

obsolete when QA created their own for use with testing.

'DocTestCommand' exercises Document-related IRX API calls 

such as getting the current document, creating new documents, 

opening a document, etc.

2020-12-02_113759.png

看sln的图标,是VS2012的项目,我使用VS2019来打开。曾经用默认的VS2012来打开,结果编译不成功,具体忘了什么原因,这个文章是事后补的。

2020-12-02_113941.png

打开后还保持VS2012的不变。

这个还是挺友好的,不管是x32还是x64都可以直接编译,编译后找到IRXApiTest_4.3_15.irx文件,加载到ProgeCAD中,会提示有4个命令可用,实际操作和ACAD差不多,4个命令都可以用,没有报异常。

加载命令也是Appload,加载界面和中望CAD的差不多。

说一下文件作用

2020-12-02_114306.png

箭头指向的3个文件和ARX的项目.cpp文件差不多,都是定义dll相关的,暂时不用管。

蓝圈中的IRXApiTestModule.cpp和acrxEntryPoint.cpp类似,是命令注册用的。下面图片为IRXApiTestModule.cpp中内容

2020-12-02_114604.png

命令是放在这个位置的

2020-12-02_114648.png

下面使用ssSetFirstTestCommand来说明一下命令是如何定义,并大概说明一下代码

2020-12-02_114855.png

命令都继承自OdStaticRxObject < OdEdCommand >,其中execute是命令操作的主体函数。其它都是注册命令名相关的。

2020-12-02_115044.png

这个命令的作用是亮显空间中所有对象的。

代码的意思是构建pSSet1和pSSet2两个选择集,pSSet1直接将全图的所有对象都获取出来,然后依次添加对象到pSSet2中,最后再亮显pSSet2。

总体上来看,其代码做了一定的封装,比如pSSet1->selectAll(NULL);就比自己在ARX中相同代码要方便一些。

2020-12-02_115903.png

这个命令的功能相当于Hello World,只是其功能和其打印出的“New polyline boundary was created and associated with hatch entity”没什么关系,此文件中定义了其它的打印,非要用icPrintError感觉不合理

2020-12-02_120111.png

DocTestCommand这个命令会生成Drawing2这个文件

其它的就不看了

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表评论

标签云