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

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

中間オフセット構築線について
AUTOCAD2020からIJCAD

機能互換のIJCAD2020PROを使うようになり、
今までAUTOCADで【2.中間オフセット構築線のマクロ】を設定し使用させてもらってたのですが、カスタマイズで設定しても動かなくて困ってます。
場違いな投稿ですがIJCADで動くことのできる中間オフセット構築線のマクロを組んでいただけないでしょうか?
よろしくお願い致します。
  • おでん
  • 2020/12/25 (Fri) 17:33:14
Re: 中間オフセット構築線について
IJCADを使用したことが無いので
見当違いはスルーしてください

>動かなくて困ってます
何も起こらなのか、途中で止まてしまうのか
わからないです

【 新規投稿時のお願い 】にあるように
3.バージョン違いによるマクロの動作不良の場合は、キーボードF2を押し、表示されたテキストウィンドウ内の
  マクロ開始~終了までのマクロの流れをコピー

で原因がわかるかもしれません

ちなみに談話室でも書きましたが
パッと見、lengthenコマンドの仕様違いな感じがします

途中で止まってしまうようなら下記を試してみてはどうでしょうか

lengthenコマンドのオプションによって
エンターの数が変わるようなので
下記のように、いずれかにすると間違いないかと思います
lengthen;l;dy;;
lengthen;l;de;;;
lengthen;l;p;;;
lengthen;l;t;;;
  • chibi-tom
  • 2020/12/28 (Mon) 08:25:15
Re: 中間オフセット構築線について
IJCAD歴ちょうど1年です。
AutoCADとIJCADでは、かなりマクロの仕様が違います。

①^Mは無効なので、「;」を使いましょう。
②^X^Hも無効なので、使わないようにしましょう。
③マクロ中に2回以上$( )が出てくると、ほぼ希望する動作にならない事がおおいです。直列でも並列でもネストでも。
時々、思い通りに動くこともあるが、何が地雷なのか良くわからない。
④"$( )"で判定を遅らせる概念も無いと思う。
⑤UCS座標上でのマクロの動きがかなり違う。
⑥コマンド自体の仕様やコマンドオプションの違いも多い。
⑦「*^C^Ccopy;\non;@;;non;@;non;@;・・・・みたいなので、ミスピックしたら初めに戻る」というAutoCADの不思議な便利仕様もない。

現状、わかっている違いはこのくらいですが、
私がAutoCADで使っていたマクロ約300個のうち、
そのままIJCADで使えたのは4個。
少し、改造して使えたのが、約20個
lispに作り替えたのが約100個
それ以外は、IJCADで使うのは現状断念しています。
(気が向いたらVBかLISPで作ってみるつもりですが)

前置きが長くなりましたが、
今回のお題はこれでいいかも。(上記のNG項目に触れない超単純マクロで可能)

^C^Cxline;o;t;\m2p;nea;@;nea;\;
IJCAD 2020STD で確認。
  • Lon
  • 2020/12/28 (Mon) 20:16:04
Re: 中間オフセット構築線について
Lonさんの情報で『m2p』が使えるようなので
確認はできませんけど
参考までにブロック対応と画層及び色設定を元のマクロと同じようにしてみました

*^C^Cid;\line;non;@;per;\;ucs;ob;l;erase;l;;-layer;n;XLine;P;N;XLine;;xline;v;m2p;non;@;non;0<0;;chprop;L;;LA;XLine;C;5;;ucs;p;

もしかしたらIJCADはブロックでもXlineのオフセット使える?
  • chibi-tom
  • 2020/12/29 (Tue) 09:37:43
Re: 中間オフセット構築線について
>もしかしたらIJCADはブロックでもXlineのオフセット使える?
無理でした。

で、そのマクロですが、
上で書いておりますNG項目⑤に抵触しております。

xline;v;m2p;non;@;で、ダミーのlineを引いた時の2点目を指示したいのだと思いますが、
ucsが変わった影響でその位置を指示してくれないのです。

  • Lon
  • 2020/12/29 (Tue) 12:38:43
Re: 中間オフセット構築線について
それなら『PERIMETER』でlineの長さ<0でできますか?
  • chibi-tom
  • 2020/12/29 (Tue) 12:59:45
Re: 中間オフセット構築線について
これでいけました。
*^C^Cid;nea;\$M=xline;nea;\endp;@;;offset;e;y;t;l;m2p;non;@;non;$(getvar,lastpoint);;;e;n;;;-layer;n;XLine;P;N;XLine;;chprop;L;;LA;XLine;C;5;;
  • Lon
  • 2020/12/29 (Tue) 13:08:25
Re: 中間オフセット構築線について
たぶん構築線がダメな気がします

lengthenコマンドオプションでNG出そうな気もしますが
参考に『PERIMETER』使って修正しました

*^C^Cid;\line;non;@;per;\;lengthen;l;dy;;ucs;ob;l;erase;l;;-layer;n;XLine;P;N;XLine;;xline;v;m2p;non;$M=$(getvar,PERIMETER)<0;non;0<0;;chprop;L;;LA;XLine;C;5;;ucs;p;

きっと『lengthen;l;dy;;』の部分は修正が必要だと思います
  • chibi-tom
  • 2021/01/05 (Tue) 12:05:14
Re: 中間オフセット構築線について
またIJCADの不思議な仕様(バグ?)を発見。
$(getvar,PERIMETER)で取得する値の精度は、単位管理の設定に関係なく(0桁でも8桁でも)4桁しか取得しない。
123.4567891の長さだったとしても、いつも123.4568と取得する。

従って、2線間の距離が半端な数値だった場合、$(getvar,PERIMETER)を使ったマクロでは中点からズレた位置を指示します。


一方、$(getvar,lastpoint)は単位管理の設定に関係なく8桁(以上?)取得している。

訳わからん。

IJCADでのDIESEL関数は、どこにどんな不具合が出るのか判らないので、
やっぱり、[DIESEL関数は使えない」と考えた方が安全だと思います。
(エラーが出るならまだいいが、数値が微妙に変わるのは気が付かないから)
  • Lon
  • 2021/01/05 (Tue) 14:15:49
Re: 中間オフセット構築線について
>数値が微妙に変わる
それは困りますね

なので、もう自分には思いつくことは無いですね
撤収しますね

失礼しました
  • chibi-tom
  • 2021/01/05 (Tue) 14:41:34
Re: 中間オフセット構築線について
アドバイス有難うございます。

いくつが教えて頂いたマクロを試してみました。

このIJCADはAUTOCADのようには、いかないですね;

失礼ですが、まだやりたいようにマクロが組めてないので。

アドバイスお願いいたします。

  • おでん
  • 2021/01/08 (Fri) 14:40:33
Re: 中間オフセット構築線について
>これでいけました。
>*^C^Cid;nea;\$M=xline;nea;\endp;@;;offset;e;y;t;l;m2p;non;@;non;$(getvar,lastpoint);;;e;n;;;-layer;n;XLine;P;N;XLine;;chprop;L;;LA;XLine;C;5;;
>Lon 2020/12/29 (Tue) 13:08:25

上記を設定してみたら出来る時と出来ない時がありました。←不思議

どんな場合できないか操作してみてるんですが、おんなじパターン(例図*ポリライン 四角 左角~右角選択)でも出来たり出来なかったり。

コマンド開始で次に点を指定するときにオブジェクトスップで端点を選択できるようにしてるのにうまく選択ができないかな?と感じました。

うまく出来たが続けてまた中間構築線をやろとすると、直前に書いた構築線は消えてしまいました。


  • おでん
  • 2021/01/08 (Fri) 15:20:46
Re: 中間オフセット構築線について
>たぶん構築線がダメな気がします

>lengthenコマンドオプションでNG出そうな気もしますが
>参考に『PERIMETER』使って修正しました

>*^C^Cid;\line;non;@;per;\;lengthen;l;dy;;ucs;ob;l;erase;l;;-layer;n;XLine;P;N;XLine;;xline;v;m2p;non;$M=$(getvar,PERIMETER) <0;non;0<0;;chprop;L;;LA;XLine;C;5;;ucs;p;

>きっと『lengthen;l;dy;;』の部分は修正が必要だと思います
>chibi-tom 2021/01/05 (Tue) 12:05:14


上記を試してみたら

コマンド開始で次に点を指定の時はオブジェクトスナップで端点は選択ができ、2点目も選択ができました。

しかし構築線が一瞬表示させて消えてしまいます。

テキストウインドウが描きです。

コマンド: id
点を指定: X = -70078.2 Y = 153908.8 Z = 0.0
コマンド: line

1 点目を指定: non
@

次の点を指定 または [角度(A)/長さ(L)/元に戻す(U)]: per
スナップ点を指定:
次の点を指定 または [角度(A)/長さ(L)/元に戻す(U)]:

コマンド: lengthen

オブジェクトを選択 または [増減(DE)/比率(P)/全体(T)/ダイナミック(DY)]: l

現在の長さ: 26107.6
オブジェクトを選択 または [増減(DE)/比率(P)/全体(T)/ダイナミック(DY)]: dy

変更するオブジェクトを選択 または [元に戻す(U)]:

コマンド: ucs

現在UCS の名前:*ワールド*
UCS 原点を指定 または [面(F)/名前の付いた UCS(NA)/オブジェクト(OB)/直前(P)/ビュー(V)/ワールド(W)/X/Y/Z/Z 軸(ZA)] <ワールド>: ob

UCS を位置合わせするオブジェクトを選択: l

コマンド: erase

オブジェクトを選択: l
1 個見つかりました

オブジェクトを選択:

コマンド: -layer

現在の画層: 0
オプションを入力[一覧(?
)/現在の層の新規作成(M)/現在の層の変更(S)/新規作成(N)/名前変更(R)/表示(ON)/非表示(OFF)/色設定(C)/線種設定(L)/線の太さ(LW)/透過性(TR)/マテリアル(MAT)/印刷(P)/フリーズ(F)/フリーズ解除(T)/ロック(LO)/ロック解除(U)/画層状態(A)/説明(D)/正規画層
(E)]:
n

新しい画層の名前リストを入力: XLine

画層 "XLine" が既存します。
オプションを入力[一覧(?
)/現在の層の新規作成(M)/現在の層の変更(S)/新規作成(N)/名前変更(R)/表示(ON)/非表示(OFF)/色設定(C)/線種設定(L)/線の太さ(LW)/透過性(TR)/マテリアル(MAT)/印刷(P)/フリーズ(F)/フリーズ解除(T)/ロック(LO)/ロック解除(U)/画層状態(A)/説明(D)/正規画層
(E)]:
P

印刷設定を入力 [印刷する(P)/印刷しない(N)] <印刷する>: N

この印刷設定を設定する画層名を入力 <0>: XLine
オプションを入力[一覧(?
)/現在の層の新規作成(M)/現在の層の変更(S)/新規作成(N)/名前変更(R)/表示(ON)/非表示(OFF)/色設定(C)/線種設定(L)/線の太さ(LW)/透過性(TR)/マテリアル(MAT)/印刷(P)/フリーズ(F)/フリーズ解除(T)/ロック(LO)/ロック解除(U)/画層状態(A)/説明(D)/正規画層
(E)]:

コマンド: xline
点を指定 または [水平(H)/垂直(V)/角度(A)/2 等分(B)/オフセット(O)]: v

通過点を指定: m2p
中点の 1 点目: non
26107.6487<0
中点の 2 点目: non
0<0

コマンド: chprop

オブジェクトを選択: L
1 個見つかりました

オブジェクトを選択:

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

新しい画層名を入力 <XLine>: XLine

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

新しい色 [True color(T)/カラーブック(CO)] <5 (青)>: 5

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

コマンド: ucs

現在UCS の名前:*名前なし*
UCS 原点を指定 または [面(F)/名前の付いた UCS(NA)/オブジェクト(OB)/直前(P)/ビュー(V)/ワールド(W)/X/Y/Z/Z 軸(ZA)] <ワールド>: p

コマンド:
コマンド:
コマンド: id

どうぞよろしくお願い致します。
  • おでん
  • 2021/01/08 (Fri) 15:29:56
Re: 中間オフセット構築線について
Lonさん考察の

1.③マクロ中に2回以上$( )が出てくると、ほぼ希望する動作にならない
2.『PERIMETER』の精度の問題

に抵触していそうですが2点間ではなくmoveによる移動にしてみました

*^C^Cid;\line;non;@;per;\;lengthen;l;dy;;ucs;ob;l;erase;l;;-layer;n;XLine;P;N;XLine;;xline;v;non;0<0;;move;l;;non;0<0;$M=$(/,$(getvar,PERIMETER),2)<0;chprop;L;;LA;XLine;C;5;;ucs;p;
  • chibi-tom
  • 2021/01/08 (Fri) 18:30:51
Re: 中間オフセット構築線について
これでも描けるかもしれません
AutoCADなのであくまで参考で

*^C^Cucs;m;nea;\circle;2p;non;0<0;per;\-layer;n;XLine;P;N;XLine;;xline;non;0<0;cen;0<0;;chprop;L;;LA;XLine;C;5;;rotate;l;;cen;0<0;90;erase;non;0<0;;ucs;p;
  • chibi-tom
  • 2021/01/08 (Fri) 19:24:41

返信フォーム






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