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

1つのポイントで共通の企業

  • Thread starter Thread starter Gio_S
  • Start date Start date

Gio_S

Guest
おはようございます。 他のプログラムで実装されているかもしれませんが、私のケードではそうではありません。
私は重複を検索し、削除するために使用する2つのルーチンをしました, または顔や線. ループは、選択の終了まで連続したエンティティティを分析し、次に次の要素で再び開始するので、本当に重い手順、。 組織がどのように設計されているかを分析し、頂点の順序から独立して比較しなければならないので、重大にもなる。 誰がより効率的なシステムを考えますか? 組織のトークンを使用して、小額のフラットなインターセックウィンドウで作成し、それをチェックすると、スレンダーと少しエレガントなようです。 もちろん、私は1つのスキャンを行い、すでに消去されたエンティティティを削除することによって選択を簡素化する親切さで、私はおそらくより良いアイデアがある間、それを記述するために分裂しません。
誰かにアイデアがあれば、ありがとう!
お問い合わせ
 
どういう意味ですか?
"my cad" を書いていて、とても明確ではありません。
 
どういう意味ですか?
"my cad" を書いていて、とても明確ではありません。
autocad と完全に互換性のある autolisp で intellicad を使用しますが、私は vba と vbscript 関数は様々 です。. 練習は lisp でのみ動作します
重複がネイティブに削除できるかもしれないと私はそのようなメニューのそのような項目を使用して言うことを聞きたくない理由を指定しました:)
 
ありがとうございます。

autocad および autocad 自体の intellicad または他の "clones" が vba、vbs または他のプログラミング言語を使用できないということは完全に真実ではありません。

私は試してみました, そして、使用, ケード&msオフィスパッケージを自動化するために、異なるプログラミング言語.

自動化スクリプト/アプリケーションは、クライアント/ブリッジとして定義されているものを使用して、ソフトウェアに接続し、ビースを自動化(利用可能な場合)に使用します。
 
「my」がサポートしていないと書いたのはそういうわけです。 intellicadはコンソーシアムなので、流通中のブランドやバージョンをカウントしません。 鉱山は非常に古いですが、私はそれがいくつかのリソースを消費するので、私はそれが私が必要とするすべてのものを持っているので、私はそれを測定するためにそれをした持っていなかったので、私はそれを維持します。
しかし、このクリーニング機能は、非常に太さではなく、私は3Dフロアにイラストや3Dプリントを作る人への説明のさまざまな目的のためにプロットに行くときにそれを使用することではなく、私は自分自身に巨大な冗長性をクリーンアップすることを見つける。
部品を描画するためにそれをやって, 関数は高速です, しかし、私は急いでいると、フル3dで1バレルでクリーン2dを作成したいです, 逆に, 上記の説明ルーチンは私に人生をかかります.
autocad がビューやセクションを生成できるのはよく知っていますが、私が長年測定したのは、私は、すべての残りに対してより機能的であり、それ以上はリソースを要求しません。
私は同時に、intellicad、meshlab、povrayで動作します。 そしてこの組み合わせは、しかし、カスタマイズ、私のニーズに満足を与え、任意の自動モデラーよりもはるかにクリーナーとライターを生成します。
今、このギャップのために、私はちょうどgetpointベースの選択機能を必要としていますが、私は今、ルーチンが動作するよりも速くそれをする方法のアイデアを得ることはありません。 実際には、問題は「それを試してから遠くのエンティティティをスキャンするために行くことは役に立っていますが、小さな交差点の窓でより多くの選択のために行くために私に従わない方法? ツイート
 
さて、私は理解していますが、あなたが書いたスクリプトを知らずに、私はあなたにターゲティングされたアドバイスを与えることができません。

しかし、遠くのエンティティティをスキャンしないようにするには、ゾーン/座標ごとのエンティティティティのグループ化を作成する必要があります。
 
私の lisp が動作するように非常に簡単です。メイン ループは、選択したリストのすべての要素を介して実行され、最初の要素から始まり、後で要素を繰り返します。 ネストされたループでは、パイロット要素が同じ1つを満たしている場合は、ネストされたループからすぐに出て、それ自体を削除し、コントロールは次の要素からかかります。 明らかに、メインループが作られているので、そのインデックスが成長し、ネストされたループがより短くなります。 また、平等な顔を見つけるための制御は、少しのアカウントではなく、頂点の順序を適時または反時計回りにすることができることを考慮に入れなければならない、第3からのように第2から最初のサミットから始めることができます。 さらに、顔が3つの側面を持っている場合は、通常は重複するが、トップ要素を複製することができます。 線上では、a-b が b-a に等しいかどうかをチェックします。
グループ化の領域の確立は堅牢な方法ではないと思いますが、馬場にエンティティティがあり、それらを管理することは複雑になります。
私が書いたように、他の方法が見つからない場合は、2番目の小さな選択ユニットを作成しなければならないので、選択のすべての要素を扱うループで。 しかし、それは些細な仕事ではなく、ウィンドウは3次元であり、パイロット要素の境界ボックスを持っていて、すべてを把握し、分析する ソロ 交差する単位。 . . .
 
グループ化の領域の確立は堅牢な方法ではないと思いますが、馬場にエンティティティがあり、それらを管理することは複雑になります。
私が書いたように、他の方法が見つからない場合は、2番目の小さな選択ユニットを作成しなければならないので、選択のすべての要素を扱うループで。 しかし、それは些細な仕事ではなく、ウィンドウは3次元でなければなりません
グループ化領域の確立は安定していませんが、グループ化しますか?
多分、私たちは同じことを言っていますが、異なる, 小さな選択 +-= グループ化

いつもあなたのコードの詳細な説明によると、私はおそらく私は悪い解釈するあなたのコードの詳細を表示したいが、私は自分自身を説明することができるかどうかを見てみましょう。

メインサイクルが1〜1000(ケースごとに数値)から発生し、ネストサイクルが100(ケースごとに数値)のエンティティティティを除去する場合、メインサイクルは動作するようにしますか?
 
メインサイクルが1〜1000(ケースごとに数値)から発生し、ネストサイクルが100(ケースごとに数値)のエンティティティティを除去する場合、メインサイクルは動作するようにしますか?
いいえ、そうではありません。 ネストされたサイクルがそれを満たしたときにエンティティティティを除去する場合、後続のネストされたサイクルでも使用するための選択を解除します。 この場合、メインサイクルは、そのアカウントを取るプローブを持っています。 しかし、簡単な解決策があります。
メインサイクルは、進行中の順序で要素をとり、それらに明快さのためのidxを呼び出します。
各ネストサイクルは、idx をパイロットとして起動し、idx +1 から次の要素を比較します。
ネストされたサイクルが比較のidxと等しいidx+nが見つかられば、そのネストされたサイクルを解消し、飛び出します。
増加することにより、メインサイクルを再開しますが、その間に既に使用されているidxを排除し、繰り返しが発見されました。
私は、手順がスピードアップしていると述べています, しかし、それが観察されるリストを削除するために行くので、, しかし、ネストはより短くなります, idx+1から毎回開始.
 
私は、手順がスピードアップしていると述べています, しかし、それが観察されるリストを削除するために行くので、, しかし、ネストはより短くなります, idx+1から毎回開始.
実際、これは、あなたが与えたコードのすべての説明のように、明確でした。

パフォーマンスを改善することを目的として、単一のエンティティティを排除するたびに、特に処理される大量のエンティティティティティを持つコードをより「スロー」にする可能性があるさまざまな操作が行われます。

特定の条件下では、「選択セット」から要素を削除すると(「選択セット」に10個のエンティティティティを持ち、「選択セット」の「シフト」が実行され、この操作(自動化)がパフォーマンスの面で悪化していると言います。

ですから、これがあなたの場合なら、これは再評価するポイントかもしれません。
 
コンセプトを理解していますか?
インデックスが変更されないため、選択はそのまま残っていると思いますが、増加していますし、削除しなければならない量は排除されます。
メイン ループ ブート を見る。 それからサイズ マックス もう混ざりません。 私の意見では、一種のニルが作成されますが、私は、エンデルの前に素敵な「コメント」でプログラムをテキストとして、私はあなたを知っています。
時間が経つ比較ですが、キャンセルをなくし、それぞれの回を誤って判断しよう
(/= nilselez の場合)
(progn)
(setq max (sslength)の円錐形 0)
(間) (> 最高の円錐形)
(setq en (ssname selez contasel) alist (entget en)) (ssname selez contasel) alist (entget en)))
(ゴールド(= "3dline" (cdr(assoc 0 alist)))))) (= "line" (cdr(assoc 0 alist))))))))))
(progn)
........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
 
より良い練習に行く, 私はfranklyは、最適化する方法を見ません, ライン上のコード全体を置きます, そのためには、顔の比較制御は、キロメートルです.
スキャンの概念は同じですが、コードはコンパクトです。
注意:
等しいの3番目の制限引数は、既知の問題の二重に対して不可解です。 2番目のポイントが回転から来る場合は、本当に等しいことはありません。
注2:
プライン "。 私はそれが私の時間を浪費している知っていますが、私はビデオで進捗状況を見ることを好む、それは進捗バーになります
スタッフ

(defun 削除linecopy)
(prompt "\ndelete 行コピー new: ") (setq selez(ssget))))))) (setq デッド 0 スパイ 0)
(/= nil selez の場合)
(プログ)
(setq max (sslength の selez)) 容器 0)
(間) (> 最高の円錐形)
(setq en (ssname selez contasel) alist (entget en) (ssname selez contasel) alist (entget en))
(例えば(= "3dline" (cdr(assoc 0 alist))))))) (= "line" (cdr(assoc 0 alist)))))))))))
(プログ)
(setq デッド 0)
(setq pnta (cdr(assoc 10 alist))) pntb (cdr(assoc 11 alist))))
(Sectqスパイ1)
(と (- max contasel ) スパイ) ( /= デッド) 1) )
(setq en2 (ssname selez (+ カウンターワイヤー スパイ)) alist2 (entget en2)
(setq pnta2 (cdr(assoc 10 alist2))) pntb2 (cdr(assoc 11 alist2))))))))
(例: pnta2 0.00000001) (例: pntb pntb2 0.00000001)) (setq デッド 1) )
(例: pntb2 0.00000001) (例: pntb pnta2 0.00000001))
(setq の平坦(+ の平坦) 1) )
) ; 終わりのprogn
) ; なら終わる
;ネストされた

(=デッド1)(エンデルエン)
(setq デッド 0 スパイ 0)

;(princ(rtos contasel)))
(プライアンス)
(setqのcontasel (+ 1会計士)))
) ; 終わりのprogn
) ; なら終わる
)
)

スタッフ
 
うーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

メモ2 では、プロセスの進行状況も見栄えがよく、パフォーマンスの問題を表すのではなく、疑問がある場合は、コードにコメントし、実行の違いを見てください。

コードのどの部分が長いかを把握するためにスクリプト解析をしましたか?
 
思ったよりも高い結果で、今はやった。
私は、すべての要素を倍増した極端な選択で、コードを最も強調しました。 常に消去しなければならない練習で。
そのため、キャンセル分13:20
キャンセルなし 13:12
キャンセルは重量がかかりませんか? コードはここにあります。
「エンデル」を抑制する方法に注意。
比較の重みを保つ必要があったので、コードの2行を交換しました

(=デッド1)(エンデルエン)
(setq デッド 0 スパイ 0)

なるほど

(setq デッド 0 スパイ 0)
(=デッド1)(エンデルエン)

変数 "dead" をリセットします。これは、キャンセルする条件を表すものです。

代わりに、私のステータスラインを増加させる出力プロキシ「」を信じて、その1つは重量を量りますが、私は常にそれを取ることができます。
問題は、ネストされたサイクルであるため、選択を原則から制限するためにスマート1を見つけることです。

ネクタイ
私は ""を princ"によると、すべてのサイクルの重量は?
私もテストしません。 他の言語では、複雑な操作をしながらビデオにテキストアウトプットが必要な場合は、非常に重い "doevents" を置く必要があります。または、それをスティックしてすぐに出力をリフレッシュすると、計算サイクルを終了するときです。
"doevents" や、そのようなもの、私はこの出力指示に目を維持するために私を義務付けています、私はそれを置く必要はありません、しかし、それはコードが既にそれを行うことを意味します...そうでなければ、あなたは、凍結状態バーで、ループの最後に回る古典的なホイールが表示されます。 それは通常そう起こる...
私はそれをテストすることができますが、それは無用です。 遅かれ早かれ、私はentdelと一緒にそれを配置します, 唯一の "1"キャンセルが行われたことを示します, そして、メインサイクルがすべてではありません.
お問い合わせ
 
私はあなたのコードを完全に見ていないこと、またはあなたの記述に基づいて仮定したことを認識しますか?

最後の投稿の後、会話を続けるかどうかはわかりませんが、この「コード」が最適化するという正当な疑問は単なるテキストであり、確認をしてくれますか?

お問い合わせ
 
また、「良い」と答えました。その日はもっとよく見てます。 ツイート
どのようなテキストを 子どもは?
 
彼を見たいですか?
ここまで公開しました。
はい、それを見てきましたが、いっぱいに言うと、私は彼のすべての部分で完了を意味し、彼はラインを懸念する部分全体を掲示しました。
cmq, 私は今朝のコードを見て、私はまだそれを読む機会がなかった.
また、「良い」と答えました。その日はもっとよく見てます。 ツイート
どのようなテキストを 子どもは?
最初の読書で, 私はあなたのメッセージの最後のメモを誤解しました, 今、私はそれを読みました...あなたは急いで知っている... :oops:

多分今、私はあなたが投稿したコードを見てみましょうことができます。. . . .

あなたのテストでは、スクリプトの実行は13分(13:12 - 13:20)過ぎたと言いました。

実行時により多くのターゲットを絞った状況を持つコードに余分な制御を追加できますか?

コードのどの部分が実行に時間がかかるかを理解するのは便利です。

ps:
スクリプトをテストするためにサンプルファイルを共有できますか?
 
投稿したコード しかし、あなたは飛び越える、 リニアエンティティティティティを懸念しているのは、非常に完了です。 顔の相手の双子、私は投稿していないことお問い合わせ
ポリラインのエンティティティやその他の比較をすれば、ツインと同じくらいになります。
そのため、私はすでに説明していたように、顔に関するコードは、スキャンループの設定が同一であるが、サイクル内では、頂点を比較し、検証するための頂点が増加し、頂点の順に、したがって、分析するために、より少なく直近でコンパクトな。大きい問題は選択を制限し、周期の数を減らすことです。 しかし、私はすでに言っているものを繰り返して書いていますので、あまり意味しないと思います。
あなたが最適化できると思うなら その他にも ループと比較の方法、コードは見てみると、インターベニーとどのように感じている練習で私に言うことができれば嬉しいです。 はるかに優れているが、発明にはあまりないと確信しています。 数千面の顔で行なわれたテストは、あなたが提案したように、私に「体重」を確かめるために役立ちました、 サイクルで証明された、 比例した それを抑制することによっても少し重要な。 これは、サイクルの多重性を量るので、繰り返します。
私の意図は、すでにトピックで表現され、選択を制限する方法の検索です 優先順位、重量が何であるので 電話番号 それが増加するので 指数関数的に 組織の数を増やす。 私はあなたに感謝していますが、私は本当に議論の折り目が好きではないので、私はありがとう、しかし、それは良い言う方が良いです。
 

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