一年以前老板让配置测试ACIS曲面求交,一年以后换了算例让我来测求交效率,换了新笔记本的我只能含泪重新配一遍,这次打算写个博客记录一下,省的未来再发生相同的事。
电脑系统是windows10,ACIS是R16版本,VS是2019版。
在我的电脑-属性-高级系统设置-高级-环境变量里,Path添加新的变量,这里我的路径是:D:\Spatial\acisR16\bin\NT_DLLD。
在VS里新建项目,这里我选择的是Debug x86的环境配置。在项目属性中,C/C++-常规-附加包含目录中添加include文件夹的路径,我的为:D:\Spatial\acisR16\include;C/C++-预处理器-预处理器定义中添加NT_DLLD;C/C++-链接器-常规-附加库目录中添加lib文件夹下的NT_DLLD文件夹路径,我的是D:\Spatial\acisR16\lib\NT_DLLD。
测试代码:
/ acis_test_20210628.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <stdio.h>
#include "acis.hxx"
#include "api.hxx"
#include "kernapi.hxx"
// Declaration of the ACIS licensing function.
//void unlock_spatial_products_<NNN>();
// Declaration of our functions.
void do_something();
int my_initialization();
int my_termination();
// The main program...
int main(int argc, char** argv) {
int ret_val = my_initialization();
if (ret_val)
return 1;
do_something();
ret_val = my_termination();
if (ret_val)
return 1;
return 0;
}
void do_something() {
// Your application code goes here.
printf("Hello, World!\n");
}
int my_initialization() {
// Start ACIS.
outcome result = api_start_modeller(0);
if (!result.ok()) {
err_mess_type err_no = result.error_number();
printf("ERROR in api_start_modeller() %d: %s\n",
err_no, find_err_mess(err_no));
return err_no;
}
// Call the licensing function to unlock ACIS.
//unlock_spatial_products_<NNN>();
// Initialize all necessary components.
result = api_initialize_kernel();
if (!result.ok()) {
err_mess_type err_no = result.error_number();
printf("ERROR in api_initialize_kernel() %d: %s\n",
err_no, find_err_mess(err_no));
return err_no;
}
return 0;
}
int my_termination() {
// Terminate all necessary components.
outcome result = api_terminate_kernel();
if (!result.ok()) {
err_mess_type err_no = result.error_number();
printf("ERROR in api_terminate_kernel() %d: %s\n",
err_no, find_err_mess(err_no));
return err_no;
}
// Stop ACIS and release any allocated memory.
result = api_stop_modeller();
if (!result.ok()) {
err_mess_type err_no = result.error_number();
printf("ERROR in api_stop_modeller() %d: %s\n",
err_no, find_err_mess(err_no));
return err_no;
}
return 0;
}