コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
GizmoLab 関連
オンラインショップ
CAD&CGブログ
YouTube
GitHub
CAD 系
GizmoTools
AutoLISP
Visual LISP
BricsCADのLISP
GzLib
DCL
OpenDCL
DWG
DXF
CADのコマンド一覧
システム変数
図形の種類
Ver別サポートAPI
CAD用語集
メモ
newLISP
CommonLISP
Script-Fu
Inno setup
JavaScript
ANDROID
Windowsでのファイルハッシュ確認
Prolog
Python
Clojure
Electron
フォント
数学メモ
イメージサイズとメモリ量
blender
Processwire
Win10,11メモ
IIJmio
mediawiki資料
ヘルプ
検索
検索
表示
ログイン
個人用ツール
ログイン
ADSとSDSのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
ADSとSDS
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
{{SDS}} == ADS == ADS (AutoCAD® Development System) は AutoCAD GX-5 より登場し、AutoCAD 2000のバージョンまで利用可能だった C 言語によるカスタマイズ API 環境。<br /> 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 環境。<br /> カスタマイズの範囲や特徴も ADS と同様となるが、ADS の関数が ads_ のプレフィクスであるのに対し、SDS は sds_ プレフィックスで始まっているという違いがある。SDSのヘッダファイルで、ADS関数からSDS関数へ define 定義されているので、等価なSDS関数がないもの以外であればリネームはいらない形にはなっている。 また、ADS は(基本的には)AutoCAD 2000 以降のAutoCADで利用できなくなったのに対し、SDSはIntelliCADの初期バージョン以降ずっと利用可能となっている。 (2010年5月現在) * [[SDS 関数一覧]] ;以下の関数は等価な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 {| class="wikitable" ! colspan="3" | 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 || 成功。 |} == リザルトバッファ == リザルトバッファはデータの入出力などで利用され、1単位のデータが「resbuf」構造体として定義されている。「resbuf」構造体のメンバ変数は、データの種類・データの値・次データへのポインタの3つで、次の構造体へのポインタでリンクチェーンになっている。リンクチェーンの最後のデータの場合は、リンクチェーンの値は「NULL」になる。 <pre class="brush:c;"> struct resbuf { struct resbuf *rbnext; // Allows them to be "linked" short restype; union ads_u_val resval; }; </pre> [[ファイル:resbuf.png|link=|リンクチェーンのイメージ]] データの種類は、「short」型で表される。(下表参照)、実数であれば「RTREAL」、3D座標であれば「RT3DPOINT」などデータの形式を示し、図形データの場合にはDXFコードが入る。 データの値は、実データが入るが、様々な型が入るためにUNIONになっている。 文字列を格納する場合は、リザルトバッファで設定されるのは、その文字列(文字配列の先頭)へのポインタであり、「delete」演算子・「free」関数でリザルトバッファを単純に削除するとメモリリークが起こってしまう場合があるので十分な注意が必要である。また、メモリ管理上の問題から、構築・削除はそれぞれ専用の関数([[sds_newrb]]、[[sds_relrb]])を使用する。 {| class="wikitable" ! colspan="3" | リザルトバッファコード |- ! リクエスト !! コード !! 意味 |- | 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 || リザルトバッファ |} == 関連記事 == *[[バージョン履歴とサポートAPI]] [[Category:SDS]]
このページで参照読み込みされているページ:
テンプレート:SDS
(
ソースを閲覧
)
ADSとSDS
に戻る。
検索
検索
ADSとSDSのソースを表示
話題を追加