• このフォーラムは、www.cad3d.it/forum1 - イタリアのデザインコミュニティの機械翻訳です。いくつかの用語は正しく翻訳されていません。

"modules" autolispのブックケース

  • Thread starter Thread starter x11start
  • Start date Start date

x11start

Guest
私は少しだったとき, おもちゃがありました (私はいつも夢見ていましたし、決して受信しません!), いくつかの側面に多くのカラフルキューブと電気接点で構成されていました. これらの立方体は電気および電子回路を含んでいましたり、特定の機能を実行しました。 これらのキューブを互いに近づけることで、小さなマニュアルの指示に従って、特定の複雑さのデバイスを作成することが可能となりました。
autolisp サブの概念はまさにそれです。
これまでのところ、新しいコマンドを作成したいと思い、古いリストを開き、「コピー&ペースト」に行ってきました。 今、私は、単一のファイルで "キューブ" を分離し、 "アセンブリ" 様々なキューブ (ロード" キューブの名前) によって新しいコマンドを作成します。
別のファイルのこの考え方は、視覚的なlisp(prj)でプロジェクトで得られたアプローチと似ていますが、その場合、プロジェクトに属するファイルがフォルダーにすべて配置され、毎回ルーチンを書き換えます。

この投稿では、必要なモジュール(またはキューブ)をロードする「自由」になるように、一連の「モジュール」を作るために開始したいと思います。 利点は、単一のモジュールを後回に改善することができ、その結果をはるかに速く取得し、それを使用するすべてのコマンドに改善を伝播することです。
これは、入力に必要な変数の明確な表示と出力で得られる変数の明確な表示で、非常によく構造化されたモジュールを作成する必要性を含み、すべての上にある変数は、nを変化させないように注意してください。 以前のリストが機能しない場合、入力と出力の変数の種類。 より大きい明快さのために 私は、外出先のもの「グローバル」だと思い、名前の前でそれらをマークしたいと思い、それらを認識するために:他の言語とは異なり、オートリスプは、さまざまな種類の変数に使用される文字の微妙のためにあまり行かない!
その後、'x11:tasto' と 'x11:messaggio' という2つのモジュールから始めます(プレフィックスとして x11 を記します:それは小さなvezzoです!)、これらはコマンド 'choice' と 'choice1' で使われます。

まあ:私は最初の石を投げました。...あなたは他のモジュールと "lapidarmi"のタスクに!
 

Attachments

この2回目のエピソードでは、メインプログラムが選択されます。 lsp で読み込まれた (load"selection")---すべてのファイルが autocad で認識されるパスにあることを検証します。

単一のオブジェクトを選択するか、または
多くのオブジェクトの選択のためのselezmult

最初のサブ提案は x11:gword の単語に含まれています。 initget コマンドで、文字または単語を入力するための lsp ファイル。 それは何をすべきかAutolispに伝える古典的なシステムです。 x11:keyとは異なり、このケースでは、選択肢が単語(yes/no)であり、単一のキーであることができるので、ここで選択後に入力する必要があります。 パラメータ (bit) では、 回答を受け付けたり、 回答を何も送信したり、デフォルト値で何も置き換えたりすることができます。

この新しい一連のモジュールの主な目的は、しかし、別のものです:設計の1つ以上のエンティティティの選択。

selsingola.lsp ファイルに含まれているサブ x11:selsingola を使って、描画の単一のエンティティティティをクリックするように求められます。これはグループコードを含むリストで必要なデータを抽出します。 たとえば、レイヤーが配置されているか、色などを知ることに興味があるかもしれません。

サブ x11:gword はブロックとポリラインに対して、エンティティティを "external" を選択するかどうかを選択しました。

または、他のエンティティティティのために、内側に見つけたもの、2つの選択肢は等しい:
ブロックの場合には、その一部である要素をクリックして、選択が外部のエンティティを取得していた場合は、ブロックの名前を返します。その逆に、行が返されます。 つまり、ブロックを爆発させると、そのエンティティティティティティティが得られる。 属性をクリックすると、属性データを取得します。

- 外出リストは以下のようなものです。
(0 . "line") (8 . "assi") (10 6540.91 6920.91 0.0) (11 2540.91 6920.91 0.0)

1つまたは他のタイプの選択は、後で行われるように意図されている処理に依存します。

行を選択し、次のグループコードを使用します。

コードの説明が見つかりました
0 名 団体 (linea) "line"
「assi」レイヤーの8名
10コルド。 出発点(6540.91 6920.91 0.0)
11 エンドポイント コール (2540.91 6920.91 0.0)

サブ x11:selezmult は selezmult に含まれています。 lsp ファイルは、以前のものよりもはるかにアーティキュレーションされます。それは、設計のオブジェクトを選択し、さまざまなタイプの選択によって提供されるすべてのモダリティを選択できるようにします。(リクエストを送信することによって)モードを入力しない場合は、個別にクリックして、(または削除)新しいエンティティティをウィンドウなどで追加して、送信で受け入れます。ウィンドウモード(ウィンドウ)が選択されている場合、その逆に、我々は2つの頂点を尋ね、すぐに処理に合格します。
サブルーチン(基本的にはデモンストレーションのみ)を複雑にするだけでなく、表示するエンティティティやデータの選択のフィルタを作成したシステムを追加しなかった。 このタスクは、フィルタが必要な場合、lstc と lstfilt 変数に値を代入し、ファイルを手動で変更することによって行います。 これらの変数が nil 値を持っている場合は、その逆にフィルタリングは発生しません。
 

Attachments

Forum statistics

Threads
46,674
Messages
380,976
Members
2
Latest member
loop80
このフォーラムは、www.cad3d.it/forum1 - イタリアのデザインコミュニティの機械翻訳です。いくつかの用語は正しく翻訳されていません。

Members online

No members online now.
Back
Top