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

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

連番の一括変更
バージョン:AutocadLT2020
ファイル内の数字を修正した値から連番で変更する方法はないでしょうか。
連続挿入は属性定義で出来ますが、修正が出来ません。
宜しくお願いします。
  • koba
  • 2022/02/16 (Wed) 13:03:38
Re: 連番の一括変更
質問内容が分かりづらいので、補足をお願いします。

>ファイル内の数字を修正した値から連番で変更する方法
1ファイルの内部の数字1個を修正し、そこからの連番となるように変更したいのでしょうか。
それとも、1つのファイル内の数字を修正し、他のファイルの数字を連番となるように変更したいのでしょうか。

1ファイル内であり、対象の文字が「文字オブジェクト」(マルチテキストではない)であれば、
下記のNTextEditで、可能です。(2016とありますが、R2020で使用しています)
http://izawa-web.com/nted/nted.html

ファイルまたぎの場合は、事前の設定がされていないと、変更は難しいと思います。
  • LUNE
  • 2022/02/16 (Wed) 14:11:35
Re: 連番の一括変更
自分もいくつか質問を

連番の一括変更<どんな操作をご希望か?
ファイル内の数字<文字オブジェクトorマルチテキストor属性?
連続挿入は属性定義で出来ます<標準の機能には無いと思うのですが
どの様に操作しているのかわかれば修正にも応用できるかもしれません

そもそも一括変更の変更する順番に規則性が無い場合は一括は不可能かもしれないです
規則性はあるのでしょうか?(座標順や記入順等)
  • chibi-tom
  • 2022/02/17 (Thu) 09:38:56
Re: 連番の一括変更
chibi-tom様
お世話様です。
詳細の内訳番号が連番でして、修正のたびに texteditで打ち直しております。
エクセルですと一つのセルを返し、例)「セル+1」で一気に連番の変更が可能になる。
といったcadでも変更になった箇所から番号がズレてくれるような操作はないかと
ご相談している次第でございます。宜しくお願いします。
  • koba
  • 2022/02/17 (Thu) 10:28:18
Re: 連番の一括変更
ファイル内の数字<文字オブジェクトorマルチテキストor属性?
連続挿入は属性定義で出来ます<標準の機能には無いと思うのですが
どの様に操作しているのかわかれば

上記の質問にはお答えいただけていないようですが
とりあえず作ってみました

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),;cu1;初期値^X\;cu2;配列数^X\;to;1,,,,,)$(nth,$(getenv,to),,-text;j;m;\\0;$(getenv,cu1);line;non;@;\;lengthen;l;dy;;ucs;ob;l;erase;l;;setenv;to;2,,,,)$(nth,$(getenv,to),,,;L1;$(getvar,PERIMETER);;to;3,,,)$(nth,$(getenv,to),,,,;cu1;$(+,$(getenv,cu1),1);;to;4,,)$(nth,$(getenv,to),,,,,$(if,$(=,$(getenv,cu1),$(+,$(getenv,cu2),1)),;to;5,copy;l;;non;0<0;non;$(getenv,L1)<0;change;l;;;;;;;$(getenv,cu1);setenv;to;3),)$(nth,$(getenv,to),,,,,,ucs;p;^Csetenv;to;0)^M

1.マクロ起動
2.初期値入力
3.配列数入力
4.文字列の中央点を指定
5.文字高さ入力
6.2文字目の位置を指定(Lineコマンドで距離と方向を指定します)

以上

※マクロ起動時は文字を記入する画層に設定しておくこと

また『text;j;m;\\0;$(getenv,cu1);』の部分は最初の文字記入の設定です
位置合わせオプションを変える場合は『text;j;m←ここを変更』
文字高さが固定の場合は『text;j;m;\\←ここを変更』
  • chibi-tom
  • 2022/02/17 (Thu) 11:35:35
Re: 連番の一括変更
記入済みを修正(書き直し)する方法にしてみました

*^C^C$M=$(nth,$(getenv,to),select;$M="""$(if,$(getvar,cmdactive),\)"""undo;be;copybase;non;0<0;p;;erase;p;;setenv;cu1;初期値^X\;to;1,,,,,,,)$(nth,$(getenv,to),,;sw;$(+,$(getenv,cu1),1);-layout;d;tmplo;;n;tmplo;;s;tmplo;point;0<0;erase;all;;pasteclip;non;0<0;zoom;e;setenv;to;2,,,,,,)$(nth,$(getenv,to),,,;to;3;select;l;;erase;l;;setenv;sw;$(+,$(getenv,sw),1);;to;2,,,,,)$(nth,$(getenv,to),,,,model;offset;;基準の文字選択(R-Clickで再設定)^X\$M="""$(if,$(getvar,cmdactive),;setenv;to;3;select;non;@;non;@;;copy;p;;non;@;non;@;erase;p;;setenv;to;4,undo;e;u;setenv;to;0)""",,,,)$(nth,$(getenv,to),,,,,change;l;;;;;;;$(getenv,cu1);line;基点を指定^X\文字間隔を指定^X\;lengthen;l;dy;;ucs;ob;l;erase;l;;setenv;to;5,,,)$(nth,$(getenv,to),,,,,,;L1;$(getvar,PERIMETER);-layout;d;tmplo;setenv;to;6,,)$(nth,$(getenv,to),,,,,,,;cu1;$(+,$(getenv,cu1),1);;to;7,)$(nth,$(getenv,to),,,,,,,,$(if,$(=,$(getenv,cu1),$(getenv,sw)),ucs;p;^Csetenv;to;0,copy;l;;non;0<0;non;$(getenv,L1)<0;change;l;;;;;;;$(getenv,cu1);setenv;to;6))^M

1.変更したい文字を選択(基準となる文字は選ばないでください)
選択後マクロ起動でもマクロ起動後に選択でも大丈夫だと思います
2.初期値を入力(基準となる文字の値)
3.基準となる文字を選択(R-Clickで再設定)
4.基点を指定
5.文字間隔を指定(Lineコマンドで距離と方向を指定します)

以上

※、2022.02.17_17:20修正しました
  • chibi-tom
  • 2022/02/17 (Thu) 14:16:01
Re: 連番の一括変更
LUNE様
説明が足らず申し訳ございませんでした。
このような実行ファイルがあるとは知りませんでした。
凄いですね。ありがとうございます。
こちらは打ち直したい文字のオブジェクトを選択し、テンキーで打ち直すんですね。
ランダムに並んでいる連続した数字を直すには、少しずつ選択して修正しないといけない感じでしょうか。
ありがとうございました。
  • koba
  • 2022/02/18 (Fri) 09:14:27
Re: 連番の一括変更
chibi-tom様
お時間を割いて頂きありがとうございます。
凄いですね、マクロで出来たら本当に助かります。

説明の追加させて頂きます。
記入済の数値を変更します。変更に伴い、連番がズレていくための一括文字変更です。
上水道の管割図の詳細なんですが、表になっている訳ではなく、路線が四方八方にありますので、
座標で認識するよりは、文字の値から認識して一括編集できますでしょうか。欲を言いますと。
例えば、
1~100の番号が路線番号順に沿ってあります。5と6のスパンに項目を追加すると、6から先が7,8,9とズレて変更になります。

編集して頂いたマクロですと、それが出来ますでしょうか。
試してみたのですが、文字高さ、角度をエンターし、コマンドラインにchengeと出て、数字を打ち直すような感じで合ってますでしょうか。
すみません理解が出来てないようでして。
初期値を入力と基準となる数字の違いってなんでしょうか。変更したい数字6を7~でよろしいですか。
すみません。
  • koba
  • 2022/02/18 (Fri) 09:54:02
Re: 連番の一括変更
前述のとおりです

"""そもそも一括変更の変更する順番に規則性が無い場合は一括は不可能かもしれないです"""

路線が四方八方にあります
座標で認識するよりは、文字の値から認識して一括編集できますでしょうか
⇒AutoCADのマクロには文字内容を取得することができないので

編集して頂いたマクロですと、それが出来ますでしょうか
⇒部品表のナンバリングのようなイメージで作りましたので
文字間が一定な場合にしか使えません

申し訳ありませんが退散します<m(__)m>
  • chibi-tom
  • 2022/02/18 (Fri) 10:11:55
Re: 連番の一括変更
chibi-tom様
ありがとうございました。
  • koba
  • 2022/02/18 (Fri) 10:50:20
Re: 連番の一括変更
こんなイメージでしょうか。
https://streamable.com/nkkd9y

こんな事がご希望でしたら、下記の方法をお試し下さい。

前半でやってる、「X,X,X,X,X,X,X,X・・・」を「1,2,3,4,5,6,7,8・・・」と書き換えているのは、
カウントアップマクロを使用しています。
ここのホームページのマクロ集や掲示板の過去の質問の中に、
それぞれ違う特徴を持ったマクロが紹介されていますので、
それを使うと良いです。

番号がズレて再ナンバリングする時も、数値の数が少ないならこれで十分だと思います。


動画の中盤以降は、別のプログラムを使っています。
動画内で使っているツールは、AutoCAD LT版では使えませんので、

AutoCAD LT版でも使えるものを、ご用意しました。
(動画の中での操作手順とはちょっと違うと思います。)

https://firestorage.jp/download/c9c59459c31d2768e2e47ea52eb19914a9e02b96
※チャットの方でLT2022ユーザーの常連さんが動作確認してくれています。

これを動かすには、「AcadRemocon」という物をインストールしておく必要があります。

AcadRemoconのインストールは、
http://hp.vector.co.jp/authors/VA026873/
この中の、
「AcadRemocon導入・更新支援ソフト(Aremoupd.exe)・・・48KB」
からダウンロードしてインストールです。
【重要】リンクをクリックしたら、ダウンロードしなくてもインストールができますが、
そこではインストールせず、必ず、ダウンロードを行ってパソコンに保存してください。
そして保存したファイルを右クリックして「管理者として実行」です。
後は、指示に従ってインストールを完了させて下さい。
「管理者として実行」せずにインストールした場合は、機能しません。
  • Lon
  • 2022/02/18 (Fri) 11:03:17
Re: 連番の一括変更
Lon様
はいイメージの通りです。
ありがとうございます。
ただAcadRemoconをダウンロードしたら"実行時エラー '429':ActiveXコンポーネントはオブジェクトを作成できません"と出まして。
困っております。
早く使えるようにしたいです。
  • koba
  • 2022/02/18 (Fri) 14:00:07
Re: 連番の一括変更
Lon様
お世話様です。
素晴らしいですね。解凍したら蟻んこのアイコンになりましたが、使えました。
助かりました。ありがとうございます。
  • koba
  • 2022/02/18 (Fri) 16:09:58
Re: 連番の一括変更
一律の数字を加算・減算するなら、1文字ずつやる必要はありません。

NtextEditで文字を選択した後、そのウインドウ内で右クリックしてみてください。
まず、「すべてを選択」して全部の文字を選択状態にしてから、再度右クリックすると様々なメニューが使えるようになります。
「加算、減算」を選び、数字のみのデータの場合は、対象数値は最初・最後のどちらでもOKです。(-等の前後に数字がある場合は、どちらの数字を変化させるのか選択できます)
加算・減算数に、加算したい場合はそのまま、減算したい場合は-(マイナス)付の数字を入力してOKすれば、選択した数字がすべて加算(減算)されます。
  • LUNE
  • 2022/02/19 (Sat) 16:21:01
Re: 連番の一括変更
超後出しですが、こんな物も・・・・・
http://www7b.biglobe.ne.jp/~den-eng/Free/ac/ar01.html#03
元位置計算が使えそうです。
※ AcadRemoconが必須です。
  • Den
  • 2022/02/21 (Mon) 16:57:05
Re: 連番の一括変更
LUNE様
ありがとうございます。
使い易いです。助かりました。
  • koba
  • 2022/02/24 (Thu) 17:03:11

返信フォーム






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