Indexへ
(1502)//【1506】→(1521)
------------------------
【タイトル】jwmで真北方向距離計算したい
【記事番号】 1506 (*)
【 日時 】03/02/12 16:27
【 発言者 】taku

 jwmで真北方向の検討をしてもらいなおかつ計算式も書いてもらおう
と思いjwmに式を書き込んで見たのですが計算及び結果表示がうまくいきません。
どなたかお分かりになる方アドバイスお願い致します。
 形式は距離と角度を入力して計算します。

if(1=z)input A"距離(mm)=";input B"角度(度)=";
A="(mm);B="(度)";
if(1=z)goto 1;
if(Aif(A>A/s(B))goto 2;
#
<1>
L=A/s(B);
$31=L"A÷sinB°="
<2>
L=A/c(B);
$31=L"A÷cosB°="

要は計算結果のところに「(入力した距離)÷sin(入力した角度)°=(計算結果)」
としたいのです。
 できますか?


Indexへ
(1506)←【1521】→(1534)
------------------------
【タイトル】回答ではないですが(改稿)
【記事番号】 1521 (1506)
【 日時 】03/02/12 23:36
【 発言者 】Yacht za79d@hotmail.com

takuさん、こんにちは。
私は建築関係では無いので、目的やそれに対する具体的な式は全くわかりませ
んが、JWMファイルによる式計算コマンドのことですよね?

この機能、私はあんまり使っていませんが、気になった点を書いてみます。

以下行番号を付けて引用しました。
>1:if(1=z)input A"距離(mm)=";input B"角度(度)=";
>2:A="(mm);B="(度)";
>3:if(1=z)goto 1;
>4:if(A>5:if(A>A/s(B))goto 2;
>6:#
>7:<1>
>8:L=A/s(B);
>9:$31=L"A÷sinB°="
>10:<2>
>11:L=A/c(B);
>12:$31=L"A÷cosB°="

 1.前半部分に必須項目がいくつかありますが全て記述してありますか?
   『#:1文字列』 や『#:1% 0;』『#:1@ ;』など
 2.Line1やLine3のzは大文字にしないといけないと思います
 3.Line9の次の行でgotoを使い終わりまで飛ばさないと、ラベル<2>も自動的に
   実行されてしまいます。
 4.Line9,13 付記出来る文字列は10バイト以内(半角10文字以内)なので、
   『°』(度)か『=』を半角にしないと制限を越えます

以上、簡単な検証と徹底解説リファレンス編p.312〜から気が付いた事です。
あと、Shiftを押しながら選択ボタンをクリックするとデバッグモードになりますの
で、これも活用されるとよろしいかと思います。

最後に、先ほどの新規コメントの#1519もそうですが、こういったスクリプト系の
疑問点の場合、「うまくいかない」だけでなく、
「こうしたら」→「こうなるはずが」→「こうなってしまうんです」等、具体的
に書かれると、コメントを付け易くなり解決が早いと思いますがどうでしょう(^^ゞ

                             Yacht

#スミマセン、2回も削除→書き直しちゃいました。。。(^^ゞ


Indexへ
(1521)←【1534】→(1536)
------------------------
【タイトル】Re(1):回答ではないですが(改稿)
【記事番号】 1534 (1521)
【 日時 】03/02/13 10:24
【 発言者 】toshy

▼Yachtさん:
▽takuさん、こんにちは。

>「こうしたら」→「こうなるはずが」→「こうなってしまうんです」等、具体的
>に書かれると、コメントを付け易くなり解決が早いと思いますがどうでしょう(^^ゞ

同感です
たしかにこの計算で何で真北方向の計算になるのかは置いときますが(^^;
式計算はいろいろ試行錯誤が必要ですねガンバッテ下さい

いろいろ触ってみてたんですがこんなのでしょうか?


#hm 計算開始ボタンを押すかやめるボタンを押してください|計算開始|やめる|
#:1数値を入れる
#:2
#:1% 0;
#:2% 0;
#:1@ 0;
#:2@ 0;

if(Z=2) goto 3;

A="距離(mm);
B="角度(度)";


input A"距離(mm)=";
input B"角度(度)=";

F=1
if(A<(A/s(B))) goto 1;
if(A>(A/s(B))) goto 2;

<1>
L=A/s(B);
F="A。灣in(B)=";
$31=L;
e;
<2>
L=A/c(B);
F="A。瀋os(B)=";
$31=L;
e;
<3>
e;

好みもいろいろですのであとは御自分に合う形にアレンジされてみて下さい。


Indexへ
(1534)←【1536】→(1538)
------------------------
【タイトル】Re(2):回答ではないですが(改稿)
【記事番号】 1536 (1534)
【 日時 】03/02/13 10:29
【 発言者 】taku

▼toshyさん:ありがとうございます。


>#hm 計算開始ボタンを押すかやめるボタンを押してください|計算開始|やめる|
>#:1数値を入れる
>#:2
>#:1% 0;
>#:2% 0;
>#:1@ 0;
>#:2@ 0;
>
>if(Z=2) goto 3;
>
>A="距離(mm);
>B="角度(度)";
>
>
>input A"距離(mm)=";
>input B"角度(度)=";
>
>F=1
>if(A<(A/s(B))) goto 1;
>if(A>(A/s(B))) goto 2;
>
><1>
>L=A/s(B);
>F="A。灣in(B)=";
>$31=L;
>e;
><2>
>L=A/c(B);
>F="A。瀋os(B)=";
>$31=L;
>e;
><3>
>e;
>

 あの、おたずねしたいのですが
e;はどういう意味なのでしょうか?
 計算をendということなのでしょうか?
 よく分からないため教えていただけないでしょうか?


Indexへ
(1536)←【1538】→(1539)
------------------------
【タイトル】Re(3):回答ではないですが(改稿)
【記事番号】 1538 (1536)
【 日時 】03/02/13 10:35
【 発言者 】toshy

▼takuさん:

はっ早いですね(^^;

エディターからコピペしたら文字化けしてたので直そうと思ったらもうコメントが

<1>
L=A/s(B);
F="A。灣in(B)=";
$31=L;
e;
<2>
L=A/c(B);
F="A。瀋os(B)=";
$31=L;
e;
<3>
e;

に変更してください。


> あの、おたずねしたいのですが
>e;はどういう意味なのでしょうか?
> 計算をendということなのでしょうか?
> よく分からないため教えていただけないでしょうか?

そのとおりです。


Indexへ
(1538)←【1539】→(1542)
------------------------
【タイトル】Re(4):やっぱり文字化け
【記事番号】 1539 (1538)
【 日時 】03/02/13 10:39
【 発言者 】toshy

▼toshyさん:

やっぱり文字化け。。。朝からスミマセン
化けてるところは
数学記号の割るs

割るc
です。(^^ゞ


Indexへ
(1539)←【1542】→(1535)
------------------------
【タイトル】Re(5):やっぱり文字化け
【記事番号】 1542 (1539)
【 日時 】03/02/13 11:11
【 発言者 】taku

▼toshyさん:
>やっぱり文字化け。。。朝からスミマセン
>化けてるところは
>数学記号の割るs
>と
>割るc
>です。(^^ゞ

はい、直してうちだしました。
 ご丁寧にありがとうございます。
 (といっても不特定多数の方にいわれたとは思いますが・・・)


Indexへ
(1542)←【1535】→(1528)
------------------------
【タイトル】Re(1):回答ではないですが(改稿)
【記事番号】 1535 (1521)
【 日時 】03/02/13 10:25
【 発言者 】taku

yachtさん ありがとうございます。

> 1.前半部分に必須項目がいくつかありますが全て記述してありますか?
>   『#:1文字列』 や『#:1% 0;』『#:1@ ;』など

 しております。

> 2.Line1やLine3のzは大文字にしないといけないと思います

 しております。

> 3.Line9の次の行でgotoを使い終わりまで飛ばさないと、ラベル<2>も自動的に
>   実行されてしまいます。

 これはしてませんでしたのでsinのところもcosで計算しておりました。

> 4.Line9,13 付記出来る文字列は10バイト以内(半角10文字以内)なので、
>   『°』(度)か『=』を半角にしないと制限を越えます

  しておきます。
 
 これでもう一度チャレンジしてみますが
 計算結果のところには入力した数字は代入されないみたいですね。
 それと質問の動作結果は、何を計算してもcosで計算され、結果表示は
 A・B等の文字が自分で入力した数値に代わってくれないということでした。
 うまく説明ができなかった為、文章を省略しておりました。


Indexへ
(1535)←【1528】→(1537)
------------------------
【タイトル】Re(1):jwmで真北方向距離計算したい
【記事番号】 1528 (1506)
【 日時 】03/02/13 08:57
【 発言者 】名無し

文字入力で

100*s(35)=

と入力して
Ctrl+Enter で決定 じゃダメ?

(100*s(35)=57.357644 と記入されます)

ちゃんと
100×sin(35)=57.357644
といった記入じゃないとダメなら、外部変形の方が無難と思う
それほど頻度が多くない場合、外部エディタで検索置換えですますとか


Indexへ
(1528)←【1537】→(1607)
------------------------
【タイトル】Re(2):jwmで真北方向距離計算したい
【記事番号】 1537 (1528)
【 日時 】03/02/13 10:32
【 発言者 】taku

▼名無しさん:ありがとうございます。
>文字入力で
>
>100*s(35)=
>
>と入力して
>Ctrl+Enter で決定 じゃダメ?

 そんな便利な機能があったとは知りませんでした。

>100×sin(35)=57.357644
>といった記入じゃないとダメなら、外部変形の方が無難と思う

 ちゃんとした記入をしたいのですが、外部変形がまだ自分の
 理解範囲を超えている為使えません(泣)
 ので、後で文字変更で追加してみます。


Indexへ
(1537)←【1607】→(1608)
------------------------
【タイトル】Re(3):jwmで真北方向距離計算したい
【記事番号】 1607 (1537)
【 日時 】03/02/13 21:18
【 発言者 】名無し

AWK外部変形
使用方
ドライのブルートに適当なフォルダを作る(半角記号,スペースは不可)
http://www.hinadori.atnifty.com/~wills/
↑ここのプログラムの部屋からgawkm115.zipを入手解凍して中のgawk.exeを
さっきのフォルダへコピーし、jgawk.exeとリネーム

以下をテキストエディタにコピーして、さっきのフォルダへ適当な名前で
batファイルでセーブ(歯車アイコン)

おそらく『jgawk ・・・・・・ > temp.txt』の行が、強制改行されるので
1行に修正してからセーブ

@REM 適当に説明して
echo off
goto EXE
REM #jww
REM #cd
REM #h0
REM #c 距離(mm)=
REM #c 角度(度)=
REM #0 記入位置
REM hr
REM #e

:EXE
jgawk -vA=%1 -vB=%2 'BEGIN{pi=atan2(0,-1);A=sprintf("%%.3f",A);B=sprintf("%%.3f",B);C=sprintf("%%.3f",A/sin(pi/180*B));printf("ch 0 0 1 0 \x22%%.10g÷sin(%%.10g°)=%%.10g\n",A,B,C);exit}' jwc_temp.txt > temp.txt

del jwc_temp.txt
rename temp.txt jwc_temp.txt

:pause

以上、
jwwの その他→外部変形 で上のBATファイルを選択すると、距離と角度を
聞いてくるので入力、書き出し位置をクリックして終了

(cosに移る場合が理解出来ないので省いた、角度を−にしたらコサインにする
 とかなのだろうか?)

文字化けしません様に、   ☆彡  (-人-;) 願い事願い事...


Indexへ
(1607)←【1608】→(1610)
------------------------
【タイトル】強制改行は表示のみみたい
【記事番号】 1608 (1607)
【 日時 】03/02/13 21:37
【 発言者 】名無し

そのままコピペしたら、強制改行されてないや

XPなら動くと思うけど、他では試していない

%%.3f の 3 が小数点以下の桁数です、適当に直してください

printf文中の \x22 以降が出力文字書式 小数点以下が0でも.000と表示させたい場合、%%.10g を %%.3f に変える(この場合前のsprintf が無意味だな)

\x22 は " と同じですが、" はbatファイル内でも意味を持っちゃうので
使えないのでこういう書き方 %% も本当は % 1つなんだけど、1つだとbatファイルで意味を持っちゃうので %% とする

(普通にawkファイルを作れば良いだけなのだが・・・)


Indexへ
(1608)←【1610】→(1613)
------------------------
【タイトル】フォロー有り難うございました
【記事番号】 1610 (1506)
【 日時 】03/02/13 23:08
【 発言者 】Yacht za79d@hotmail.com

うぉっ、現場から帰ってきたらツリーがこんなに伸びてる・・・(^^ゞ

toshyさん、名無しさん、フォロー有り難うございますm(__)m

toshyさん、サイト拝見させていただきました。
式計算の活用事例、大変参考になりました。

名無しさん、昨年も拝見しましたが、awkの一行スクリプト、お見事ですm(__)m
私のようなヘタレawk書きには目から鱗です。
引数 -v は初めて使い方がわかりました(←ヘタレ度が解りますね(^^ゞ
Win2kでは問題なく動いています(takuさんはWin98なので参考にはなりませんが)

takuさん、No.1502の投稿ですが、実は情報交換室の方でMT_さんの同内容のレスに
コメントが付いております。参考になればと思います。

今後ともよろしくお願いしますm(__)m

#ゴミレスでした
                             Yacht


Indexへ
(1610)←【1613】//(1508)
------------------------
【タイトル】Re(1):フォロー有り難うございました
【記事番号】 1613 (1610)
【 日時 】03/02/13 23:59
【 発言者 】taku

▼Yachtさん:
まだ98で生きてるtakuです。

>takuさん、No.1502の投稿ですが、実は情報交換室の方でMT_さんの同内容のレスに
>コメントが付いております。参考になればと思います。

 ご丁寧に教えてくださりありがとうございます。
 じつは先日情報交換室にいった際拝見いたしました。
 私としましてはまだ情報交換といえるものをもっておりませんので
 あえて参加しておりません。
 相談(質問)ばかりしておるもので・・・ ^^ゞ