当前位置: 首页 > 网络知识

Qt ObjectARX 2022

时间:2026-01-29 09:26:13

QT中的ARX配置

LoadQtDlls.pro

1 TARGET = QTARXLoadQtDlls 2 #the sdk include path 3 INCLUDEPATH += "D:\ObjectARX 2022\inc" 4 INCLUDEPATH += "D:\ObjectARX 2022\incx64" 5 6 #rxapi.lib; acdb21.lib; acge21.lib; acad.lib; ac1st21.lib; accore.lib; 7 LIBS+= L"D:\ObjectARX 2022\libx64" lrxapi 8 LIBS+= L"D:\ObjectARX 2022\libx64" lacdb24 9 LIBS+= L"D:\ObjectARX 2022\libx64" lacge24 10 LIBS+= L"D:\ObjectARX 2022\libx64" lacad 11 LIBS+= L"D:\ObjectARX 2022\libx64" lac1st24 12 LIBS+= L"D:\ObjectARX 2022\libx64" laccore 13 14 #DEF_FILE 15 DEF_FILE += $$PWD/AcRxDefault.def 16 17 #use md dll 18 QMAKE_CXXFLAGS += /MD 19 20 #change .dll to .arx 21 TARGET_EXT = .arx 22 23 #remove _DEBUG 24 DEFINES = _DEBUG 25 DEFINES += _OBJECT_ARX_VERSION_X64_=2022 26 27 QT += core 28 QT += gui 29 QT += widgets 30 QT += qml 31 32 #Qt project template 33 TEMPLATE = lib 34 35 SOURCES += this_mainpp \ 36 formpp 37 38 RESOURCES += \ 39 images.qrc 40 41 DESTDIR = $$PWD/../../release/Autocad2022 42 43 FORMS += \ 44 form.ui 45 46 HEADERS += \ 47 form.h

ARX入口书写

this_mainpp

1 #pragma warning( push) 2 #pragma warning (disable: 4189 4100 ) 3 #include <Windows.h> 4 #include <arxHeaders.h> 5 #pragma warning( pop) 6 7 #include <string_view> 8 9 using namespace std::string_literals; 10 11 #include <QtWidgets> 12 #include <QtQml> 13 #include<QMessageBox> 14 15 inline void HellowWorld() 19 inline void HellowWorldARX() 27 auto varDataTime = QDateTime::currentDateTime().toString().toStdWString(); 28 varDataTime = LR"(Hellow World!)" + varDataTime ; 29 acutPrintf(varDataTime_str()); 30 } 31 32 namespace 45 inline char** getArgv() ; 48 std::copy(qtApplicationPath.begin(), qtApplicationPath.end(), 49 static_cast<char*>(acadpath)); 50 argv[0] = static_cast<char *>(acadpath); 51 return argv; 52 } 53 } 54 }/*namespace*/ 55 56 extern "C" AcRx::AppRetCode 57 acrxEntryPoint(AcRx::AppMsgCode msg, void* pkt) 70 ; 73 varImage.width(); 74 varImage.height(); 75 } 76 77 } 78 /*****************************************/ 79 acedRegCmds>addCmand( 80 L"SSTD_GLOBAL_CMD_GROUP", 81 L"HellowWorld", 82 L"HellowWorld", 83 ACRX_CMD_MODAL, 84 &HellowWorldARX); 85 }break; 86 case AcRx::kUnloadAppMsg: break; 87 default:break; 88 } 89 return AcRx::kRetOK; 90 } 91 92 /********************************/

代码结构

结果展示

this.png

生成的arx

细节注意

arx同级目录的dll

arx同级目录的dll是qt编译出的,不然无法加载

使用的命令D:\Qt\5.15.2\msvc2019_64>windeployqt.exe C:\Users\yhx\Downloads\ObjectArxAutocad2018Vs2017Qt59master\ObjectArxAutocad2018Vs2017Qt59master\release\Autocad2022\QTARXLoadQtDlls.arx

CAD加载arx
使用命令arx

QT项目配置



上一篇:EPLAN 软件卸载有残留?教你如何完全卸载EPLAN
下一篇:Solidworks 零件重命名后,工程图视图丢失怎么办?
Qt
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器
  • 英特尔第五代 Xeon CPU 来了:详细信息和行业反应
  • 由于云计算放缓引发扩张担忧,甲骨文股价暴跌
  • Web开发状况报告详细介绍可组合架构的优点
  • 如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳
  • 美光在数据中心需求增长后给出了强有力的预测
  • 2027服务器市场价值将接近1960亿美元
  • 生成式人工智能的下一步是什么?
  • 分享在外部存储上安装Ubuntu的5种方法技巧
  • 全球数据中心发展的关键考虑因素
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器

    英特尔第五代 Xeon CPU 来了:详细信息和行业反应

    由于云计算放缓引发扩张担忧,甲骨文股价暴跌

    Web开发状况报告详细介绍可组合架构的优点

    如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳

    美光在数据中心需求增长后给出了强有力的预测

    2027服务器市场价值将接近1960亿美元

    生成式人工智能的下一步是什么?

    分享在外部存储上安装Ubuntu的5种方法技巧

    全球数据中心发展的关键考虑因素