Indexへ
(22641)//【22638】→(22655)
------------------------
【タイトル】座標ファイルについて
【記事番号】 22638 (*)
【 日時 】07/07/26 11:20
【 発言者 】風呂好き

いつも、このホームページで勉強せさていただき
ありがとうございます。

木造の耐震診断で壁の位置と壁の長さ、壁の番号を
ひろうための作業をしているのですが
手動で作業していますと、なかなか
難しく、ミスも多いです。

そこで、図面に描いた線分の位置(ある原点からの距離)
と長さ、そしてその線分付近に書いた番号を
JWWの座標ファイル書き出しで、線分の位置と線分長さはわかるのですが、
線分付近に書いた線分番号(文字座標)と線分位置との関連付けがうまくできず、
何か良い方法はないかと思っています。

座標ファイルから文字座標と線分座標を推測して線分と線分番号の
関連づけは目視ですとなかなか難しいですね。

よろしくお願いします。

        風呂好き


Indexへ
(22638)←【22655】→(22656)
------------------------
【タイトル】Re(1):座標ファイルについて
【記事番号】 22655 (22638)
【 日時 】07/07/26 16:56
【 発言者 】コジマ

▼風呂好きさん:
>いつも、このホームページで勉強せさていただき
>ありがとうございます。
>
>木造の耐震診断で壁の位置と壁の長さ、壁の番号を
>ひろうための作業をしているのですが
>手動で作業していますと、なかなか
>難しく、ミスも多いです。
>
>そこで、図面に描いた線分の位置(ある原点からの距離)
>と長さ、そしてその線分付近に書いた番号を
>JWWの座標ファイル書き出しで、線分の位置と線分長さはわかるのですが、
>線分付近に書いた線分番号(文字座標)と線分位置との関連付けがうまくできず、
>何か良い方法はないかと思っています。
>

外部変形しかない?
但し、線分の近くに複数の文字があるとバグ


Indexへ
(22655)←【22656】→(22658)
------------------------
【タイトル】Re(2):座標ファイルについて
【記事番号】 22656 (22655)
【 日時 】07/07/26 17:02
【 発言者 】コジマ

外部変形しかない?
但し、線分の近くに複数の文字があるとバグります。

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

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

@REM 線座標と直近の文字の関連付け
@echo off
REM #jww
REM #cd
REM #c文字と線の垂直離隔(図寸) 無指定:5mm以内/_/a
REM #c座標値の小数点以下有効桁数 無指定:3/_/b
REM #h1
REM #0原点を指示してください free(L) Read(R)
REM #e
copy jwc_temp.txt temp.txt > nul
ruby -x %~f0 temp.txt %1 %2 > jwc_temp.txt
exit
#!ruby -Ks

include Math
hanare=5.0;keta=3
while ARGV.size>1
    case argument=ARGV.pop
        when /\/a/
            hanare=argument[2..-1].to_f
        when /\/b/
            keta=argument[2..-1].to_i
    end
end
sen=[];by=[];moji_a=[]
while ARGF.gets
    xy=split
    if xy[0]=~/^hs/
        xy[1..-1].each{|item|by<    end
    if xy[0]=~/^lg/
        lg=xy[0][2,1]
        zusun=by[lg.hex]
    end
    if xy[0]=~/^\d|^-/
        xy.collect!{|item|item.to_f}
        sen<    end
    if xy[0]=~/^ch/
        moji=$'.chomp if $_=~/\"/
        moji_a<<[xy[1].to_f,xy[2].to_f,moji]
    end
end

moji_a.sort!{|a,b|a[2]<=>b[2]}

open("文字_線座標.txt","w"){|f|

    moji_a.each{|item|
        a=sen.find{|item2|
            x1_1=item2[2]-item2[0]
            y1_1=item2[3]-item2[1]
            l1_1=hypot(y1_1,x1_1)
            arg1_1=atan2(y1_1,x1_1)

            x2_1=item[0]-item2[0]
            y2_1=item[1]-item2[1]
            l2_1=hypot(y2_1,x2_1)
            arg2_1=atan2(y2_1,x2_1)

            henkaku1=arg2_1-arg1_1
            y=l2_1*sin(henkaku1)
            x=l2_1*cos(henkaku1)

            x1_2=item2[0]-item2[2]
            y1_2=item2[1]-item2[3]
            l1_2=hypot(y1_2,x1_2)
            arg1_2=atan2(y1_2,x1_2)

            x2_2=item[0]-item2[2]
            y2_2=item[1]-item2[3]
            l2_2=hypot(y2_2,x2_2)
            arg2_2=atan2(y2_2,x2_2)

            henkaku2=arg2_2-arg1_2
            yy=l2_2*sin(henkaku2)
            xx=l2_2*cos(henkaku2)
            y.abs        }
        if a
            f.printf("%s %.#{keta}f %.#{keta}f %.#{keta}f %.#{keta}f\n",item[2],a[0],a[1],a[2],a[3])
            sen.delete_if{|item3|item3==a}
        end
    }
}

system("notepad 文字_線座標.txt")


Indexへ
(22656)←【22658】→(22678)
------------------------
【タイトル】Re(3):座標ファイルについて
【記事番号】 22658 (22656)
【 日時 】07/07/26 17:57
【 発言者 】風呂好き

▼コジマさん:
外部変形作成していただき、ありがとうございます。

早速、チャレンジしてみます。

まずは、外部変形が起動できるよう
調整してみます。

動作報告については、後日します。
ありがとうございます。

        『風呂好き』


Indexへ
(22658)←【22678】→(22681)
------------------------
【タイトル】Re(3):tab区切りにできるとよいのですが
【記事番号】 22678 (22656)
【 日時 】07/07/27 10:02
【 発言者 】風呂好き

▼コジマさん:
早速、外部変形試してみました。
問題なく動いています。(^.^)
すばらしいですね。
ありがとうございます。

ノートパットでテキストファイルとなって画面にでるのですが
これをエクセルにコピーして貼って加工をしようと思うのですが
各文字の間が半角スペースとなっていますが、できれば
文字と文字の間がtabで分かれているとエクセルに貼り付けた時
都合が良いです。
で、自分で試行錯誤してコジマさんの外変を触ろうとしましたが
どこをどうさわればわからず・・・ギブアップ・・・(^_^;)

申し訳ありません、アドバイスいただければと思います。
よろしくお願いします。

     『風呂好き』


Indexへ
(22678)←【22681】→(22684)
------------------------
【タイトル】Re(4):tab区切りにできるとよいのですが
【記事番号】 22681 (22678)
【 日時 】07/07/27 11:05
【 発言者 】コジマ

▼風呂好きさん:
>▼コジマさん:
>早速、外部変形試してみました。
>問題なく動いています。(^.^)
>すばらしいですね。
>ありがとうございます。
>
>ノートパットでテキストファイルとなって画面にでるのですが
>これをエクセルにコピーして貼って加工をしようと思うのですが
>各文字の間が半角スペースとなっていますが、できれば
>文字と文字の間がtabで分かれているとエクセルに貼り付けた時
>都合が良いです。
>で、自分で試行錯誤してコジマさんの外変を触ろうとしましたが
>どこをどうさわればわからず・・・ギブアップ・・・(^_^;)
>
>申し訳ありません、アドバイスいただければと思います。
>よろしくお願いします。
>
>     『風呂好き』

末尾の6行を以下のように変更してください。

変更前
        if a
            f.printf("%s %.#{keta}f %.#{keta}f %.#{keta}f %.#{keta}f\n",item[2],a[0],a[1],a[2],a[3])
            sen.delete_if{|item3|item3==a}
        end
    }
}

system("notepad 文字_線座標.txt")


変更後

        if a
            f.printf("%s\t%.#{keta}f\t%.#{keta}f\t%.#{keta}f\t%.#{keta}f\n",item[2],a[0],a[1],a[2],a[3])
            sen.delete_if{|item3|item3==a}
        end
    }
}

system("notepad 文字_線座標.txt")


Indexへ
(22681)←【22684】//(22639)
------------------------
【タイトル】Re(5):tab区切りOKです
【記事番号】 22684 (22681)
【 日時 】07/07/27 12:32
【 発言者 】風呂好き

▼コジマさん:
早速の対応ありがとうございます。
tab区切りOKです。
エクセルへの貼り付けが大変楽になりました。(^.^)
外部変形の威力に驚いています。
これで、ミスも減ると思います。(^_^;)

コジマ様のすばらしい対応に感謝します。
ありがとうございます。


        『風呂好き』