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

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

中心線付き四角枠
お世話になります。
作業環境は以下の通りです
OS:WINDOWS 10 PRO 64ビット
使用アプリケーション:AutoCAD lt 2016

添付図にある2種類の中心線付き四角枠(正方形・長方形/サイズもバラバラ)の作図が多く、
マクロで出来ないものか掲示板に投稿させて頂きました。
可能であれば、以下の工程でマクロ制作のご協力頂けると助かります。

作図工程:四角枠A
マクロ起動後、
1:A寸法を入力。
2:B寸法を入力。
3:上記A・B寸法の1.3倍の長さで中心線を作図。
 ※中心線は赤線だと助かります。
4:マウスのポインタでクリックした箇所に、四角枠の中心になるように配置。
上記工程を繰り返せるマクロが可能であれば、助かります。

作図工程:四角枠B
マクロ起動後、
1:A寸法を入力。
2:B寸法を入力。
3:A・B寸法枠の内側にオフセットでC寸法入力。
4:上記A・B寸法の1.3倍の長さで中心線を作図。
 ※中心線は赤線だと助かります。
5:マウスのポインタでクリックした箇所に、四角枠の中心になるように配置。
上記工程を繰り返せるマクロが可能であれば、助かります。

以上、2点ご教授頂きたい内容です。
分かりにくい点があるとは思いますが、宜しくお願い致します。
  • シツモ
  • 2026/02/18 (Wed) 10:32:50
Re: 中心線付き四角枠
こんな感じでしょうか
普段使用しているマクロも元にしたのでA寸法,B寸法が縦横表記になっているので気になるようなら変更してください

作図工程:四角枠A
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),;X1;横=^X\;Y1;縦=^X\;to;1,rectang;non;-$(/,$(getenv,X1),2)","-$(/,$(getenv,Y1),2);non;@$(getenv,X1)","$(getenv,Y1);erase;l;;setenv;to;2,,,,)$(nth,$(getenv,to),,,line;non;$(/,$(*,$(getenv,X1),1.3),2)<W;non;$(/,$(*,$(getenv,X1),1.3),2)<E;;chprop;l;;lt;center;c;1;;oops;erase;p;l;;setenv;to;3,,,)$(nth,$(getenv,to),,,,line;non;$(/,$(*,$(getenv,Y1),1.3),2)<S;non;$(/,$(*,$(getenv,Y1),1.3),2)<N;;chprop;l;;lt;center;c;1;;oops;select;p;l;;setenv;to;4,,)$(nth,$(getenv,to),,,,,copybase;non;0<0;p;;erase;p;;pasteblock;中心点を指定^X\explode;l;-purge;b;*$M="""$(substr,$(getvar,INSNAME),4)""";n;setenv;co1;$M="""$(getvar,LASTPOINT)""";;to;5,)$(nth,$(getenv,to),,,,,,copy;p;;m;non;$(getenv,co1);中心点を指定(R-Clickで終了)^X\$M="""$(if,$(getvar,CMDACTIVE),;setenv;to;5,undo;1;^Csetenv;to;0)""")^M

作図工程:四角枠B
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),;X1;横=^X\;Y1;縦=^X\;to;1,rectang;non;-$(/,$(getenv,X1),2)","-$(/,$(getenv,Y1),2);non;@$(getenv,X1)","$(getenv,Y1);select;l;;offset;\non;-$(/,$(getenv,X1),2)","-$(/,$(getenv,Y1),2);non;0<0;;setenv;to;2,,,,)$(nth,$(getenv,to),,,erase;p;l;;line;non;$(/,$(*,$(getenv,X1),1.3),2)<W;non;$(/,$(*,$(getenv,X1),1.3),2)<E;;chprop;l;;lt;center;c;1;;oops;erase;p;l;;setenv;to;3,,,)$(nth,$(getenv,to),,,,line;non;$(/,$(*,$(getenv,Y1),1.3),2)<S;non;$(/,$(*,$(getenv,Y1),1.3),2)<N;;chprop;l;;lt;center;c;1;;oops;select;p;l;;setenv;to;4,,)$(nth,$(getenv,to),,,,,copybase;non;0<0;p;;erase;p;;pasteblock;中心点を指定^X\explode;l;-purge;b;*$M="""$(substr,$(getvar,INSNAME),4)""";n;setenv;co1;$M="""$(getvar,LASTPOINT)""";;to;5,)$(nth,$(getenv,to),,,,,,copy;p;;m;non;$(getenv,co1);中心点を指定(R-Clickで終了)^X\$M="""$(if,$(getvar,CMDACTIVE),;setenv;to;5,undo;1;^Csetenv;to;0)""")^M
  • chibi-tom
  • 2026/02/18 (Wed) 14:03:41
Re: 中心線付き四角枠
chibi-tomさま
早速のご回答ありがとうございます。
四角枠Aは、思い通りの動きで助かりました。

四角枠Bのマクロですが、私の動かし方がおかしいのか、3番目の工程の内側へのオフセットの寸法を入力し、マウスで配置しても、
オフセットがされず、四角枠Aとまったく同じ結果になってしまうます。
どうすればよろしいでしょうか?

以下、履歴になります。

コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <0>: 0
コマンド:
SETENV
変数名を入力: X1
値 <100>: 横=*削除*
横=
コマンド:
SETENV
変数名を入力: Y1
値 <100>: 縦=*削除*
縦=
コマンド:
SETENV
変数名を入力: to
値 <0>: 1
コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <1>: 0
コマンド: rectang
一方のコーナーを指定 または [面取り(C)/高度(E)/フィレット(F)/厚さ(T)/幅(W)]: non
-50,-50
もう一方のコーナーを指定 または [面積(A)/サイズ(D)/回転角度(R)]: non
@100,100
コマンド: select
オブジェクトを選択: l
認識された数: 1
オブジェクトを選択:
コマンド: offset
現在の設定: 元のオブジェクトを消去=いいえ 画層=元のオブジェクト OFFSETGAPTYPE=0
オフセット距離を指定 または [通過点(T)/消去(E)/画層(L)] <通過点>: 3.2
オフセットするオブジェクトを選択 または [終了(E)/元に戻す(U)] <終了>: non
-50,-50
オフセットするオブジェクトを選択 または [終了(E)/元に戻す(U)] <終了>: non
0<0
オフセットするオブジェクトを選択 または [終了(E)/元に戻す(U)] <終了>:
コマンド: setenv
変数名を入力: to
値 <0>: 2
コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <2>: 0
コマンド: erase
オブジェクトを選択: p
認識された数: 1
オブジェクトを選択: l
認識された数: 1 (重複している数: 1), 総数 1
オブジェクトを選択:
コマンド: line
1 点目を指定: non
65<W
次の点を指定 または [元に戻す(U)]: non
65<E
次の点を指定 または [元に戻す(U)]:
コマンド: chprop
オブジェクトを選択: l
認識された数: 1
オブジェクトを選択:
変更するプロパティを入力 [色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)/透過性(TR)/マテリアル(M)/異尺度対応(A)]: lt
新しい線種名を入力 <ByLayer>: center
変更するプロパティを入力 [色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)/透過性(TR)/マテリアル(M)/異尺度対応(A)]: c
新しい色 [TrueColor(T)/カラー ブック(CO)] <BYLAYER>: 1
変更するプロパティを入力 [色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)/透過性(TR)/マテリアル(M)/異尺度対応(A)]:
コマンド: oops
コマンド: erase
オブジェクトを選択: p
認識された数: 1
オブジェクトを選択: l
認識された数: 1, 総数 2
オブジェクトを選択:
コマンド: setenv
変数名を入力: to
値 <0>: 3
コマンド:
コマンド:
コマンド: setenv
モデルを再作図中。
*キャンセル*
コマンド:
コマンド:
コマンド: もう一方のコーナーを指定 または [フェンス(F)/ポリゴン窓(WP)/ポリゴン交差(CP)]:
コマンド: もう一方のコーナーを指定 または [フェンス(F)/ポリゴン窓(WP)/ポリゴン交差(CP)]:
コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <0>: 0
コマンド:
SETENV
変数名を入力: X1
値 <100>: 横=*削除*
横=
コマンド:
SETENV
変数名を入力: Y1
値 <100>: 縦=*削除*
縦=
コマンド:
SETENV
変数名を入力: to
値 <0>: 1
コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <1>: 0
コマンド: rectang
一方のコーナーを指定 または [面取り(C)/高度(E)/フィレット(F)/厚さ(T)/幅(W)]: non
-50,-50
もう一方のコーナーを指定 または [面積(A)/サイズ(D)/回転角度(R)]: non
@100,100
コマンド: select
オブジェクトを選択: l
認識された数: 1
オブジェクトを選択:
コマンド: offset
現在の設定: 元のオブジェクトを消去=いいえ 画層=元のオブジェクト OFFSETGAPTYPE=0
オフセット距離を指定 または [通過点(T)/消去(E)/画層(L)] <通過点>: 3.2
オフセットするオブジェクトを選択 または [終了(E)/元に戻す(U)] <終了>: non
-50,-50
オフセットするオブジェクトを選択 または [終了(E)/元に戻す(U)] <終了>: non
0<0
オフセットするオブジェクトを選択 または [終了(E)/元に戻す(U)] <終了>:
コマンド: setenv
変数名を入力: to
値 <0>: 2
コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <2>: 0
コマンド: erase
オブジェクトを選択: p
認識された数: 1
オブジェクトを選択: l
認識された数: 1 (重複している数: 1), 総数 1
オブジェクトを選択:
コマンド: line
1 点目を指定: non
65<W
次の点を指定 または [元に戻す(U)]: non
65<E
次の点を指定 または [元に戻す(U)]:
コマンド: chprop
オブジェクトを選択: l
認識された数: 1
オブジェクトを選択:
変更するプロパティを入力 [色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)/透過性(TR)/マテリアル(M)/異尺度対応(A)]: lt
新しい線種名を入力 <ByLayer>: center
変更するプロパティを入力 [色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)/透過性(TR)/マテリアル(M)/異尺度対応(A)]: c
新しい色 [TrueColor(T)/カラー ブック(CO)] <BYLAYER>: 1
変更するプロパティを入力 [色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)/透過性(TR)/マテリアル(M)/異尺度対応(A)]:
コマンド: oops
コマンド: erase
オブジェクトを選択: p
認識された数: 1
オブジェクトを選択: l
認識された数: 1, 総数 2
オブジェクトを選択:
コマンド: setenv
変数名を入力: to
値 <0>: 3
コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <3>: 0
コマンド: line
1 点目を指定: non
65<S
次の点を指定 または [元に戻す(U)]: non
65<N
次の点を指定 または [元に戻す(U)]:
コマンド: chprop
オブジェクトを選択: l
認識された数: 1
オブジェクトを選択:
変更するプロパティを入力 [色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)/透過性(TR)/マテリアル(M)/異尺度対応(A)]: lt
新しい線種名を入力 <ByLayer>: center
変更するプロパティを入力 [色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)/透過性(TR)/マテリアル(M)/異尺度対応(A)]: c
新しい色 [TrueColor(T)/カラー ブック(CO)] <BYLAYER>: 1
変更するプロパティを入力 [色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)/透過性(TR)/マテリアル(M)/異尺度対応(A)]:
コマンド: oops
コマンド: select
オブジェクトを選択: p
認識された数: 2
オブジェクトを選択: l
認識された数: 1, 総数 3
オブジェクトを選択:
コマンド: setenv
変数名を入力: to
値 <0>: 4
コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <4>: 0
コマンド: copybase
基点を指定: non
0<0
オブジェクトを選択: p
認識された数: 3
オブジェクトを選択:
コマンド: erase
オブジェクトを選択: p
認識された数: 3
オブジェクトを選択:
コマンド: pasteblock
挿入点を指定: 中心点を指定*削除*
中心点を指定
コマンド: explode
オブジェクトを選択: l
コマンド: -purge
名前削除する未使用のオブジェクトのタイプを入力 [ブロック(B)/詳細ビュー スタイル(DE)/寸法スタイル(D)/グループ(G)/画層(LA)/線種(LT)/マテリアル(MA)/マルチ引出線スタイル(MU)/印刷スタイル(P)/シェイプ(SH)/文字スタイル(ST)/マルチライン スタイル(M)/断面ビュー スタイル(SE)/表スタイル(T)/表示スタイル(V)/登録アプリケーション(R)/長さがゼロのジオメトリ(Z)/空白の文字オブジェクト(E)/孤立データ(O)/すべて(A)]: b
削除する名前を入力 <*>: *6F64687D
名前削除されるそれぞれの名前を確認しますか? [はい(Y)/いいえ(N)] <Y>: n
ブロック "A$C6F64687D" 削除中。
1 ブロック が名前削除されました。
コマンド: setenv
変数名を入力: co1
値 <2664.54930736,2092.16811551,0>: 2609.14016605,1966.66977295,0
コマンド:
SETENV
変数名を入力: to
値 <0>: 5
コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <5>: 0
コマンド: copy
オブジェクトを選択: p
認識された数: 3
オブジェクトを選択:
基点を指定 または [移動距離(D)/複数(M)] <移動距離>: m
基点を指定 または [移動距離(D)] <移動距離>: non
2609.14016605,1966.66977295,0
2 点目を指定 または [配列(A)] <1 点目を基点に使用>: 中心点を指定(R-Clickで終了)*削除*
中心点を指定(R-Clickで終了)*キャンセル*
  • シツモ
  • 2026/02/18 (Wed) 15:03:05
Re: 中心線付き四角枠
オフセットした後のオブジェクト選択が自分と違いますね
オフセットできてないですね
下記マクロ試していただけますか?

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),;X1;横=^X\;Y1;縦=^X\;to;1,rectang;non;-$(/,$(getenv,X1),2)","-$(/,$(getenv,Y1),2);non;@$(getenv,X1)","$(getenv,Y1);select;l;;offset;\-$(/,$(getenv,X1),2)","-$(/,$(getenv,Y1),2);non;0<0;;setenv;to;2,,,,)$(nth,$(getenv,to),,,erase;p;l;;line;non;$(/,$(*,$(getenv,X1),1.3),2)<W;non;$(/,$(*,$(getenv,X1),1.3),2)<E;;chprop;l;;lt;center;c;1;;oops;erase;p;l;;setenv;to;3,,,)$(nth,$(getenv,to),,,,line;non;$(/,$(*,$(getenv,Y1),1.3),2)<S;non;$(/,$(*,$(getenv,Y1),1.3),2)<N;;chprop;l;;lt;center;c;1;;oops;select;p;l;;setenv;to;4,,)$(nth,$(getenv,to),,,,,copybase;non;0<0;p;;erase;p;;pasteblock;中心点を指定^X\explode;l;-purge;b;*$M="""$(substr,$(getvar,INSNAME),4)""";n;setenv;co1;$M="""$(getvar,LASTPOINT)""";;to;5,)$(nth,$(getenv,to),,,,,,copy;p;;m;non;$(getenv,co1);中心点を指定(R-Clickで終了)^X\$M="""$(if,$(getvar,CMDACTIVE),;setenv;to;5,undo;1;^Csetenv;to;0)""")^M
  • chibi-tom
  • 2026/02/18 (Wed) 15:37:39
Re: 中心線付き四角枠
chibi-tomさま
ご回答ありがとうございます。
15:37:39投稿分のマクロで試してみましたが、結果は同様でオフセットされない様です。

以下、コマンド履歴になります。

マンド:
コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <0>: 0


コマンド:
SETENV
変数名を入力: X1
値 <100>: 横=*削除*
横=


コマンド:
SETENV
変数名を入力: Y1
値 <100>: 縦=*削除*
縦=


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


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


コマンド: rectang

一方のコーナーを指定 または [面取り(C)/高度(E)/フィレット(F)/厚さ(T)/幅(W)]: non
-50,-50

もう一方のコーナーを指定 または [面積(A)/サイズ(D)/回転角度(R)]: non
@100,100

コマンド: select

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

オブジェクトを選択:

コマンド: offset

現在の設定: 元のオブジェクトを消去=いいえ 画層=元のオブジェクト OFFSETGAPTYPE=0
オフセット距離を指定 または [通過点(T)/消去(E)/画層(L)] <3.2000>:

オフセットするオブジェクトを選択 または [終了(E)/元に戻す(U)] <終了>: -50,-50

オフセットするオブジェクトを選択 または [終了(E)/元に戻す(U)] <終了>: non
0<0

オフセットするオブジェクトを選択 または [終了(E)/元に戻す(U)] <終了>:

コマンド: setenv
変数名を入力: to
値 <0>: 2


コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <2>: 0


コマンド: erase

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

オブジェクトを選択: l
認識された数: 1 (重複している数: 1), 総数 1

オブジェクトを選択:

コマンド: line

1 点目を指定: non
65<W

次の点を指定 または [元に戻す(U)]: non
65<E

次の点を指定 または [元に戻す(U)]:

コマンド: chprop

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

オブジェクトを選択:

変更するプロパティを入力 [色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)/透過性(TR)/マテリアル(M)/異尺度対応(A)]: lt

新しい線種名を入力 <ByLayer>: center

変更するプロパティを入力 [色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)/透過性(TR)/マテリアル(M)/異尺度対応(A)]: c

新しい色 [TrueColor(T)/カラー ブック(CO)] <BYLAYER>: 1

変更するプロパティを入力 [色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)/透過性(TR)/マテリアル(M)/異尺度対応(A)]:

コマンド: oops

コマンド: erase

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

オブジェクトを選択: l
認識された数: 1, 総数 2

オブジェクトを選択:

コマンド: setenv
変数名を入力: to
値 <0>: 3


コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <3>: 0


コマンド: line

1 点目を指定: non
65<S

次の点を指定 または [元に戻す(U)]: non
65<N

次の点を指定 または [元に戻す(U)]:

コマンド: chprop

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

オブジェクトを選択:

変更するプロパティを入力 [色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)/透過性(TR)/マテリアル(M)/異尺度対応(A)]: lt

新しい線種名を入力 <ByLayer>: center

変更するプロパティを入力 [色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)/透過性(TR)/マテリアル(M)/異尺度対応(A)]: c

新しい色 [TrueColor(T)/カラー ブック(CO)] <BYLAYER>: 1

変更するプロパティを入力 [色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)/透過性(TR)/マテリアル(M)/異尺度対応(A)]:

コマンド: oops

コマンド: select

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

オブジェクトを選択: l
認識された数: 1, 総数 3

オブジェクトを選択:

コマンド: setenv
変数名を入力: to
値 <0>: 4


コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <4>: 0


コマンド: copybase

基点を指定: non
0<0

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

オブジェクトを選択:

コマンド: erase

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

オブジェクトを選択:

コマンド: pasteblock
挿入点を指定: 中心点を指定*削除*
中心点を指定
コマンド: explode

オブジェクトを選択: l

コマンド: -purge

名前削除する未使用のオブジェクトのタイプを入力 [ブロック(B)/詳細ビュー スタイル(DE)/寸法スタイル(D)/グループ(G)/画層(LA)/線種(LT)/マテリアル(MA)/マルチ引出線スタイル(MU)/印刷スタイル(P)/シェイプ(SH)/文字スタイル(ST)/マルチライン スタイル(M)/断面ビュー スタイル(SE)/表スタイル(T)/表示スタイル(V)/登録アプリケーション(R)/長さがゼロのジオメトリ(Z)/空白の文字オブジェクト(E)/孤立データ(O)/すべて(A)]: b
削除する名前を入力 <*>: *14B54B60
名前削除されるそれぞれの名前を確認しますか? [はい(Y)/いいえ(N)] <Y>: n
ブロック "A$C14B54B60" 削除中。
1 ブロック が名前削除されました。

コマンド: setenv
変数名を入力: co1
値 <2401.29283472,1925.4602766,0>: 2441.48922793,1913.58026077,0


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


コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <5>: 0


コマンド: copy

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

オブジェクトを選択:

基点を指定 または [移動距離(D)/複数(M)] <移動距離>: m

基点を指定 または [移動距離(D)] <移動距離>: non
2441.48922793,1913.58026077,0

2 点目を指定 または [配列(A)] <1 点目を基点に使用>: 中心点を指定(R-Clickで終了)*削除*
中心点を指定(R-Clickで終了)*キャンセル*
  • シツモ
  • 2026/02/18 (Wed) 16:06:13
Re: 中心線付き四角枠
LT2016では画面外のオブジェクト選択できない仕様だったかも(なので最初のマクロも同様な現象かも)

いったん原点付近で試していただけますか?
  • chibi-tom
  • 2026/02/18 (Wed) 16:15:31
Re: 中心線付き四角枠
原点付近で試した所、仰る通りオフセットされた十字中心線付き四角枠で作図されました。
ちょっとでも、原点が画面から外れるとオフセットされない 十字中心線付き四角枠での作図になります。

原点付近じゃないと難しいマクロでしょうか?
  • シツモ
  • 2026/02/18 (Wed) 16:37:27
Re: 中心線付き四角枠
LT2016では画面外のオブジェクト選択できない仕様

仕様はそのままで良いですか?
それとも設定から繰り返しのほうが良いですか?
  • chibi-tom
  • 2026/02/18 (Wed) 16:44:30
Re: 中心線付き四角枠
UCSの移動ですね、承知しました。

作図工程で見落としてた点がありました。
四角枠A(工程4)・四角枠B(工程5)ともに”マウスのポインタでクリックした箇所に、四角枠の中心になるように配置”後、
繰り返し同じ図形を繰り返し配置するのではなく、
別な四角枠を作図したいので、四角枠A(工程1~4まで)・四角枠B(工程1~5まで)を繰り返したいです。

最初の頃に気付けば良かったのですが、お手数お掛けし申し訳ありません。
何卒宜しくお願い致します。
  • シツモ
  • 2026/02/18 (Wed) 17:02:12
Re: 中心線付き四角枠
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),;A;\;B;\;C;\;to;1,,,,,)$(nth,$(getenv,to),,ray;\$M="""$(if,$(getvar,CMDACTIVE),;ucs;m;non;@;setenv;to;2;,^C)"""setenv;A1;$(/,$(getenv,A),2);;B1;$(/,$(getenv,B),2);;C1;$(getenv,C),,,,)$(nth,$(getenv,to),,,rectang;non;-$(getenv,A1)","-$(getenv,B1);non;$(getenv,A1)","$(getenv,B1);setenv;to;3,,,)$(nth,$(getenv,to),,,,;to;$(if,$(getenv,C1),2;;A1;$(-,$(getenv,A1),$(getenv,C));;B1;$(-,$(getenv,B1),$(getenv,C));;C1;0,4),,)$(nth,$(getenv,to),,,,,line;non;$(*,$(getenv,A),0.65)<180;non;$(*,$(getenv,A),0.65)<0;;select;l;;setenv;to;5,)$(nth,$(getenv,to),,,,,,line;non;$(*,$(getenv,B),0.65)<90;non;$(*,$(getenv,B),0.65)<270;;chprop;l;p;;lt;CENTER;c;RED;;ucs;p)^M

Cを0で入力すれば□は1個になります。
  • Sankaku
  • 2026/02/18 (Wed) 17:02:54
Re: 中心線付き四角枠
Sankakuさんのマクロが使いやすいです(;^_^A

作図工程:四角枠A
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),;X1;横=^X\;Y1;縦=^X\id;中心点を指定^X\setenv;to;1,,,,)$(nth,$(getenv,to),,;p1;$(getvar,LASTPOINT);rectang;non;@-$(/,$(getenv,X1),2)","-$(/,$(getenv,Y1),2);non;@$(getenv,X1)","$(getenv,Y1);setenv;to;2,,,)$(nth,$(getenv,to),,,erase;l;;id;$(getenv,p1);line;non;@$(/,$(*,$(getenv,X1),1.3),2)<W;non;@$(*,$(getenv,X1),1.3)<E;;chprop;l;;lt;center;c;1;;oops;erase;p;l;;setenv;to;3,,)$(nth,$(getenv,to),,,,id;$(getenv,p1);line;non;@$(/,$(*,$(getenv,Y1),1.3),2)<S;non;@$(*,$(getenv,Y1),1.3)<N;;chprop;l;;lt;center;c;1;;oops;select;p;l;;setenv;to;4,)$(nth,$(getenv,to),,,,,copybase;non;$(getenv,p1);p;;erase;p;;pasteblock;non;$(getenv,p1);explode;l;-purge;b;*$M="""$(substr,$(getvar,INSNAME),4)""";n;setenv;co1;$M="""$(getvar,LASTPOINT)""";;to;0)^M

作図工程:四角枠B
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),;X1;横=^X\;Y1;縦=^X\id;中心点を指定^X\setenv;to;1,,,,)$(nth,$(getenv,to),,;p1;$(getvar,LASTPOINT);rectang;non;@-$(/,$(getenv,X1),2)","-$(/,$(getenv,Y1),2);non;@$(getenv,X1)","$(getenv,Y1);select;l;;offset;\non;@;non;@-$(/,$(getenv,X1),2)","-$(/,$(getenv,Y1),2);;setenv;to;2,,,)$(nth,$(getenv,to),,,erase;p;l;;id;$(getenv,p1);line;non;@$(/,$(*,$(getenv,X1),1.3),2)<W;non;@$(*,$(getenv,X1),1.3)<E;;chprop;l;;lt;center;c;1;;oops;erase;p;l;;setenv;to;3,,)$(nth,$(getenv,to),,,,id;$(getenv,p1);line;non;@$(/,$(*,$(getenv,Y1),1.3),2)<S;non;@$(*,$(getenv,Y1),1.3)<N;;chprop;l;;lt;center;c;1;;oops;select;p;l;;setenv;to;4,)$(nth,$(getenv,to),,,,,copybase;non;$(getenv,p1);p;;erase;p;;pasteblock;non;$(getenv,p1);explode;l;-purge;b;*$M="""$(substr,$(getvar,INSNAME),4)""";n;setenv;co1;$M="""$(getvar,LASTPOINT)""";;to;0)^M

終了はEscキーです
  • chibi-tom
  • 2026/02/18 (Wed) 17:17:19
Re: 中心線付き四角枠
chibi-tomさま・Sankakuさま
大変お手数お掛けし申し訳ありませんでした。
四角枠A・Bともに 希望の作図になりました。
大変助かります。

chibi-tomさんや他の方々には、いつも早急にご対応頂き感謝しきれません。
改めて、ありがとうございました。
  • シツモ
  • 2026/02/18 (Wed) 17:46:30

返信フォーム






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