Qt ObjectARX 2022


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项目配置



上一篇:Siemens 西门子1200PLC支持的通信协议

下一篇:Qt ObjectARX实现获取AutoCAD的实体的DXF数据


Qt
Copyright © 2002-2019 k262电脑网 www.k262.cn 皖ICP备2020016292号
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!QQ:251442993 热门搜索 网站地图