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

スペースからアンダースコアへブロック名を変更

  • Thread starter Thread starter 77marco77
  • Start date Start date

77marco77

Guest
夕方, 描画中のブロック(約6500)の名前を変更する方法を探しています。 必要な変更は、ブロックの名前に存在するスペースを置き換えることです(ブロックのいくつかの名前は持っていません、他の人は、以下のダッシュで1、他の2、または3 ...)。 *の全ての組み合わせで名前を変更しようとしましたが、複数の文字と数字を選ぶとフィールドを2つまたは3つに一度に減らすと機能しません。
お問い合わせ
 
フォーラムですでに検索をしましたか? トピックはすでに数回議論されており、ベックの議論で書かれた準備のスクリプトを見つけるかもしれません。
 
です。 vl-search-string-t と vl-string-subst-t の2つの関数は、vl-string-search と vl-string-subst の関数から派生します。 これらの最後の2つが最初のサブ文字列だけを認識するという違いです。
Code:
(defun c:renblock )
(setqブロック(vla-get-blocks))))
(vlax-for elemブロック)
(vl-string-search-t " (vla-get-name elem)) の場合)
(vla-put-name elem (vl-string-subst-t "_" (vla-get-name elem))))
)
)
)

[Bleep] [Bleep] [Bleep] [Bleep [Bleep] [Bleep] [Bleep] [Bleep] [Bleep] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [Bleep] [Bleep] [Bleep [Bleep] [Bleep] [Bleep] [Bleep] [Bleep] [Bleep] [Bleep [Bleep] [Bleep] [Bleep] [Bleep] [Bleep] [ブリープ] [ブリープ] [ブリープ] [ブリープ]
;;;;;;; 文字列のサブ文字列の位置でリストを返す関数
(defun vl-string-search-t (string/number リスト)
(setq カウンター 0 リスト() 番号 0)
(間番号)
(setq 数値 (vl-string-search 要素の文字列のカウンター))
(電話番号の場合)
(プログ)
(Sectsリスト)
カウンター(1+番号)
)
)
)
)
(逆リスト)
)

[Bleep] [Bleep] [ブリープ] [Bleep] [Bleep] [Bleep [Bleep] [Bleep] [Bleep] [Bleep] [Bleep] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [Bleep] [Bleep] [Bleep [Bleep] [Bleep] [Bleep] [Bleep] [Bleep] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [Bleep] [Bleep] [Bleep] [ベール]
;;;;;; 文字列で他の文字列と置換する関数
(defun vl-string-subst-t (stringanuova stringavekkia string / stringa1 カウンター番号))
(setq リスト (vl-string-search-t stringavekkia 文字列)))
(setq string1 文字列)
(setq カウンター 0)
(foreach elem リスト)
(setq 番号 (vl-string-search stringavekkia stringa1 (+ elem カウンター))))))))
(setq stringa1 (vl-string-subst stringavekkia stringa1 数値)))
(setq カウンター (- (strlen string1))))
)
文字列1
)
 
です。 vl-search-string-t と vl-string-subst-t の2つの関数は、vl-string-search と vl-string-subst の関数から派生します。 これらの最後の2つが最初のサブ文字列だけを認識するという違いです。
Code:
(defun c:renblock )
(setqブロック(vla-get-blocks))))
(vlax-for elemブロック)
(vl-string-search-t " (vla-get-name elem)) の場合)
(vla-put-name elem (vl-string-subst-t "_" (vla-get-name elem))))
)
)
)

[Bleep] [Bleep] [Bleep] [Bleep [Bleep] [Bleep] [Bleep] [Bleep] [Bleep] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [Bleep] [Bleep] [Bleep [Bleep] [Bleep] [Bleep] [Bleep] [Bleep] [Bleep] [Bleep [Bleep] [Bleep] [Bleep] [Bleep] [Bleep] [ブリープ] [ブリープ] [ブリープ] [ブリープ]
;;;;;;; 文字列のサブ文字列の位置でリストを返す関数
(defun vl-string-search-t (string/number リスト)
(setq カウンター 0 リスト() 番号 0)
(間番号)
(setq 数値 (vl-string-search 要素の文字列のカウンター))
(電話番号の場合)
(プログ)
(Sectsリスト)
カウンター(1+番号)
)
)
)
)
(逆リスト)
)

[Bleep] [Bleep] [ブリープ] [Bleep] [Bleep] [Bleep [Bleep] [Bleep] [Bleep] [Bleep] [Bleep] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [Bleep] [Bleep] [Bleep [Bleep] [Bleep] [Bleep] [Bleep] [Bleep] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [ブリープ] [Bleep] [Bleep] [Bleep] [ベール]
;;;;;; 文字列で他の文字列と置換する関数
(defun vl-string-subst-t (stringanuova stringavekkia string / stringa1 カウンター番号))
(setq リスト (vl-string-search-t stringavekkia 文字列)))
(setq string1 文字列)
(setq カウンター 0)
(foreach elem リスト)
(setq 番号 (vl-string-search stringavekkia stringa1 (+ elem カウンター))))))))
(setq stringa1 (vl-string-subst stringavekkia stringa1 数値)))
(setq カウンター (- (strlen string1))))
)
文字列1
)
これは魔法です。

どうもありがとうございました!
 
私は問題が解決し、私は、コピー/ペーストすることによって、今日は必要ではないと思う他の断片に二重ループを持つプロリソコードにつながります(古いバージョン、ボア)、私の意見では(それが動作するが)コードはクリーナーと最適化することができます。

2016年版のオートキャドと作品でテストしたバージョンをご提案します。
6,500ブロックは使えませんでしたが、問題ありません。 . . .
Code:
(defun c:renblock2)
(setqブロック(vla-getブロック))
(電気ブロック用)
(vl-string-search) (vla-get-name elem)
(vl-put-name elem (vl-string-translate "_"(vla-get-name elem))))))))))
)
)
)
誰かがそれをテストしたいのであれば、それがそうであるかどうかを理解しても、あなたのフィードバックが好きです。
 
ここでは、vl-string-translate関数を見逃し、他のものの間で使用することはありません(誰も完璧ではありません)。 以前に書いた2つの関数は、数行でコマンドを実行するためにその存在を利用しました。 アドバイスと最適化のおかげで。
 
私は問題が解決し、私は、コピー/ペーストすることによって、今日は必要ではないと思う他の断片に二重ループを持つプロリソコードにつながります(古いバージョン、ボア)、私の意見では(それが動作するが)コードはクリーナーと最適化することができます。

2016年版のオートキャドと作品でテストしたバージョンをご提案します。
6,500ブロックは使えませんでしたが、問題ありません。 . . .
Code:
(defun c:renblock2)
(setqブロック(vla-getブロック))
(電気ブロック用)
(vl-string-search) (vla-get-name elem)
(vl-put-name elem (vl-string-translate "_"(vla-get-name elem))))))))))
)
)
)
誰かがそれをテストしたいのであれば、それがそうであるかどうかを理解しても、あなたのフィードバックが好きです。
数行でこれらのことを解決する方法を見ると、私は本当に「小さな」の量を理解しています。 . . .
6358ブロックで完璧に動作します:)
お問い合わせ
 

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