LISP:古いものはまだ非常に新しい

Bricsysブログの最初の投稿のパート1へようこそ!について書きます LISP 既存のコードのプログラミングとBricsCAD環境への移行。実装、他の環境との違い、ヒントとコツ、および読者からのその他のトピックのリクエストを確認します。または、LISPをまだ検討していない場合は、少し励まして、LISPが正常に動作していることをお知らせできます。それは間違いなくBricsCADのカスタマイズを検討する価値のある言語です。

最初に、ここ数十年間でLISPを数十万行書いたことを述べさせてください。しかし、私は自分を専門家とは言いません。すべてのvlコマンド、またはより「高度な」関数の一部を知りません。最も効率的でない方法を提示した場合、または単一の関数で置き換えることができるコードの段落を提案した場合は、ご容赦ください。 「より良い」機能が存在することを私が知らなかった可能性は高いです!私はまだ定期的に「新しい」コマンドに遭遇します。私がそうするとき、私はしばしば、新しく発見された機能がどれだけの時間を私に救ってくれたのだろうかと思います。

しばらく前に、LISPでの継続的なコーディングについてクライアントから質問を受けました。時代遅れになってしまったスキルセットになったのではないかと実は思っていました。 (手動の)製図スキルとVemco製図機の習熟について考えてみてください–現在、これらは廃止されました!しかし、顧客の本当のニーズを見ると、新しいLISP機能を更新または開発する理由がますます見つかりました。これらのコンセプトのいくつかをあなたと共有して、あなたが始めるのを助けるのは楽しいことだと思います。

LISPはCADカスタマイズのロゼッタストーンですか?

「LISP」という名前は「リスト処理」という言葉に由来します。データは.dwgファイルにリストとして保存され、LISPはそのデータの読み取り、書き込み、変更、および保存を行います。何よりも、このコードはプラットフォームに依存しません。効率的で、小型で柔軟性があります。私は、コンパイルされていない言語でコードを開発するシンプルさを好みます。 LISPコードをコンパイルする必要はありませんが、プログラムを暗号化してソースコードを保護することができます。 20年前に「ヴィンテージ」のハードウェア/ソフトウェア/ OSで書いた多くのプログラムは、現在のバージョンのBricsCADでも、ほとんどまたはまったく変更なしで動作します。

最近、AutoCAD™2014から2016に移行するクライアントの移行の問題を解決するように依頼されました。この会社の標準CADセットアップには、124,000行のLISPコードを含む400以上のプログラムファイルが含まれ、約4,000の関数が定義されています。少し調べたところ、主な問題は、AutoCAD™2016と互換性のないいくつかの(コンパイルされた)ARXアプリケーションに関連していることがわかりました。 彼らのLISPコードは、その多くが90年代後半に作成されたもので、完全に実行されました。

CAD標準の移行について相談するように頼まれたとき、私は最初に会社のワークフローがどれだけ依存しているかを判断します3rd パーティーツール。次に、ツールに特定のソフトウェアバージョンまたはプラットフォームが必要かどうかを確認します。多くの場合、唯一の問題は、更新が必要なハードコードされたフォルダーパスに関係しています。

カスタムCADプログラムにLISPを使用する理由

では、CAD環境でカスタムプログラムを作成する理由は何ですか?通常、特定のCADエンティティまたはCAD標準に関連するプロセスまたはワークフローの自動化を改善するコードを記述します。ルーチンは、数行のコードと同じくらい単純にすることができます。これらの関数は、レイヤー操作の実行、エンティティプロパティの変更、描画とXREF関係の自動化、またはプロットとパブリッシュのワークフローの標準化に役立ちます。

または、これらのルーチンは、パラメーター駆動型の設計プロセス、またはデータベースアクセスを自動化するアプリケーションと同じくらい複雑になる場合があります。前に述べたように、LISPを使用する主な利点は、CAD環境での言語のサイズが小さく、効率が高いことです。この投稿のパート2で説明する例では、単純なジオメトリ操作(移動と回転)を行うLISPコードは、コンパイルされた言語(.NET、C、C ++、他)。

ページスペースのために、ここでは.NETの例を含めません。しかし、私が話していることを本当に見たい場合は、Googleだけを使用してください。 「.NET APIを使用して移動コマンドを作成する」 いくつかの例が表示されます。これらのコンパイルされた言語では、ユーザーが日常のCAD環境で期待するグラフィカルな動作と直感的なインターフェイスを作成するために、数百から数千行のコードが必要になることがよくあります。

(この投稿はパート2で続きます)

BricsCAD内で実行されるいくつかのプログラミング言語のいずれかで記述されたカスタムプログラムを追加することにより、BricsCADをカスタマイズできます。 利用可能なAPIについては、こちらをご覧ください。