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

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

平行寸法のクイック化
こんばんは。

質問お願いします。

autocad LT2018を使用しています。

クイック寸法は水平垂直での入力ですが、平行寸法も同じような作業ができないでしょうか?

角度のある線の連続線に寸法を簡単に入れたいのですが。

お手数ですが、宜しくお願い致します。



  • eko
  • 2020/10/05 (Mon) 23:53:13
Re: 平行寸法のクイック化
クイック寸法と同じようには難しいのではないでしょうか

自分が思いつく方法としてはこんな感じで

*^C^Coffset;;オブジェクト選択(R-Clickで終了)^X\$M=$(if,$(getvar,CMDACTIVE),;select;non;@;non;@;;undo;be;xplode;non;@;;$M="""$(if,$(getvar,CMDACTIVE),e;)"""lengthen;non;@;dy;;undo;e;u;ucs;ob;non;@;dimlinear;non;0<0;non;$M="""""""$(getvar,perimeter)"""""""<E;\ucs;p,^Cid;)^M

1.マクロ起動
2.オブジェクト選択(R-Clickで終了)
3.寸法線の位置を指定
4.2以降繰り返し

※、平行寸法ではなく長さ寸法記入です
※、ESCキーで終了してもOKです
  • chibi-tom
  • 2020/10/06 (Tue) 08:54:54
Re: 平行寸法のクイック化
ありがとうございます。

思い通りに問題なく動作しました。

助かります!









  • eko
  • 2020/10/06 (Tue) 10:27:00
Re: 平行寸法のクイック化
自己満足です

寸法線の位置間隔を統一させてみました

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),;sw;0;;to;1,offset;;オブジェクト選択(R-Clickで終了)^X\$M="""$(if,$(getvar,CMDACTIVE),;setenv;to;1;select;non;@;non;@;;setenv;to;2,^Csetenv;to;0)""",,,,)$(nth,$(getenv,to),,,undo;be;xplode;non;@;;$M="""$(if,$(getvar,CMDACTIVE),e;)"""lengthen;non;@;dy;;undo;e;u;setenv;to;3,,,)$(nth,$(getenv,to),,,,ucs;ob;non;@;dimlinear;non;0<0;non;$(getvar,perimeter)<E;$(if,$(getenv,sw),non;@;erase;l;;setenv;to;5,\setenv;to;4),,)$(nth,$(getenv,to),,,,,;p1;$(index,1,$(getvar,LASTPOINT));ucs;p;setenv;sw;1;;to;1,)$(nth,$(getenv,to),,,,,,dimlinear;non;0<0;non;$(getvar,perimeter)<E;$(getenv,p1)<N;ucs;p;setenv;to;1)^M

1.マクロ起動
2.一つ目のオブジェクト選択(R-Clickで終了)
3.寸法線の位置を指定
4.次のオブジェクト選択(R-Clickで終了)
5.4を繰り返し

※、オブジェクトの選択は中点より1点目に近い部分を選択してください
※、2つ目以降の寸法線の位置は自動で一つ目の位置と同じ間隔になります
※、平行寸法ではなく長さ寸法記入です
  • chibi-tom
  • 2020/10/08 (Thu) 15:24:19
Re: 平行寸法のクイック化
こんにちは

>今度はESCキーで終了してしまうとsetenv;toの値が『1』のままになってしまいます。

この点について補足させてください。

1、頭に「*」の付いた連続マクロでは、ESCキーで終了する場合が多い。

2、toの値が『1』のまま、環境変数「to」を使用した他のマクロを実行すると、マクロは
通常のtoが0のパートより実行されず、toが1のパートより開始され、ユーザー入力の「\」
があるまで止まらないため、基本的にはマクロ作者の想定通りの動作とならない。

この場合、マクロの記述内容によっては、次が発生する。
・erase、explodeの記述があれば、何かを削除したり分解する。
・何かのオブジェクトが描かれる。
・システム変数を変える記述があると、システム変数は変えられる。
・toが1のパート以降でユーザー入力の「\」がない場合、マクロが止まらなくなる場合
がある。

3、本HPでは、環境変数「to」を使用したマクロが大量に公開されているが、【マクロ
使用前の注意事項】で環境変数「to」を0以外で実行した場合の記事はない。

以上、事実のみを書いたつもりです。
  • ウーラ
  • 2020/10/11 (Sun) 08:12:09
Re: 平行寸法のクイック化
ありがとうございます!

間隔統一により作業がより楽になります。

試してみます!
  • eko
  • 2020/10/13 (Tue) 20:50:49
Re: 平行寸法のクイック化
ekoさんが気を使ってくれたかもですが

ウーラさんが言いたいのは絶対安全でないマクロをアップするのはやめた方が良い
と言うことですか?
それともマクロを使う前にはsetenv;to;0;を必ず実行するようにしましょうと
いうことですか?
  • zukki-
  • 2020/10/14 (Wed) 08:53:55
Re: 平行寸法のクイック化
ここの掲示板は初めてでしたので、いきなり主観を交えてを書くと上手く伝わらないと
思い、あのように書きました。

所で、質問者のlt2108で確認できませんのでダメかも知れませんが、
chibi-tomさんの後の投稿マクロの最初の部分で、次のようにoffseの前の「to;1」
を後ろに置いたら、右クリック・Escのどちらの終了でもtoは0で終了できるように
思います。
(chibi-tomさんの最初のマクロは、「ESCキーで終了してもOKです」ですので、
ESC終了を否定されていることでもなさそうなので。)

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),;sw;0;;to;1,offset;;オブジェクト選択(R-Clickで終了)^X\$M="""$(if,$(getvar,CMDACTIVE),;setenv;to;1;select;non;@;non;@;;setenv;to;2,^Csetenv;to;0)""",,,,)・・・・・以下同じ
  • ウーラ
  • 2020/10/14 (Wed) 23:23:21
Re: 平行寸法のクイック化
ウーラさんありがとうございます

>後ろに置いたら、右クリック・Escのどちらの終了でもtoは0で終了できる
単純なことに気づいていなかったようで今後に生かしていきたいと思います
  • chibi-tom
  • 2020/10/15 (Thu) 08:27:09
Re: 平行寸法のクイック化
>*^C^C$M=setenv;to;0;$(nth,$(getenv,to),;sw;0;;to;1,offset;;オブジェクト選択(R-Clickで終了)^X\$M="""$(if,$(getvar,CMDACTIVE),;setenv;to;1;select;non;@;non;@;;setenv;to;2,^Csetenv;to;0)""",,,,)

とするくらいなら、「setenv;to;1;」を入れる意味は無いですね。

>*^C^C$M=setenv;to;0;$(nth,$(getenv,to),;sw;0;;to;1,offset;;オブジェクト選択(R-Clickで終了)^X\$M="""$(if,$(getvar,CMDACTIVE),;select;non;@;non;@;;setenv;to;2,^Csetenv;to;0)""",,,,)

これで良いでしょ。

頭に「;to;1;」を入れることで、
右クリックで終了した時とEscした時の違いを わざと 作っていたのでは?
〇右クリックで終了した時は、次回実行時は通常起動。
〇Escしたときは、次回起動時は、寸法線の間隔を前回と同じにする。(このマクロのテーマは間隔統一なので、これが出来る方が絶対に便利)

とはいえ、toが1で終了するのはいただけないので、このマクロ専用の変数を使う方が安全ですね。
このマクロ内で使われている環境変数to,sw,p1を他のマクロと被りそうにない奇抜な変数名にすれば、
安全性は上がり、機能の多様性が有るので良いと思いますが。

いかがでしょう?
  • Lon
  • 2020/10/15 (Thu) 09:30:46
Re: 平行寸法のクイック化
>右クリックで終了した時とEscした時の違い
ちょっと違います
「;to;1;」をなくしてしまうと
選択ミスしたときに「;to;0;」になってしまい「;sw;0;」にもどってしまうためあったほうが都合が良いです

>このマクロのテーマは間隔統一なので、これが出来る方が絶対に便利
この場合も確かにありますね、ですが今回は考えに入っていませんでした(泣)

>このマクロ内で使われている環境変数to,sw,p1を他のマクロと被りそうにない奇抜な変数名にすれば
これも検討の余地はあると思いますね
  • chibi-tom
  • 2020/10/15 (Thu) 10:36:02
Re: 平行寸法のクイック化
>「;sw;0;」にもどってしまう
そうですね。
ミスピック対策も兼ねてますね。

って事で、
安易に安全性を重視して改造すると、本来持っていた便利さを失う事もあります。
便利性と安全性は、両立できない場合もあります。

特に、文字数や機能に制限のあるAutoCADのマクロでは難しいですよね。

私の場合、ここの掲示板への書き込みは、自分の好き勝手にやらせてもらっています。
それを見知らぬ第三者が使って、問題が起きたとしても知ったこっちゃないです。

苦情がくれば、それなりに対応するときも有りますが、本来その責任も無いはずです。

なので、ここの掲示板やホームページに書いてある内容を参考にする人たちは、
自己責任でやるべきなんです。

マクロを書き込むたびに、
可能性のある不具合を全て書き出して注意喚起するなんてしてたら、
気軽な投稿ができなくなります。

私は、便利性を重視したマクロの方が好きなので、
今後も、不完全で危険なマクロをドンドン書き込む所存です。

最後に。
ekoさんの質問とは全く関係のない主張をしてしまい申し訳ありませんでした。
<m(__)m>
  • Lon
  • 2020/10/15 (Thu) 11:34:47

返信フォーム






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