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

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

自動分割 長さ寸法線
はじめまして
autocad LT2018です。
長さ寸法線作図の件で お願いと相談させて頂きます。
実長 5000に 寸法を作図させる時に
両端部にはそれぞれ100の寸法線を作図して
中央の4800を 指定した分割数で等分させたいのですが・・・・
操作としては まず 5000の寸法線を作成しますが その時左右両端には 各100の寸法線が自動作図されて
その時点で 中を何等分するのか 指定して 例えば 5と指定すれば 4800÷5=960 で 当分された
長さ寸法線を 書かせたいと思うのですが・・・・・
ご確認 よろしくお願いいたします。
  • めめ
  • 2019/07/04 (Thu) 13:01:46
Re: 自動分割 長さ寸法線
たたき台マクロ
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),dimlinear;\$M=\$M=\setenv;分割数;\;p1;"""$(getvar,lastpoint)""";;p2;"""""""$(getvar,lastpoint)""""""";;to;1,,)$(nth,$(getenv,to),,line;non;$(getenv,p2);non;$(getenv,p1);;ucs;e;l;lengthen;dy;;;l;;;erase;l;;select;l;;setenv;p3;$M="""$(/,$(-,$(getvar,perimeter),200),$(getenv,分割数))""";;to;2,)$(nth,$(getenv,to),,,dimcontinue;non;100<0;non;$(+,100,$(getenv,p3))<0;;;dimspace;l;p;;$(*,$(getvar,DIMDLI),$(getvar,DIMSCALE));copy;l;;non;@;a;$(getenv,分割数);non;@$(getenv,p3)<0;dimcontinue;non;$(getvar,perimeter)<0;;;^Cucs;p)^M
マクロ実行したら寸法線を書いて分割数を入力するだけ。

*既知の問題点
寸法の基点の1点目と2点目の位置関係が水平・垂直の場合のみ正常に寸法が書かれます。
分割寸法の寸法値の上側にトータル寸法が書かれる仕様なので、寸法を出す方向によっては逆の表現になります。
  • Lon
  • 2019/07/04 (Thu) 14:29:51
Re: 自動分割 長さ寸法線
あっちに、似たような質問がありましたので、ついでに作りました。

>例えば 全長 1000の線に 指定した数で当分割した寸法線を作図したいのです。
>1000の線を指定して 4と指定すれば 250の寸法線が4つ作図できないでしょうか?

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),dimlinear;\$M=\$M=\setenv;分割数;\;p1;"""$(getvar,lastpoint)""";;p2;"""""""$(getvar,lastpoint)""""""";;to;1,,)$(nth,$(getenv,to),,line;non;$(getenv,p2);non;$(getenv,p1);;ucs;e;l;lengthen;dy;;;l;;;erase;l;;select;l;;setenv;p3;$M="""$(/,$(getvar,perimeter),$(getenv,分割数))""";;to;2,)$(nth,$(getenv,to),,,dimcontinue;non;$(getenv,p3)<0;;;erase;p;;copy;l;;non;@;a;$(getenv,分割数);non;@$(getenv,p3)<0;^Cucs;p)^M

*既知の問題点
寸法の基点の1点目と2点目の位置関係が水平・垂直の場合のみ正常に寸法が書かれます。
  • Lon
  • 2019/07/04 (Thu) 14:44:29
Re: 自動分割 長さ寸法線
早速の ご対応に 感謝致します。 そうです これが 望んでいたものです。
そして ご厚意に甘えて 等分割の寸法が 未定で 後書きする場合の時に
このままで よいので 当分割の寸法値(数値)が 未記入(寸法線のみ)とする事も 可能でしょうか?
どうぞよろしくお願いいたします。
  • めめ
  • 2019/07/04 (Thu) 21:35:14
Re: 自動分割 長さ寸法線
良い方法がパッと思い浮かびませんので、
何か案が浮かんだら対応したいと思います。
  • Lon
  • 2019/07/05 (Fri) 17:51:42
Re: 自動分割 長さ寸法線
Lon 様 どうぞよろしくお願い致します。
  • めめ
  • 2019/07/06 (Sat) 13:39:38
Re: 自動分割 長さ寸法線
>当分割の寸法値(数値)が 未記入(寸法線のみ)とする事
全長が決まっていたら分割の寸法が未定にはならないと思うので

両端部にはそれぞれ100はそのまま、全長と分割寸法が未定と判断しました
こんな感じであってますか?

全長と分割寸法の寸法値を全角スペースに変更してみました。
LT2019で確認

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),dimlinear;\$M=\$M=\_cmddia;0;dim1;new; ;l;;cmddia;$(getvar,cmddia);setenv;分割数;\;p1;"""$(getvar,lastpoint)""";;p2;"""""""$(getvar,lastpoint)""""""";;to;1,,)$(nth,$(getenv,to),,line;non;$(getenv,p2);non;$(getenv,p1);;ucs;e;l;lengthen;dy;;;l;;;erase;l;;select;l;;setenv;p3;$M="""$(/,$(-,$(getvar,perimeter),200),$(getenv,分割数))""";;to;2,)$(nth,$(getenv,to),,,dimcontinue;non;100<0;non;$(+,100,$(getenv,p3))<0;;;dimspace;l;p;;;_cmddia;0;dim1;new; ;l;;cmddia;$(getvar,cmddia);copy;l;;non;@;a;$(getenv,分割数);non;@$(getenv,p3)<0;dimcontinue;non;$(getvar,perimeter)<0;;;^Cucs;p)^M
  • chibi-tom
  • 2019/07/08 (Mon) 08:11:33
Re: 自動分割 長さ寸法線
chibi-tom さま
ありがとう ございます。 まさしく 希望した通りの動作です。
本当に 助かりました。ありがとうございました。
  • めめ
  • 2019/07/09 (Tue) 15:46:20
Re: 自動分割 長さ寸法線
このマクロの修正と問い合わせなんですが,
1.全長を省きたいのです.
2.分割数を長さ(400)指定で出来ますでしょうか?

長さ1000
両端100
残り800を
長さ400で割るので2分割となり
長さが1001になると
残りが801となるので3分割としたいのです
よろしくお願いします

  • fukuda
  • 2019/07/29 (Mon) 16:48:53
Re: 自動分割 長さ寸法線
>残りが801となるので3分割としたいのです
それは、801を三等分した寸法ですか?(267,267,267)
それとも400,400,1となるのですか?
  • Lon
  • 2019/07/29 (Mon) 17:44:54
Re: 自動分割 長さ寸法線
Lonさんありがとう御座います

ピッチ400以下で寸法を取っていきたいのです.
1001なら
100+267+267+267+100
という具合です.
267の分割寸法は寸法値を全角スペースとしたいのです.
  • fukuda
  • 2019/07/29 (Mon) 18:18:23
Re: 自動分割 長さ寸法線
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),dimlinear;\$M=\$M=\setenv;最大長さ;\;p1;"""$(getvar,lastpoint)""";;p2;"""""""$(getvar,lastpoint)""""""";;to;1,,,,)$(nth,$(getenv,to),,line;non;$(getenv,p2);non;$(getenv,p1);;ucs;e;l;lengthen;dy;;;l;;;erase;l;;select;l;;setenv;L;$M="""$(-,$(getvar,perimeter),200)""";;to;2,,,)$(nth,$(getenv,to),,,;N;$M=$(if,$(=,$(/,$(getenv,L),$(getenv,最大長さ)),$(fix,$(/,$(getenv,L),$(getenv,最大長さ)))),$(fix,$(/,$(getenv,L),$(getenv,最大長さ))),$(+,$(fix,$(/,$(getenv,L),$(getenv,最大長さ))),1));;to;3,,)$(nth,$(getenv,to),,,,;p3;$(/,$(-,$(getvar,perimeter),200),$(getenv,N));;to;4,)$(nth,$(getenv,to),,,,,dimcontinue;non;100<0;non;$(+,100,$(getenv,p3))<0;;;erase;p;;_cmddia;0;dim1;new; ;l;;cmddia;1;copy;l;;non;@;a;$(getenv,N);non;@$(getenv,p3)<0;dimcontinue;non;$(getvar,perimeter)<0;;;^Cucs;p)^M

こんな感じですかね?
LT2014の場合は「lengthen;dy;;;l;;;」の部分を変更してください。

①マクロ実行
②寸法線を普通に書く。
③最大長さ(400)を入力。
  • Lon
  • 2019/07/29 (Mon) 19:02:59
Re: 自動分割 長さ寸法線
Lonさん
ありがとう御座います.素晴らしいです.
こういう動作が出来るんですね,本当にありがとう御座います
ちょっと興奮しました.
  • fukuda
  • 2019/07/30 (Tue) 09:59:27
Re: 自動分割 長さ寸法線
お世話になります。
こちらの投稿に合わせ、伺いたく投稿させて頂きました。

使用ソフト:AUTOCAD 2016 LT

図を添付しましたので、一緒にご確認下さい。
図中の寸法は例です。

1:両端寸法 A・Bそれぞれ指定寸法入力。
2:中間寸法 C 指定分割数入力。

以上、ご教示頂けると幸いです。


  • シツモ
  • 2019/07/31 (Wed) 11:04:03
Re: 自動分割 長さ寸法線
http://totthi.bbs.fc2.com/?act=reply&tid=16475066#23631047
こっちのマクロとの合わせ技ですね。

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),dimlinear;\$M=\$M=\setenv;寸法始;\;寸法終;\;分割数;\;p1;"""$(getvar,lastpoint)""";;p2;"""""""$(getvar,lastpoint)""""""";;to;1,,)$(nth,$(getenv,to),,line;non;$(getenv,p2);non;$(getenv,p1);;ucs;e;l;lengthen;dy;;;l;;;erase;l;;select;l;;setenv;p3;$M="""$(/,$(-,$(getvar,perimeter),$(getenv,寸法始),$(getenv,寸法終)),$(getenv,分割数))""";;to;2,)$(nth,$(getenv,to),,,dimcontinue;non;$(getenv,寸法終)<0;non;$(+,$(getenv,寸法終),$(getenv,p3))<0;;;erase;p;;copy;l;;non;@;a;$(getenv,分割数);non;@$(getenv,p3)<0;dimcontinue;non;$(getvar,perimeter)<0;;;^Cucs;p)^M

2016の場合は「lengthen;dy;;;l;;;」のところはそのままでも良いのかな?
当方2016を持ってないので、判りません。
  • Lon
  • 2019/07/31 (Wed) 15:10:36
Re: 自動分割 長さ寸法線
Lonさま
早速のご対応ありがとうございます。
当方の2016LT版でも、希望通り誤作動なく動きました。

ご多忙な中、ご回答頂き助かりました。
ありがとうございました。
  • シツモ
  • 2019/07/31 (Wed) 15:18:52

返信フォーム






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