この掲示板は AutoCADマクロ屋本舗 の掲示板です。

【 注意 】最初に必ず ↓↓ 下記内容 ↓↓ を参照ください。
① マクロが分からない方は、まず 【 マクロ講座 】 を参照ください。
② 質問の前に 【 マクロ使用前の注意事項 】 をお読みください。
③ 質問する時は、新規投稿フォーム下の【 新規投稿時のお願い 】を必ずお読みください。

マクロ作成_非表示と印刷しない画層を一括でレイヤーフリーズしたい
お世話になっております。
2023LTのバージョンですが、
図面整理の際に
画層管理から一々非表示レイヤーや印刷しないレイヤーを選択せずにレイヤーをフリーズしたいです。
こちらのようなマクロがございませんか。
宜しくお願いいたします。
  • テル
  • 2022/04/14 (Thu) 17:53:00
Re: マクロ作成_非表示と印刷しない画層を一括でレイヤーフリーズしたい
LAYERSTATE[画層状態管理] (コマンド)

を利用すればマクロにする程の事も無いかなと思います

とりあえずヘルプを参照してみてください

マクロにするなら
保存してある状態で下記マクロを実行すれば
保存してある画層状態に復元できます

^C^C-layer;a;r;『保存した画層状態の名前』;;;^Z

※『保存した画層状態の名前』はご自身で名前を変更してください
  • chibi-tom
  • 2022/04/15 (Fri) 09:47:45
Re: マクロ作成_非表示と印刷しない画層を一括でレイヤーフリーズしたい
chibi-tom様
アドバイスありがとうございます!説明不足申し訳ございませんでした。
画像を添付させていただきます。
(画像の中に非表示レイヤー:2つ、印刷しないレイヤー:2つ
現在スクリプトやマクロの図面整理機能を使って、大量の図面中の”非表示レイヤー”と”印刷しないレイヤー”を一括でフリーズしたいですが、
このようなマクロがあるでしょうか。
できる限り一枚のみのフリーズ処理マクロさえあれば、幸いです。

宜しくお願いいたします。
  • テル
  • 2022/04/15 (Fri) 13:44:21
Re: マクロ作成_非表示と印刷しない画層を一括でレイヤーフリーズしたい
自分の知る限りですが
個々の画層状態を保存しているデータが無い

それらを管理しているのが
画層管理(画層プロパティ管理)なんだと思います

よって『表示/非表示』や『印刷/非印刷』の画層を
マクロで判断する方法が無いのではないかと思います
特に非表示画層についてはオブジェクト選択も
できないのでなおさら無理かもしれません

申し訳ありませんが
今のところ自分には解決策が思い当たりません
  • chibi-tom
  • 2022/04/15 (Fri) 14:04:46
Re: マクロ作成_非表示と印刷しない画層を一括でレイヤーフリーズしたい
画層名が決まってればできますが
決まってないなら無理ですね。


>非表示レイヤー”と”印刷しないレイヤー
特にこれは判別しようがないですね。

コマンドで出来ることしかマクロは出来ないので。
  • とってぃ
  • 2022/04/15 (Fri) 14:51:30
Re: マクロ作成_非表示と印刷しない画層を一括でレイヤーフリーズしたい
回答者chibi-tom様
管理者とってぃ様

お世話になっております。

ご回答ありがとうございました。

やはり画層名が決めないといけないんですねー
承知しました。
  • テル
  • 2022/04/15 (Fri) 15:20:52
Re: マクロ作成_非表示と印刷しない画層を一括でレイヤーフリーズしたい
マクロ化は無理ですが、手間を簡素化できるかもしれない方法は有ります。
(既にやってるかもしれませんけど)

画層プロパティ管理を開いたら、一覧の一番上の「表示」の文字をクリックすれば、
表示と非表示を区別して画層を並べ替えてくれます。
そこで、非表示の画層をSHIFTを押しながら一括選択し、フリーズする。

非印刷画層も同様に、一覧の一番上の「印刷」の文字をクリックすれば、
並べ替えられるので、同様に一括選択してフリーズ。
(ただし、DEFPOINTS画層も非印刷に含まれるので注意)

これでどうでしょう?


どうしても自動で行いたいのなら、
-LAYERコマンドで、画層状態を保存して、その状態を書き出し。
書き出した[.las]ファイルをExcelのVBAとか、VB.NETとか、何でもよいので
テキストファイルを解析編集できるプログラムに読み込ませ、
非表示・非印刷に該当する画層をフリーズにして[.las]ファイルを保存。
再び、-LAYERコマンドで、[.las]ファイルを読み込めば、フリーズされます。

以上のプログラムの作り方は、
マクロでも、LISPでもないプログラムで作る事になるので、
ここの掲示板ではなく、専門の掲示板で聞いた方が良いです。
  • Lon
  • 2022/04/15 (Fri) 15:30:12
Re: マクロ作成_非表示と印刷しない画層を一括でレイヤーフリーズしたい
プロパティ画層フィルタを使えば、非表示と非印刷の画層をフィルタして表示できるので、一度にフリーズできます。
フィルタ定義は添付の画像のようにします。

Lonさんの手法と考え方は同じです。
画層の数が多いなら、並べ替えて操作するよりは楽かもしれません。

ただ、この画層フィルタは他の図面にコピーできないんですよね・・・なぜなんだ・・・
この画層フィルタを持つテンプレートファイルを作成し、そこから新規作成した図面に画層を操作したいデータを挿入するしか他の図面でフィルタを使う方法がないらしいです。
ですので、毎回フィルタを作成する必要があります。
  • LUNE
  • 2022/04/15 (Fri) 17:03:20
Re: マクロ作成_非表示と印刷しない画層を一括でレイヤーフリーズしたい
Lon様
LUNE様

お世話になっております。

色々アドバイスありがとうございました!

確かにLon様の方法は、いけると思っておりますが、
レベル高くて...今の僕まだ実力たりません。
でも作ってみたいです。ありがとうございます!

LUNE様のアドバイスだったら、確かに大量のレイヤーがあった時にかなり便利です!
ありがとうございます!助かりました!
  • テル
  • 2022/04/15 (Fri) 17:28:49
Re: マクロ作成_非表示と印刷しない画層を一括でレイヤーフリーズしたい
画層状態を書き出さなくても、コマンドラインに一覧表示する方法で出来そうだったので、作ってみました。
テキストファイルの入出力が不要になったんで、かなりレベル下がりましたよ。<レベル高くて...
https://totthi.bbs.fc2.com/?act=reply&tid=16720248#24379921

注意事項:
画層が大量にある場合は、動かないです。(MAXで300くらい?)
また、画層名に「-----------」という文字が含まれる画層が存在する図面では使えません。(動くけど正常に処理できない)
  • Lon
  • 2022/04/16 (Sat) 11:21:31

返信フォーム






プレビュー (投稿前に内容を確認)