Indexへ
(10014)//【10016】→(10018)
------------------------
【タイトル】数値指定で計算
【記事番号】 10016 (*)
【 日時 】07/07/28 15:22
【 発言者 】naminami

表中の数字を個々に指定して計算結果を書き込みたい
のですが、何か良い方法はありませんか?
例えば、電卓と同じで数字を入力して計算をさせる
動作を数字入力ではなく、表中の数字文字を指定して
計算をさせたいのですが・・・
数式として文字入力したものを計算させる外変は
見つけたのですが、個々に数字文字を指定して
計算結果を得る(書き出し)方法もしくは、外変などが
ありましたら、教えて頂けないでしょうか。


Indexへ
(10016)←【10018】→(10024)
------------------------
【タイトル】Re(1):数値指定で計算
【記事番号】 10018 (10016)
【 日時 】07/07/28 18:06
【 発言者 】joker
【 リンク 】http://www.atsmile.com/jw/



▼naminamiさん:
>表中の数字を個々に指定して計算結果を書き込みたい
>のですが、何か良い方法はありませんか?

具体的に、どういう計算をしたいのかが分りませんが
単純な表の四則計算であれば、JWWの標準機能で「その他|表計算」の
機能があり、それであれば、算出する文字要素を選択する際に
範囲選択・追加・除外の指定は出来ます。

単純な計算などであれば例えば、Cabaさんの外部変形「小道具」内の
「○数値計算」とか、など 探せばいろいろあると思いますが。
JWW検索リンクでの検索一覧

あと、「その他|式計算」で使うJWM形式ファイルを自作して使う、
という手法があるようです。私は使った事がないので詳細は分りません
けれど、「KEISAN.JWM」が説明ファイルにもなっているようなので
そちらを参考にされると良いかもしれません。

また、エクセルへデータを渡して、エクセルで計算させる、
或いはエクセルからの値を戻して作図させる、という事であれば
そういった外部変形は公開されていると思います。

とりあえず、「エクセル」をキーワードにして検索をした結果です。
JWW検索リンクでの検索一覧


Indexへ
(10018)←【10024】→(10026)
------------------------
【タイトル】Re(2):数値指定で計算
【記事番号】 10024 (10018)
【 日時 】07/07/29 00:40
【 発言者 】naminami

▼jokerさん:

>具体的に、どういう計算をしたいのかが分りませんが
>単純な表の四則計算であれば、JWWの標準機能で「その他|表計算」の
>機能があり、それであれば、算出する文字要素を選択する際に
>範囲選択・追加・除外の指定は出来ます。
>
>単純な計算などであれば例えば、Cabaさんの外部変形「小道具」内の
>「○数値計算」とか、など 探せばいろいろあると思いますが。
>JWW検索リンクでの検索一覧
>
>あと、「その他|式計算」で使うJWM形式ファイルを自作して使う、
>という手法があるようです。私は使った事がないので詳細は分りません
>けれど、「KEISAN.JWM」が説明ファイルにもなっているようなので
>そちらを参考にされると良いかもしれません。
>

jokerさんいろいろな情報有難うございます。
>具体的に、どういう計算をしたいのかが分りませんが
とありますので、具体的に書き込みますと
表の中に 1.80 1.60 2 3 0.5 と数字がありまして
それぞれを掛け算して結果があります。(建具の採光、換気、排煙
面積算定です)
数式に直すと1.80*1.60*2*3*0.5 = 8.10
この計算を図中で計算結果が合っているのか確かめたいのです。
JWWの機能「表計算」では、A群×B群という風に2つの数字しか
指定できません。これを3〜5、6個の数字をそれぞれ指定して
順番に掛け算や割り算などをしたいのです。
Cabaさんの「数値計算」では、A群×Nで選んだ数字に任意の数字を
掛ける機能しかありません。
やはり「式計算」を勉強して自作するしかないのでしょうか?


Indexへ
(10024)←【10026】→(10030)
------------------------
【タイトル】Re(3):数値指定で計算
【記事番号】 10026 (10024)
【 日時 】07/07/29 09:42
【 発言者 】コジマ

▼naminamiさん:
>jokerさんいろいろな情報有難うございます。
>>具体的に、どういう計算をしたいのかが分りませんが
>とありますので、具体的に書き込みますと
>表の中に 1.80 1.60 2 3 0.5 と数字がありまして
>それぞれを掛け算して結果があります。(建具の採光、換気、排煙
>面積算定です)
>数式に直すと1.80*1.60*2*3*0.5 = 8.10
>この計算を図中で計算結果が合っているのか確かめたいのです。
>JWWの機能「表計算」では、A群×B群という風に2つの数字しか
>指定できません。これを3〜5、6個の数字をそれぞれ指定して
>順番に掛け算や割り算などをしたいのです。
>Cabaさんの「数値計算」では、A群×Nで選んだ数字に任意の数字を
>掛ける機能しかありません。
>やはり「式計算」を勉強して自作するしかないのでしょうか?

EXCELを併用したほうが、便利なのでは?

あらかじめ、数式をEXCELの表を用意しておく。(数式設定)

以下の牛渡さんの外変「sgrid」で図表の数値をEXCELの表に貼り付けします。
http://gravelroad.yh.land.to/category/2/subcatid/12


Indexへ
(10026)←【10030】→(10034)
------------------------
【タイトル】Re(4):専用の外変なら
【記事番号】 10030 (10026)
【 日時 】07/07/29 13:13
【 発言者 】コジマ

>>表の中に 1.80 1.60 2 3 0.5 と数字がありまして
>>それぞれを掛け算して結果があります。(建具の採光、換気、排煙
>>面積算定です)
>>数式に直すと1.80*1.60*2*3*0.5 = 8.10
>>この計算を図中で計算結果が合っているのか確かめたいのです。
>>JWWの機能「表計算」では、A群×B群という風に2つの数字しか
>>指定できません。これを3〜5、6個の数字をそれぞれ指定して
>>順番に掛け算や割り算などをしたいのです。
>>Cabaさんの「数値計算」では、A群×Nで選んだ数字に任意の数字を
>>掛ける機能しかありません。
>>やはり「式計算」を勉強して自作するしかないのでしょうか?

他の方のレスで、ワンパターンの計算なので外部変形が良いとありましたので、参考まで。
但し、全角文字、カンマ区切りの数値には、対応していません。
(対応させると、もっと長い文になります。)

尚、この外部変形の実行には、rubyの動作環境が必要です。
以下で入手した、J_GARU Ver2.0をインストールしてください。
http://officehikari.art-studio.cc/data-1.htm

◎バッチファイル(ファイル名 表計算.bat)
以下の文をコピペして、全角スペースを半角スペースに一括置換してください。

@REM 表計算(レコード単位の一括乗算)
@echo off
REM #jww
REM #cd
REM #zc
REM #h3
REM #0計算結果記入位置を指示してください free(L) Read(R)
REM #bz
REM #e
copy jwc_temp.txt temp.txt > nul
ruby -x %~f0 temp.txt > jwc_temp.txt
pause
exit

#!ruby -Ks
moji_data1=[]
while ARGF.gets
    xy=split
    if xy[0]=~/^ch/
        moji=$'.chomp if $_=~/\"/
        moji_data1<<[xy[1].to_i,xy[2].to_i,moji]
    end
end
moji_data1.sort!{|a,b|b[1]<=>a[1]}

moji_data=[]

while a=moji_data1.shift
    b=moji_data1.select{|item|a[1]==item[1]}
    if b && b.size>0
        moji_data1 -= b
        b.unshift(a)
        moji_data<    end
end
anser=[]
moji_data.each{|item|
    c=item[0][2].to_f;y=item[0][1]
    item[1..-1].each{|item2|c *= item2[2].to_f}
    anser<<[y,c]
}
puts "bz"
anser.each{|a,b|printf("ch 0 %.11f 1 0 \"%s\n",a,b)}


Indexへ
(10030)←【10034】→(10035)
------------------------
【タイトル】Re(5):専用の外変なら
【記事番号】 10034 (10030)
【 日時 】07/07/29 14:38
【 発言者 】naminami

▼コジマさん:
有難うございました。早速、テスト実行させて頂き、私の求めていた
結果が得られました。本当に助かりました。
(贅沢を言わせてもらえれば、小数点以下の桁数表示と、四捨五入、切捨て等
の設定(選択)が出来れば完璧です。)


Indexへ
(10034)←【10035】→(10038)
------------------------
【タイトル】Re(6):専用の外変なら
【記事番号】 10035 (10034)
【 日時 】07/07/29 17:12
【 発言者 】コジマ

▼naminamiさん:
>(贅沢を言わせてもらえれば、小数点以下の桁数表示と、四捨五入、切捨て等
>の設定(選択)が出来れば完璧です。)

設定が増えると、文がどんどん長くなっていきます。


@REM 表計算(レコード単位の一括乗算)
@echo off
REM #jww
REM #cd
REM #zc
REM #h3
REM #0計算結果記入位置を指示してください free(L) Read(R)
REM #c小数点以下有効桁数 無指定:3/_/a
REM #k端数の処理|1)四捨五入(L)|2)切捨て(R)|3)切上げ|/_/b
REM #bz
REM #e
copy jwc_temp.txt temp.txt > nul
ruby -x %~f0 temp.txt %1 %2 > jwc_temp.txt
pause
exit

#!ruby -Ks
keta=3
while ARGV.size>1
    case argument=ARGV.pop
        when /\/a/
            keta=argument[2..-1].to_i
        when /\/b/
            hasu=argument[2..-1]
    end
end

def ika(keta,hasu,suti)
    if hasu == "1"
        a=(suti*10**keta).round/10**keta.to_f
    elsif hasu == "2"
        a=(suti*10**keta).floor/10**keta.to_f
    else
        a=(suti*10**keta).ceil/10**keta.to_f
    end
    b=$' if a.to_s=~/\./
    a=$`+"."+b+"0"*(keta-b.size) if b.size
    return a
end

moji_data1=[]
while ARGF.gets
    xy=split
    if xy[0]=~/^ch/
        moji=$'.chomp if $_=~/\"/
        moji_data1<<[xy[1].to_i,xy[2].to_i,moji]
    end
end
moji_data1.sort!{|a,b|b[1]<=>a[1]}

moji_data=[]

while a=moji_data1.shift
    b=moji_data1.select{|item|a[1]==item[1]}
    if b && b.size>0
        moji_data1 -= b
        b.unshift(a)
        moji_data<    end
end
anser=[]
moji_data.each{|item|
    c=item[0][2].to_f;y=item[0][1]
    item[1..-1].each{|item2|c *= item2[2].to_f}
    c=ika(keta,hasu,c)
    anser<<[y,c]
}
puts "bz"
anser.each{|a,b|printf("ch 0 %.11f 1 0 \"%s\n",a,b)}


Indexへ
(10035)←【10038】→(10027)
------------------------
【タイトル】Re(7):専用の外変なら
【記事番号】 10038 (10035)
【 日時 】07/07/29 23:03
【 発言者 】naminami

▼コジマさん:
私のワガママに早速、対応して頂き有難うございます。
大変助かりました。JWWユーザーとしてコジマさんを誇りに
思います。こんな小さな事にでもすぐに対応してくださる
なんて!大手のCADメーカーさんには出来ないことですよね。
本当に有難うございました。又、何かありましたら
相談させてください。


Indexへ
(10038)←【10027】→(10028)
------------------------
【タイトル】Re(3):数値指定で計算
【記事番号】 10027 (10024)
【 日時 】07/07/29 10:14
【 発言者 】kubo

▼naminamiさん:
>表の中に 1.80 1.60 2 3 0.5 と数字がありまして
>それぞれを掛け算して結果があります。(建具の採光、換気、排煙
>面積算定です)
>数式に直すと1.80*1.60*2*3*0.5 = 8.10(これ 8.64 の間違いですよ)
>この計算を図中で計算結果が合っているのか確かめたいのです。

発想の転換をされて
表の中に 1.80*1.60*2*3*0.5 という式を書かれ 結果欄に 8.64
とされればよいのではないですか。
私はそういう使い方をしています。

SCAP という電卓ソフトではホットキーとされる機能があり
例えば「文字」コマンドで 1.80*1.60*2*3*0.5 を「右クリック」(複写)で
拾い、所定のキー操作をすると計算して文字入力欄に 8.64 と返してきます。
それで Jw_cad の「表計算」を使いながら、いろんな面積などの計算表を
作っています。

このコメントでも 1.80*1.60*2*3*0.5 を拾い、自動計算させて 8.64 を
返させました。


Indexへ
(10027)←【10028】→(10032)
------------------------
【タイトル】Re(3):数値指定で計算
【記事番号】 10028 (10024)
【 日時 】07/07/29 10:31
【 発言者 】chi chi@mocha.ocn.ne.jp
【 リンク 】http://www6.ocn.ne.jp/~chika/



▼naminamiさん:
 無窓の居室の計算ですね。

ワンパターンの計算で外部変形にしてたほうが良いと思います。
アルゴリズムは文字列のy値が同じものを数値に変換して掛け算する。
結果を「jwc_temp.txt」で書き出すです。
表の数値が水平に並んでいるが条件です。
そんなに難しいプログラムにならないと思います。
文字列のデータを取り出すには・・・ながくなるので
この辺で止めます。


Indexへ
(10028)←【10032】→(10029)
------------------------
【タイトル】Re(4):数値指定で計算
【記事番号】 10032 (10028)
【 日時 】07/07/29 13:39
【 発言者 】chi chi@mocha.ocn.ne.jp
【 リンク 】http://www6.ocn.ne.jp/~chika/



▼chiさん:
 無窓の居室の窓の面積を計算する外変の仕様を
考えました
窓の展開図があって、それには床の線と天井の線がある。
この図形を選択して外変に渡す。
排煙、採光、換気のそれぞれを計算するには足りない情報は
窓の種類です。それをダイヤログでラジオボタンで指示する
引き違いとか縦軸とか


Indexへ
(10032)←【10029】→(10033)
------------------------
【タイトル】Re(3):数値指定で計算
【記事番号】 10029 (10024)
【 日時 】07/07/29 11:03
【 発言者 】KITI

 naminamiさん おはようございます、KITIと申します。

 表計算の場合は 既に回答されているとおりですが
一行だけの計算なら JWW本体の文字入力で出来ます。

 文字入力欄に  1.80*1.60*2*3*0.5 = と記入
 「Ctrl」ボタンを押し下げたまま 書込み位置確定 すると
 1.80*1.60*2*3*0.5 = 8.64 と書込まれます。

 「=」無しで 1.80*1.60*2*3*0.5 と記入
 「Ctrl」ボタンを押し下げたまま 書込み位置確定 すると
 答えの 8.64 だけ書込まれます。

 参考にしてください。
    デワデワ    広島のKITIより
 


Indexへ
(10029)←【10033】//(10017)
------------------------
【タイトル】Re(3):数値指定で計算
【記事番号】 10033 (10024)
【 日時 】07/07/29 13:53
【 発言者 】naminami

コジマさん、kuboさん、chiさん、KITIさん
ご指摘、ご指導有難うございます。

kuboさんのご指摘の通り
>数式に直すと1.80*1.60*2*3*0.5 = 8.10(これ 8.64 の間違いですよ)
上記計算結果は8.64ですね。

皆々様の解決方法も私は考えましたが、業務上、どうしても
個々の数字をそれぞれ掛けて計算をして答えを出したいのです。
その理由は、図面作成を私一人で作成していれば、Excel等を
使用すれば簡単に問題解決しますが、部分的(建具開口計算等)に
図面を外注もしくは、請け負った時に、計算の確め算をしたいのです。
それも、相手のCADがJWではなくDRA-CADなのでデータを受け渡し後に
それぞれが、一応、計算結果を確認しないといけないからです。
DRA-CADには、外部オプションで、文字数字を連続して指定すると
それぞれを掛け算等計算してくれる機能が無料で公開されている
みたいで、その方から「JWWにも同じような機能があるでしょ」
と言われ、それから、いろいろと検索しましたが、なかなか見つからず
この掲示板にて質問させて頂きました。
昨日から、JWWの「式計算」で何とか横方向の文字数字を読み込んで
計算結果を出せる用にしましたが、これまた、問題がありまして
小数点以下の桁数が3桁までしか四捨五入等をしたときに出力出来ないのです。
4桁表示は、無理なのかな〜?
外変等で、JWW内で文字数字を指定して電卓みたいな機能があればいいのですが・・・。