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

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

図面内のすべてのレイアウトのビューポートをロックするマクロ
いつもお世話になっております。

複数のレイアウトが存在する図面において、全てのレイアウト内のビューポートを、
一括でロックするマクロの作成は可能でしょうか?

今までは、レイアウト名をマウスでクリックしてから、
^C^C_MVIEW;L;ON;ALL;;
という簡単なマクロで、そのレイアウト内のビューポートを全てロックしていました。
しかし、手作業でレイアウトを切り替えてからマクロを実行するのは手間がかかるので、
マクロでレイアウトを順々に切り替える方法を検討しています。

以上よろしくお願い致します。
  • みかん
  • 2018/07/18 (Wed) 15:55:05
Re: 図面内のすべてのレイアウトのビューポートをロックするマクロ
バージョンはAutocad2019です。宜しくお願い致します。
  • みかん
  • 2018/07/18 (Wed) 16:04:15
Re: 図面内のすべてのレイアウトのビューポートをロックするマクロ
以前質問
http://totthi.bbs.fc2.com/?act=reply&tid=16296804
zukki-様のマクロを利用して

こんな感じでできますか?
lt2017で動作確認です。
ただ、自分も完全に理解しているわけでは無いので疑問にはお答えできないかもしれません
zoomの前に_MVIEW;L;ON;ALL;;を足し冒頭にsetenv;dq;";を足しただけです。
冒頭にsetenv;dq;";を足しているので何度も設定していますが意味はありません

*^C^Csetenv;dq;";$M=setenv;to;0;$(if,$(=,$(getenv,to),0),undo;be;-layout;n;endlo;;s;endlo;;d;;setenv;lo0;$(getvar,ctab);;lo1;$M="""$(getenv,dq)$(getvar,ctab)$(getenv,dq)""";;cnt;1;;to;1;-layout;d;)$(if,$(=,$(getenv,to),1),$(if,$(eq,$(getenv,lo$(getenv,cnt)),$(getvar,ctab)),;to;2,;lo$(+,$(getenv,cnt),1);$(getenv,dq)$(getvar,ctab)$(getenv,dq);;cnt;$(+,$(getenv,cnt),1);;to;1;-layout;d;))$(if,$(=,$(getenv,to),2),undo;e;u;setenv;i;$(getenv,cnt);;to;3)$(if,$(=,$(getenv,to),3),-layout;s;$(getenv,dq)$(getenv,lo$(getenv,i))$(getenv,dq);_MVIEW;L;ON;ALL;;pspace;zoom;e;setenv;to;4)$(if,$(=,$(getenv,to),4),$(if,$(=,$(getenv,i),1),^C^Cmodel,;i;$(-,$(getenv,i),1);;to;3))^M

注意
1.ビューポートの無いレイアウトがあるとループしてしまいキャンセルも聞かない可能性があります。
2.モデルタブから始めるとまともに動かないと思います。
  • chibi-tom
  • 2018/07/19 (Thu) 08:48:53
Re: 図面内のすべてのレイアウトのビューポートをロックするマクロ
少し修正です。
検討の途中に余計なことをしていたのが残っていたので削除しました。

*^C^Csetenv;dq;";$M=setenv;to;0;$(if,$(=,$(getenv,to),0),undo;be;-layout;n;endlo;;s;endlo;;d;;setenv;lo1;$M="""$(getenv,dq)$(getvar,ctab)$(getenv,dq)""";;cnt;1;;to;1;-layout;d;)$(if,$(=,$(getenv,to),1),$(if,$(eq,$(getenv,lo$(getenv,cnt)),$(getvar,ctab)),;to;2,;lo$(+,$(getenv,cnt),1);$(getenv,dq)$(getvar,ctab)$(getenv,dq);;cnt;$(+,$(getenv,cnt),1);;to;1;-layout;d;))$(if,$(=,$(getenv,to),2),undo;e;u;setenv;i;$(getenv,cnt);;to;3)$(if,$(=,$(getenv,to),3),-layout;s;$(getenv,dq)$(getenv,lo$(getenv,i))$(getenv,dq);_MVIEW;L;ON;ALL;;pspace;zoom;e;setenv;to;4)$(if,$(=,$(getenv,to),4),$(if,$(=,$(getenv,i),1),^C^Cmodel,;i;$(-,$(getenv,i),1);;to;3))^M
  • chibi-tom
  • 2018/07/19 (Thu) 09:10:44
Re: 図面内のすべてのレイアウトのビューポートをロックするマクロ
chibi-tom様

問題なく動作し感動しました!
以前作って頂いたマクロを応用すればよかったんですね。
難しくてなかなかマクロの内容が理解できませんが、自分でもこういったマクロを作れるように、
勉強を進めたいと思います。
ありがとうございました!
  • みかん
  • 2018/07/19 (Thu) 09:16:50

返信フォーム






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