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

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

【54】隠れ線処理について
円の隠れ線処理を行いたいのですが思い通りにいきません。
選択部分は隠れ線になりますが、元の円は消えません。
(一部の隠れ線と、元の円丸々が重なっている。)
  • たろ
  • 2018/11/21 (Wed) 10:14:21
Re: 【54】隠れ線処理について
verの記載を忘れていました。
2015です。
  • たろ
  • 2018/11/21 (Wed) 16:26:24
Re: 【54】隠れ線処理について
2013と2018では動作しました。
たぶん選択でミスしてるのかと思われますので

【新規投降時のお願い】の3に記載しておりますが
マクロ実行後、キーボードF2を押し、表示されたテキストウィンドウ内の
マクロ開始~終了までのマクロの流れをコピーし、貼り付けて下さい。
  • とってぃ
  • 2018/11/22 (Thu) 11:50:57
Re: 【54】隠れ線処理について
返信ありがとうございます。
下記の通りです。

コマンド: erase

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

オブジェクトを選択:

コマンド: pasteclip
重複したブロック定義 _Open は無視されます。
挿入点を指定: non
356.76816643,731.24875863

コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <0>: 0


コマンド: copy

オブジェクトを選択: *削除*
  • たろ
  • 2018/11/22 (Thu) 18:27:18
Re: 【54】隠れ線処理について
ちょっと情報量が少なすぎます。
上記の内容は、マクロ開始直後だけなので・・

「マクロ実行後」とは
ツールボタン押し、通常の隠れ線処理動作が終わったあと
キーボードF2を押し、表示されたテキストウィンドウ内の
マクロ開始~終了までのマクロの流れをコピーし、貼り付けて下さい。

参考例⇒ http://totthi.bbs.fc2.com/?act=reply&tid=16390703#23410721
  • とってぃ
  • 2018/11/23 (Fri) 08:15:59
Re: 【54】隠れ線処理について
申し訳ございません。
テキストウインドウの上部を見逃しておりました。

以下、前文です。
コマンド:
コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <0>: 0


コマンド: copy

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

オブジェクトを選択: non
@
認識された数: 1 (重複している数: 1), 総数 1

オブジェクトを選択:

基点を指定 または [移動距離(D)/複数(M)] <移動距離>: non
@

2 点目を指定 または [配列(A)] <1 点目を基点に使用>: non
@

コマンド: erase

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

オブジェクトを選択:

コマンド: setenv
変数名を入力: to
値 <0>: 1


コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <1>: 0


コマンド: explode

オブジェクトを選択: non
@

オブジェクトは分解できません。

何も見つかりません。
オブジェクトを選択:

コマンド: setenv
変数名を入力: to
値 <0>: 2


コマンド:
SETENV
変数名を入力: p0
値 <422.47738861,762.40598342>: 426.41937977,771.49135133


コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <2>: 0


コマンド: area

コーナーの 1 点目を指定 または [オブジェクト(O)/面積を加算(A)/面積を減算(S)] <オブジェクト(O)>: o

オブジェクトを選択: non
@


領域 = 21402.4033, 円周 = 518.6044
コマンド: setenv
変数名を入力: to
値 <0>: 4


コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <4>: 0


コマンド: move

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

オブジェクトを選択:

基点を指定 または [移動距離(D)] <移動距離>: int
どこの
目的点を指定 または <基点を移動距離として使用>: non
@

コマンド: setenv
変数名を入力: p1
値 <439.30662146,813.78721366>: 439.30662146,813.78721366


コマンド: move

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

オブジェクトを選択:

基点を指定 または [移動距離(D)] <移動距離>: int
どこの
目的点を指定 または <基点を移動距離として使用>: non
@

コマンド: setenv
変数名を入力: to
値 <0>: 5


コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <5>: 0


コマンド:
SETENV
変数名を入力: p2
値 <356.76816643,731.24875863>: 356.76816643,731.24875863


コマンド: arc

円弧の始点を指定 または [中心(C)]: non
@

円弧の 2 点目を指定 または [中心(C)/終点(E)]: nea
どこに 426.41937977,771.49135133

円弧の終点を指定: non
439.30662146,813.78721366

コマンド: chprop

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

オブジェクトを選択:

変更するプロパティを入力 [色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)/透過性(TR)/マテリアル(M)/異尺度対応(A)]: lt

新しい線種名を入力 <ByLayer>: DASHED

変更するプロパティを入力 [色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)/透過性(TR)/マテリアル(M)/異尺度対応(A)]: S

新しい 線種尺度 を指定 <1.0000>: 0.5

変更するプロパティを入力 [色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)/透過性(TR)/マテリアル(M)/異尺度対応(A)]:

コマンド: setenv
変数名を入力: to
値 <0>: 6


コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <6>: 0


コマンド: copybase

基点を指定: non
356.76816643,731.24875863

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

オブジェクトを選択:

コマンド: erase

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

オブジェクトを選択:

コマンド: line

1 点目を指定: non
439.30662146,813.78721366

次の点を指定 または [元に戻す(U)]: non
356.76816643,731.24875863

次の点を指定 または [元に戻す(U)]:

コマンド: trim

現在の設定: 投影モード=UCS、エッジモード=非延長
切り取りエッジを選択 ...
オブジェクトを選択 または <すべて選択>: L
認識された数: 1

オブジェクトを選択:

トリムするオブジェクトを選択 または Shift を押して延長するオブジェクトを選択 または
[フェンス(F)/交差(C)/投影モード(P)/エッジ(E)/削除(R)/元に戻す(U)]: non
426.41937977,771.49135133


円には 2 つの交点が必要です。

トリムするオブジェクトを選択 または Shift を押して延長するオブジェクトを選択 または
[フェンス(F)/交差(C)/投影モード(P)/エッジ(E)/削除(R)/元に戻す(U)]:

コマンド: erase

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

オブジェクトを選択:

コマンド: pasteclip
重複したブロック定義 _Open は無視されます。
挿入点を指定: non
356.76816643,731.24875863

コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <0>: 0


コマンド: copy

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

コマンド:
コマンド: _ai_selall オブジェクトを選択中...終了。

コマンド: *キャンセル*
  • たろ
  • 2018/11/26 (Mon) 13:00:53
Re: 【54】隠れ線処理について
大体原因分かりました。
たぶん円に対するトリムでの選択時で2015の仕様が変わっているのかも。

が、ちょっと忙しいので
もうしばらくお待ちください。
  • とってぃ
  • 2018/11/26 (Mon) 16:09:27
Re: 【54】隠れ線処理について
遅くなって申し訳ないです。

ちょっとだけ修正したのでお試しください。


♪隠れ線処理 2015 試作1
*^C^C$m=setenv;to;0;$(nth,$(getenv,to),copy;^X\non;@;;non;@;non;@;erase;p;;setenv;to;1,explode;non;@;$M="""$(if,$(getvar,cmdactive),;setenv;to;2,undo;;setenv;to;3);;p0;$(getvar,lastpoint)^H^H""",,,,,)$(nth,$(getenv,to),,,area;o;non;@;$m="""$(if,$(getvar,cmdactive),;setenv;to;3,setenv;to;4)""",break;non;@;f;int;\non;@;;non;$(getenv,p0);f;int;\non;@;chprop;non;$(getenv,p0);;lt;HIDDEN;S;$(*,$(getvar,dimscale),0.5);,,,)$(nth,$(getenv,to),,,,,move;non;@;;int;\non;@;setenv;p1;$M="""$(getvar,lastpoint)^H^H""";move;p;;int;\non;@;setenv;to;5,,)$(nth,$(getenv,to),,,,,,;p2;$(getvar,lastpoint)^H^H;arc;non;@;nea;$(getenv,p0);non;$(getenv,p1);chprop;L;;lt;HIDDEN;S;$(*,$(getvar,dimscale),0.5);;setenv;to;6,)$(nth,$(getenv,to),,,,,,,copybase;non;$(getenv,p2);L;;erase;L;;line;non;$(getenv,p1);non;$(getenv,p2);;trim;L;;nea;$(getenv,p0);;erase;p;;pasteclip;non;$(getenv,p2))^M
  • とってぃ
  • 2018/12/04 (Tue) 09:13:38
Re: 【54】隠れ線処理について
お忙しい中対応いただきありがとうございました。
とても良い感じです。

ただ、下記の二点が気になりました。
1.隠れ線の尺度が強制的に「25」になる。
2.2回目から同じ動作をする際は、最終的に破線のコピーアンドペースト状態になる。(こちらはESCでキャンセルすれば良いのでそこまできにしませんが。)


AutoCAD 2007 形式のファイルを開いています。
モデルを再作図中。
*キャンセル*

コマンド:

Autodesk DWG です。このファイルはオートデスクの開発した、またはライセンスを受けたアプリケーションによって保存された、TrustedDWG ファイルです。

コマンド:
コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <0>: 0


コマンド: copy

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

オブジェクトを選択: non
@
認識された数: 1 (重複している数: 1), 総数 1

オブジェクトを選択:

基点を指定 または [移動距離(D)/複数(M)] <移動距離>: non
@

2 点目を指定 または [配列(A)] <1 点目を基点に使用>: non
@

コマンド: erase

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

オブジェクトを選択:

コマンド: setenv
変数名を入力: to
値 <0>: 1


コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <1>: 0


コマンド: explode

オブジェクトを選択: non
@

オブジェクトは分解できません。

何も見つかりません。
オブジェクトを選択:

コマンド: setenv
変数名を入力: to
値 <0>: 2


コマンド:
SETENV
変数名を入力: p0
値 <-19154.85544143,9881.24200987>: -19018.82285289,9536.98585529


コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <2>: 0


コマンド: area

コーナーの 1 点目を指定 または [オブジェクト(O)/面積を加算(A)/面積を減算(S)] <オブジェクト(O)>: o

オブジェクトを選択: non
@


領域 = 2138246.4998, 円周 = 5183.6279
コマンド: setenv
変数名を入力: to
値 <0>: 4


コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <4>: 0


コマンド: move

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

オブジェクトを選択:

基点を指定 または [移動距離(D)] <移動距離>: int
どこの
目的点を指定 または <基点を移動距離として使用>: non
@

コマンド: setenv
変数名を入力: p1
値 <-19095.26279726,10133.9946997>: -18758.80129884,10133.9946997


コマンド: move

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

オブジェクトを選択:

基点を指定 または [移動距離(D)] <移動距離>: int
どこの
目的点を指定 または <基点を移動距離として使用>: non
@

コマンド: setenv
変数名を入力: to
値 <0>: 5


コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <5>: 0


コマンド:
SETENV
変数名を入力: p2
値 <-19583.80129884,9645.45619813>: -19583.80129884,9308.9946997


コマンド: arc

円弧の始点を指定 または [中心(C)]: non
@

円弧の 2 点目を指定 または [中心(C)/終点(E)]: nea
どこに -19018.82285289,9536.98585529

円弧の終点を指定: non
-18758.80129884,10133.9946997

コマンド: chprop

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

オブジェクトを選択:

変更するプロパティを入力 [色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)/透過性(TR)/マテリアル(M)/異尺度対応(A)]: lt

新しい線種名を入力 <ByLayer>: DASHED

変更するプロパティを入力 [色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)/透過性(TR)/マテリアル(M)/異尺度対応(A)]: S

新しい 線種尺度 を指定 <1.0000>: 25

変更するプロパティを入力 [色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)/透過性(TR)/マテリアル(M)/異尺度対応(A)]:

コマンド: setenv
変数名を入力: to
値 <0>: 6


コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <6>: 0


コマンド: copybase

基点を指定: non
-19583.80129884,9308.9946997

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

オブジェクトを選択:

コマンド: erase

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

オブジェクトを選択:

コマンド: line

1 点目を指定: non
-18758.80129884,10133.9946997

次の点を指定 または [元に戻す(U)]: non
-19583.80129884,9308.9946997

次の点を指定 または [元に戻す(U)]:

コマンド: trim

現在の設定: 投影モード=UCS、エッジモード=非延長
切り取りエッジを選択 ...
オブジェクトを選択 または <すべて選択>: L
認識された数: 1

オブジェクトを選択:

トリムするオブジェクトを選択 または Shift を押して延長するオブジェクトを選択 または
[フェンス(F)/交差(C)/投影モード(P)/エッジ(E)/削除(R)/元に戻す(U)]: nea
どこに -19018.82285289,9536.98585529


トリムするオブジェクトを選択 または Shift を押して延長するオブジェクトを選択 または
[フェンス(F)/交差(C)/投影モード(P)/エッジ(E)/削除(R)/元に戻す(U)]:

コマンド: erase

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

オブジェクトを選択:

コマンド: pasteclip
重複したブロック定義 _Open は無視されます。
挿入点を指定: non
-19583.80129884,9308.9946997

コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <0>: 0


コマンド: copy

オブジェクトを選択: *削除*
*キャンセル*
  • たろ
  • 2018/12/04 (Tue) 10:08:13
Re: 【54】隠れ線処理について
忙しくてなかなか返信できない状態で申し訳ないです。


>とても良い感じです。
これは問題無く動作したと思って良いのでしょうか?


>ただ、下記の二点が気になりました。
>1.隠れ線の尺度が強制的に「25」になる。
>2.2回目から同じ動作をする際は、最終的に破線のコピーアンドペースト状態になる。(こちらはESCでキャンセルすれば良いのでそこまできにしませんが。)

1に関しましては、数値を現在の尺度で良いのであれば
マクロの中に2か所ある

chprop;L;;lt;HIDDEN;S;$(*,$(getvar,dimscale),0.5);;
    ↓
chprop;L;;lt;HIDDEN;;

に修正願います。


2の状態がいまいち分からないです。
もう少し詳しく説明願います。
  • とってぃ
  • 2018/12/10 (Mon) 13:13:17
Re: 【54】隠れ線処理について
申し訳ありません。
最初は問題なく処理できていたはずなのですが、再度前のような状態(選択部分は隠れ線になるが元の円は消えず、隠れ線と元の円が重なる)状態になってしまいました。

お手数ですが、再度対応いただいてもよろしいでしょうか。

AutoCAD 2007 形式のファイルを開いています。
モデルを再作図中。
*キャンセル*

コマンド:

Autodesk DWG です。このファイルはオートデスクの開発した、またはライセンスを受けたアプリケーションによって保存された、TrustedDWG ファイルです。

コマンド:
コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <0>: 0


コマンド: copy

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

オブジェクトを選択: non
@
認識された数: 1 (重複している数: 1), 総数 1

オブジェクトを選択:

基点を指定 または [移動距離(D)/複数(M)] <移動距離>: non
@

2 点目を指定 または [配列(A)] <1 点目を基点に使用>: non
@

コマンド: erase

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

オブジェクトを選択:

コマンド: setenv
変数名を入力: to
値 <0>: 1


コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <1>: 0


コマンド: explode

オブジェクトを選択: non
@

オブジェクトは分解できません。

何も見つかりません。
オブジェクトを選択:

コマンド: setenv
変数名を入力: to
値 <0>: 2


コマンド:
SETENV
変数名を入力: p0
値 <432.14210063,781.46798732>: 416.85004379,755.40815391


コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <2>: 0


コマンド: area

コーナーの 1 点目を指定 または [オブジェクト(O)/面積を加算(A)/面積を減算(S)] <オブジェクト(O)>: o

オブジェクトを選択: non
@


領域 = 21402.4033, 円周 = 518.6044
コマンド: setenv
変数名を入力: to
値 <0>: 4


コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <4>: 0


コマンド: move

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

オブジェクトを選択:

基点を指定 または [移動距離(D)] <移動距離>: int
どこの
目的点を指定 または <基点を移動距離として使用>: non
@

コマンド: setenv
変数名を入力: p1
値 <439.30662146,813.78721366>: 439.30662146,813.78721366


コマンド: move

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

オブジェクトを選択:

基点を指定 または [移動距離(D)] <移動距離>: int
どこの
目的点を指定 または <基点を移動距離として使用>: non
@

コマンド: setenv
変数名を入力: to
値 <0>: 5


コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <5>: 0


コマンド:
SETENV
変数名を入力: p2
値 <356.76816643,731.24875863>: 356.76816643,731.24875863


コマンド: arc

円弧の始点を指定 または [中心(C)]: non
@

円弧の 2 点目を指定 または [中心(C)/終点(E)]: nea
どこに 416.85004379,755.40815391

円弧の終点を指定: non
439.30662146,813.78721366

コマンド: chprop

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

オブジェクトを選択:

変更するプロパティを入力 [色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)/透過性(TR)/マテリアル(M)/異尺度対応(A)]: lt

新しい線種名を入力 <ByLayer>: HIDDEN

変更するプロパティを入力 [色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)/透過性(TR)/マテリアル(M)/異尺度対応(A)]: S

新しい 線種尺度 を指定 <1.0000>: 0.5

変更するプロパティを入力 [色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)/透過性(TR)/マテリアル(M)/異尺度対応(A)]:

コマンド: setenv
変数名を入力: to
値 <0>: 6


コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <6>: 0


コマンド: copybase

基点を指定: non
356.76816643,731.24875863

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

オブジェクトを選択:

コマンド: erase

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

オブジェクトを選択:

コマンド: line

1 点目を指定: non
439.30662146,813.78721366

次の点を指定 または [元に戻す(U)]: non
356.76816643,731.24875863

次の点を指定 または [元に戻す(U)]:

コマンド: trim

現在の設定: 投影モード=UCS、エッジモード=非延長
切り取りエッジを選択 ...
オブジェクトを選択 または <すべて選択>: L
認識された数: 1

オブジェクトを選択:

トリムするオブジェクトを選択 または Shift を押して延長するオブジェクトを選択 または
[フェンス(F)/交差(C)/投影モード(P)/エッジ(E)/削除(R)/元に戻す(U)]: nea
どこに 416.85004379,755.40815391


円には 2 つの交点が必要です。

トリムするオブジェクトを選択 または Shift を押して延長するオブジェクトを選択 または
[フェンス(F)/交差(C)/投影モード(P)/エッジ(E)/削除(R)/元に戻す(U)]:

コマンド: erase

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

オブジェクトを選択:

コマンド: pasteclip
重複したブロック定義 _Open は無視されます。
挿入点を指定: non
356.76816643,731.24875863

コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <0>: 0


コマンド: copy

オブジェクトを選択: *削除*
  • たろ
  • 2018/12/10 (Mon) 14:49:08
Re: 【54】隠れ線処理について
横から失礼します

LT2017で試したところ

最初にオブジェクトの破線にする部分を選択で交点の近くを選択して
交点の選択を反時計回りに指定すると
たろ様のおっしゃるよう円と円弧が重なった状態になりました

最初にオブジェクトの破線にする部分の真ん中あたりを選択すればどちらから交点を選択しても
問題なく動作しました。

解決策ではないですが、ヒントになればと思います。
  • chibi-tom
  • 2018/12/10 (Mon) 19:07:15
Re: 【54】隠れ線処理について
時計回り、反時計回りは関係ありませんでした

最初にオブジェクトの破線にする部分を選択で
交点の近くを選択してしまうと、円と円弧が重なった状態になりました。
  • chibi-tom
  • 2018/12/10 (Mon) 19:28:02
Re: 【54】隠れ線処理について
chibi-tom 様

ヒントをありがとうございます。
自分の場合は、交点の近くでも交点と離れた部分(交点同士の真ん中)でも円と円弧が重なってしまいました。

2015なので、それ独自の問題なのかもしれませんね・・・
  • たろ
  • 2018/12/12 (Wed) 14:02:30
Re: 【54】隠れ線処理について
自分も考えてみました

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),offset;;nea;\;select;non;@;non;@;;setenv;to;1,setenv;p1;$M=$(getvar,lastpoint)^H^H;;to;2,arc;\'setenv;p2;$M="""$(getvar,lastpoint)"""^H^H;non;$(getenv,p1);\erase;l;;setenv;to;3,,)$(nth,$(getenv,to),,,,;p3;$M=$(getvar,lastpoint)^H^H;;to;4,line;non;$(getenv,p2);non;$(getenv,p3);;zoom;o;non;$(getenv,p1);;regen;trim;l;;non;$(getenv,p1);;oops;erase;l;;chprop;l;;lt;HIDDEN;;zoom;p;^Csetenv;to;0)^M

1.破線にする部分を選択
2.円弧の1点目指定
3.円弧の2点目指定で終了

連続で指定したい場合は最後の
『^Csetenv;to;0』部分の^Cを削除して『setenv;to;0』だけにして下さい。

  • chibi-tom
  • 2018/12/12 (Wed) 17:27:51
Re: 【54】隠れ線処理について
chibi-tom さん
マクロ作成ありがとうございます。

試してみたのですが、上手くいきませんでした(同じように円と円弧が重なる)。
折角のご好意を無にしてしまい申し訳ないです。


AutoCAD 2007 形式のファイルを開いています。
モデルを再作図中。
*キャンセル*

コマンド:

Autodesk DWG です。このファイルはオートデスクの開発した、またはライセンスを受けたアプリケーションによって保存された、TrustedDWG ファイルです。

コマンド:
コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <0>: 0


コマンド: offset

現在の設定: 元のオブジェクトを消去=いいえ 画層=元のオブジェクト OFFSETGAPTYPE=0
オフセット距離を指定 または [通過点(T)/消去(E)/画層(L)] <通過点>:

オフセットするオブジェクトを選択 または [終了(E)/元に戻す(U)] <終了>: nea
どこに
通過点を指定 または [終了(E)/一括(M)/元に戻す(U)] <終了>:

コマンド: select

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

オブジェクトを選択: non
@
認識された数: 1 (重複している数: 1), 総数 1

オブジェクトを選択:

コマンド: setenv
変数名を入力: to
値 <0>: 1


コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <1>: 0


コマンド: setenv
変数名を入力: p1
値 <416.77108752,757.11053398>: 419.96142777,760.69099647


コマンド:
SETENV
変数名を入力: to
値 <0>: 2


コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <2>: 0


コマンド: arc

円弧の始点を指定 または [中心(C)]:
円弧の 2 点目を指定 または [中心(C)/終点(E)]: 'setenv
>>変数名を入力: p2
>>値 <356.76816643,731.24875863>: 439.30662146,813.78721366


ARC コマンド再開。

円弧の 2 点目を指定 または [中心(C)/終点(E)]: non
419.96142777,760.69099647

円弧の終点を指定:
コマンド: erase

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

オブジェクトを選択:

コマンド: setenv
変数名を入力: to
値 <0>: 3


コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <3>: 0


コマンド:
SETENV
変数名を入力: p3
値 <439.30662146,813.78721366>: 356.76816643,731.24875863


コマンド:
SETENV
変数名を入力: to
値 <0>: 4


コマンド:
コマンド:
コマンド: setenv
変数名を入力: to
値 <4>: 0


コマンド: line

1 点目を指定: non
439.30662146,813.78721366

次の点を指定 または [元に戻す(U)]: non
356.76816643,731.24875863

次の点を指定 または [元に戻す(U)]:

コマンド: zoom

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

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

オブジェクトを選択:

コマンド: regen
モデルを再作図中。

コマンド: trim

現在の設定: 投影モード=UCS、エッジモード=非延長
切り取りエッジを選択 ...
オブジェクトを選択 または <すべて選択>: l
認識された数: 1

オブジェクトを選択:

トリムするオブジェクトを選択 または Shift を押して延長するオブジェクトを選択 または
[フェンス(F)/交差(C)/投影モード(P)/エッジ(E)/削除(R)/元に戻す(U)]: non
419.96142777,760.69099647


円には 2 つの交点が必要です。

トリムするオブジェクトを選択 または Shift を押して延長するオブジェクトを選択 または
[フェンス(F)/交差(C)/投影モード(P)/エッジ(E)/削除(R)/元に戻す(U)]:

コマンド: oops

コマンド: erase

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

オブジェクトを選択:

コマンド: chprop

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

オブジェクトを選択:

変更するプロパティを入力 [色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)/透過性(TR)/マテリアル(M)/異尺度対応(A)]: lt

新しい線種名を入力 <ByLayer>: HIDDEN

変更するプロパティを入力 [色(C)/画層(LA)/線種(LT)/線種尺度(S)/線の太さ(LW)/厚さ(T)/透過性(TR)/マテリアル(M)/異尺度対応(A)]:

コマンド: zoom

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

コマンド:
コマンド: setenv
変数名を入力: to
値 <0>: 0
  • たろ
  • 2018/12/14 (Fri) 16:08:55
Re: 【54】隠れ線処理について
円には 2 つの交点が必要です。
となっているので
81.接円(半径・1点・1接線)の更新履歴をヒントに
lineをxlineに変更してみました。


*^C^C$M=setenv;to;0;$(nth,$(getenv,to),offset;;nea;\;select;non;@;non;@;;setenv;to;1,setenv;p1;$M=$(getvar,lastpoint)^H^H;;to;2,arc;\'setenv;p2;$M="""$(getvar,lastpoint)"""^H^H;non;$(getenv,p1);\erase;l;;setenv;to;3,,)$(nth,$(getenv,to),,,,;p3;$M=$(getvar,lastpoint)^H^H;;to;4,xline;non;$(getenv,p2);non;$(getenv,p3);;zoom;o;non;$(getenv,p1);;regen;trim;l;;non;$(getenv,p1);;oops;erase;l;;chprop;l;;lt;HIDDEN;;zoom;p;^Csetenv;to;0)^M

もしこれでうまくいけば、とってぃ様のマクロもlineをxlineに変えればいけるかも?
  • chibi-tom
  • 2018/12/14 (Fri) 16:28:10
Re: 【54】隠れ線処理について
横からすみません、
trimを使わないでarcを小さい方と大きい方2つ書く方法でやってみました。(これなら点の選び方が反時計まわりでも大丈夫)
何かの参考になれば。選手尺度はテキトーです

*^C^C$M=setenv;to;0;$(if,$(=,$(getenv,to),0),undo;be;offset;;\$M="""$(if,$(getvar,cmdactive),;select;non;@;non;@;;copy;p;;non;@;non;@;erase;p;;setenv;p0;$(getvar,lastpoint)^H^H;;to;1,^Cid;)""")$(if,$(=,$(getenv,to),1),ucs;ob;l;id;int;\setenv;to;2)$(if,$(=,$(getenv,to),2),;p1;$(getvar,lastpoint)^H^H;id;\setenv;to;3)$(if,$(=,$(getenv,to),3),;p2;$(getvar,lastpoint)^H^H;erase;l;;setenv;to;4)$(if,$(=,$(getenv,to),4),arc;non;$(getenv,p1);c;non;0<0;non;$(getenv,p2);;non;$(getenv,p2);c;non;0<0;non;$(getenv,p1);ucs;p;setenv;to;5)$(if,$(=,$(getenv,to),5),id;nea;$(getenv,p0);chprop;f;non;@1<E;non;@2<W;;;lt;hidden;s;100;^Cundo;e)^M
  • zukki-
  • 2018/12/14 (Fri) 21:55:12
Re: 【54】隠れ線処理について
chibi-tom 様
zukki- 様

改良等ありがとうございます。
使い勝手等判断してchibi-tom様のマクロで運用していきたいと思います。
今後とも宜しくお願いいたします。
  • たろ
  • 2018/12/18 (Tue) 13:07:56
Re: 【54】隠れ線処理について
もう見ないかもしれませんが
動いたようなので念のため
zoomする必要がないかもしれないです。

画面のチラつきが気になるようでしたら
お試しください。

*^C^C$M=setenv;to;0;$(nth,$(getenv,to),offset;;nea;\;select;non;@;non;@;;setenv;to;1,setenv;p1;$M=$(getvar,lastpoint)^H^H;;to;2,arc;\'setenv;p2;$M="""$(getvar,lastpoint)"""^H^H;non;$(getenv,p1);\erase;l;;setenv;to;3,,)$(nth,$(getenv,to),,,,;p3;$M=$(getvar,lastpoint)^H^H;;to;4,xline;non;$(getenv,p2);non;$(getenv,p3);;trim;l;;non;$(getenv,p1);;oops;erase;l;;chprop;l;;lt;HIDDEN;;^Csetenv;to;0)^M
  • chibi-tom
  • 2018/12/18 (Tue) 15:08:19

返信フォーム






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