1.什么是ACIS
ACIS是由美國Spatial Technology公司推出的,Spatial Technology公司成立於1986年,並於1990年首次推出ACIS。ACIS最早的開發人員來自美國Three Space公司,而Three Space公司的的創辦人來自於Shape Data公司,因此ACIS必然繼承了Romulus的核心技術。ACIS的重要特點是支持線框、曲面、實體統一表示的非正則形體造型技術,能夠處理非流形形體。
ACIS是用C++構造的圖形系統開發平台,它包括一系列的C++函數和類(包括數據成員和方法)。開發者可以利用這些功能開發面向終端用戶的三維造型系統。ACIS是一個實體造型器,但是線框和曲面模型也可以在ACIS中表示。ACIS通過一個統一的數據結構來同時描述線框、曲面和實體模型,這個數據結構用分層的C++類實現。ACIS利用C++的特點構造了標准的、可維護的接口。API函數在不同ACIS版本之間保持一致性,而類及其接口函數則可能改變。ACIS中應用到的主要C++概念包括:數據封裝、類構造重載、構造拷貝、類方法和操作符重載以及函數重載等。C++沒有提供描述幾何體的數學基本類,ACIS提供了一些C++基類實現這個功能,並且利用C++的特性可以對它進行了擴充,這樣ACIS就可以支持任意幾何體的定義和構造功能。
2.下載ACIS
http://www.spatial.com/products/downloads Spatial Technology公司的官方網站上進行下載
Customer ID: 2998
Customer Password: facilitate-partnership
ACIS版本:ACIS R23
系統環境:Windows 7 旗艦版
開發平台:VS.NET 2008
進入下載頁面,可以看到相關Platform的選擇,根據自己情況選擇適合的平台環境。
在相關的平台下,可以下載ACIS安裝程序和Doc的文檔。
也有 在線的Doc文檔 可以查閱。
注意:從ACIS R17開始采用了license 機制,因此在創建每一個新的工程,需要將license 文件加入到該工程中,所以記得要去下載Licence Key文件。
3.安裝及配置ACIS
3.1安裝ACIS
在安裝 Spatial 產品后,還必須安裝要 Spatial 產品安裝包所提供的可執行文件(32 位或 64 位)。
在 Spatial 產品安裝過程中,兩個可執行文件置於 Spatial 產品安裝目錄下的 redist 文件夾中;例如:
<install_dir> \redist VC9\InstallDSSoftwareVC9Prerequisites_x86.msi (32-bit) VC9\InstallDSSoftwareVC9Prerequisites_x86_x64.msi (64-bit)
其中,<install_dir> 是您確認的 Spatial 產品安裝目錄位置。
3.2注冊環境變量。
注冊A3DT和ARCH,在程序預編譯和鏈接時候使用。
變量名為<A3DT>
變量值為<ACIS安裝目錄>
“ARCH”定義用來指定使用的庫和平台
變量名為<ARCH>
變量值為<NT_VC9_DLLD>
注冊或修改PATH變量。
如果存在PATH變量,則在末尾添加,若不存在則新建PATH變量並設置值。
變量名<PATH>
變量值<%A3DT%\bin\%ARCH%>
3.3建立VS.NET 2008工程並配置
打開VS2008,創建新的Win32 Console Application的Empty工程。
添加一個新的C++文件,進入工程的屬性設置窗口進行配置。
在C/C++ ->常規->附加包含目錄添加 $(A3DT)\include
在C/C++->預處理器->預處理器定義添加$(ARCH)
在鏈接器->常規->附加庫目錄添加$(A3DT)\lib\$(ARCH)
具體的其他預處理定義可以參考 這里
最后記得要把自己下載好的License Key文件添加到工程中來。
4.建立第一個簡單的ACIS應用程序。
以下是直接復制Doc文檔里的示例程序。
unlock_spatial_products_<NNN>()函數請根據自己的License Key文件,自行更改。

#include <stdio.h> #include "acis.hxx" #include "kernapi.hxx" // Declaration of the licensing function void unlock_spatial_products_<NNN>(); // The main program... int main (int argc, char** argv) { // Start ACIS. api_start_modeller(0); // Call the licensing function to unlock ACIS. // This can be done right after calling api_start_modeller(). unlock_spatial_products_<NNN> (); // Initialize all necessary add-on components (none in this example). // Your application code goes here. printf ("Hello, World!\n"); // Terminate all necessary add-on components (none in this example). // Stop ACIS and release any allocated memory. api_stop_modeller(); return 0; }
在運行時候可能會報0xc0150002錯誤,這里 有相關回答。
一般打補丁就可以解決了。 補丁在 這里
Hints:如果安裝離線的Doc文檔時候,看下里面的Readme的FAQ,如果Sql服務器無法跑起來,注意在C盤建立TEMP文件夾,確保它有足夠的權限。