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

デフォルト属性値をブロックに入力した値に置き換える

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

77marco77

Guest
おはようございます。
6000ブロックを超えるブロックで描画(新しいデザインのためのブロックのソースとして使われています)で、このタグのデフォルト値をブロックに手動で入力した値に置き換えたいです。

私はこのコードを見つけました lee mac:
Code:
;;; lee-mac - 2017年
(defun c:defatt (/空の def タグ))
(例: "" (setq bln (strcase (getstring t "\nspecify block name filter (use * for all) <*>: "))))))))
(setq bln "*")
)
(例: "" (setq タグ (strcase (getstring "\nspecify タグ名 filter (use * for all) <*>: ")))))))))
(setq タグ "*")
)
(setq def (getstring t "\nspecify new default value: "))))
(vlax-for blk (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))))))))
(vla-get-islayout blk) (vla-get-isxref blk)) (wcmatch (strcase (vla-get-name blk)))))))
(vlax-for obj 空白)
(例: "acdbattributedefinition" (vla-get-objectname obj))
(wcmatch (strcase (vla-get-tagstring obj)) タグ)
(vlax-write-enabled-p obj) (vlax-write-enabled-p obj) )
)
(vla-put-textstring obj def)
)
)
)
)
(プライアンス)
)
(vl-load-com) (プロキシ)
必要なのは、ブロック名(選択できません)、タグ名、タグの新しいデフォルト値を入力する必要がありますが、ブロック数が多く、それぞれ12と20の属性の間にあります。
ブロック選択(または複数のブロック)、属性(または複数の属性)を、既に入力した値を読み込み、新しいデフォルトとして入力させるのは高速になりますか?
 
最大ではなく、ブロックを一度に選択する必要がありますが、少しの速度(異なる名前で6000ブロックではないことを願っています!)。 ブロックに一度クリックし、属性に一度クリックする必要があります。
Code:
(refun c:defatt2 )
(setq blk (vlax-ename->vla オブジェクト (car (entsel "\nselezionire blockco: "))))))))
ログイン
blk (fla-get-blocks (vla-get-active ドキュメント (vla-get-acad オブジェクト)))))))
)
(vlax-for elem blk)
(と (= フラグ-get-objectname elem) "addbattributeddefinition")
(= bla-get-tagstring elem) (vla-get-tagstring タグ)
)
(fla-put-textstring elem (fla-get-textstring タグ)))))
)
)
)
 
最大ではなく、ブロックを一度に選択する必要がありますが、少しの速度(異なる名前で6000ブロックではないことを願っています!)。 ブロックに一度クリックし、属性に一度クリックする必要があります。
Code:
(refun c:defatt2 )
(setq blk (vlax-ename->vla オブジェクト (car (entsel "\nselezionire blockco: "))))))))
ログイン
blk (fla-get-blocks (vla-get-active ドキュメント (vla-get-acad オブジェクト)))))))
)
(vlax-for elem blk)
(と (= フラグ-get-objectname elem) "addbattributeddefinition")
(= bla-get-tagstring elem) (vla-get-tagstring タグ)
)
(fla-put-textstring elem (fla-get-textstring タグ)))))
)
)
)
今、私は確かに高速になります、残念ながら、彼らは本当に6358ブロックです(すべての異なる名前で...)とそれぞれ12〜20の属性(幸いにも私は4または5だけ更新する必要があります)が、少なくとも今、私は書くことではなくクリックするだけでケーブルを持っています:)
お問い合わせ
 
最大ではなく、ブロックを一度に選択する必要がありますが、少しの速度(異なる名前で6000ブロックではないことを願っています!)。 ブロックに一度クリックし、属性に一度クリックする必要があります。
Code:
(refun c:defatt2 )
(setq blk (vlax-ename->vla オブジェクト (car (entsel "\nselezionire blockco: "))))))))
ログイン
blk (fla-get-blocks (vla-get-active ドキュメント (vla-get-acad オブジェクト)))))))
)
(vlax-for elem blk)
(と (= フラグ-get-objectname elem) "addbattributeddefinition")
(= bla-get-tagstring elem) (vla-get-tagstring タグ)
)
(fla-put-textstring elem (fla-get-textstring タグ)))))
)
)
)
約56,000クリック+入力を始めましたが、指は既に機能しなくなりました。 . . .
あまりにも複雑でないと、コマンドが再び起動し、以前に選択したブロックを自動的に選択するように、コードに追加できると思いますか? これにより、esc を押すと、 esc を押下し、次のブロックを再起動すると、 成功にのみ 属性 をクリックして更新するブロックを選択できるようになりました (このブロックは 28,000 クリックになり、キーボードを使用して各属性のコマンドを再エンターします)。
どんな場合もありがとう:)
 
です。 ボタンを押すまで属性を要求します <enter>お問い合わせ
</enter>
Code:
(defun c:defatt3()))
(setq blk (vlax-ename->vla-object (car (entsel "\nselezionare blocco:")))))))))
(vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))))))
リスト "()
)
(一方、setq タグ (announcement)
(取られた場合)
(progn)
(setq タグ (vlax-ename->vla-object)))
(リストされているSetq)
)
)
)
(リストされているsetq)
(Foreach Elem1リスト)
(vlax-for elem blk)
(と = (vla-get-objectname elem) "acdbattributedefinition")
(vla-get-tagstring elem) (vla-get-tagstring elem1)))
)
(vla-put-textstring elem (vla-get-textstring elem1))))
)
)
)
)
 
マルコ、confutatis とアドレスを交換し、豊かなサッカー:giggle:
私は、モーツァルトの「ボール」のカップルと一緒に、私に触れると思います(それはチョコレートで、それは本当にこれと呼ばれています) :) ログイン
 
私は、モーツァルトの「ボール」のカップルと一緒に、私に触れると思います(それはチョコレートで、それは本当にこれと呼ばれています) :) ログイン
はい、私はそれらを知っている、mozartkugeln。 。 :
 
とても良いです。 しかし、サッカーはサッカーです。 スーパーマーケットでイタリアで見つけたものではない。 そこに食べなければならないのは、他の惑星です。 パルメザンを比較するのが好きです
 

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