Indexへ
(23621)//【23611】→(23624)
------------------------
【タイトル】ソリッドの面積求積について
【記事番号】 23611 (*)
【 日時 】07/09/21 16:16
【 発言者 】art modanart@hotmail.com

お世話になりなります。
ソリッドで塗りつぶしたものの面積を簡単に測れて任意の箇所に
○○.○○m2(任意の桁数、丸め)というような表示が出来るような
外部変形はないでしょうか。
現在は、「色塗求積 for JWW」を使用させて頂いているのですが、
(作者様 ありがとうございます)合計するのではなく単体の面積を
ソリッドの横に上記の通り面積のみで表示する事を要求されております。
(道路横断が130本ほどの土工数量用です)
ソリッドを囲ってクリックで面積表示というような作業が出来ればよいのですが。
よろしくお願い致します。


Indexへ
(23611)←【23624】→(23626)
------------------------
【タイトル】Re(1):ソリッドの面積求積について
【記事番号】 23624 (23611)
【 日時 】07/09/21 18:42
【 発言者 】PCおんち

artさん、こんばんは。

色別の集計ではなく色に関係なく範囲選択したソリッドの求積ということであれば
一例として下記のような外部変形となります。
スクリプトが長くなりますので多角形のみ対象です。
もし見当外れでしたらごめんなさい。

「色塗求積」を使用しているとの事ですのでmsw-ruby1.8.1の説明は省きます。
以下、Lite & Seen Lite のMiyakeさんの手法に基づくスクリプト兼用バッチファイルです。
http://www17.ocn.ne.jp/~lite/

バッチファイル名は sl_menseki.bat としてください。
必要の場合は動作確認後にバッチファイルを修正して適当な名前を付けてください。
#######下記からメモ帳にコピペしで全角スペース→半角スペースの置換をしてください。
@REM ソリッド求積
@echo off
goto do%1
rem
rem ----------------------------------------------------------------
rem ※このファイルを編集した場合は上書き保存して閉じてください。
rem ----------------------------------------------------------------
rem
REM #jww
REM #cd
REM #hm |求 積 (L)|BAT 編集 (R)|
REM #:1
REM #h1
REM #g1 全グループ対象(書込みグレープのみ場合は g0 )
REM #hc 対象ソリッド図形を範囲選択(多角形のみ対象)
REM #0 書込み位置指示
REM #ht10 ブロック図形の書出しをしない
REM #ht20 曲線の書出しをしない
REM #ht30 寸法図形の書出しをしない
REM #hr
REM #e
REM #:2
REM #h0
REM #hr
REM #e
:do1
copy jwc_temp.txt temp.txt > nul
ruby -x %~f0 temp.txt > jwc_temp.txt
del temp.txt
rem pause
exit
goto END
:do2
start notepad.exe sl_menseki.bat
echo # > jwc_temp.txt
goto END
#!ruby
##### 設 定 #######################################################
#
$marume = "r" #丸め方式( r≡四捨五入; d≡切捨て )
$keta= 3    #少数桁( 0〜6 )
$comma= "on"  #三桁カンマ区切り( on≡設定有; off≡設定無 )
#---------------------------------------------------------------------
$cy = " "   #作図レイヤ(0〜f) [無指定 書込みレイヤ]
$cn = "3"   #文字種(1〜10)  [無指定 書込み文字種]
#
######################################################################
def main
 sum = 0
 while ARGF.gets
  if $_ =~ /^sl/
   xy = split; xy.collect!{ |item| item.to_f }
   menseki=sl_keisan(xy); sum += menseki
  end
 end
 if sum >0
  puts "bz"; puts "ly"+$cy; puts "cn"+$cn
  sum=marume(sum)
  puts ["ch",0,0,1,0,"\""+sum+"m^u2"].join("\s") #u単位付
  #puts ["ch",0,0,1,0,"\""+sum].join("\s")    #単位無の場合
 else
  puts "he 求積データがありません。"
 end
end
#--------------------------------------------------
def sl_keisan(xy)
 menseki=0
 if xy.length == 7
  hs1,he1,hf1,hg1 = sankaku01(xy)
  menseki += ((hs1*he1*hf1*hg1)**0.5)/1000000.0
 elsif xy.length == 9
  hs1,he1,hf1,hg1 = sankaku01(xy)
  menseki += ((hs1*he1*hf1*hg1)**0.5)/1000000.0
  hs2,he2,hf2,hg2 = sankaku02(xy)
  menseki += ((hs2*he2*hf2*hg2)**0.5)/1000000.0
 end
 return menseki
end
def sankaku01(xy)
 hl1 = ((xy[3]-xy[1])**2+(xy[4]-xy[2])**2)**0.5
 hl2 = ((xy[5]-xy[3])**2+(xy[6]-xy[4])**2)**0.5
 hl3 = ((xy[1]-xy[5])**2+(xy[2]-xy[6])**2)**0.5
 hs1 = ( hl1+hl2+hl3 )/2
 he1,hf1,hg1 = hs1-hl1,hs1-hl2,hs1-hl3
 return hs1, he1, hf1, hg1
end
def sankaku02(xy)
 hl4 = ((xy[7]-xy[1])**2+(xy[8]-xy[2])**2)**0.5
 hl5 = ((xy[5]-xy[7])**2+(xy[6]-xy[8])**2)**0.5
 hl6 = ((xy[1]-xy[5])**2+(xy[2]-xy[6])**2)**0.5
 hs2 = ( hl4+hl5+hl6 )/2.0
 he2,hf2,hg2 = hs2-hl4,hs2-hl5,hs2-hl6
 return hs2, he2, hf2, hg2
end
def marume(sum)
 if $marume == "r"
  sum = round_n( sum, $keta )
 elsif $marume == "d"
  sum = round_down_n( sum, $keta )
 end
 if $keta == 0
  sum = sprintf("%0.0f",sum)
 elsif $keta == 1
  sum = sprintf("%0.1f",sum)
 elsif $keta == 2
  sum = sprintf("%0.2f",sum)
 elsif $keta == 3
  sum = sprintf("%0.3f",sum)
 elsif $keta == 4
  sum = sprintf("%0.4f",sum)
 elsif $keta == 5
  sum = sprintf("%0.5f",sum)
 elsif $keta == 6
  sum = sprintf("%0.6f",sum)
 end
 if $comma=="on"
  sum=sum.gsub(/(\d{1,3})(?=(\d\d\d)+($`|\.))/, '\1,')
 end
 return sum
end
def round_n(num, nth)
 num = num.to_f; nth = nth.to_i; num = num*(10**nth)
 return num.round()*(10**(-nth))
end
def round_down_n(num, nth)
 num = num.to_f; nth = nth.to_i; num = num*(10**nth)
 return num.floor()*(10**(-nth))
end
main()
:END
###############以上です。


Indexへ
(23624)←【23626】→(23677)
------------------------
【タイトル】Re(2):ソリッドの面積求積について
【記事番号】 23626 (23624)
【 日時 】07/09/21 22:26
【 発言者 】art modanart@hotmail.com

▼PCおんちさん:
外部変形を作って頂きありがとうございます。
早速、動作を確認しましたところ思い通りの動きでした。
感動致しました。
会社の同僚に見せるとこれでさらに作業が楽になると好評です。
本当にありがとうございました。


Indexへ
(23626)←【23677】→(23678)
------------------------
【タイトル】Re(2):ソリッドの面積求積について
【記事番号】 23677 (23624)
【 日時 】07/09/26 15:52
【 発言者 】古井

▼PCおんちさん:
はじめまして
ソリッドの面積求積が出来ると知り私も使わせていただこうと
sl_menseki.bat のバッチファイルを作成しプログラムを
コピーさせていただきました。

早速、多角形で書いた五角形をソリッドで着色し面積を測定しようと
外部変形をクリックしsl_menseki.batを選択すると「求積」「BAT編集」
のタグが現れ範囲選択でソリッドが反転して選択確定をすると
「書込み位置指示」が表示されます
そこまでは順調にいくのですがフリーで位置を指定すると
一瞬Windowが開くだけでその後何も表示されません。

インストールの時に「下記からメモ帳にコピペしで全角スペース→半角スペースの置換をしてください」のやり方が解らずそのまま貼り付けたことがいけなかったのでしょうか?
敷地面積の求積等に使えれば助かりますので
よろしくご教授願います。


Indexへ
(23677)←【23678】→(23682)
------------------------
【タイトル】Re(3):ソリッドの面積求積について
【記事番号】 23678 (23677)
【 日時 】07/09/26 16:39
【 発言者 】PCおんち

古井さん、こんにちは。

今、出先で偶然書き込みを拝見しました。
(実はADSLの回線トラブルで当分事務所からできせませんので・・)

mswin-32ruby1.8.1は導入済ですか?
メモ帳の置換について
1.編集(E)をクリック
2.置換(R)をクリック
3.検索する文字列(N)に全角でスペースキーを押して入力
4.置換後の文字列(P)に半角でスペースキーを押して入力
5.すべて置換(A)を押してsl_menseki.batとして保存
この時、ファイルの種類がすべてのファイルなっている事

尚、如何しても出来ない時はsiegelさんの掲示板に同一幅楕円環以外の任意の
ソリッド図形に対応したsl_mensekiが連載されています。
既にバッチファイル化されていますので其のまま動かせます。
(テスト用.jww、 Windows基本色.jws共)

siegelさん、有難うございます。

http://homepage2.nifty.com/siegel/

尚、当分このサイトにもこれないかもしれません・・


Indexへ
(23678)←【23682】→(23740)
------------------------
【タイトル】Re(4):ソリッドの面積求積について
【記事番号】 23682 (23678)
【 日時 】07/09/26 21:35
【 発言者 】siegel
【 リンク 】http://homepage2.nifty.com/siegel/



古井さん、こんにちは。

>尚、如何しても出来ない時はsiegelさんの掲示板に同一幅楕円環以外の任意の
>ソリッド図形に対応したsl_mensekiが連載されています。
>既にバッチファイル化されていますので其のまま動かせます。
>(テスト用.jww、 Windows基本色.jws共)

拙宅の掲示板、No.80にファイルがあります。
操作、導入法等は、拙宅の掲示板にてどうぞ。


Indexへ
(23682)←【23740】→(23741)
------------------------
【タイトル】Re(4):ソリッドの面積求積について
【記事番号】 23740 (23678)
【 日時 】07/10/01 12:07
【 発言者 】古井

▼PCおんちさん:
mswin-32ruby1.8.1はどこで摂取出来るのでしょうか?
siegelさんの掲示板やhttp://www17.ocn.ne.jp/~lite/の
サイト等あちこち探しましたが、膨大にページがあり
見つけることが出来ませんでした。
私はプログラミング等は素人の域を出ておりませんので
詳しい方。
どうか助言等お願い致します。


Indexへ
(23740)←【23741】→(23860)
------------------------
【タイトル】Re(5):ソリッドの面積求積について
【記事番号】 23741 (23740)
【 日時 】07/10/01 12:57
【 発言者 】art modanart@hotmail.com

▼古井さん:
私もはじめの頃は、外部変形を動かす環境設定に苦労しました。
そこで、下記のプログラムを紹介致します。
陽建築設計事務所 渡辺様作 「JWW外変環境設定支援ソフト J_GARU Ver.2.0β for 2000・XP」(いつも新規のパソコンへの導入のサイには利用させて頂いております。渡辺様 感謝です。)
こちらのプログラムでの環境設定を行うとjww直下に外部変形プログラムが無くても良いため重宝しています。(任意のフォルダ内に外部変形を置いていても動作します)
いろいろな環境がありますので、全ての場合に満足するかは分かりませんが、一度試されてはいかがでしょうか。

url : http://officehikari.art-studio.cc/data-1.htm


Indexへ
(23741)←【23860】//(23630)
------------------------
【タイトル】Re(6):解決しました
【記事番号】 23860 (23741)
【 日時 】07/10/06 16:11
【 発言者 】古井

artさんへ
陽建築設計事務所 渡辺様作 「JWW外変環境設定支援ソフト J_GARU Ver.2.0β for 2000・XP」をダウンロードさせていただいたところ
面積が表示されました。
併せて、円弧を含む複雑な図形の塗潰しの外部変形も使えるようになりました。

今回そうとう苦労しましたので本当に嬉しいです。
「ありがとうごさいました」の一言に尽きます。