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

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

マクロの修正をお願いできますでしょうか。
1. AutoCADのバージョン → AutoCAD LT 2018

2. マクロの修正をお願いします。
 
  AutoCAD 2000で使用していたマクロが現在まったく実行できない状況です。
  
 <操作内容>
  窓選択された複数の閉じたポリラインを指定した距離でそれぞれポリラインの内側/外側に一括オフセットする。
  INとOUTという名前の二つのコマンドがあります。
  INコマンドは内側に OUTコマンドは外側にオフセット

以下は現在のマクロ
  INコマンド:
*^C^CSETENV;TO;0$M=;$(NTH,$(GETENV,TO),SETENV;オフセット間隔(IN) \SELECT;\UNDO;E;;M;SORTENTS;127;OFFSET;"""$M=$(GETENV,オフセット間隔(IN))""";;-LAYER;N;-P2;N;-P1;OF;*;Y;ON;-P1;;CHPROP;P;;LA;-P1;;"""""""$M=$(GETENV,AOFFSETIN1)"""""""SETENV;TO;1,,,)$(NTH,$(GETENV,TO),,$(GETENV,AOFFSETIN1)SETENV;TO;1,^C^C$(GETENV,AOFFSETIN4),^C;)^M

  OUTコマンド:
*^C^CSETENV;TO;0$M=;$(NTH,$(GETENV,TO),SETENV;オフセット間隔(OUT) \SELECT;\UNDO;E;;M;SORTENTS;127;OFFSET;"""$M=$(GETENV,オフセット間隔(OUT))""";;-LAYER;N;-P2;N;-P1;OF;*;Y;ON;-P1;;CHPROP;P;;LA;-P1;;"""""""$M=$(GETENV,AOFFSETOUT1)"""""""SETENV;TO;1,,,)$(NTH,$(GETENV,TO),,$(GETENV,AOFFSETOUT1)SETENV;TO;1,^C^C$(GETENV,AOFFSETOUT4),^C^C;)^M


また、ぜひこのマクロを使いたいですが、自分は初心者で未だに解決できていません。
どうかお力を貸して頂けたら幸いです。
よろしくお願いいたします。



  • タクママ
  • MAIL
  • 2018/04/16 (Mon) 23:29:59
Re: マクロの修正をお願いできますでしょうか。
AutoCADが 2000 とか 2018 とかの問題ではなく
このマクロを使うには、CADに文字列を登録する必要が有りそうですが。

例えば
setenv
AOFFSETIN1
HOGEHOGE1 ←何かの命令
setenv
AOFFSETIN4
HOGEHOGE2 ←何かの命令
setenv
AOFFSETOUT1
HOGEHOGE3 ←何かの命令
setenv
AOFFSETOUT4
HOGEHOGE4 ←何かの命令

この様な記述があり、
「この記述をコマンドラインにコピペしてください。」
なんて指示が無かったですか?

上記の正確な情報が判らないとマクロも動かないと思いますよ。
  • Lon
  • 2018/04/17 (Tue) 04:55:33
Re: マクロの修正をお願いできますでしょうか。
早速のご返信ありがとうございます。
再度確認してまた質問させて頂きます。
よろしくお願いします。
  • タクママ
  • MAIL
  • 2018/04/17 (Tue) 21:03:09
Re: マクロの修正をお願いできますでしょうか。
こんにちは。
本日やっとCAD 2000 LTが入ってるPCでマクロを実行してみました。
やはり問題なく動きます。
コマンドを実行するとオフセットの距離を聞かれます。
距離を入力した後、複数のポリラインを窓選択して、決定すると、一括でオフセットされます。
特に他の指示はありませんでした。

mnsファイルの内容は下記のようです。
//
// AutoCAD LT メニュー ファイル - C:\Program Files\AutoCAD LT 2000i\Support\AUTO_EDIT.mnc
//

***MENUGROUP=AUTO_EDIT

***TOOLBARS

**AUTO_OFFSET
ID_AUTO_OFFSET_0 [_Toolbar("AUTO_OFFSET", _Floating, _Show, 150, 700, 1)]
ID_AUTO_OFFSET_IN [_Button("現在層の内側に一括オフセット", "AUTO_OFFSET_IN.bmp", "ICON_24_BLANK")]*^C^CSETENV;TO;0$M=;$(NTH,$(GETENV,TO),SETENV;オフセット間隔(IN) \SELECT;\UNDO;E;;M;SORTENTS;127;OFFSET;"""$M=$(GETENV,オフセット間隔(IN))""";;-LAYER;N;-P2;N;-P1;OF;*;Y;ON;-P1;;CHPROP;P;;LA;-P1;;"""""""$M=$(GETENV,AOFFSETIN1)"""""""SETENV;TO;1,,,)$(NTH,$(GETENV,TO),,$(GETENV,AOFFSETIN1)SETENV;TO;1,^C^C$(GETENV,AOFFSETIN4),^C;)^M
ID_AUTO_OFFSET_OUT [_Button("現在層の外側に一括オフセット", "AUTO_OFFSET_OUT.bmp", "ICON_24_BLANK")]*^C^CSETENV;TO;0$M=;$(NTH,$(GETENV,TO),SETENV;オフセット間隔(OUT) \SELECT;\UNDO;E;;M;SORTENTS;127;OFFSET;"""$M=$(GETENV,オフセット間隔(OUT))""";;-LAYER;N;-P2;N;-P1;OF;*;Y;ON;-P1;;CHPROP;P;;LA;-P1;;"""""""$M=$(GETENV,AOFFSETOUT1)"""""""SETENV;TO;1,,,)$(NTH,$(GETENV,TO),,$(GETENV,AOFFSETOUT1)SETENV;TO;1,^C^C$(GETENV,AOFFSETOUT4),^C^C;)^M
ID_AUTO_OFFSET_ERR [_Button("エラー処理", "AUTO_OFFSET_ERR.bmp", "ICON_24_BLANK")]^C^CSETENV;TO;0;UNDO;E;;B;^C

***HELPSTRINGS
ID_AUTO_OFFSET_IN [オフセット距離を入力後、閉じたポリラインを選択。※円弧を含むポリラインは不可]
ID_AUTO_OFFSET_OUT [オフセット距離を入力後、閉じたポリラインを選択。※円弧を含むポリラインは不可]
ID_AUTO_OFFSET_ERR [マクロが途中で止まった場合に使用。マクロ実行前に戻ります。]

//
// AutoCAD LT メニュー ファイルの終わり - C:\Program Files\AutoCAD LT 2000i\Support\AUTO_EDIT.mnc
//


※ちなみに内側にオフセットのコマンドを実行すると下記のようなマクロの流れが記録されました。

コマンド: SETENV 変数名を入力: TO 値 <2>: 3
コマンド:
コマンド: UCS
現在の UCS 名: *名前なし*
オプションを入力
[作成(N)/移動(M)/直交投影(G)/直前(P)/呼び出し(R)/登録(S)/削除(D)/一覧(?)/ワールド(W
)] <ワールド>: E
UCS を位置合わせするオブジェクトを選択: L
コマンド: ERASE
オブジェクトを選択: L 認識された数: 1

オブジェクトを選択:
コマンド: OFFSET
オフセット間隔を指定 または [通過点(T)] <0.1000>:
オフセットするオブジェクトを選択 または <終了>: 0,0
オフセットする側の点を指定: NON 0.1,0
オフセットするオブジェクトを選択 または <終了>:
コマンド: UCS
現在の UCS 名: *名前なし*
オプションを入力
[作成(N)/移動(M)/直交投影(G)/直前(P)/呼び出し(R)/登録(S)/削除(D)/一覧(?)/ワールド(W
)] <ワールド>: P
コマンド: UCS
現在の UCS 名: *名前なし*
オプションを入力
[作成(N)/移動(M)/直交投影(G)/直前(P)/呼び出し(R)/登録(S)/削除(D)/一覧(?)/ワールド(W
)] <ワールド>: P
コマンド: UCS
現在の UCS 名: *名前なし*
オプションを入力
[作成(N)/移動(M)/直交投影(G)/直前(P)/呼び出し(R)/登録(S)/削除(D)/一覧(?)/ワールド(W
)] <ワールド>: P
コマンド: CHPROP
オブジェクトを選択: L 認識された数: 1

オブジェクトを選択:
変更するプロパティを入力
[色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)]: LA
新しい画層名を入力 <-P1>: -P2
変更するプロパティを入力
[色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)]:
コマンド: ERASE
オブジェクトを選択: L 認識された数: 1

オブジェクトを選択:
コマンド: ERASE
オブジェクトを選択: L 認識された数: 1

オブジェクトを選択:
コマンド: SETENV
変数名を入力: TO
値 <3>: 1

コマンド:
コマンド:
コマンド:
コマンド: SETENV
変数名を入力: TO
値 <1>: 0

コマンド:
コマンド: ID 点を指定:
コマンド: SETENV 変数名を入力: TO 値 <0>: 2
コマンド:
コマンド: CHPROP
オブジェクトを選択: L 認識された数: 1

オブジェクトを選択:
変更するプロパティを入力
[色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)]:
コマンド: -LAYER
現在の画層: "0"
オプションを入力
[一覧(?)/現在層の新規作成(M)/現在層変更(S)/新規作成(N)/表示(ON)/非表示(OF)/色設
定(C)/線種設定(L)/線の太さ(LW)/印刷(P)/フリーズ(F)/フリーズ解除(T)/ロック(LO)/ロック解除(U)/
画層状態(A)]: M
新しい画層の名前を入力 (現在の画層になります) <0>: -P1 オプションを入力
[一覧(?)/現在層の新規作成(M)/現在層変更(S)/新規作成(N)/表示(ON)/非表示(OF)/色設
定(C)/線種設定(L)/線の太さ(LW)/印刷(P)/フリーズ(F)/フリーズ解除(T)/ロック(LO)/ロック解除(U)/
画層状態(A)]:
コマンド: COPY
オブジェクトを選択: L 認識された数: 1

オブジェクトを選択: 基点 または 移動距離を指定 または [連続(M)]: NON @
目的点を指定 または <基点を移動距離として使用>: NON @
コマンド: UCS
現在の UCS 名: *ワールド*
オプションを入力
[作成(N)/移動(M)/直交投影(G)/直前(P)/呼び出し(R)/登録(S)/削除(D)/一覧(?)/ワールド(W
)] <ワールド>: E
UCS を位置合わせするオブジェクトを選択: L
コマンド: XLINE 点を指定 または [水平(H)/垂直(V)/角度(A)/2 等分(B)/オフセット(O)]: V
通過点を指定: NON 0.29,0
通過点を指定:
コマンド: CLAYER
CLAYER の新しい値を入力 <"-P1">: 0
コマンド: UCS
現在の UCS 名: *名前なし*
オプションを入力
[作成(N)/移動(M)/直交投影(G)/直前(P)/呼び出し(R)/登録(S)/削除(D)/一覧(?)/ワールド(W
)] <ワールド>: V
コマンド: TRIM
現在の設定: 投影モード=UCS, エッジモード=非延長
切り取りエッジを選択 ...
オブジェクトを選択: P 認識された数: 1

オブジェクトを選択:
トリムするオブジェクトを選択 または Shift を押して延長するオブジェクトを選択 または
[投影モード(P)/エッジ(E)/元に戻す(U)]: F
フェンスの 1 点目: @4000000<225
線分の端点を指定 または [元に戻す(U)]: @8000000<0
線分の端点を指定 または [元に戻す(U)]:
トリムするオブジェクトを選択 または Shift を押して延長するオブジェクトを選択 または
[投影モード(P)/エッジ(E)/元に戻す(U)]: F
フェンスの 1 点目: @4000000<315
線分の端点を指定 または [元に戻す(U)]: @8000000<90
線分の端点を指定 または [元に戻す(U)]:
トリムするオブジェクトを選択 または Shift を押して延長するオブジェクトを選択 または
[投影モード(P)/エッジ(E)/元に戻す(U)]: F
フェンスの 1 点目: @4000000<45
線分の端点を指定 または [元に戻す(U)]: @8000000<180
線分の端点を指定 または [元に戻す(U)]:
トリムするオブジェクトを選択 または Shift を押して延長するオブジェクトを選択 または
[投影モード(P)/エッジ(E)/元に戻す(U)]: F
フェンスの 1 点目: @4000000<135
線分の端点を指定 または [元に戻す(U)]: @8000000<270
線分の端点を指定 または [元に戻す(U)]:
トリムするオブジェクトを選択 または Shift を押して延長するオブジェクトを選択 または
[投影モード(P)/エッジ(E)/元に戻す(U)]:
コマンド: SETENV 変数名を入力: TO 値 <2>: 3
コマンド:
コマンド: UCS
現在の UCS 名: *名前なし*
オプションを入力
[作成(N)/移動(M)/直交投影(G)/直前(P)/呼び出し(R)/登録(S)/削除(D)/一覧(?)/ワールド(W
)] <ワールド>: E
UCS を位置合わせするオブジェクトを選択: L
コマンド: ERASE
オブジェクトを選択: L 認識された数: 1

オブジェクトを選択:
コマンド: OFFSET
オフセット間隔を指定 または [通過点(T)] <0.1000>:
オフセットするオブジェクトを選択 または <終了>: 0,0
オフセットする側の点を指定: NON 0.1,0
オフセットするオブジェクトを選択 または <終了>:
コマンド: UCS
現在の UCS 名: *名前なし*
オプションを入力
[作成(N)/移動(M)/直交投影(G)/直前(P)/呼び出し(R)/登録(S)/削除(D)/一覧(?)/ワールド(W
)] <ワールド>: P
コマンド: UCS
現在の UCS 名: *名前なし*
オプションを入力
[作成(N)/移動(M)/直交投影(G)/直前(P)/呼び出し(R)/登録(S)/削除(D)/一覧(?)/ワールド(W
)] <ワールド>: P
コマンド: UCS
現在の UCS 名: *名前なし*
オプションを入力
[作成(N)/移動(M)/直交投影(G)/直前(P)/呼び出し(R)/登録(S)/削除(D)/一覧(?)/ワールド(W
)] <ワールド>: P
コマンド: CHPROP
オブジェクトを選択: L 認識された数: 1

オブジェクトを選択:
変更するプロパティを入力
[色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)]: LA
新しい画層名を入力 <-P1>: -P2
変更するプロパティを入力
[色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)]:
コマンド: ERASE
オブジェクトを選択: L 認識された数: 1

オブジェクトを選択:
コマンド: ERASE
オブジェクトを選択: L 認識された数: 1

オブジェクトを選択:
コマンド: SETENV
変数名を入力: TO
値 <3>: 1

コマンド:
コマンド:
コマンド:
コマンド: SETENV
変数名を入力: TO
値 <1>: 0

コマンド:
コマンド: ID 点を指定:
コマンド: SETENV 変数名を入力: TO 値 <0>: 2
コマンド:
コマンド: CHPROP
オブジェクトを選択: L 認識された数: 1

オブジェクトを選択:
変更するプロパティを入力
[色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)]:
コマンド: -LAYER
現在の画層: "0"
オプションを入力
[一覧(?)/現在層の新規作成(M)/現在層変更(S)/新規作成(N)/表示(ON)/非表示(OF)/色設
定(C)/線種設定(L)/線の太さ(LW)/印刷(P)/フリーズ(F)/フリーズ解除(T)/ロック(LO)/ロック解除(U)/
画層状態(A)]: M
新しい画層の名前を入力 (現在の画層になります) <0>: -P1 オプションを入力
[一覧(?)/現在層の新規作成(M)/現在層変更(S)/新規作成(N)/表示(ON)/非表示(OF)/色設
定(C)/線種設定(L)/線の太さ(LW)/印刷(P)/フリーズ(F)/フリーズ解除(T)/ロック(LO)/ロック解除(U)/
画層状態(A)]:
コマンド: COPY
オブジェクトを選択: L 認識された数: 1

オブジェクトを選択: 基点 または 移動距離を指定 または [連続(M)]: NON @
目的点を指定 または <基点を移動距離として使用>: NON @
コマンド: UCS
現在の UCS 名: *ワールド*
オプションを入力
[作成(N)/移動(M)/直交投影(G)/直前(P)/呼び出し(R)/登録(S)/削除(D)/一覧(?)/ワールド(W
)] <ワールド>: E
UCS を位置合わせするオブジェクトを選択: L
コマンド: XLINE 点を指定 または [水平(H)/垂直(V)/角度(A)/2 等分(B)/オフセット(O)]: V
通過点を指定: NON 0.29,0
通過点を指定:
コマンド: CLAYER
CLAYER の新しい値を入力 <"-P1">: 0
コマンド: UCS
現在の UCS 名: *名前なし*
オプションを入力
[作成(N)/移動(M)/直交投影(G)/直前(P)/呼び出し(R)/登録(S)/削除(D)/一覧(?)/ワールド(W
)] <ワールド>: V
コマンド: TRIM
現在の設定: 投影モード=UCS, エッジモード=非延長
切り取りエッジを選択 ...
オブジェクトを選択: P 認識された数: 1

オブジェクトを選択:
トリムするオブジェクトを選択 または Shift を押して延長するオブジェクトを選択 または
[投影モード(P)/エッジ(E)/元に戻す(U)]: F
フェンスの 1 点目: @4000000<225
線分の端点を指定 または [元に戻す(U)]: @8000000<0
線分の端点を指定 または [元に戻す(U)]:
トリムするオブジェクトを選択 または Shift を押して延長するオブジェクトを選択 または
[投影モード(P)/エッジ(E)/元に戻す(U)]: F
フェンスの 1 点目: @4000000<315
線分の端点を指定 または [元に戻す(U)]: @8000000<90
線分の端点を指定 または [元に戻す(U)]:
トリムするオブジェクトを選択 または Shift を押して延長するオブジェクトを選択 または
[投影モード(P)/エッジ(E)/元に戻す(U)]: F
フェンスの 1 点目: @4000000<45
線分の端点を指定 または [元に戻す(U)]: @8000000<180
線分の端点を指定 または [元に戻す(U)]:
トリムするオブジェクトを選択 または Shift を押して延長するオブジェクトを選択 または
[投影モード(P)/エッジ(E)/元に戻す(U)]: F
フェンスの 1 点目: @4000000<135
線分の端点を指定 または [元に戻す(U)]: @8000000<270
線分の端点を指定 または [元に戻す(U)]:
トリムするオブジェクトを選択 または Shift を押して延長するオブジェクトを選択 または
[投影モード(P)/エッジ(E)/元に戻す(U)]:
コマンド: SETENV 変数名を入力: TO 値 <2>: 3
コマンド:
コマンド: UCS
現在の UCS 名: *名前なし*
オプションを入力
[作成(N)/移動(M)/直交投影(G)/直前(P)/呼び出し(R)/登録(S)/削除(D)/一覧(?)/ワールド(W
)] <ワールド>: E
UCS を位置合わせするオブジェクトを選択: L
コマンド: ERASE
オブジェクトを選択: L 認識された数: 1

オブジェクトを選択:
コマンド: OFFSET
オフセット間隔を指定 または [通過点(T)] <0.1000>:
オフセットするオブジェクトを選択 または <終了>: 0,0
オフセットする側の点を指定: NON 0.1,0
オフセットするオブジェクトを選択 または <終了>:
コマンド: UCS
現在の UCS 名: *名前なし*
オプションを入力
[作成(N)/移動(M)/直交投影(G)/直前(P)/呼び出し(R)/登録(S)/削除(D)/一覧(?)/ワールド(W
)] <ワールド>: P
コマンド: UCS
現在の UCS 名: *名前なし*
オプションを入力
[作成(N)/移動(M)/直交投影(G)/直前(P)/呼び出し(R)/登録(S)/削除(D)/一覧(?)/ワールド(W
)] <ワールド>: P
コマンド: UCS
現在の UCS 名: *名前なし*
オプションを入力
[作成(N)/移動(M)/直交投影(G)/直前(P)/呼び出し(R)/登録(S)/削除(D)/一覧(?)/ワールド(W
)] <ワールド>: P
コマンド: CHPROP
オブジェクトを選択: L 認識された数: 1

オブジェクトを選択:
変更するプロパティを入力
[色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)]: LA
新しい画層名を入力 <-P1>: -P2
変更するプロパティを入力
[色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)]:
コマンド: ERASE
オブジェクトを選択: L 認識された数: 1

オブジェクトを選択:
コマンド: ERASE
オブジェクトを選択: L 認識された数: 1

オブジェクトを選択:
コマンド: SETENV
変数名を入力: TO
値 <3>: 1

コマンド:
コマンド:
コマンド:
コマンド: SETENV
変数名を入力: TO
値 <1>: 0

コマンド:
コマンド: ID 点を指定:
コマンド: SETENV 変数名を入力: TO 値 <0>: 2
コマンド:
コマンド: CHPROP
オブジェクトを選択: L 認識された数: 0
オブジェクトを選択:
コマンド:
コマンド:
コマンド: SETENV
変数名を入力: TO
値 <2>: 0

コマンド:
コマンド:
コマンド:
コマンド: SETENV 変数名を入力: TO 値 <0>: 0
コマンド:
コマンド: -LAYER
現在の画層: "0"
オプションを入力
[一覧(?)/現在層の新規作成(M)/現在層変更(S)/新規作成(N)/表示(ON)/非表示(OF)/色設
定(C)/線種設定(L)/線の太さ(LW)/印刷(P)/フリーズ(F)/フリーズ解除(T)/ロック(LO)/ロック解除(U)/
画層状態(A)]: OF
非表示に切り替え に対する画層の名前リストを入力 または <オブジェクトを選択>: -P1
オプションを入力
[一覧(?)/現在層の新規作成(M)/現在層変更(S)/新規作成(N)/表示(ON)/非表示(OF)/色設
定(C)/線種設定(L)/線の太さ(LW)/印刷(P)/フリーズ(F)/フリーズ解除(T)/ロック(LO)/ロック解除(U)/
画層状態(A)]: ON
表示に切り替え: 画層の名前リストを入力:-P2 オプションを入力
[一覧(?)/現在層の新規作成(M)/現在層変更(S)/新規作成(N)/表示(ON)/非表示(OF)/色設
定(C)/線種設定(L)/線の太さ(LW)/印刷(P)/フリーズ(F)/フリーズ解除(T)/ロック(LO)/ロック解除(U)/
画層状態(A)]:
コマンド: CHPROP
オブジェクトを選択: C
最初のコーナーを指定: -2240.21358225,-1290.03562123,0 もう一方のコーナーを指定:
3360.32037338,1935.05343185,0 認識された数: 3

オブジェクトを選択:
変更するプロパティを入力
[色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)]: LA
新しい画層名を入力 <-P2>: 0
変更するプロパティを入力
[色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)]:
コマンド: UCS
現在の UCS 名: *ワールド*
オプションを入力
[作成(N)/移動(M)/直交投影(G)/直前(P)/呼び出し(R)/登録(S)/削除(D)/一覧(?)/ワールド(W
)] <ワールド>: W
コマンド: EXPERT
EXPERT の新しい値を入力 <0>: 2
コマンド: -WBLOCK 出力ファイルの名前を入力: _MACRO.DWG
既存のブロックの名前を入力 または
[= (ブロック=出力ファイル) または * (図面全体)] <新しい図面を定義>: 挿入基点を指定:
NON 0,0
オブジェクトを選択: P 認識された数: 3

オブジェクトを選択:
コマンド: UNDO 取り消す操作の数を入力 または
[自動(A)/コントロール(C)/開始(BE)/終了(E)/マーク(M)/後退(B)] <1>: E
コマンド: UNDO 取り消す操作の数を入力 または
[自動(A)/コントロール(C)/開始(BE)/終了(E)/マーク(M)/後退(B)] <1>: B グループ
現在層の内側に一括オフセット グループ グループ グループ グループ
マークが見つかりました

コマンド: UCS
現在の UCS 名: *ワールド*
オプションを入力
[作成(N)/移動(M)/直交投影(G)/直前(P)/呼び出し(R)/登録(S)/削除(D)/一覧(?)/ワールド(W
)] <ワールド>: W
コマンド: -INSERT ブロック名を入力 または [一覧(?)]: *_MACRO.DWG
ブロックの挿入位置を指定: NON 0,0 XYZ 軸に対する尺度を指定: 回転角度を指定 <0>:
コマンド: UCS
現在の UCS 名: *ワールド*
オプションを入力
[作成(N)/移動(M)/直交投影(G)/直前(P)/呼び出し(R)/登録(S)/削除(D)/一覧(?)/ワールド(W
)] <ワールド>: P
コマンド: INSNAME
INSNAME の新しい値を入力,または .=なし <"*_MACRO.DWG">: .
コマンド: INSNAME
INSNAME の新しい値を入力,または .=なし <"">:
  • タクママ
  • MAIL
  • 2018/04/25 (Wed) 23:11:49
Re: マクロの修正をお願いできますでしょうか。
メニューファイルの中に記述してあるのではありません。
レジストリに登録してあるのです。

コマンドラインから
setenv(エンター)
AOFFSETIN1(エンター)
と入力してください。

LT2000の方では、何かしらの文字列が表示されると思います。
LT2018の方では、何も表示されない(又は2000とは違う物が表示される)と思います。

つまり、LT2018の方でも同じ物が表示されなければ、マクロの動きが同じにならないという事です。

AOFFSETIN4、AOFFSETOUT1、AOFFSETOUT4も同様です。

LT2000では、それぞれどのような文字列が表示されますか?
  • Lon
  • 2018/04/26 (Thu) 08:05:31
Re: マクロの修正をお願いできますでしょうか。
Lon様、
ご返信ありがとうございます。
ゴールデンウィーク明けまでに確認することができませんので、申し訳ございませんが、またご連絡させてくださいm(_ _)m
  • タクママ
  • MAIL
  • 2018/04/27 (Fri) 00:54:54
Re: マクロの修正をお願いできますでしょうか。
Lon様
お世話になっております。

LT2000でコマンドラインから
setenv(エンター)
AOFFSETIN1(エンター)
と入力してみました。
文字列は表示されませんでしたが、
"コマンド:" の所が"値 <ID SETENV TO 2 CHPROP L -LAYER M $M=-P1 COPY L NON @ NON @ UCS E L
XLINE V NON 0.29,0 CLAYER $(GETVAR,CLAYER) $(GETENV,AOFFSETIN2)>:" のようになりました。
仕方なくもう一回エンターを押しました。

※下記のようなマクロの流れが記録されました。

コマンド: setenv
変数名を入力: AOFFSETIN1
値 <ID SETENV TO 2 CHPROP L -LAYER M $M=-P1 COPY L NON @ NON @ UCS E L
XLINE V NON 0.29,0 CLAYER $(GETVAR,CLAYER) $(GETENV,AOFFSETIN2)>:

コマンド:
コマンド: setenv
変数名を入力: AOFFSETIN4
値 <SETENV TO 0 -LAYER OF -P1 ON -P2 CHPROP C $M=$(GETVAR,VSMIN)
$(GETVAR,VSMAX) LA $(GETVAR,CLAYER) "$M=$(GETENV,AOFFSETIN5)">:

コマンド:
コマンド: setenv
変数名を入力: AOFFSETOUT1
値 <ID SETENV TO 2 CHPROP L -LAYER M $M=-P1 COPY L NON @ NON @ UCS E L
XLINE V NON 0.29,0 CLAYER $(GETVAR,CLAYER) $(GETENV,AOFFSETOUT2)>:

コマンド:
コマンド: setenv
変数名を入力: AOFFSETOUT4
値 <SETENV TO 0 -LAYER OF -P1 ON -P2 CHPROP C $M=$(GETVAR,VSMIN)
$(GETVAR,VSMAX) LA $(GETVAR,CLAYER) "$M=$(GETENV,AOFFSETOUT5)">:

コマンド:
  • タクママ
  • MAIL
  • 2018/05/07 (Mon) 23:09:33
Re: マクロの修正をお願いできますでしょうか。
その情報で合っています。
値 <  >:で囲まれた中身がレジストリに登録してある文字列です。

しかし新たに、AOFFSETIN2、AOFFSETIN5、AOFFSETOUT2、AOFFSETOUT5という単語が出てきました。
これらの中身も知る必要が有ります。
また、まだ出てきていませんがAOFFSETIN3、AOFFSETOUT3も有ると思われます。
もしかしたら末尾が「6」以降の単語も有るかもしれません。

これらの単語の中身も同様に調べて下さい。

全てが判らないと、このマクロを動かす事も、LT2018で動くか検証する事もできません。
  • Lon
  • 2018/05/08 (Tue) 08:28:40
Re: マクロの修正をお願いできますでしょうか。
ご提示のマクロを検証していたのですが、全ての情報が揃っても2018での検証は難しいかもしれません。

そこで、新しくマクロを作ってみました。

♪内側オフセットマクロ
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),select;\copybase;non;0<0;p;;offsetdist;\undo;be;-layout;n;POFST;;s;POFST;point;non;$(getvar,viewctr);erase;all;;pasteclip;non;0<0;pedit;m;all;;j;0.001;c;;setenv;to;1,,,)$(nth,$(getenv,to),,;to;3;zoom;e;select;l;;zoom;o;l;;ucs;e;l;offset;;0<0;gcen;@;;ucs;p;copybase;non;0<0;l;;erase;l;;;l;;setenv;to;2,,)$(nth,$(getenv,to),,,-layout;s;Model;pasteclip;non;0<0;-layout;s;POFST;setenv;to;1,^C-layout;s;Model;undo;e)^M

♪外側オフセットマクロ
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),select;\copybase;non;0<0;p;;offsetdist;\undo;be;-layout;n;POFST;;s;POFST;point;non;$(getvar,viewctr);erase;all;;pasteclip;non;0<0;pedit;m;all;;j;0.001;c;;setenv;to;1,,,)$(nth,$(getenv,to),,;to;3;zoom;e;select;l;;zoom;o;l;;;s;0.8x;ucs;e;l;offset;;0<0;non;$M="""$(getvar,vsmax)""";;ucs;p;copybase;non;0<0;l;;erase;l;;;l;;setenv;to;2,,)$(nth,$(getenv,to),,,-layout;s;Model;pasteclip;non;0<0;-layout;s;POFST;setenv;to;1,^C-layout;s;Model;undo;e)^M

操作方法はどちらも、
①マクロ実行
②閉じたポリライン図形を選択
③オフセット間隔を入力
です。

閉じた図形以外を選択した場合、途中でマクロが止まります。
その時は、
ひたすらUndo[戻す]ボタンを押しても良いですけど、

UNDO(Enter)
E(Enter)
U(Enter)

でマクロ実行前にピュッと戻ります。

注意!!
「内側オフセットマクロ」では、オフセット先を図心位置にしていますので、
図心が図形の外側にある様な形状では、外側にオフセットしてしまいます。(添付画像の図形A参照)

また、このマクロで使っている「図心」というプロパティは、2017バージョンから追加になった物ですので2016以下では動きません。

「外側オフセットマクロ」では、特に注意事項はありません。

当方、LT2017で作成しましたが、LT2018でも動くと思われます。 多分。
  • Lon
  • 2018/05/09 (Wed) 18:51:20
Re: マクロの修正をお願いできますでしょうか。
Lon様、
ありがとうございます!
早速明日使ってみます。
また結果を報告致します。
よろしくお願いします。
  • タクママ
  • MAIL
  • 2018/05/09 (Wed) 22:57:48
Re: マクロの修正をお願いできますでしょうか。
チャットにてアドバイスをもらいましたので、上の「♪外側オフセットマクロ」の方を作り変えました。
2018/05/09 (Wed) 18:51:20の書き込みを書き換えていますので、コピー済みでしたら再度コピーしてください。

それにより、「外側オフセットマクロ」に関する注意事項は削除しました。(内側の方は残っています。)

  • Lon
  • 2018/05/10 (Thu) 08:02:44
Re: マクロの修正をお願いできますでしょうか。
Lonさんと全く同じ手法です、ほかの人の参考になれば。

内側オフセット
*^C^C$M=setenv;to;0;$(if,$(=,$(getenv,to),0),undo;be;setenv;oftin;\-layout;d;tmplo;;n;tmplo;;s;tmplo;point;$(getvar,viewctr);erase;all;;model;ucs;w;select;\copybase;non;0<0;p;;-layout;s;tmplo;pasteclip;non;0<0;setenv;to;1)$(if,$(=,$(getenv,to),1),setenv;to;99;select;l;;zoom;o;l;;regen;ucs;ob;l;$M=offset;$(getenv,oftin);non;0<0;non;"""$(getvar,viewctr)""";;ucs;w;copybase;non;0<0;l;;erase;l;;;l;;setenv;to;2)$(if,$(=,$(getenv,to),2),model;pasteclip;non;0<0;-layout;s;tmplo;setenv;to;1)$(if,$(=,$(getenv,to),99),model;ucs;p;-layout;d;tmplo;^Cundo;e)^M

外側オフセット
*^C^C$M=setenv;to;0;$(if,$(=,$(getenv,to),0),undo;be;setenv;oftout;\-layout;d;tmplo;;n;tmplo;;s;tmplo;point;$(getvar,viewctr);erase;all;;model;ucs;w;select;\copybase;non;0<0;p;;-layout;s;tmplo;pasteclip;non;0<0;setenv;to;1)$(if,$(=,$(getenv,to),1),setenv;to;99;select;l;;zoom;o;l;;;s;0.8x;regen;ucs;ob;l;$M=offset;"""$(getenv,oftout)""";non;0<0;non;$(getvar,vsmax);;ucs;w;copybase;non;0<0;l;;erase;l;;;l;;setenv;to;2)$(if,$(=,$(getenv,to),2),model;pasteclip;non;0<0;-layout;s;tmplo;setenv;to;1)$(if,$(=,$(getenv,to),99),model;ucs;p;-layout;d;tmplo;^Cundo;e)^M
  • zukki-
  • 2018/05/10 (Thu) 21:52:47
Re: マクロの修正をお願いできますでしょうか。
Lon様、zukki様
ありがとうございました!
前回Lon様が教えて頂いたマクロを今日試しまして、うまくいきました。本当にうれしいです。
明日また新しいマクロも使ってみたいと思います。
ただ、もうひとつ問題がありまして、今は元のポリラインと同じ画層に同じ色でオフセットしていますが、現在画層にBylayerの色でオフセットすることは可能でしょうか。

  • タクママ
  • MAIL
  • 2018/05/10 (Thu) 22:30:55
Re: マクロの修正をお願いできますでしょうか。
変更してみました。
ついでに、オブジェクトを選ぶ前にオフセット間隔を指定する様にしてみました。(こっちの方が私の好みだったので)

♪内側オフセットマクロ(現在画層で色ByLayer)
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),offsetdist;\select;\copybase;non;0<0;p;;undo;be;-layout;n;POFST;;s;POFST;point;non;$(getvar,viewctr);erase;all;;pasteclip;non;0<0;pedit;m;all;;j;0.001;c;;setenv;to;1,,,)$(nth,$(getenv,to),,;to;3;zoom;e;select;l;;zoom;o;l;;ucs;e;l;offset;l;c;;0<0;gcen;@;;ucs;p;chprop;l;;c;ByLayer;;copybase;non;0<0;l;;erase;l;;;l;;setenv;to;2,,)$(nth,$(getenv,to),,,-layout;s;Model;pasteclip;non;0<0;-layout;s;POFST;setenv;to;1,^C-layout;s;Model;offset;l;s;;;undo;e)^M

♪外側オフセットマクロ(現在画層で色ByLayer)
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),offsetdist;\select;\copybase;non;0<0;p;;undo;be;-layout;n;POFST;;s;POFST;point;non;$(getvar,viewctr);erase;all;;pasteclip;non;0<0;pedit;m;all;;j;0.001;c;;setenv;to;1,,,)$(nth,$(getenv,to),,;to;3;zoom;e;select;l;;zoom;o;l;;;s;0.8x;ucs;e;l;offset;l;c;;0<0;non;$M="""$(getvar,vsmax)""";;ucs;p;chprop;l;;c;ByLayer;;copybase;non;0<0;l;;erase;l;;;l;;setenv;to;2,,)$(nth,$(getenv,to),,,-layout;s;Model;pasteclip;non;0<0;-layout;s;POFST;setenv;to;1,^C-layout;s;Model;offset;l;s;;;undo;e)^M
  • Lon
  • 2018/05/11 (Fri) 14:59:02
Re: マクロの修正をお願いできますでしょうか。
Lon様、
ありがとうございます!!
大変助かります。
貴重なお時間を割いて下さりありがとうございました。


  • タクママ
  • MAIL
  • 2018/05/11 (Fri) 22:26:23

返信フォーム






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