AutoCADマクロ屋本舗 掲示板


構築線 背面に移動

1:こゆ :

2021/07/23 (Fri) 18:10:57

度々お世話になっています。 LT2007使用です。
以前に構築線を最背面に移動
♪水平/垂直 構築線 表示順序最背面

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),-Layer;n;XLine;P;N;XLine;;setenv;to;1,,)$(nth,$(getenv,to),,XLine;h;または[垂直(右クリック)] ^X\"""$M=$(if,$(getvar,CMDACTIVE),;Change;L;;P;LA;XLine;C;5;;DRAWORDER;l;;b;setenv;to;1,setenv;to;2)""",)$(nth,$(getenv,to),,,XLine;v;または[水平(右クリック)] ^X\"""$M=$(if,$(getvar,CMDACTIVE),;Change;L;;P;LA;XLine;C;5;;DRAWORDER;l;;b;setenv;to;2,setenv;to;1)""")^M

を作成していただきましたが、
組図で使用すると効率が悪い為、全構築線を 最背面に移動するのは可能でしょうか?
宜しくお願い致します。
2:chibi-tom :

2021/07/26 (Mon) 08:11:44

>全構築線を 最背面に移動する
言葉通りならこんな感じでしょうか?

^C^C$M=xline;v;non;0<0;;selectsimilarmode;0;selectsimilar;l;;draworder;b;selectsimilarmode;$(getvar,SELECTSIMILARMODE);erase;l;;^Z

LT2007に類似オブジェクト選択が無いかもしれません
無いとかなり難しいか?

また、クイック選択で構築線選択して最背面に移動でできると思います(マクロにするほどの手間でもないかも)
3:Lon :

2021/07/26 (Mon) 12:10:07

selectsimilarは2011バージョンから搭載されたみたいですね。
従ってLT2007では上のマクロは動きません。
https://adndevblog.typepad.com/technology_perspective/2014/01/new_features_on_autocad-2011.html
4:chibi-tom :

2021/07/26 (Mon) 13:30:17

やっぱり、そんな気はしてました

クイック選択できないのでマクロでは難しいのかな
5:chibi-tom :

2021/07/27 (Tue) 15:19:15

絶対ではないですけど
構築線なのでこんな方法もありかも

^C^Czoom;e;select;f;$M=$(index,0,$(getvar,EXTMIN)),$(index,1,$(getvar,EXTMIN));$(index,0,$(getvar,EXTMAX)),$(index,1,$(getvar,EXTMIN));$(index,0,$(getvar,EXTMAX)),$(index,1,$(getvar,EXTMAX));$(index,0,$(getvar,EXTMIN)),$(index,1,$(getvar,EXTMAX));$(index,0,$(getvar,EXTMIN)),$(index,1,$(getvar,EXTMIN));;;draworder;p;;b;zoom;p;^Z
6:こゆ :

2021/07/27 (Tue) 19:19:38

お世話になります。

残念ながら動きませんでした。

♪水平/垂直 構築線 表示順序最背面
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),-Layer;n;XLine;P;N;XLine;;setenv;to;1,,)$(nth,$(getenv,to),,XLine;h;または[垂直(右クリック)] ^X\"""$M=$(if,$(getvar,CMDACTIVE),;Change;L;;P;LA;XLine;C;5;;DRAWORDER;l;;b;setenv;to;1,setenv;to;2)""",)$(nth,$(getenv,to),,,XLine;v;または[水平(右クリック)] ^X\"""$M=$(if,$(getvar,CMDACTIVE),;Change;L;;P;LA;XLine;C;5;;DRAWORDER;l;;b;setenv;to;2,setenv;to;1)""")^M

構築線削除
^C^C-layer;a;s;xline;;;;graphscr;-layer;M;XLine;F;*;;point;0,0;erase;all;;-layer;t;*;;;a;r;xline;;;;a;d;xline;;^C^C_-layer;S;AM_0;;'-color;bylayer;'-linetype;s;bylayer;;-lweight;bylayer;;;

上記の組み合わせで可能なのかと勝手に考えました。
難しい事なのですね。

>クイック選択で構築線選択して最背面に移動でできると思います(マクロにするほどの手間でもないかも)
autocadでは手動で背面に移動しているのでしょうか?(標準メニュー背面移動はあります)

また、お時間のある時に考えて頂ければ幸いです。
宜しくお願い致します。
7:chibi-tom :

2021/07/28 (Wed) 08:31:00

>残念ながら動きませんでした
どう動かなかったのでしょうか
>全構築線を 最背面に移動する
とあったので
すでに描いてある構築線をすべて選択して最背面に移動するように製作したつもりです
マクロを起動しても構築線が最背面に移動していないということでしょうか?

原因がわからなければ回答することができません
よろしくお願いします

【 新規投稿時のお願い 】
3.バージョン違いによるマクロの動作不良の場合は、キーボードF2を押し、表示されたテキストウィンドウ内の
  マクロ開始~終了までのマクロの流れをコピーし、貼り付けてご質問下さい。
掲示板の冒頭にも上記のように書いてあります

>autocadでは手動で背面に移動しているのでしょうか?(標準メニュー背面移動はあります)
いまいちわからないです
想像で考えたのは構築線を記入すると同時に最背面に移動したいと思うのですが
だとすると
>全構築線を
の意味が良くわからないのですが
元のマクロは関係なくやりたいことを詳しく説明していただけますか
自分の読解力が無いだけのような気もしますがよろしくお願いします

また、自分が構築線を使うのは(あまり使いませんが)
補助線として使うことが多いので一番最初に描き始める線の為
もともと最背面に描くことになるのであまり気にしたとこが無かったです
8:chibi-tom :

2021/07/28 (Wed) 09:05:27

>全構築線を
もしかしたら水平垂直以外の構築線もという意味でしょうか?
それならばこれでどうでしょうか?

*^C^C-Layer;n;XLine;P;N;XLine;;XLine;\\;Change;L;;P;LA;XLine;C;5;;DRAWORDER;l;;b^M

1.マクロ起動
2.1点目を指定(右クリックまたはEscキーで終了)
3.2点目を指定

繰り返し
9:Lon :

2021/07/28 (Wed) 10:45:20

>autocadでは手動で背面に移動しているのでしょうか?

AutoCADには、他のCADに有る様な「補助線」機能はありません。(メカニカルなんかとは違う)
従って、構築線も普通の線と同じです。
構築線を補助線として使いたいなら手動で背面に持っていくしかないんです。

それが嫌ならAutoCADを使わずに「補助線」機能を持ったCADを使いましょう。

AutoCADのマクロとは、手入力の手数を減らすための物であって、
新しい機能やオブジェクトを生み出す物ではありません。

10:chibi-tom :

2021/07/29 (Thu) 11:19:07

自己満足です
LT2007での動作は考えていません<m(__)m>
動くかもしれないし動かないかもしれない
動かない可能性の方が高いのかなぁ

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),-Layer;n;XLine;P;N;XLine;;setenv;sw;0;;to;1,,,,,)$(nth,$(getenv,to),,$(if,$(=,$(getenv,sw),2),ray;点を指定(R-Clickで水平に切替)^X\$M="""""""$(if,$(getvar,CMDACTIVE),;setenv;to;2,setenv;to;4)""""""",setenv;to;3),,,,)$(nth,$(getenv,to),,,xline;non;@;通過点を指定(R-Clickで再指定)^X\$M="""$(if,$(getvar,CMDACTIVE),;setenv;to;5,setenv;to;1)""",,,)$(nth,$(getenv,to),,,,xline;$(if,$(=,$(getenv,sw),1),v;,$(if,$(getenv,sw),,h;))通過点を指定(R-Clickで$(if,$(getenv,sw),2点,垂直)に切替)^X\$M="""$(if,$(getvar,CMDACTIVE),;setenv;to;5,setenv;to;4)""",,)$(nth,$(getenv,to),,,,,;sw;$(nth,$(getenv,sw),1,2,0);;to;1,)$(nth,$(getenv,to),,,,,,change;L;;P;LA;XLine;C;5;;draworder;l;;b;setenv;to;$(if,$(=,$(getenv,sw),2),1,3))^M

1.マクロ起動
2-1.水平の通過点指定(R-Clickで垂直に切替)
2-2.垂直の通過点指定(R-Clickで2点指定に切替)
2-3.1点目を指定(R-Clickで水平に切替)→2点目を指定(R-Clickで1点目を再指定)

以降2をそれぞれ繰り返し

終了はEscキーです
11:こゆ :

2021/07/29 (Thu) 15:48:53

お世話になります。

chibi-tom様
>もしかしたら水平垂直以外の構築線もという意味でしょうか?
>それならばこれでどうでしょうか?

>*^C^C-Layer;n;XLine;P;N;XLine;;XLine;\\;Change;L;;P;LA;XLine;C;5;;DRAWORDER;l;;b^M
これは下記の進化版のようで斜めも対応できるので使用させていただきます。(部品図に有効)

>♪水平/垂直 構築線 表示順序最背面
>*^C^C$M=setenv;to;0;$(nth,$(getenv,to),-Layer;n;XLine;P;N;XLine;;setenv;to;1,,)$(nth,$(getenv,to),,XLine;h;または[垂直(右クリック)] ^X\"""$M=$(if,$(getvar,CMDACTIVE),;Change;L;;P;LA;XLine;C;5;;DRAWORDER;l;;b;setenv;to;1,setenv;to;2)""",)$(nth,$(getenv,to),,,XLine;v;または[水平(右クリック)] ^X\"""$M=$(if,$(getvar,CMDACTIVE),;Change;L;;P;LA;XLine;C;5;;DRAWORDER;l;;b;setenv;to;2,setenv;to;1)""")^M

chibi-tom様
>全構築線を 最背面に移動する
>とあったので
>すでに描いてある構築線をすべて選択して最背面に移動するように製作したつもりです
>マクロを起動しても構築線が最背面に移動していないということでしょうか?
これで動けば望むものです。


Lon様
>構築線を補助線として使いたいなら手動で背面に持っていくしかないんです。
現状は手動で選択して背面に移動しています。


やりたいこと
組図で正面-側面などをチェックする時に(構築線を使用しチェックします)上記を使用すると毎回マクロが動くため動作が遅くなります。
これを標準の構築線(要素上に構築線を乗せる)を使用し(例えば10本の構築線を引き、構築線が最前面で要素が隠れるます。)ここでマクロが発動し、
描かれた10本の構築線全てをマクロで選択し、最背面に移動する。(手動で構築線を選択部をマクロで行う)
上記が私の望むことです。


なにせautocadは使用頻度が少く、最新バージョンでないため、
【 新規投稿時のお願い 】
3.バージョン違いによるマクロの動作不良の場合は、キーボードF2を押し、表示されたテキストウィンドウ内の
  マクロ開始~終了までのマクロの流れをコピーし、貼り付けてご質問下さい。
掲示板の冒頭にも上記のように書いてあります

この辺りが不明であり、メニューに直接貼り付けるとか、皆さんに有効で無いならば必要無しとします。


上記で伝わるでしょうか?
12:chibi-tom :

2021/07/29 (Thu) 16:01:36

>これで動けば望むものです
お伝えしましたが
すでに描いてある構築線をすべて選択して最背面に移動するように製作したつもりです
マクロを起動しても構築線が最背面に移動していないということでしょうか?

原因がわからなければ回答することができません
よろしくお願いします

【 新規投稿時のお願い 】
3.バージョン違いによるマクロの動作不良の場合は、キーボードF2を押し、表示されたテキストウィンドウ内の
  マクロ開始~終了までのマクロの流れをコピーし、貼り付けてご質問下さい。
掲示板の冒頭にも上記のように書いてあります

マクロを登録したボタンはありますよね
そのボタンを押した後

キーボードのファンクションキー『F2』キーを押すと
浮動のテキストウインドウが表示されると思います
下記のマクロを起動すると
chibi-tom 2021/07/27 (Tue) 15:19:15

以下のように表示されているはずなんです
コマンド:
コマンド:
コマンド: zoom

窓のコーナーを指定、表示倍率を入力(nX または nXP) または
[図面全体(A)/中心点(C)/ダイナミック(D)/オブジェクト範囲(E)/前画面(P)/倍率(S)/窓(W)/選択オブジェクト(O)] <リアル タイム>: e

コマンド: select

オブジェクトを選択: f

フェンスの 1 点目を指定 または クリックしてカーソルをドラッグ: -44584.7060901,-9211.79875451

フェンスの次の点を指定 または [元に戻す(U)]: 41426.65565048,-9211.79875451

フェンスの次の点を指定 または [元に戻す(U)]: 41426.65565048,25829.01569105

フェンスの次の点を指定 または [元に戻す(U)]: -44584.7060901,25829.01569105

フェンスの次の点を指定 または [元に戻す(U)]: -44584.7060901,-9211.79875451

フェンスの次の点を指定 または [元に戻す(U)]:
認識された数: 4

オブジェクトを選択:

コマンド: draworder

オブジェクトを選択: p
認識された数: 4

オブジェクトを選択:

オブジェクト表示順序のオプションを入力 [指定オブジェクトの前面(A)/指定オブジェクトの背面(U)/最前面へ移動(F)/最背面へ移動(B)] <最背面へ移動>: b

コマンド: zoom

窓のコーナーを指定、表示倍率を入力(nX または nXP) または
[図面全体(A)/中心点(C)/ダイナミック(D)/オブジェクト範囲(E)/前画面(P)/倍率(S)/窓(W)/選択オブジェクト(O)] <リアル タイム>: p

これで構築線がすべて最背面に移動していると思います
こうなっているのか
なっていないならどこがダメなのかがわかるということです

>♪水平/垂直 構築線 表示順序最背面
このマクロは登録できているんですよね
そのマクロを製作したときと同じようにすればできるはずですので
>メニューに直接貼り付けるとか
のようなマクロの登録方法等がわからない話ではないと思うのですが
13:Lon :

2021/07/29 (Thu) 18:35:47

>やりたいこと
>手動で構築線を選択部をマクロで行う

AutoCADを使い慣れていないのならご存じないかもしれませんが、
「構築線だけを全て選択する」って操作は、
マクロを使わなくても、
フィルターやクイック選択を使わなくても、簡単にできます。
何十本・何百本あっても、4クリック以内で。

ちょっとズームアウトして交差選択を縦横一回づつすれば全てを選択完了。

マクロで選択が出来たとして、交差選択との作業スピードの差は1秒?2秒? 
14:chibi-tom :

2021/07/30 (Fri) 13:46:44

こっちの方が精度高いかもしれない

^C^Czoom;e;select;all;r;w;$M=$(index,0,$(getvar,EXTMIN)),$(index,1,$(getvar,EXTMIN));$(index,0,$(getvar,EXTMAX)),$(index,1,$(getvar,EXTMAX));;draworder;p;;b;zoom;p;^Z

マクロ登録したボタンを押すだけで
全ての構築線を最背面に移動できるようにしたつもりです

  • 名前: E-mail(省略可):
  • 画像:

Copyright © 1999- FC2, inc All Rights Reserved.