この投稿では、「非プログラマ」がBricsCADをカスタマイズするために利用できる最も強力な方法を見ていきます。® — LISPプログラミング言語—マクロやスクリプトよりも作成がやや難しくなります。 LISPとは何か、BricsCADでどのように機能するかを学びます。また、LISPで簡単な加算を行う方法も学習します。

ツールバーとメニューマクロは簡単に記述および編集できますが、BricsCADを制御する機能が制限されます。


この投稿では、次のトピックについて説明します。


BricsCADにおけるLISPの歴史

LISPは、人工知能の研究を支援するために1950年代後半に開発された、最も初期のプログラミング言語の1つです。その名前は「リスト処理」の略であり、単語、数字、記号のリストを処理するように設計されています。

LISPが最初にCADに登場したのは、1985年に、Autodeskがドキュメント化されていない機能をAutoCADに追加したときです。® v2.15は「変数と式」と呼ばれていました。 Autodeskのプログラマーは、David Betzによって作成されたパブリックドメインの方言であるXLISPを採用し、AutoCADに適合させました。®。 Variables and Expressionsの最初のリリースは、 条件付きステートメント —プログラミング言語が意思決定を行うために必要です。

追加のリリースでは、オートデスクは不足しているプログラミングステートメント、強力なGETxxx、SSxxx、およびEntModルーチン(図面データベース内のエンティティへの直接アクセスを提供)を追加し、プログラミング言語の名前を「AutoLISP」に変更しました。これにより、サードパーティの開発者は、図面全体を操作するルーチンを作成し、プログラマー以外の人は、日常の作図作業を自動化する単純なルーチンを作成することができました。

SoftDeskがIntelliCADを開発したとき、彼らはAutoLISPに非常によく似たプログラミング言語を含み、それを単に「LISP」と呼んでいました。 (本当のLISPプログラミング言語との混同を防ぐために、これをIntelliLISPと呼んだほうがよかったと思います。さらに良いことに、iLISPの流行のモニカを与えたかもしれません。)

ブレード環境

BricsCADはLISPを含み、VisualLISPをサポートします(これらの投稿では扱いません)。あなたは完全を見ることができます、 公式BricsCAD LISPガイド オンライン。 V18では、Bricsysは高度な ブレードと呼ばれるLISPオーサリング環境:Bricsys LISPの高度な開発環境。開始するには、 BricsCAD内からのコマンド。

LISPとAUTOLISP間の互換性

BricsCADのLISPは、ほとんどの場合、AutoCADと互換性があります®のAutoLISP。 AutoLISPを知っている場合は、ダイアログボックスの制御を含め、LISPですぐにプログラミングできます。ただし、LISPにはいくつかの違いがあるため、注意が必要です。

追加のLISP関数

BricsCADのLISPには AutoLISPにない追加の関数。これらには以下が含まれます。

LISP関数 意味
acos アークコサイン
asin アークサイン
atanh 双曲線逆正接
天井 x以上の最小の整数。
Cosh 双曲線コサイン
見つける リスト内のアイテムを検索します
x以下の最大の整数
get_diskserialid 一意の9桁のID文字列
ゲットピッド 現在のプロセスのプロセスID
グラーク 半径と色を指定して、一時的な円弧または円を描画します。オプションで強調表示
満たす 指定された色で、一時的な塗りつぶしポリゴン領域を描画します。オプションでハイライトモード
log10 ログ10
ポジション リスト内のアイテムの番号にインデックスを付けます
削除する リストからアイテムを削除します
円形 最も近い整数に丸めます
探す アイテムを検索し、そのリスト番号を返します
双曲線正弦
睡眠 実行を一時停止
文字列分割 区切り文字に基づいて文字列を分割します
日焼け 正接
タン 双曲線正接
まで 真になるまで式をテストします
vla-collection- コレクションをLISPリストとして返します

さまざまなLISP関数

LISPには、追加のサポートを提供することにより、AutoLISPとは異なる動作をするいくつかの関数があります。

これらには以下が含まれます:

LISP関数 コメント                                                                                                       
osnap サポート PLA (平面図)2D交差にスナップするためのエンティティスナップ。
ssget ssadd 追加の選択モードをサポートします:
CC Cばら Circle
O外で
OC O外で Circle
OP O外で Pオリゴン
PO P軟膏

AutoLISP関数がありません

LISPにはAutoLISPにあるいくつかの機能がありません。 LISPの動的な性質のため、決定的なリストを作成することは困難です。以下に、私が見つけられなかった機能の一部を示します。

  • すべて SQL-AutoCADのオブジェクト間をリンクする関連関数® 外部データベースファイルのレコードを含む図面。 AutoCADで®、これらの関数は、ase_lsuniteやase_docmpのように、「ase_」で始まります。

LISPプログラミング言語

LISPは、コマンドの途中で2つの数値を加算することから、3Dで階段をパラメトリックに描画すること、BricsCADの新しいユーザーインターフェイスを生成すること、描画データベースのデータを操作することまで、多くのマスクが可能です…

私の意見では、LISPの最も重要な側面は、作業を自動化するために数行のコードを放棄できることです。次の投稿では、簡単なLISPコードを記述して、BricsCADの製図をより簡単にする方法を紹介します。

対照的に、BricsCADの最も強力なプログラミング機能(SDS(ソリューション開発システム)と呼ばれます)は単なるインターフェイスです。プログラミングツール($$$を追加で購入)を購入し、高度なプログラミング方法論に関する深い知識を持っている必要があります。 SDSを使用する主な利点は速度です。これらのプログラムは、LISPよりも100倍も高速に計算集中型のコードを実行します。

シンプルなLISP:2つの番号の追加

その少しの背景で、LISPの使用に飛び込みましょう。簡単なものから始めましょう。9プラス7のように、2つの数値を足し合わせて、誰もが知っています。

  1. BricsCAD、任意のバージョンを開始します。図面を開く必要はありません。
  2. 「:」コマンドプロンプトが表示されたら、以下に示す太字のテキストをキーボードで入力します。

    :(+ 9 7)(Enterキーを押します。)
    16
    :

    BricsCADはすぐに回答16で応答します(次のいくつかの投稿では、私が話している機能を紫色で示します)。ただし、(+ 9 7)を介してこの回答に到達するのは、複雑に思えるかもしれません。これは、LISPがプレフィックス表記を使用しているためです。

    演算子+は、オペランド9および7の前に表示されます。

    「9と7を追加する」という観点で考えてください。これは、BricsCAD自体が機能する方法に似ています。最初にコマンド名(Circleなど)を入力してから、円の座標を入力します。

  3. LISPステートメントを囲む括弧に注意してください。すべての左括弧(右括弧が必要)。括弧のバランスをとることがLISPの最も苛立たしい側面であることを今言うことができます。右括弧を省略すると、次のようになります。

    :(+ 9 7(Enterキーを押します。)
    欠落:1)>

    BricsCADは「Missing:1)」プロンプトを表示して、閉じ括弧が1つ欠落していることを通知します。 2つの閉じ括弧が欠落している場合、プロンプトには「Missing:2)」と表示されます。

  4. 欠落している)を入力すると、BricsCADが満たされます。
    欠落:1)>)(Enterキーを押します。)

    16
    :

  5. 括弧は2番目の目的を果たします。LISPを使用していることをBricsCADに警告します。括弧なしで同じLISP関数 '+ 7 9'を入力すると、BricsCADは入力された各文字に対して好ましくない反応を示し、各スペースをコマンド名の終わりとして解釈します。

    :+(スペースバーを押します。)
    コマンドを認識できません。もう一度やり直してください。
    :9(スペースバーを押します。)
    コマンドを認識できません。もう一度やり直してください。
    :7(スペースバーを押します。)
    コマンドを認識できません。もう一度やり直してください。
    :

  6. ご想像のとおり、LISPはすべての基本的な算術関数を提供します:加算、減算、乗算、
    そして分割。最初に減算して、各関数を試してください。

    : (- 9 7)
    2
    :

  7. 乗算は、次のようなおなじみの*(アスタリスク)記号を使用して行われます。

    : (* 9 7)
    63
    :

  8. 最後に、除算は/(スラッシュ)記号で実行されます。

    : (/ 9 7)
    1
    :

    不正解です。不正解です。 9を7で割ると、1ではなく1.28571になります。これまでは、整数(整数とも呼ばれる)を扱ってきました。そのため、除算を実行するまでLISPは結果を整数として返していましたが、これは明らかではありませんでした。
    実数を処理するには、10進数の接尾辞を追加します。これは、.0のように単純にすることができます。これにより、整数が実数に変換され、LISPが次のように実数除算を実行します。

    : (/ 9.0 7)
    1.28571
    :

    そして、LISPは正しい答えを小数点以下5桁まで返します。

  9. LISPで計算をネストする方法を見てみましょう。 「ネスト」とは、一度に複数の計算を実行することを意味します。

    : (+ (- (* (/ 9.0 7.0) 4) 3) 2)
    4.14286
    :

    括弧が用語のネストを分離するのにどのように役立つかに注意してください。

次は何ですか?

さて、BricsCADが高価な4関数電卓としてどのように機能するかを学習しましたが、この「高額な電卓」は、LISPを使用してコマンド内で計算を実行するときに役立ちます。次の投稿では、LISPを使用して、9インチのスペースに収まるように7つの円の線形配列を描画する方法を紹介します。


BricsCAD体験版を
ダウンロード

今すぐBricsCADを使ってみましょう

多言語、広範囲で使える永久ライセンスとサブスクリプションです。


  1. 前書き
  2. BricsCADユーザーのための55のヒント
  3. 設定
  4. 環境を変える
  5. カスタムユーザーインターフェース
  6. [カスタマイズ]ダイアログボックスの概要
  7. メニューバーとコンテキストメニューをカスタマイズする
  8. ツールバーとボタンアイコン
  9. マクロとディーゼルコードの記述
  10. リボンのタブとパネル
  11. キーストロークのショートカット、エイリアス、シェルコマンド
  12. マウス、ダブルクリック、タブレットボタン
  13. クワッドについて知っておくべきすべてのこと
  14. ロールオーバープロパティ
  15. ワークスペースとユーザーインターフェイス
  16. 設計ツールと構造パネル
  17. シンプルで複雑な線種の作成
  18. ハッチングのパターン化
  19. 形状とフォントのデコード
  20. フィールドテキストでのコーディング
  21. スクリプトを書く
  22. LISPによるプログラミング(はじめに)
  23. LISP関数