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

lisp は、交差点の複数の行を分割する

  • Thread starter Thread starter Betoniera
  • Start date Start date

Betoniera

Guest
お問い合わせ
私はstrutturistです。
c.a で構造を計算し、鋼鉄の量で私の計算プログラムの三次元モデルunifilare (ラインによって構成される)。
交差点で全線が壊れる必要があります。
pkbreakをダウンロードしようとしました。 lsp プログラムのサイトから。 2行を1つの交差点で破ると、プログラムがうまく機能します。
行が多ければ、プログラムが機能せず、誤っていきます。
私はそれを修正したり、なぜそれが間違っているのかを理解することができず、それの上に手を置くために繰り返し試みました。
どんな方法で質問はあります:
あなたが持っている、親切に、交差点の線を破るプログラム。
3d のシャシのために働いたら、それは理想的なだろうが、2d i.e で動作するプログラムも、平面の交差点の線を遮断します。
arxで似たプログラムを見つけましたが、arxファイルをサポートしていないprogecadを使うようになりました。
そのため、ファイル lisp のリクエストです。
ご質問・お問い合わせ
お問い合わせ
 
行を破るファイルは "spezzalinee .lsp" (pkbreak.lsp ではなく、先に示した) です。
元のファイルを添付する
リストはこちら

(defun c:sl )
(setvar「cmdecho」) 0)
(princ "\n は折る行を選択します...")
(setq gr-selez(sget '(0 . "line"))))))))))
(Sectq i 0)
(repeat (sslength gr-selez)) (repeat(sslength gr-selez)))) (repeat(sslength gr-selez))) (repeat) (repeat(sslength gr-selez))))) (repeat(repeat(ssslength gr-selez))))) (repeat(repeat)) (repeat(s))) (repeat(s(slength gr-s)))))) (repeat(repeat(repeat)))))) (repeat(repeat(repeat(repeat(s(s)))))))))))) (repeat(repeat(s(repeat(s(s(s(s(repeat(s(repeat())))))))))))))))))))))))))))))))))))))))))))))(
(Sectq eei(sname gr-selez i)))) )
(setq pi1(cdr(assoc 10(entget eei)))))))))))
(setq pi2(cdr(assoc 11(entget eei))))))))))
(setq k (+ i 1)))
(repeat) (- (sslength gr-selez))) i 1
(setq eek(sname gr-selez k))))
(setq pk1(cdr(assoc 10(entget eek)))))))))))
(setq pk2(cdr(assoc 11(entget eek))))))))))
(setq ピン (inters pi1 pi2 pk1 pk2)))
(プログ)
(command "_break" (eval eei) pint "@")
(command "_break" (eval eek) pint "@")
)
)
(setq k(1+ k)))
)
(seq i(1+) (i))
)
(princ "\n 作業が実行されました!")
(プライアンス)
)
(プライアンス) <copyright: claudio="" granuzzo="" ing.=""> ツイート
(princ "\n type sl でプログラムを起動します。) ツイート
(プライアンス)

このファイルは2行でよく機能しますが、行が複数ある場合は動作しません。 繰り返し実行を計画することで変更しようとしましたが、動作しません。
どんなアイデアがありますか? お問い合わせ
お問い合わせ</copyright:>
 

Attachments

私はリストをテストしていませんが、行を破るとき、結果(または結果のもの、私は確信していない)がエンティティティティの名前を変更するので、それが機能しないと思うので、lispは(新しい)オブジェクトの介入を知らない。
最初に新しい生成されたエンティティティティの名前(またはハンドル)を見つけ、交差点のサイズをループする前に、
 
あなたが探しているものは非常に複雑です。
私はこれを行うが、progecad が管理しないと思う vl コマンドを使用する lisp を持っています。
目的の結果を手動で得るためには、この方法に従うことができます:
1) bpolyコマンドで、フレームパネルの輪郭を作成します。
2) 爆発の長方形
3)オーバーキルで二重を除去

もしファイル lisp があなたに送信するのに加えて、そのファイル lisp が何をするかの最小限のロジックを説明します。

ログイン
 
・・・
私はこれを行うが、progecad が管理しないと思う vl コマンドを使用する lisp を持っています。
・・・
progecad は複数の vl- と vlax- 関数をサポートしています
 
私はリストをテストしていませんが、行を破るとき、結果(または結果のもの、私は確信していない)がエンティティティティの名前を変更するので、それが機能しないと思うので、lispは(新しい)オブジェクトの介入を知らない。
最初に新しい生成されたエンティティティティの名前(またはハンドル)を見つけ、交差点のサイズをループする前に、
ヘロクリスタル
お問い合わせ
明らかに、プログラムが第二の交差点でラインを壊すように、各サイクルの新しい選択を作成することによって、その問題の解決について考えました, その後、第三に等.
これを行うには、選択長方形のp1とp2ポイントを記憶しました
10回のサイクルで以下を見ると
見知らぬことは、プログラムも複数の行を選択することによって動作するということですが、それは最初だけを破ります。
2つ目から間違っています。
クローズブラケットがなくなったら間違いは思われますが、確かにそうではありません。
とにかく、解決策にならずに多くの試みをしました。
もちろん難しい間違いが見つかりません。
適応できるプログラムがいくつかある場合にのみ対応します。
こんにちは。

(princ "\nselect line to break...")
(setq カウント 0)
(<カウント10)
(setq p1 (getpoint "\nimmetti primo punto di selection "))))
(setq p2 (getcorner p1 "\nimmetti 2点選択"))
(setq ss3(sget "c" p1 p2 '(0 . "line")))))))))

......(行を破る指示)

(setq カウント (+ 1 カウント))
;;;
 
0に置く場合のギャップの間隔は、ラインを壊し、スペースを残さないために... GIFで見るものとは異なります。
 

Attachments

  • Bmcut.lsp
    Bmcut.lsp
    1.6 KB · Views: 12
  • Bmcut.gif
    Bmcut.gif
    135.3 KB · Views: 17
ハイ x11start
ファイルが vl 命令が含まれている場合でも progecad で動作します。
問題は、GIFで見ることができるように、交差する2行の1行を破るということです。
簡単な指示で他を切ることはできますか? お問い合わせ
お問い合わせ
結果を得るために動作する良いプログラムです。
ツイート
 
問題は結晶を上げているものだと思う:ラインが壊れると、その名前が変更されるので、私の心に来る解決策は次のとおりです。
- 選択ウィンドウが保存されている(例えば、左下と右上)、最初の分割で生成された新しい行を含むソリューションを自動的に再作成する
- ラインを壊すたびに(entlast)最後の生成されたエンティティティをキャッチする(このアイデアも機能しないかもしれない) )
- 元の(ライン)エンティティティティをマークし、グループコード1000 - 1001を置き、それらを破壊した後でも残っているユニークな名前を与えるように...より多くの科学小説や不確実な結果!

私はフォーラムの議論を見たときに、すでに同様の問題があったことを覚えておいてください。 別の交差するポリリナに「塩」を作るのに役立つリスペスです:アネックスを参照してください
 

Attachments

  • LineJump.gif
    LineJump.gif
    182.1 KB · Views: 17
  • LineJump.lsp
    LineJump.lsp
    2.6 KB · Views: 6
私はジョンのfのmbreakを発見しました. uhden ... しかし、彼にとっては、垂直と水平線の両方をカットするために2回リップを投げる必要があります: GIFを参照してください
 

Attachments

  • MBreak.gif
    MBreak.gif
    354.6 KB · Views: 17
  • MBREAK.LSP
    MBREAK.LSP
    10.7 KB · Views: 20
ハイ x11start
あなたが投稿したプログラムが完全に動作します。
もちろん、すべての行を破るために2回投げる必要がありますが、それは少しのことです。
リストを見てみると、自分が何をしているのか理解してもらえるほど複雑です。
vl の指示がありますが、progecad で動作します。
プログラムを見つけるためにあなたのコミットメントをありがとうございました
そして、それを書いたジョン・フデン(アメリカ?)に感謝します。
皆様のお越しをお待ちしております。
3dフレームでも使えることがわかりました。 お問い合わせ
プロフェッショナリズムのためのすべてへのこんにちはそしてお祝い。
 
Last edited:

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