ADSとSDS
ADS
ADS (AutoCAD® Development System) は AutoCAD GX-5 より登場し、AutoCAD 2000のバージョンまで利用可能だった C 言語によるカスタマイズ API 環境。
ADS 環境では、基本的に AutoLISP 関数と対応する関数(ads_のプレフィクスで始まる)が用意されおり、AutoLISP と同様にカスタムコマンドや AutoLISP 関数の作成が可能であった。
既存の C 言語ライブラリを ADS に組み込んで使用することができたため、AutoLISP では実行できない機能を実装することも可能であった。 ADS カスタマイズの後継環境としては、ObjectARX となっており、ADS から ObjectARX の移行期間のバージョン(AutoCAD R13、R14)では ADSRX という開発環境があった。
SDS
SDS (Solutions Development System) は上述の ADS と環境互換となるIntelliCAD の C++ 言語によるカスタマイズ API 環境。
カスタマイズの範囲や特徴も ADS と同様となるが、ADS の関数が ads_ のプレフィクスであるのに対し、SDS は sds_ プレフィックスで始まっているという違いがある。SDSのヘッダファイルで、ADS関数からSDS関数へ define 定義されているので、等価なSDS関数がないもの以外であればリネームはいらない形にはなっている。
また、ADS は(基本的には)AutoCAD 2000 以降のAutoCADで利用できなくったのに対し、SDSはIntelliCADの初期バージョンから現行の IntelliCAD Ver6.6 (2009年12月現在)まで利用可能となっている。
- 以下の関数は等価なSDS関数がない。
 - 
- ads_arxload
 - ads_arxloaded
 - ads_arxunload
 - ads_ssgetx
 - ads_ssGetKwordCallbackPtr
 - ads_ssGetOtherCallbackPtr
 - adsw_acadMainWnd
 - adsw_acadDocWnd
 
 
- 以下の関数は、SDSで追加されている関数
 - 
- sds_name_clear
 - sds_name_equal
 - sds_name_nil
 - sds_name_set
 - sds_point_set
 - sds_progresspercent
 - sds_progressstart
 - sds_progressstop
 - sds_readaliasfile
 - sds_sendmessage
 - sds_swapscreen
 
 
| SDS 関数の戻り値 | ||
|---|---|---|
| リクエスト | コード | 意味 | 
| RSRSLT | 1 | 結果を返す。 | 
| RSERR | 3 | 評価のエラー。結果は返されない。 | 
| RQSAVE | 14 | 図面を保存中。 | 
| RQEND | 15 | 終了中。 | 
| RQQUIT | 16 | 終了中。 | 
| RQCFG | 22 | IntelliCAD がコンフィグコマンドから戻った。 | 
| RQXLOAD | 100 | 外部の機能をロードした。 | 
| RQXUNLD | 101 | アプリケーションをアンロードした。 | 
| RQSUBR | 102 | 外部サブルーチン要求。 | 
| RQHUP | 105 | IntelliCAD はアプリケーションから切断される。 | 
| RQXHELP | 118 | 機能のためのヘルプを定義してください。 | 
| RTERROR | -5001 | エラーが発生した。 | 
| RTCAN | -5002 | ユーザが Esc を押してコマンドを中止した。 | 
| RTREJ | -5003 | 無効なフォーマットのために、リクエストを拒否した。 | 
| RTFAIL | -5004 | SDS と IntelliCADのリンク失敗。 | 
| RTKWORD | -5005 | getxxx によるルーチンのキーワード。 | 
| RTNORM | 5100 | 成功。 | 
| リザルトバッファコード | ||
|---|---|---|
| リクエスト | コード | 意味 | 
| RTNONE | 5000 | 返り値なし | 
| RTREAL | 5001 | 実数 | 
| RTPOINT | 5002 | 2次元ポイント(X,Y座標). | 
| RTSHORT | 5003 | 短整数 | 
| RTANG | 5004 | 角度 | 
| RTSTR | 5005 | 文字列. | 
| RTENAME | 5006 | エンティティ名. | 
| RTPICKS | 5007 | 選択セット | 
| RTORINT | 5008 | オリエンテーション | 
| RT3DPOINT | 5009 | 3次元ポイント (X,Y,Z座標). | 
| RTLONG | 5010 | 長整数 | 
| RTVOID | 5014 | 空シンボル | 
| RTLB | 5016 | リストの始まり | 
| RTLE | 5017 | リストの終わり | 
| RTDOTE | 5018 | ドットペア | 
| RTNIL | 5019 | nil | 
| RTDXF0 | 5020 | DXF コード 0 (sds_buildlist のみで使用) | 
| RTT | 5021 | T (true) アトム | 
| RTRESBUF | 5023 | リザルトバッファ |