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

選択リストのソート

  • Thread starter Thread starter Cristallo
  • Start date Start date

Cristallo

Guest
シンプルなラインオブジェクト、ssget(マゼンタカラーのイメージ)で選択したポリラインのシリーズがあります。
私は、私の操作のためにすべての単一のエンティティティを抽出することができ、そこから良い選択リストを取得します, 番号などを知っています.

赤と緑でセグメントを構築し、何が6つに行き、右側と角度を計算することでセグメントを描画する方法を知ることができます。
問題は、ssget の開始リストが x-y パラメーターに従ってソートされていないことですが、x や y によると静かにできない描画の作成順序を介して。
代替は、1つのエンティティティティ(不快)によって1つを選ぶことです。

調整された x または y メソッドの方法で、選択リストのソートを行う "rapid" 方法はありますか?
私はvl-sortを使ってみましたが、昨日から頭を叩くだけです。
Code:
(setq p1 (getpoint "\nselect first point: "))
(setq p2 (getpoint "\nselect 2番目のポイント: ")
(setqオブジェクト(sget '(0 . "line,*polyline"))))))))))))
(setq番号(sslengthオブジェクト))))
(setq interasse (distance (cdr(assoc '10(entget(sname object 2))))))))))))))))))))))
(セクション 2)
(setqの角度の基盤(角度p1 p2)))
(setq ハーフリスト (/番号 2))
immagine 1.jpg
 
しばらくの間、私はインターセプト(フェンス)を使用することを示唆するために失望しました。しかし、私はオブジェクトを注文しないと気付いたクイックテストから。
心に来る唯一のソリューションは、すべての選択セットをスクロールし、座標を補うことです。 ssaddで設定された選択を注文し、再作成する
別のリストに基づいてリストをソートするには、注文を使用して試すことができます。 サブx11を起動してlspファイル:order1
 

Attachments

x11 ありがとうございます。
しかし、それは選択セットを注文する素敵なロームですが、それはそうegregiousを作るアカドリスペスがあります。 例はtcountですが、その意味を理解することはほとんど不可能になるような洗練されたlispで書かれています。
 
実際、私は様々なvl-xxxなしでlispで止まった:このために、私は時々、キロメトリックソリューションを見つけることを余儀なくされている(またはフォーラムの専門家に尋ねる!) 最も些細なことでも!
 
実際、私は様々なvl-xxxなしでlispで止まった:このために、私は時々、キロメトリックソリューションを見つけることを余儀なくされている(またはフォーラムの専門家に尋ねる!) 最も些細なことでも!
お問い合わせ
 
解決策に到達する方法が無限大である限り、今のところ何がここにあります:

ssget が選択した項目のリストを取得します。
Code:
(setq の selez (ssget))))

(repeat (ssslength の selez)))))
(setq lista (cons (ssname selez (setq n (1-n)))))))))))
)
私は取った: ( )<nome 21148ae8910="" entità:=""> <nome 21148ae8900="" entità:=""> <nome 21148ae88f0="" entità:="">)</nome></nome></nome>初期点の座標 x でオブジェクトのリストを作成します。-> (car (vlax-curve-getstartpoint elem)))
Code:
(foreach elem リストア)
(setq elenco (cons (list (car (vlax-curve-getstartpoint elem))))))))))
)
私は取った: (212.453) <nome 21148ae88f0="" entità:="">(197.518) <nome 21148ae8900="" entità:="">) (205.859 <nome 21148ae8910="" entità:="">)</nome></nome></nome>x->(<(car e1)(car e2))に従って前のリストを注文する
Code:
(setq キャスト (vl-sort キャスト '(lambda (e1 e2)(<)))))))))))))
私は取った: (197.518) <nome 21148ae8900="" entità:="">) (205.859 <nome 21148ae8910="" entità:="">(212.453) <nome 21148ae88f0="" entità:="">)</nome></nome></nome>最初の要素の浄化されたリスト、すなわち座標x
Code:
(foreach elem cast)
(setq listdef (cons (cadr elem) listdef) (setq Listdef) (cons (cons (cadr elem) listdef)) (cons (cons)))))
)
(setq listdef)
私は取った: ( )<nome 21148ae8900="" entità:=""> <nome 21148ae8910="" entità:=""> <nome 21148ae88f0="" entità:="">)</nome></nome></nome>
 
お問い合わせ
そしてそれがうまくいくと... 電車に乗ると、少しから手に入ります。
 
もちろんです。
唯一の静脈は(理由を尋ねていない)、(elemリストのforeach)行くが、私は(repeat(vl-list-lengthリスト)と致命的にそれを置き換えます
最後のリスト(明らかに)はリストであり、選択セットがなくなったので、エンティティティティティはssnameを介してもはやそれらをピックアップしますが、nthを介して。

プログラマとして未来を持つことを確信しています。 プロフェッショナルなパラシュート。
ありがとうございます。 私はピザを借ります。
 

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