BLADEは、BricsCAD V18.2の優れた新機能です。の略 BricsCAD LISP 高度な開発環境であるBLADEは、BricsCAD用の新しいVisual LISP IDEです。

Bricsysはオートデスクに追いついただけでなく、オートデスクの1999ヴィンテージVLIDEよりもはるかに多くの追加機能を提供しており、Bricsysがこれから追いつかれる可能性はほとんどありません。それでも互換性は高いままです。

パリで開催されたBricsys 2017カンファレンスに参加したとき、このIDEを当時の名前が付いていないプレリリース形式で個人的に見る機会がありました。 私はその作成者が示した機能に驚いて喜んでいました、 トルステン・モーゼス。最近、トルステンの創作についてインタビューする機会がありました。

Torsten、私はBricsCADのLISPが機能する方法のためにBricsCAD用のLISP IDEを作成するのが困難であったことを理解しています。説明できますか?

BricsCAD LISPは OpenLisp コアシステム、フランスの開発者クリスチャンジュリアンから。これは のみ LISPエンジンはまだ開発中です。私が見つけた他のものは90年代半ばに開発を止めました。

OpenLispは非常に最新の実装であり、AutoLISPで使用されていた古いXLisp方言に匹敵しません。オブジェクト指向の機能もサポートされています。したがって、LISP式の内部表現は、LISPファイルに見られるテキスト表現とは異なります。

だから私が書くAutoLISPコードはBricsCADが実行するコードではないのですか?

そのとおり。多くの典型的なAutoLISP構造は一種のエミュレーションによって実装され、内部表現とテキスト表現の違いをさらに促進します。そのため、デバッグ機能を提供するために、内部OpenLisp式の実行を関連するテキスト表現と同期させることが大きな課題となっています。

実質的に解決できないように見える明白な技術的な詳細に加えて、本格的なGUIを実装するために予想される多大な努力がありました。これは単なるエディタではなく、IDE GUI全体でした。

AutoCADの標準に近いVLIDEを提供したとしたら、それは大惨事であり、大きな不名誉だったでしょう。当時は素晴らしいことでしたが、今から20年後のことです。

BricsCAD用のLISP IDEを作成するという考えは、私たちが長い間延期するほどの困難に満ちていたようです。

これらの困難をどのようにして克服したのですか?

まず、それは純粋な偶然でした。 [笑い]運良く、私はOpenLispに隠された詳細を発見しました– LISPシンボル(および式は匿名シンボルの一種)は、DWGデータベースオブジェクトのXDataに非常に類似した、無制限の添付カスタムデータを保持できます。私はそれについて何年も知っていましたが、エディターとデバッガーの双方向接続へのLISP式の実行のためにこれを「誤用」するショートカットを解決したことはありませんでした。最初のいくつかのクイックテストでは、このアプローチが非常に適していることが示されました。

別の偶然にも、私はWxWidgets(GUIだけでなく、クロスプラットフォームシステム)がすでに有名な シンチラ 多くのエディターで広く使用されているオープンソースエディターエンジンであるエディター。 WxWidgetsは、2つのレベルのラッパー(プレーンなコアラッパーと高レベルのラッパークラスシステム)も提供します。これはWxWidgetsロジックに完全に適合します。

しかし、それでも、それは単純なエディターサポートだけであり、GUIではありません。次に、そのWxWidgets Scintillaシステムに基づいた、WxWidgetsライセンスに基づくオープンソースとして、非常に適切で拡張可能なエディターとGUIの実装を見つけました。したがって、商用アプリケーションでそのソースコードを使用することが許可されています。そのエディタが呼び出されます wxStEdit.

このソースがLISP IDEに適していることを確認し、それを拡張するために多くの追加作業を行いました。 wxStEditの開発は2008年頃に終了しましたが、それでもコンパイルされ、ほとんど問題なく動作していました。それにもかかわらず、そのGUIを拡張する過程で、関連するすべてのレベル(Scintilla、WxWidgets Scintillaラッパー、およびwxStEdit)で多くの欠陥を見つけて修正しました。

大きな門の両翼が突然開かれたのは、この偶然の集まりでした!

以前に、AutoLISPおよびVisual LISPのBricsCAD実行は、AutoCADの数倍の速さでした。新しいテクノロジーはそのパフォーマンスにどのように影響しますか?

すべての新しいBLADE関連のものは、IDEおよびデバッガー以外の通常のLISP実行には実際には影響しません。接続は、通常の処理で時間がかからないいくつかのコールバックによって行われます。したがって、物を壊す可能性もありません。

BLADEの実装は非常に安全であり、通常の使用ではパフォーマンスは高いままです。

デバッガーと同期については、すべて自作のものであり、デバッグ時でも最高のパフォーマンスが得られるように最適化されており、システムとLISPのメモリ使用量が最小限に抑えられます。

デバッガと内部同期と外部同期を実装する過程で、ほとんどのエミュレーションも削除し、OpenLispのコア機能として実装しました。これには、(繰り返し)、(foreach)、および(vlax-for)関数がループ構成で約5倍速く実行されるという副作用があります。したがって、物事を遅くするのではなく、ブレードを作成することで実際に物事がスピードアップしました!

MacとLinuxのバージョンでもこの機能を利用できますか?

はい、完全に互換性があります。これは、WxWidgetsと私自身のものの実装によるものです。 Linuxで動作するBLADEはすでに確認済みです。違いはありません。実装コードにもWindows固有のものはありません。

デバッグセッションのワークフローの簡単な例を挙げていただけますか?

まず、LISPファイルをBricsCADにプリロードしないでください。デバッガーの外部に読み込まれたこのようなコードは完全に機能しますが、デバッグに使用することはできません。内部表現と外部表現の間の特別な接続は、デバッグ状態でLISPコードをロードするときにのみ確立されます。

次に、BLADEで、既存のFASまたはVLXプロジェクト、および/または「名前付きセッション」、または単にデバッグを開始する任意のLISPファイルを開きます。

ここで、メニューまたはツールバーから[デバッグの開始]を選択するか、F8ホットキーを押します。特別なデバッグツールバーが表示されます。 AutoBreakをアクティブにして、最初の実行可能コードで停止するか、デバッグを開始してブレークポイントを配置するLISPソースをアクティブにすることができます。

次に、通常の[BricsCADにロード]機能によって、またはデバッグツールバーの[ロード]ボタンから、専用LISPファイルをロードします。これで、ロードされたコードのデバッグが有効になり、右側の2つのタブにファイルとデバッグが有効な関数が表示されます。

デバッガーが最初のブレークポイントで停止すると、ツールバーですべてのデバッグステップモードが有効になり、通常のデバッグステップモードがすべて使用可能になります。実際には、AutoCADのVLIDEよりも。チェックボックスをオンにすることで、ウォッチ(監視変数と追跡変数)を「データブレークポイント」として設定できます。次に、その値が変更されるたびに、デバッガーは関連するLISPステートメントで自動的に停止します。

ロードしていない他のファイルのコードをコードが呼び出すとどうなりますか?

心配しないでください。デバッガはこれを認識し、関連するLISPファイルをオンデマンドでロードするように要求します。通常のLISPでは、不明な関数エラーが発生しますが、デバッガがこれを先にキャッチします。実際、これはハイエンド機能の1つです。プライマリLISPファイルのみをロードし、他のファイルへのデバッグは、デバッグセッション中にロードすることで解決します。これは、複雑なアプリを扱う場合に非常に便利です。他のLISPソースをプリロードする必要はありません。

マーフィーの法則を経験したことでしょう。ここで、必要な特定の関数はロードされていない関数です。 BLADEではその問題は発生しません。

ここからどこへ?この仕事は終わりましたか、それともまだ改善の余地がありますか?

BLADEはまだ非常に新しい製品であるため、今後さらに多くの製品があります。これまでのところ、主な目標は、優れたデバッグ機能とやや妥当なプロジェクトの処理を提供することでしたが、プレーンエディタの機能にはそれほど重点を置いていませんでした。

私のto-doリストには、まだ実装すべき多くの主要な機能があります。すべての開発者が自分のキーストロークを愛し、他の人を学ぶことは悪夢なので、ホットキーエディターを追加したいと思います。また、主に大きなLISPアプリケーション向けに、ファイルごとおよびセッションごとの相互参照チェックも必要です。

その後、時間の経過とともに、エディター機能が拡張および改善され、より多くの機能が提供されます。 1つの例は、LISP関数名にカーソルを合わせると、関数のシグネチャと短いヘルプを表示するエディターツールチップを提供することです。

そしてもちろん、人々がこれを本番環境で使い始めると、開発者から要望、改善のヒント、バグ報告などの形で多くのフィードバックが届くことを知っています。 BLADEをAutoCADのVLIDEに近づけるために、いくつかの詳細を実装したいという希望は多くあります。これは少し難しい場合があり、メインのターゲットでもありません。見返りとして得られる大きな利点を考えると、開発者が少し異なるワークフローを受け入れるようになることを願っています。

一般に、BricsCAD自体と同様に、開発者のアイデア、ニーズ、要件に対して非常にオープンです。結局、BLADEをできるだけ簡単かつ生産的に使用する必要があるのは開発者です。

BLADEの最初のリリースでさえ、Martin Drese(CAD Wiesel)などのベータテスターからの重要なフィードバックに基づいています。

BricsCAD V18.2は本日より入手可能です!

開発チームがBricsCADプラットフォームに専念しているレベルの献身を見ると、それが.dwgベースのCADの明確な未来であることに同意するでしょう。 BricsCADユーザーとして、ライセンスから得られる価値は年々高まっています。それは関係者全員にとって双方にとって有利な状況です。今日BricsCADを使用していない場合は、使用する必要があります。

BricsCAD V18.2を30日間無料でお試しください

注意:さまざまな意見や意見を聞くことが重要であるため、定期的にゲスト投稿を公開しています。各著者は自分の名前で書き込み、テキストの内容に責任があります。このインタビューは最初に出版されました 部品スティーブのブログ吐き気サイト