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

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

マルチテキスト
いつもお世話になっております。

マルチテキストの入力に際し、以下の構文を組んで入力をしています。
これを、3点入力でなく2点入力(隅2点)に減らし、高さの指定をその2点のY座標から入力させたいと思っているのですが可能でしょうか?

^C^C_CLAYER;AM_6;mtext;\C;N;H;\J;MC;\

当方はMechanical2013・LT2016です。
よろしくお願い致します。
  • sat
  • 2015/12/01 (Tue) 11:43:50
Re: マルチテキスト
作ってみました。
お試しください。

♪マルチテキスト2点高さ記入
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),id;\setenv;p1;$M="""$(getvar,lastpoint)""";;to;1,rectang;non;@;\setenv;p2;$M="""$(getvar,lastpoint)""";;to;2;erase;l;,,)$(nth,$(getenv,to),,,;t0;$(if,$(>,$(index,1,$(getenv,p1)),$(index,1,$(getenv,p2))),$(-,$(index,1,$(getenv,p1)),$(index,1,$(getenv,p2))),$(-,$(index,1,$(getenv,p2)),$(index,1,$(getenv,p1))));;to;3,)$(nth,$(getenv,to),,,,-layer;n;AM_6;s;AM_6;;mtext;non;$(getenv,p1);C;N;H;$(getenv,t0);J;MC;non;$(getenv,p2)^h^h)^M

LT2013にて動作確認
  • とってぃ
  • 2015/12/01 (Tue) 13:07:33
Re: マルチテキスト
ありがとうございます。

申し遅れておりましたが、枠いっぱいの文字の高さで書きたいわけではなく、3.2×図面尺度の高さで書きたいと考えております。
textsizeの割り込みでも最後のコーナー指定で高さが決まっているようで・・・



^C^C_CLAYER;AM_6;mtext;\C;N;H;3.2;J;MC;\

このような見た目でかつ、3.2×図面尺度の文字高さで、mtextで指定した点にオブジェクトの端点を配置したいのです。


どうかご教授お願い致します。
  • sat
  • 2015/12/04 (Fri) 09:31:11
Re: マルチテキスト
あの・・・
>高さの指定をその2点のY座標から入力させたいと
最初の要望と全然違うんですが・・・参考マクロも変わってますし・・・

こちらとしましては
なるべくご要望に近づける様にマクロを考えていますので
ご要望自体の文面が違えば、違うものが出来上がります。

以後、ご注意願います。


♪マルチテキスト文字高さ3.2
*^C^Cid;\-layer;n;AM_6;s;AM_6;;mtext;non;@;C;N;H;$M=$(*,$(getvar,dimscale),3.2);J;MC;non;@^M

LT2013にて動作確認

  • とってぃ
  • 2015/12/04 (Fri) 11:42:02
Re: マルチテキスト
いつもありがとうございます。

意図が伝えきれない文で投稿をしてしまい、申し訳ありません。
依頼をした後も、自らでマクロを弄っていた為、例示が異なったものを挙げてしまいました。
以後気をつけます。

上記のマクロが、LT16とMechanical13にてうまく動作しませんでした。


画像添付という手段に気づいておりませんでしたので、添付致します。
改めてですが、
左上をピック→右下をピック→3.2で文字記入→終了後、マルチテキストの幅(青色のツメ)が添付画像のようになる
というものを希望しております。

ご確認お願い致します。
  • sat
  • 2015/12/07 (Mon) 10:19:34
Re: マルチテキスト
おはようございます。

意味は分かりました。
が、どの様にその状態を作りましたか?
コマンドやシステム変数で、その状態を作る内容の物が見つからないです(^-^;

マクロはコマンドを羅列しただけの簡易的なプログラムですので
マルチテキストの幅(?)を指定するようなコマンドやシステム変数が無いと、出来ません。
  • とってぃ
  • 2015/12/08 (Tue) 08:10:17
Re: マルチテキスト
御返事ありがとうございます。

マルチテキストの入力後、ツメを選択して(コマンドラインに、ストレッチモードと表示されます。)角を選択して作っております。
  • sat
  • 2015/12/08 (Tue) 11:04:10
Re: マルチテキスト
マルチテキストの枠サイズを変更するような
コマンドやシステム変数が見当たりませんので
マクロでは無理です。
  • とってぃ
  • 2015/12/08 (Tue) 13:05:53
Re: マルチテキスト
その様な事がしたい理由は何でしょう?

もし、マスクを掛けたいのが理由なら、この様な処理ではダメでしょうか?

*^C^C_$M=setenv;to;0;$(nth,$(getenv,to),-MTEXT;\$M=J;MC;H;$(*,$(getvar,dimscale),3.2);\;setenv;P1;"""$(getvar,lastpoint);""";to;1,,,,)$(nth,$(getenv,to),,;P3;$(/,$(+,$(index,0,$(getenv,P1)),$(index,0,$(getvar,lastpoint))),2)","$(/,$(+,$(index,1,$(getenv,P1)),$(index,1,$(getvar,lastpoint))),2);;to;2,,,)$(nth,$(getenv,to),,,;w1;$(-,$(index,0,$(getenv,P1)),$(index,0,$(getvar,lastpoint)));;h1;$(-,$(index,1,$(getenv,P1)),$(index,1,$(getvar,lastpoint)));;to;3,,)$(nth,$(getenv,to),,,,$(if,$(<,$(getenv,w1),0),;w1;$(*,-1,$(getenv,w1));)$(if,$(<,$(getenv,h1),0),;h1;$(*,-1,$(getenv,h1)););to;4,)$(nth,$(getenv,to),,,,,-MTEXT;non;$(getenv,P3);J;MC;H;$(*,$(getvar,dimscale),3.2);c;d;$(getenv,w1);;$(getenv,h1))^M

あと一歩。
マスクを掛ける部分をマクロ化できなかった。
_| ̄|○
  • Lon
  • 2015/12/08 (Tue) 15:27:38
Re: マルチテキスト
お世話になっております。

マスクのためではなく、図面整備の際に統一されていると楽だと考えた為でした。

そうですか・・・
奮戦して頂いた上で申し訳無いですが、今回は諦めようと思っております。
  • sat
  • 2015/12/11 (Fri) 11:29:30

返信フォーム






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