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

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

スクリプトで斜線をオフセット、トリム
こちらでスクリプトの質問をさせて頂いても宜しいでしょうか。
下記のように配管を乗せる為の鋼製ブラケットを作図させるスクリプトを作成しております。
斜線のオフセットと、オフセット後の斜線のトリムが上手くいかない状況です。
どのようにすれば宜しいでしょうか。
  • h_s
  • 2018/10/04 (Thu) 19:32:37
Re: スクリプトで斜線をオフセット、トリム
現状のスクリプトです。
ここからオフセット、トリムに移りたいのですが手詰りです。。。

Line
0,0
550,0
550,-125
125,-125
125,-380
0,-380
0,0


8,-8
550,-8


8,-8
8,-380


0,0
125,-125


550,-117
117,-117
117,-380


125,-380
550,-125

  • h_s
  • 2018/10/04 (Thu) 19:33:59
Re: スクリプトで斜線をオフセット、トリム
;とりあえずこれでご希望の形状は書けますが、こんなんで良いのかな?
;
;*******ここから*******
zoom w
-10,10
560,-390
line
non 125,-380
non 0,-380
non 0,0
non 550,0
non 550,-125


non 550,-117
non 117,-117
non 117,-380


non 8,-380
non 8,-8
non 550,-8


non 0,0
non 125,-125


non 550,-125
non 125,-125

select l

line
non 125,-125
non 125,-380

select l p

line
non 125,-380
non 550,-125

offset
125
337.5,-252.5
0,0

offset
117
337.5,-252.5
0,0

offset
8
337.5,-252.5
0,0

trim
p

f
non 550,-121
non 121,-121
non 121,-380


;*******ここまで*******
  • Lon
  • 2018/10/04 (Thu) 21:54:00
Re: スクリプトで斜線をオフセット、トリム
Lon様

早速の返信ありがとうございます。
今帰宅中ですので明日確認させて頂きます。
  • h_s
  • 2018/10/04 (Thu) 22:30:59
Re: スクリプトで斜線をオフセット、トリム
Lon様

一つ教えて頂きたいのですが、nonを挿入されている意図を教えて頂けませんか?
(Oスナップでの誤作動を防ぐ為でしょうか?)
  • h_s
  • 2018/10/04 (Thu) 22:32:58
Re: スクリプトで斜線をオフセット、トリム
CADの設定は人それぞれ違います。
nonを付加しなくても正常に動く人も居ますし、付けないと正常に動かない人も居ます。
逆に付けている事で正常に動かなくなるケースというのは、極稀です。
ですから、付けていれば間違いないです。

ちなみに、私の環境ではnonを付けていないと誤作動します。
・・・誤作動という言い方はCADに対して失礼ですね。忠実に命令をこなした結果なのですから。
「私の希望しない動きになります」としておきましょう。
  • Lon
  • 2018/10/05 (Fri) 08:05:51
Re: スクリプトで斜線をオフセット、トリム
CADの設定だけでなく、パソコンの仕様(グラフィックやモニタ関係)でも結果が変わってきます。
添付画像は、全てCADの設定は同じ状態での結果です。
  • Lon
  • 2018/10/05 (Fri) 08:54:56
Re: スクリプトで斜線をオフセット、トリム
Lon様

おはようございます。
ご丁寧にありがとうございます。
希望の動作になりました。

やはり環境によって動作が変化するのですね。
このスクリプトが形になれば社内で使用する為、nonは必ず付けます。

もう1点教えて下さい。
オフセットの範囲(337.5,-252.5 0,0)は何か法則や、この点にされた理由はありますか。
このスクリプトですが、各条件に合わせてタテ、ヨコ、ナナメの長さが変動(エクセル自動計算)しています。
  • h_s
  • 2018/10/05 (Fri) 09:26:05
Re: スクリプトで斜線をオフセット、トリム
line
non 125,-380
non 550,-125

から、(125+550)/2 , (-380-125)/2  です。 つまり中点。

>各条件に合わせてタテ、ヨコ、ナナメの長さが変動(エクセル自動計算)しています。
そうだろうとは想像しておりました。
  • Lon
  • 2018/10/05 (Fri) 09:38:34
Re: スクリプトで斜線をオフセット、トリム
Lon様

いろいろと教えて下さりありがとうございます。
ラインを走らせる順番も考えないといけないのですね。
とりあえず形になったのですが、何故か初めの一回だけオフセット以降が走りません。
二回目以降は問題なく走ります。
コマンドラインを比較しましたが、同じ動きをしています。

下記が修正したスクリプトです。
Line
non 125,-380
non 0,-380
non 0,0
non 550,0
non 550,-125


non 550,-117
non 117,-117
non 117,-380


non 8,-380
non 8,-8
non 550,-8


non 0,0
non 125,-125


non 550,-125
non 125,-125
select l

Line
non 125,-125
non 125,-380
select l p


Line
non 125,-380
non 550,-125


offset 125 337.5,-252.5
0,0 e
offset 117 337.5,-252.5
0,0 e
offset 8 337.5,-252.5
0,0 e


trim p f
non 550,-121
non 121,-121
non 121,-380

  • h_s
  • 2018/10/05 (Fri) 15:55:23
Re: スクリプトで斜線をオフセット、トリム
そのスクリプトを試してませんので、ぱっと見の感想です。

offsetコマンドの前に改行が2回ありますが、1回で良いと思います。

また、このホームページは半角スペースを複数回続けると削除される仕様の様です。(多分)
半角スペースの連打は辞めて改行で示してくれた方が、検証しやすいです。
(自動で消されたのか、初めから入れ忘れていたのか。の判断ができない)
末尾の半角スペースも控えた方が良いです。(この中には使っていない様ですが。)

作図している部分が、画面に映らない場所になっていると、正常に描画されない可能性があります。
また、ズームアウトしすぎて小さすぎる場合も、正常に描画できない可能性が高くなります。
ZOOMコマンドで、描画範囲を画面いっぱいに映す方がより確実です。
(私のスクリプトでは冒頭にZOOMを入れています。)

それから誤作動の原因にはならないとは思いますが、trimコマンドの前に不要な改行があるみたいです。
  • Lon
  • 2018/10/05 (Fri) 16:53:43
Re: スクリプトで斜線をオフセット、トリム
Lon様

失礼致しました。
半角スペース削除したものを記載致しました。
ご確認宜しくお願い致します。

Line
non 100,-360
non 0,-360
non 0,0
non 550,0
non 550,-100


non 550,-92.5
non 92.5,-92.5
non 92.5,-360


non 7.5,-360
non 7.5,-7.5
non 550,-7.5


non 0,0
non 100,-100


non 550,-100
non 100,-100
select l

Line
non 100,-100
non 100,-360
select l p


Line
non 100,-360
non 550,-100


offset
100
325,-230
0,0 e
offset
92.5
325,-230
0,0 e
offset 8 325,-230
0,0 e


trim p f
non 550,-96
non 96,-96
non 96,-360
  • h_s
  • 2018/10/05 (Fri) 18:55:49
Re: スクリプトで斜線をオフセット、トリム
Lon様

無理やりですが、オフセットの前に適当なコマンドを入れて、ラインと一度縁を切ると問題無く動作致しました。
色々と教えて下さりありがとうございました。
とても勉強になりました。
  • h_s
  • 2018/10/08 (Mon) 15:31:56
Re: スクリプトで斜線をオフセット、トリム
上に貼り付けているスクリプトと実際に使っているスクリプトは違うのでしょうか?
それとも貼り付け時に化けている?

そのスクリプトでは動きません。
前にも書きましたが、重複するスペースや末尾のスペースは避けてください。
例えば、この部分、

Line
non 100,-100
non 100,-360
select l p


Line
non 100,-360
non 550,-100


offset
100


まず、
non 100,-360 ←ここにスペースが有ります。このスペースは辞めて改行にした方が良い(事故防止)
次に、
select l pの後に改行が2回入っていますが1回で良いはずです。
それから、
non 550,-100 ←ここにスペースが有ります。
スペースを入れるなら、この行でlineコマンドは終了するので、その後の2回の改行は不要です。
できるなら、スペースを削除して改行を1回とする方が良い(事故防止)

また、
trim p f
non 550,-96
この部分、pの後にスペースが2回必要です。
貼り付けた際に1つ削除されたのでしょうか?それとも初めから入っていなかった?

その他にも修正した部分は有ったかもしれませんが、
これらのスペースや改行の数を見直したら、きれいに作図できましたよ。

ご自分の貼られたスクリプトを一度見直して、もし化けが発生しているなら、
化けない様な工夫をして貼り付けてください。

そうしないと、こちらで化けたであろう所を想像しながら修正して検証しなければならないし、
こちらでは、化けたのか、間違ったのかの区別は付きませんから、的確なアドバイスは難しくなります。


  • Lon
  • 2018/10/08 (Mon) 18:32:14
Re: スクリプトで斜線をオフセット、トリム
Lon様

返信遅くなり申し訳ありません。
貼り付けさせて頂いたスクリプトは上手くいかなかった時の半角スペースを削除した物でした。ややこしくて申し訳ありません。
あれからスペース等見直した所、バッチリと動作しました。
今は他のパターンも順調に作成中です。

この度はありがとうございました。
  • h_s
  • 2018/10/11 (Thu) 21:01:26

返信フォーム






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