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

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

寸法整列マクロについて
AUTOCADLT2017での寸法整列マクロについて

[118]寸法整列のマクロで寸法整列する事は可能なのですが、
「オフセットをするオブジェクトを選択 または」と出たり、
整列基点を指定する時[基点指定(右クリック)]ではなく「点を指定」と出たりします。
「変数名を入力:」と値の入力を求めて来ます。
右クリックで進める事は可能なのですが、どうも挙動が良く分かりません。
このマクロ、便利なものなので何とか使いたいのです。

LT2000から、いきなりLT2017で四苦八苦。
マクロの登録も「どこでするのよ~」と(笑
分かってしまえば何て事ないのですけど、
便利になった反面不便なところも多々ありますが。


ちなみに「中間オフセット構築線 Ver2016」はLT2017でも問題なく動作しました。
  • しん
  • 2017/01/31 (Tue) 10:19:21
Re: 寸法整列マクロについて
確認ですが

登録されたマクロの最後の「^M」の後ろに
余計な空白スペースや改行が無いか確認願います。

あるようでしたら、削除してみて下さい。
  • とってぃ
  • 2017/01/31 (Tue) 11:56:09
Re: 寸法整列マクロについて
マクロは「^M」で終わっていて、
空白スペースや改行はありません。

念のためマクロ自体を消して、
新規に入れてみましたが挙動は変わりませんでした。
  • しん
  • 2017/01/31 (Tue) 18:45:46
Re: 寸法整列マクロについて
マクロ実行後の流れを貼り付けて下さい。

※キーボードF2を押し、テキストウィンドウの
マクロ開始から終了まで
  • とってぃ
  • 2017/02/01 (Wed) 08:01:46
Re: 寸法整列マクロについて
お手数おかけします。
AUTOCADのダイナミック入力を有効にしています。

寸法線の1つを基点10mm移動させた場合です。

一連の操作
 (コマンド入力:「オフセットするオブジェクトまたは」)(テキストウィンドウ:「OFFSET 位置合わせする寸法を選択:[基点指定(右クリック)])==>右クリック
 (コマンド入力:「点を指定」)(テキストウィンドウ:「DI 点を指定:」)==>左クリック
 (コマンド入力:「点を指定」2回目)(テキストウィンドウ:「位置合わせの基点を指定」)==>左クリック
●(コマンド入力:「変数名を入力:」)(テキストウィンドウ:「SETENV 変数名を入力:」)==>右クリック
 (コマンド入力:「オフセットするオブジェクトまたは」)(テキストウィンドウ:「OFFSET 位置合わせする寸法を選択:」)==>選択左クリック
 (コマンド入力:「変数名を入力:」)(テキストウィンドウ:「SETENV 変数名を入力:」)==>右クリック

ここまでで、1つの寸法線基準位置が変わります。
他の寸法線を指定する場合は●から


マクロ実行後の流れ(長くて申し訳ありません)

コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <1>: 0
コマンド: offset
現在の設定: 元のオブジェクトを消去=いいえ 画層=元のオブジェクト OFFSETGAPTYPE=0
オフセット距離を指定 または [通過点(T)/消去(E)/画層(L)] <通過点>:
オフセットするオブジェクトを選択 または [終了(E)/元に戻す(U)] <終了>: *削除*
位置合わせする寸法を選択:[基点指定(右クリック)]*削除*
位置合わせする寸法を選択:[基点指定(右クリック)]
コマンド: id
点を指定:
コマンド:
ID
点を指定: X = 1960.0000 Y = 2000.0000 Z = 0.0000
コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <0>: 0
コマンド: id
点を指定: *削除*
位置合わせの基点を指定*削除*
位置合わせの基点を指定 X = 1960.0000 Y = 2000.0000 Z = 0.0000
コマンド: setenv
変数名を入力: p1
値 <1965,2010,0>: 1960,2000,0
コマンド:
SETENV
変数名を入力: to
値 <0>: 1
コマンド:
SETENV
変数名を入力:
コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <1>: 0
コマンド: offset
現在の設定: 元のオブジェクトを消去=いいえ 画層=元のオブジェクト OFFSETGAPTYPE=0
オフセット距離を指定 または [通過点(T)/消去(E)/画層(L)] <通過点>:
オフセットするオブジェクトを選択 または [終了(E)/元に戻す(U)] <終了>: *削除*
位置合わせする寸法を選択:[基点指定(右クリック)]*削除*
位置合わせする寸法を選択:[基点指定(右クリック)]
このオブジェクトはオフセットできません。
オフセットするオブジェクトを選択 または [終了(E)/元に戻す(U)] <終了>:
コマンド: setenv
変数名を入力: to
値 <0>: 2
コマンド:
SETENV
変数名を入力:
コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <2>: 0
コマンド:
SETENV
変数名を入力: to
値 <0>: 1
コマンド: select
オブジェクトを選択: non
@
認識された数: 1
オブジェクトを選択: non
@
認識された数: 1 (重複している数: 1), 総数 1
オブジェクトを選択:
コマンド: copy
オブジェクトを選択: p
認識された数: 1
オブジェクトを選択:
基点を指定 または [移動距離(D)/複数(M)] <移動距離>: non
@
2 点目を指定 または [配列(A)] <1 点目を基点に使用>: non
@
コマンド: erase
オブジェクトを選択: p
認識された数: 1
オブジェクトを選択:
コマンド: aidimtextmove
オプションを入力 [0/1/2] <2>: 0
オブジェクトを選択: l
認識された数: 1
オブジェクトを選択:
non
1960,2000,0
コマンド: _ai_dim_texthome
オブジェクトを選択: l
認識された数: 1
オブジェクトを選択:
コマンド: setenv
変数名を入力: to
値 <1>: 1
コマンド:
SETENV
  • しん
  • 2017/02/01 (Wed) 10:19:40
Re: 寸法整列マクロについて
マクロの書き方に問題があったかもです。
ちょっと修正したので
試してみてくださし。

♪寸法整列 修正版
*^C^C$m=setenv;to;0;$(nth,$(getenv,to),id;^X位置合わせの基点を指定^X\setenv;p1;$M="""$(getvar,lastpoint)""";;to;1,,)$(nth,$(getenv,to),,;to;0;offset;;^X位置合わせする寸法を選択:[基点指定(右クリック)]^X\$M="""$(if,$(getvar,cmdactive),;setenv;to;2,id;)""",)$(nth,$(getenv,to),,,;to;1;select;non;@;non;@;;copy;p;;non;@;non;@;erase;p;;aidimtextmove;0;l;;non;$(getenv,p1);_ai_dim_texthome;l;;$M="""$(if,$(getvar,cmdactive),;,)"""setenv;to;1)^M
  • とってぃ
  • 2017/02/01 (Wed) 11:28:23
Re: 寸法整列マクロについて
意図する動作になりました。
ダイナミック入力のテキストエリアが少しチラつきますが、これは仕方ないかな。

ただ、位置合わせの基点を指定する時に、寸法補助線1、2の延長線上を指定した寸法線のみ寸法整列が出来ないのですね。
LT2000の時はどうだったか定かではありませんが、出来たような記憶が残っています。
まぁ、気を付ければ済む事なので問題にならないと考えています。

ありがとうございました。
  • しん
  • 2017/02/01 (Wed) 20:34:49
Re: 寸法整列マクロについて
>寸法補助線1、2の延長線上を指定した寸法線のみ寸法整列が出来ないのですね。

そんな事はないと思うのですが…
どの様な状況でそうるのでしょうか?

出来れば状況及び実行後の状態を詳しく教えて頂けると幸いです。
  • とってぃ
  • 2017/02/01 (Wed) 21:23:32
Re: 寸法整列マクロについて
何度も申し訳ありません。
状況を文章でうまく説明できませんので画像を貼ります。

横方向の寸法線
[1]位置合わせの基点(寸法補助線1.2の延長線上)では[A][B]の寸法線が変わらず[C]のみ変わります(本画像が実行後)
[2]位置合わせの基点(寸法補助線1.2の延長線上以外)では[A][B][C]とも変わります。

先ほど気が付いたのですが、
縦方向の寸法線は寸法補助線1.2の延長線上を指定しても変わりました。
横方向の寸法線は何度試しても変わりません。
  • しん
  • 2017/02/01 (Wed) 23:33:40
Re: 寸法整列マクロについて
横方向の寸法線
[1]位置合わせの基点(寸法補助線1.2の延長線上)では[A][B]の寸法線が変わらず[C]のみ変わります(本画像が実行後)

で、写真が実行後とのことですが
[A][B]の寸法線が、位置合わせの基点[1]に移動しないのでしょうか?

尚、位置合わせの基点[1]を指定する場合
何もオブジェクトが無い位置を指定していますか?

ただ
2013では問題無く動作しており、ちょっと検証は難しいかもですが。。。



一応、少し怪しい部分を修正してみたので
お試しください。

♪寸法整列 修正版2
*^C^C$m=setenv;to;0;$(nth,$(getenv,to),;so;$(getvar,sortents);id;^X位置合わせの基点を指定^X\setenv;p1;$M="""$(getvar,lastpoint)""";;to;1,,)$(nth,$(getenv,to),,;to;0;offset;;^X位置合わせする寸法を選択:[基点指定(右クリック)]^X\$M="""$(if,$(getvar,cmdactive),;setenv;to;2,id;)""",)$(nth,$(getenv,to),,,;to;1;select;non;@;non;@;;sortents;127;copy;p;;non;@;non;@;erase;p;;aidimtextmove;0;l;;non;$(getenv,p1);_ai_dim_texthome;l;;$M="""$(if,$(getvar,cmdactive),;,)"""sortents;$(getenv,so))^M


マクロ上
aidimtextmoveコマンドで
位置合わせの基点[1]を指定しているだけなので

実際にaidimtextmoveコマンドで指定しても動作しないのであれば
バージョン違いによるコマンド仕様かも知れません。
  • とってぃ
  • 2017/02/02 (Thu) 08:12:25
Re: 寸法整列マクロについて
お手数おかけします。

>[A][B]の寸法線が、位置合わせの基点[1]に移動しないのでしょうか?

位置合わせの基点を(寸法補助線1.2の延長線上)にして、
[A][B][C]の寸法線を順番に選択しても、位置合わせの基点が変更されるのは[C]だけです。
(選択順番を変えても同じ)

逆に寸法線の位置合わせの基準を、
寸法補助線の下部(前投稿画像)の下や寸法補助線上で指定しても同じです。

前投稿画像は横方向の寸法線ですが、
縦方向の寸法線は位置合わせの基点を寸法補助線1.2の延長線上にしても、
寸法補助線1.2の上であっても、他のオブジェクトが無ければ位置合わせの基点に移動します。


>何もオブジェクトが無い位置を指定していますか?
もちろんです。



体調を崩してしまいましたので、後日試してみます。
  • しん
  • 2017/02/02 (Thu) 17:28:06
Re: 寸法整列マクロについて
うーむ…
一応、他の方のLT2017での動作報告もありますので
何か他の設定やシステム変数等の環境の違いがあるみたいですねー

今回のマクロも、元々のマクロも動くみたいなんですが…

現状では難しい内容かもわかりません。
  • とってぃ
  • 2017/02/02 (Thu) 22:14:30

返信フォーム






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