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

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

文字枠
お世話になります
先日はありがとうございました。

文字枠マクロについて伺いたいのですが、

*^C^C$m=setenv;to;0;$(nth,$(getenv,to),offset;;^x単一文字オブジェクト選択^x\;select;@;@;;setenv;to;1,,,,)$(nth,$(getenv,to),,copybase;non;0","0;p;;id;$(getvar,lastpoint);undo;be;explode;@;"""$m=$(if,$(getvar,cmdactive),;)"""explode;@;"""""""$m=$(if,$(getvar,cmdactive),;)"""""""select;non;@;non;@;;setenv;to;2,,,)$(nth,$(getenv,to),,,ucs;e;@;sortents;127;line;non;@;non;@0.01<0;;extend;p;;@;@;;lengthen;dy;;;l;;;sortents;$(getvar,sortents);setenv;to;3,,)$(nth,$(getenv,to),,,,userr1;$(getvar,perimeter);sortents;127;line;mid;@;non;@0","0.01;;extend;p;;@;@;;lengthen;dy;;;l;;;sortents;$(getvar,sortents);ucs;e;l;erase;p;l;;;l;;setenv;to;4,)$(nth,$(getenv,to),,,,,ucs;o;$(/,$(getvar,perimeter),2)","0;rectang;non;-$(/,$(getvar,perimeter),2)","-$(/,$(getvar,userr1),2);non;$(/,$(getvar,perimeter),2)","$(/,$(getvar,userr1),2);ucs;p;;p;;p;pasteclip;non;0<0)^M

このマクロですと、二行にした場合文字枠が反映されません。
単一でないと不可能なのでしょうか?
もし、二行もしくはそれ以上でも文字枠が可能ならば、
作成いただけないでしょうか。
  • あむ
  • 2018/06/12 (Tue) 14:59:08
Re: 文字枠
こんな感じでできます?

^C^Cselect;\non;@;non;@;zoom;o;p;;$M=rectang;non;$(getvar,extmin)^H^H;non;$(getvar,extmax)^H^H;zoom;p;^Z
  • chibi-tom
  • 2018/06/12 (Tue) 15:29:19
Re: 文字枠
chibi-tom様

ありがとうございます。
作成いただいたマクロを
入れ込むイメージでよろしいでしょうか?
マクロ初心者で
まだほとんどわからずです...
すみません
  • あむ
  • 2018/06/12 (Tue) 16:20:43
Re: 文字枠
もともとのマクロは関係ありません
新しく作成してください
  • chibi-tom
  • 2018/06/12 (Tue) 16:25:29
Re: 文字枠
chibi-tom様
ありがとうございます。

反映しましたが、
画面が15秒ほど固まってしまうのには
なにか原因があるのでしょうか?
わがままを言ってもうしわけないのですが
自動で枠が完成するようにできないでしょうか?
  • あむ
  • 2018/06/12 (Tue) 16:48:00
Re: 文字枠

>画面が15秒ほど固まってしまうのには
すいません、症状が出ません
処理速度の関係でしょうか?
>自動で枠が完成するようにできないでしょうか?
自動で完成する予定です

ちょっと間違えていたので修正します

^C^Cselect;\zoom;o;p;;$M=rectang;non;$(getvar,extmin)^H^H;non;$(getvar,extmax)^H^H;zoom;p;^Z

これでだめならこのマクロはスルーでお願いします。
すいません自分の環境では問題ありませんでした。

  • chibi-tom
  • 2018/06/12 (Tue) 17:25:39
Re: 文字枠
chibi-tom様
ありがとうございます。

固まる現象は直りました!
やはり枠は自動では囲われませんでした...。
  • あむ
  • 2018/06/12 (Tue) 17:48:40
Re: 文字枠
こちらの環境でもうまく動かなかったので泥臭く座標を取り出してみました。
しかし、extmax、extminでboundingbox的使い方ができるですね。
少し誤差があるようですが、文字に枠を描くぶんには充分だし、何より簡単。

*^C^Coffset;;\;select;non;@;non;@;;zoom;o;p;;$M=rectang;non;$(index,0,$(getvar,extmin)),$(index,1,$(getvar,extmin));non;$(index,0,$(getvar,extmax)),$(index,1,$(getvar,extmax));zoom;p^M
  • zukki-
  • 2018/06/12 (Tue) 20:39:39
Re: 文字枠
すみません、うえのだと2行以上のダイレクト文字を囲めないですね、マルチテキストならOK。

2つ以上のオブジェクトの場合はchibi-tomさんのように
^C^Cselect;\zoom;o;p;;$M=rectang;non;$(index,0,$(getvar,extmin)),$(index,1,$(getvar,extmin));non;$(index,0,$(getvar,extmax)),$(index,1,$(getvar,extmax));zoom;p^M
  • zukki-
  • 2018/06/12 (Tue) 20:44:49
Re: 文字枠
Z値0とは限らないのか(当たり前か)

自分の設定では問題ないのでまったく気づきませんでした
zukki-様、修正ありがとうございます。

ただ自分の環境では下記のようにしないとZOOMの動きがスムーズではありませんでした。

^C^Cselect;\zoom;o;p;;$M=rectang;non;$(index,0,$(getvar,extmin)),$(index,1,$(getvar,extmin));non;$(index,0,$(getvar,extmax)),$(index,1,$(getvar,extmax));zoom;p;^Z
または
*^C^Cselect;\zoom;o;p;;$M=rectang;non;$(index,0,$(getvar,extmin)),$(index,1,$(getvar,extmin));non;$(index,0,$(getvar,extmax)),$(index,1,$(getvar,extmax));zoom;p^M


  • chibi-tom
  • 2018/06/13 (Wed) 08:41:07
Re: 文字枠
zukki-様
chibi-tom様

ありがとうございました。
cad2013、全て反映しました!
固まったり、不具合は全くありませんでした^^

文字にぴったり枠なので
すこし余白をあけたいのですが、
そうするとマクロは長くなってしまうのでしょうか?
  • あむ
  • 2018/06/13 (Wed) 09:09:29
Re: 文字枠
こんな感じでしょうか?

*^C^Cselect;\zoom;o;p;;$M=rectang;non;$(-,$(index,0,$(getvar,extmin)),1),$(-,$(index,1,$(getvar,extmin)),1);non;$(+,$(index,0,$(getvar,extmax)),1),$(+,$(index,1,$(getvar,extmax)),1);zoom;p^M

バランスは1の部分(4箇所)を変更して調整してください
  • chibi-tom
  • 2018/06/13 (Wed) 09:33:22
Re: 文字枠
chibi-tom様

おはようございます。
ありがとうございます!
数値を変えて試してみたのですが、
余白が反映されませんでした;;
  • あむ
  • 2018/06/13 (Wed) 09:57:36
Re: 文字枠
言葉足らずだったのかもしれないです

$(-,$(index,0,$(getvar,extmin)),1)←ここ
$(-,$(index,1,$(getvar,extmin)),1)←ここ
$(+,$(index,0,$(getvar,extmax)),1)←ここ
$(+,$(index,1,$(getvar,extmax)),1)←ここの4箇所だけです

$(index,1←ここは変えないで下さい

座標から計算しているだけなのでできると思うのですが
変更する数字を文字高さの半分位にしてみたら違いがわかるかもです


  • chibi-tom
  • 2018/06/13 (Wed) 10:18:40
Re: 文字枠
chibi-tom様

ありがとうございます!
ずっと文字高100に対して
5~10に変更していたので
chibi-tom様の言葉通りに
50でやってみたら反映しました!
  • あむ
  • 2018/06/13 (Wed) 10:38:30
Re: 文字枠
昨日はお世話になりました。

本日昨日作成いただいたマクロを
使用していたのですが、
なぜか使用できない時があります。

ちなみに、ファイルは違いますが、
文字高さ、文字の種類(マルチorダイナミック)は同じです。
エラーとかではなく
単純に文字枠が出てきません...
これはなにが原因なのでしょうか
  • あむ
  • 2018/06/14 (Thu) 09:34:22
Re: 文字枠
ファイルは違いますがとのことですので
設定の違いでしょうか
現在画層が非表示になっているとか

マクロ実行後の流れを貼り付けてもらえますか?
何かわかるかもしれないので
  • chibi-tom
  • 2018/06/14 (Thu) 10:15:11
Re: 文字枠
chibi-tom様

昨日に引き続きありがとうございます。
画層については
確認しましたが全て表示でした。。。

コマンド:
コマンド:
コマンド: select

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

オブジェクトを選択:

コマンド: zoom

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

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

オブジェクトを選択:

コマンド: rectang

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

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

コマンド: zoom

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

コマンド:
コマンド:
コマンド: select

オブジェクトを選択: *キャンセル*

コマンド:
コマンド:
コマンド: '_Layer

こちらが実行後です。
宜しくお願いします。
  • あむ
  • 2018/06/14 (Thu) 10:24:34
Re: 文字枠
流れには問題なさそうですね

ごめんなさい、わからないです

  • chibi-tom
  • 2018/06/14 (Thu) 10:42:34
Re: 文字枠
extmin、extmaxはワールド座標系に対しての座標だからだと思います。
z値が0にならない時があるのも、図面の中にz値を持ったオブジェクトあるのかなと思ってます。
  • zukki-
  • 2018/06/14 (Thu) 11:28:17
Re: 文字枠
つーことは

*^C^Cselect;\ucs;w;zoom;o;p;;$M=rectang;non;$(-,$(index,0,$(getvar,extmin)),1),$(-,$(index,1,$(getvar,extmin)),1);non;$(+,$(index,0,$(getvar,extmax)),1),$(+,$(index,1,$(getvar,extmax)),1);zoom;p;ucs;p^M

UCSコマンドでワールドにして戻せばいいのかな?
  • とってぃ
  • 2018/06/14 (Thu) 11:55:45
Re: 文字枠
chibi-tom様
zukki-様
とってぃ様

みなさま本当にありがとうございます。
私もマクロを勉強せねば...

とってぃ様に作成いただいたマクロで
先程まで反映しなかった一部のファイルも
反映するようになりました!



  • あむ
  • 2018/06/14 (Thu) 13:22:51
Re: 文字枠
lt2019になったら動かなかったので
修正しました
一応報告です

*^C^Cselect;\ucs;w;isolateobjects;p;;zoom;e;$M=rectang;non;$(-,$(index,0,$(getvar,extmin)),1),$(-,$(index,1,$(getvar,extmin)),1);non;$(+,$(index,0,$(getvar,extmax)),1),$(+,$(index,1,$(getvar,extmax)),1);unisolateobjects;zoom;p;ucs;p^M
  • chibi-tom
  • 2019/04/04 (Thu) 10:01:18

返信フォーム






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