OpenDCL

提供:GizmoLabs - だいたい CAD LISP なサイト

OpenDCL ( https://opendcl.com/ )は、AutoCAD の AutoLISP で利用される DCL(ダイアログ制御言語)の代替となるGPLライセンスのプロダクト。 ツリーやタブ、グリッド、スプリッタなど Windows で一般的な UIコントロールがあり、LISP + DCL では心もとない UI周りを補完した開発をすることができる。 尚、OpenDCL は GPL v2 であるため OpenDCL 自体に手を入れて頒布・販売したい利用したい場合は、同様に GPL v2 としてソースコードを公開する必要があるが、OpenDCL に手を入れずに利用する形であれば他のライセンスと組み合わせで組み込んで利用可能らしい。>> https://www.opendcl.com/forum/index.php?topic=530.0 (正確なところは OpenDCL に聞いた方がいいでしょう。)

OpenDCL は、ObjectDCL(http://www.objectdcl.com/ : 2006年に GNU GPLライセンスにて、オープンソースとしてリリースされた 3rd day Software の市販アプリケーション by オーナー Chad Wanless.)をベースにしている。

利用可能な CAD (Runtime.9.1.3.0 - 2021年3月時点) ・ AutoCAD (2016 以降)… ARX アプリなので LT では使えない ・ BicsCAD (V13 以降) … BRX アプリなので Classic や LITE では使えない ・ GstarCAD (2015 以降)… GRX アプリなので LT では使えない ・ IJCAD (2015 以降)… GRX アプリなので LT では使えない ・ ZWCAD (2014 以降)… ZRX アプリなので STD では使えない


超ざっくりな作り方&使い方

  1. OpenDCL Studio をダウンロードしてインストールする。
  2. OpenDCL Studio 上でインターフェス作ったり関連 LISP を指定したりする。(LISPのコーディングは別でやる形。)
  3. OpenDCL の Runtime をダウンロードして利用したい PC にインストールする。
  4. OpenDCL の Runtime を CAD で読みこむ。(32bit/64bit で読み込むファイルが違う 64bit 用は x64 と付いてるやつ)
  5. OpenDCL を使った LISP のプログラムを読み込み、実行する。


HelloWorld (IJCAD 2020 64bit の場合)

; OpenDCL.x64.2020.grx とHello.odcl (Form1のダイアログが定義されている)が CAD のパス上にあること前提。

(defun OpenDCL_Load_Runtime ()
  (if (not (member "OpenDCL.x64.2020.grx" (arx)))
    (arxload "OpenDCL.x64.2020.grx" "OpenDCL.x64.2020.grx がないっす。")
  )
)

(defun c:Hello ()
  ; OpenDCL のランタイムを読み込む
  (OpenDCL_Load_Runtime)
  ;; Hello.odcl ファイルを読み込む
  ;; プロジェクトの変更を確認しやすくするために、T の引数で毎回プロジェクトをリロード。
  (dcl-Project-Load "Hello.odcl" T)
  ;; メソッドを呼び出し、Hello ダイアログボックスを表示します。
  (dcl-Form-Show "Hello" "Form1" 0 0)
;  (dcl-Form-Show "Hello" "Form1") ;  中央表示
  (princ)
)